adamantite 0.0.13 → 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: a6e6f271bc9d8fe8008bd42b52607ee735866937a483340d13b5c999c4e8caf3
4
- data.tar.gz: 913b2831ff46ea1252f39c83ec79cd1594328c0e1bcb17ecd08fc8bca72ce795
3
+ metadata.gz: 4e83c51afbacf3138c9ebb70e6fceaa34dafce0431244dda651bf5f495722499
4
+ data.tar.gz: 24057e87f13dfca8d695353212fb939fba26a28d0d8229edb15d1dbf779d7413
5
5
  SHA512:
6
- metadata.gz: e796b12ba43cba3a972533835162adc42d6937fdd2435436e0b636739eeda0dade7588f15ca811c173461507770855e493829d1ff13b6f9ed7627b79bcd20786
7
- data.tar.gz: fb5b93107b2f420a5a6630b62d7ac83735f2938519fcf8e0d2442bad3badff750e99b9526ea5746ade73edc857766b3b0d1c870eb9124943c22d137ea0b3b754
6
+ metadata.gz: cfaedbbecb1aff0602a7955e7e9412331bf71511893c6bdadc0a313170a90a09f09915a442f44ce2def6535ad62f620f5ec130c1f5c23c527286e4163fb5ad1c
7
+ data.tar.gz: 0556f018b804eb1ac56dad36eaf2f1900147dcaaa26b83e974e9e686f50691870804efd4631ea31ca8e2cacd202361cd0ff4d9bf438c9098b6365bc6f7c54169
data/lib/adamantite.rb CHANGED
@@ -147,8 +147,11 @@ module Adamantite
147
147
  end
148
148
  horizontal_box do
149
149
  stretchy false
150
-
151
- label('This is valid Adamantite installation.')
150
+ free_or_paid = @adamantite.free_tier ? 'free' : 'paid'
151
+ label_text = <<-TEXT
152
+ This is valid Adamantite installation on a #{free_or_paid} license.
153
+ TEXT
154
+ label(label_text)
152
155
  end
153
156
  end
154
157
  else
@@ -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
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
@@ -50,23 +50,13 @@ module Adamantite
50
50
  def activate_license!(master_license_key)
51
51
  return unless authenticated?
52
52
 
53
- headers = {
54
- 'Content-Type': 'application/vnd.api+json',
55
- 'Accept': 'application/vnd.api+json'
56
- }
57
- body = {
58
- 'meta': {
59
- 'key': master_license_key,
60
- 'scope': {
61
- 'product': 'bb6542ab-7d74-44d0-b4f5-1fbc39cdeb99'
62
- }
63
- }
64
- }
65
- res = HTTParty.post(LICENSE_ACTIVATION_URL, headers: headers, body: body.to_json)
53
+ res = get_license_info(master_license_key)
66
54
 
67
55
  if res['meta']['valid']
68
56
  @master_license_key = master_license_key
69
- 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
70
60
  true
71
61
  end
72
62
  licensed?
@@ -138,6 +128,8 @@ module Adamantite
138
128
  end
139
129
  FileUtils.remove_entry_secure(pwmanager_tmp_dir)
140
130
  write_master_info(new_master_password_salt, encrypted_vault_key)
131
+ write_master_license_key
132
+ write_master_license_tier
141
133
  @master_password_salt = master_password_salt
142
134
  @master_encrypted_vault_key = encrypted_vault_key
143
135
  true
@@ -188,10 +180,41 @@ module Adamantite
188
180
  write_to_file(password_file('master_encrypted_vault_key'), master_vault_key, true)
189
181
  end
190
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
+
191
191
  def read_license_key!
192
- return unless authenticated?
192
+ return unless authenticated? && has_license_key?
193
193
 
194
194
  @master_license_key = @vault.decrypt(get_license_key)
195
+ @master_license_tier = @vault.decrypt(get_license_tier)
196
+ end
197
+
198
+ def get_license_info(license_key)
199
+ license_key = license_key.nil? ? @master_license_key : license_key
200
+ headers = {
201
+ 'Content-Type': 'application/vnd.api+json',
202
+ 'Accept': 'application/vnd.api+json'
203
+ }
204
+ body = {
205
+ 'meta': {
206
+ 'key': license_key,
207
+ 'scope': {
208
+ 'product': 'bb6542ab-7d74-44d0-b4f5-1fbc39cdeb99'
209
+ }
210
+ }
211
+ }
212
+ HTTParty.post(LICENSE_ACTIVATION_URL, headers: headers, body: body.to_json)
213
+ end
214
+
215
+ def license_tier(keygen_response)
216
+ free_tier = keygen_response['data']['attributes']['name'] == 'Adamantite Free'
217
+ free_tier ? 'free' : 'paid'
195
218
  end
196
219
  end
197
220
  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.13
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