selfsdk 0.0.157 → 0.0.158

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crypto.rb +1 -1
  3. data/lib/messaging.rb +30 -5
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 591ba1fdd4152ea5346667256345644f78ddcc5307426f59d90bc2a7ac61cdcc
4
- data.tar.gz: 3e565f40abf9e8df6fdde236ba92bc65f780cbcc7554fc26316cc52b54dc2d69
3
+ metadata.gz: 30ec6ed6d4c41d8a37d049f8d03a4fe91976ae19caf1eb3f8feb5418b12ed30a
4
+ data.tar.gz: 3f9262518a31f02865f2e77bbfa125c3fa23f8b56606cb0c3899ad9b1f5d4521
5
5
  SHA512:
6
- metadata.gz: 231048c700a31b8e0664a20b4afb212fd5f4b3da8cc91b02b18296153cd6e0d5c137d902f95133b32bf288bae815598270c0f0caf1271f791e34b9f4de79a115
7
- data.tar.gz: c44c480f4c5181e11c310345a8c81f99b17867877760edf927ab6bdcf3dc46805487533febca0e5f4208615c9a65fac463ee48ec73a02764bda52be2749e54f8
6
+ metadata.gz: 86a6cbcd6a449683ae5cf16cfc9a6c55b8a284fe08ccfe9c038a9f75c14722cab0bc29bfff2797a62653382b7da7d3875eda66a700e68983ae45e0dce625983a
7
+ data.tar.gz: 3bd97ff20641571543c6f621472f6f736b067003c72fcd99a4f9c342bf996c4093c9291b54c122dc770fe9a03817c18efb8486a35d8531fe2a01d375010fb478
@@ -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
@@ -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.157
4
+ version: 0.0.158
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aldgate Ventures