selfsdk 0.0.154 → 0.0.159

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9e87bb2c6abcae64f987ed167eed801384f03438e19c86ee63de4389987f8d1
4
- data.tar.gz: 60fa41e66065e09de0c6af1adf28ebb3819a10f5baec8669d42ec518283cec2a
3
+ metadata.gz: 1a1de83ae25387f6180432dd419f36568956a458bdbfd5df988ea9292588e50a
4
+ data.tar.gz: 55717411b03f983659ee503493a233d3ceea14f35fd991eec9494a6bc01fe9b2
5
5
  SHA512:
6
- metadata.gz: 36d038fcbd3abc25a4e40715ec1086b30feadc64fa66989000245a7997e277dce59a6358d70fa55b4646dba6267b080f03d72ef5f07b8852dac8a0ddab249242
7
- data.tar.gz: 4998fc609b7a11761868fcca577f974be805ca6aa45abcd70e8b6baa3cf8f4488099871877487d332fdce213fe490344aa5082dd543c05f21a67aa1278e62459
6
+ metadata.gz: 291ba0d883273e9aa94eb61aa936014a1fd4a6031c9e921d0affc5da4064c39a4cc5b073bb68823ae73d53a33c2808f9cb4921eeac0e043308715d8eb37b9239
7
+ data.tar.gz: d73be5eb6086614300de7469026715881b640ea51fd9e9e5d8054a7b9c387b9d67f3cb21e72f358ff899833176bf9bb38962832405dd68461fc489e8d217d345
@@ -8,7 +8,7 @@ module SelfSDK
8
8
  @client = client
9
9
  @device = device
10
10
  @storage_key = storage_key
11
- @storage_folder = storage_folder
11
+ @storage_folder = "#{storage_folder}/#{@client.jwt.key_id}"
12
12
 
13
13
  if File.exist?(account_path)
14
14
  # 1a) if alice's account file exists load the pickle from the file
@@ -112,7 +112,7 @@ module SelfSDK
112
112
  "#{@storage_folder}/account.pickle"
113
113
  end
114
114
 
115
- def session_path(selfid, device)
115
+ def session_path(selfid, device)
116
116
  "#{@storage_folder}/#{selfid}:#{device}-session.pickle"
117
117
  end
118
118
  end
@@ -2,6 +2,8 @@
2
2
 
3
3
  # frozen_string_literal: true
4
4
 
5
+ require_relative '../ntptime'
6
+
5
7
  module SelfSDK
6
8
  module Messages
7
9
  class Attestation
@@ -42,6 +44,7 @@ module SelfSDK
42
44
  o = {
43
45
  sub: @to,
44
46
  iss: @origin,
47
+ iat: SelfSDK::Time.now.strftime('%FT%TZ'),
45
48
  source: @source,
46
49
  fact: @fact_name,
47
50
  expected_value: @expected_value,
@@ -59,6 +59,7 @@ module SelfSDK
59
59
  m.to = @from
60
60
  m.audience = @from
61
61
  m.to_device = @messaging.device_id
62
+ m.from_device = @to_device
62
63
  m.facts = @facts
63
64
  m
64
65
  end
@@ -85,7 +85,7 @@ module SelfSDK
85
85
  id: SecureRandom.uuid,
86
86
  sender: "#{@jwt.id}:#{@messaging.device_id}",
87
87
  recipient: "#{@to}:#{@to_device}",
88
- ciphertext: body,
88
+ ciphertext: encrypt_message(body, @to, @to_device)
89
89
  )
90
90
  end
91
91
  end
@@ -45,13 +45,17 @@ module SelfSDK
45
45
  @timeout = 120 # seconds
46
46
  @device_id = options.fetch(:device_id, DEFAULT_DEVICE)
47
47
  @auto_reconnect = options.fetch(:auto_reconnect, DEFAULT_AUTO_RECONNECT)
48
- @storage_dir = options.fetch(:storage_dir, DEFAULT_STORAGE_DIR)
48
+ @raw_storage_dir = options.fetch(:storage_dir, DEFAULT_STORAGE_DIR)
49
+ @storage_dir = "#{@raw_storage_dir}/apps/#{@jwt.id}/devices/#{@device_id}"
50
+ FileUtils.mkdir_p @storage_dir unless File.exist? @storage_dir
49
51
  @offset_file = "#{@storage_dir}/#{@jwt.id}:#{@device_id}.offset"
50
52
  @offset = read_offset
53
+ migrate_old_storage_format
51
54
 
52
- FileUtils.mkdir_p @storage_dir unless File.exist? @storage_dir
53
55
  unless options.include? :no_crypto
54
- @encryption_client = Crypto.new(@client, @device_id, @storage_dir, storage_key)
56
+ crypto_path = "#{@storage_dir}/keys"
57
+ FileUtils.mkdir_p crypto_path unless File.exist? crypto_path
58
+ @encryption_client = Crypto.new(@client, @device_id, crypto_path, storage_key)
55
59
  end
56
60
 
57
61
  if options.include? :ws
@@ -439,15 +443,36 @@ module SelfSDK
439
443
  return 0 unless File.exist? @offset_file
440
444
 
441
445
  File.open(@offset_file, 'rb') do |f|
442
- return f.read.unpack('q')[0]
446
+ return f.read.to_i
443
447
  end
444
448
  end
445
449
 
446
450
  def write_offset(offset)
447
451
  File.open(@offset_file, 'wb') do |f|
448
452
  f.flock(File::LOCK_EX)
449
- f.write([offset].pack('q'))
453
+ f.write(offset.to_s.rjust(19, "0"))
454
+ end
455
+ end
456
+
457
+ def migrate_old_storage_format
458
+ # Move the offset file
459
+ old_offset_file = "#{@raw_storage_dir}/#{@jwt.id}:#{@device_id}.offset"
460
+ if File.file?(old_offset_file)
461
+ File.open(old_offset_file, 'rb') do |f|
462
+ offset = f.read.unpack('q')[0]
463
+ write_offset(offset)
464
+ end
465
+ File.delete(old_offset_file)
466
+ end
467
+
468
+ # Move all pickle files
469
+ crypto_path = "#{@storage_dir}/keys/#{@jwt.key_id}"
470
+ FileUtils.mkdir_p crypto_path unless File.exist? crypto_path
471
+ Dir[File.join(@raw_storage_dir, "*.pickle")].each do |file|
472
+ filename = File.basename(file, ".pickle")
473
+ File.rename file, "#{crypto_path}/#{filename}.pickle"
450
474
  end
475
+
451
476
  end
452
477
  end
453
478
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selfsdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.154
4
+ version: 0.0.159
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aldgate Ventures