adamantite 0.0.14 → 0.0.15

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: 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