adamantite 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f7cf1f6c53600d5d0c68d944098a7a98d3ae2715ed7aa48f54df72516c3722b
4
- data.tar.gz: df595ee6fba2497f98ce2ac8446133207475861e6ea9681992e6e36f6b125fb8
3
+ metadata.gz: 4e83c51afbacf3138c9ebb70e6fceaa34dafce0431244dda651bf5f495722499
4
+ data.tar.gz: 24057e87f13dfca8d695353212fb939fba26a28d0d8229edb15d1dbf779d7413
5
5
  SHA512:
6
- metadata.gz: 52b8593789453bbbcfa7a5fc9e75a166a0da8e14dbb6f639d08d5438b8acd7a977f7ca1929245f2a0ad5a31f7c10462f7d1b4f76b46bf551053c91c23a257eb9
7
- data.tar.gz: 897783faaf123f26f8076b7cd25deb1c37e41138f53b0e660252077e433e22dcaae75d0487d4deccdffcf571cc7b79f3bf74278c7157f1bd8f34a2b20b493070
6
+ metadata.gz: cfaedbbecb1aff0602a7955e7e9412331bf71511893c6bdadc0a313170a90a09f09915a442f44ce2def6535ad62f620f5ec130c1f5c23c527286e4163fb5ad1c
7
+ data.tar.gz: 0556f018b804eb1ac56dad36eaf2f1900147dcaaa26b83e974e9e686f50691870804efd4631ea31ca8e2cacd202361cd0ff4d9bf438c9098b6365bc6f7c54169
@@ -12,7 +12,7 @@ module Adamantite
12
12
  include AdamantiteFileUtils
13
13
 
14
14
  attr_reader :authenticated, :master_password, :master_password_salt, :stored_passwords,
15
- :master_license_key, :free_tier
15
+ :master_license_key, :free_tier, :vault
16
16
 
17
17
  OPSLIMIT = 2**20
18
18
  MEMLIMIT = 2**24
@@ -37,7 +37,7 @@ module Adamantite
37
37
  @master_password_salt = master_password_salt
38
38
  @vault = rbnacl_box(@master_vault_key)
39
39
  update_stored_passwords!
40
- read_license_key! if has_license_key?
40
+ read_license_key!
41
41
  true
42
42
  rescue RbNaCl::CryptoError
43
43
  false
@@ -54,8 +54,9 @@ module Adamantite
54
54
 
55
55
  if res['meta']['valid']
56
56
  @master_license_key = master_license_key
57
- @free_tier = res['data']['attributes']['name'] == 'Adamantite Free'
58
- write_to_file(password_file('master_license_key'), @vault.encrypt(@master_license_key), true)
57
+ write_master_license_key
58
+ @master_license_tier = license_tier(res)
59
+ write_master_license_tier
59
60
  true
60
61
  end
61
62
  licensed?
@@ -127,6 +128,8 @@ module Adamantite
127
128
  end
128
129
  FileUtils.remove_entry_secure(pwmanager_tmp_dir)
129
130
  write_master_info(new_master_password_salt, encrypted_vault_key)
131
+ write_master_license_key
132
+ write_master_license_tier
130
133
  @master_password_salt = master_password_salt
131
134
  @master_encrypted_vault_key = encrypted_vault_key
132
135
  true
@@ -177,15 +180,23 @@ module Adamantite
177
180
  write_to_file(password_file('master_encrypted_vault_key'), master_vault_key, true)
178
181
  end
179
182
 
183
+ def write_master_license_key
184
+ write_to_file(password_file('master_license_key'), @vault.encrypt(@master_license_key), true)
185
+ end
186
+
187
+ def write_master_license_tier
188
+ write_to_file(password_file('master_license_tier'), @vault.encrypt(@master_license_tier), true)
189
+ end
190
+
180
191
  def read_license_key!
181
- return unless authenticated?
192
+ return unless authenticated? && has_license_key?
182
193
 
183
194
  @master_license_key = @vault.decrypt(get_license_key)
184
- res = get_license_info(@master_license_key)
185
- @free_tier = res['data']['attributes']['name'] == 'Adamantite Free'
195
+ @master_license_tier = @vault.decrypt(get_license_tier)
186
196
  end
187
197
 
188
198
  def get_license_info(license_key)
199
+ license_key = license_key.nil? ? @master_license_key : license_key
189
200
  headers = {
190
201
  'Content-Type': 'application/vnd.api+json',
191
202
  'Accept': 'application/vnd.api+json'
@@ -200,6 +211,11 @@ module Adamantite
200
211
  }
201
212
  HTTParty.post(LICENSE_ACTIVATION_URL, headers: headers, body: body.to_json)
202
213
  end
214
+
215
+ def license_tier(keygen_response)
216
+ free_tier = keygen_response['data']['attributes']['name'] == 'Adamantite Free'
217
+ free_tier ? 'free' : 'paid'
218
+ end
203
219
  end
204
220
  end
205
221
  end
@@ -96,10 +96,14 @@ module Adamantite
96
96
  File.open(pw_file('master_license_key'), 'rb', &:read)
97
97
  end
98
98
 
99
+ def get_license_tier
100
+ File.open(pw_file('master_license_tier'), 'rb', &:read)
101
+ end
102
+
99
103
  def get_stored_pws
100
104
  excluded_filenames = [
101
105
  '.', '..', 'master_password_hash', 'master_password_salt', 'master_encrypted_vault_key',
102
- 'master_license_key'
106
+ 'master_license_key', 'master_license_tier'
103
107
  ]
104
108
  Dir.entries(pwmanager_dir).filter { |f| !excluded_filenames.include?(f) }
105
109
  end
@@ -109,7 +113,7 @@ module Adamantite
109
113
  end
110
114
 
111
115
  def has_license_key?
112
- pw_file_exists?('master_license_key')
116
+ pw_file_exists?('master_license_key') && pw_file_exists?('master_license_tier')
113
117
  end
114
118
  end
115
119
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adamantite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Bruemmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-19 00:00:00.000000000 Z
11
+ date: 2023-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer-dsl-libui