adamantite 0.0.13 → 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: 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