gitlab-license 2.2.1 → 2.3.0

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: e97f77de6b6b6e0b4910b0b892cc038dcf0c9103b65fc80a2fb27298a6be1140
4
- data.tar.gz: 5c2a31361536c8a6eb4b87511ed41bdd889bf56239f28cdee43d2287c924b41e
3
+ metadata.gz: 7446407f434ff04d36c14ef4ee97be748000280b8abf6e23b83ca6a78a6f1ce5
4
+ data.tar.gz: 8604082fe40f6684eeec09a90f6c7fccc25a0e8df672637889d39894b92efc1d
5
5
  SHA512:
6
- metadata.gz: f4724c22299fcfd99440b0f653db6cf58e884bdf52335733136793e716aaa830cc2c25a393d4d809af46e5f098c02b3432afaa4407180b523f9e8f2f400f35dc
7
- data.tar.gz: 99989f3f28e4fd3c04b866780c5565458620dd9bb15ba6407cd41f586dae70b198271f66f7cb40853b026d8a02ca68c4db1f2a32eac14eb1e919a7c20fb0b5a8
6
+ metadata.gz: 05e748a228c17e433a5b725835e79e66b564fe82fb3ebb922e80e9b892c61e27caf4dd518a9ea6d1f086d16d1bd405bb36ee8c4fc1ccf73db1110d3f49d0e44b
7
+ data.tar.gz: ba3caed401ef9783d01c1fe16c7e8cf1807e21c35b61ea99d0be3b127d9f6c815a9b28c56c32e28eac6b4b4bad5d60ffee4ea58a198b1ca23649e08e1503d946
@@ -17,9 +17,9 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.required_ruby_version = '>= 2.3.0'
20
+ spec.required_ruby_version = '>= 2.7.0'
21
21
 
22
- spec.add_development_dependency 'bundler', '~> 1.9'
22
+ spec.add_development_dependency 'bundler', '~> 2.4'
23
23
  spec.add_development_dependency 'byebug'
24
24
  spec.add_development_dependency 'rake', '~> 10.0'
25
25
  spec.add_development_dependency 'rspec', '~> 3.9'
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  class License
3
- VERSION = '2.2.1'.freeze
3
+ VERSION = '2.3.0'.freeze
4
4
  end
5
5
  end
@@ -15,6 +15,7 @@ module Gitlab
15
15
 
16
16
  class << self
17
17
  attr_reader :encryption_key
18
+ attr_reader :fallback_decryption_keys
18
19
  @encryption_key = nil
19
20
 
20
21
  def encryption_key=(key)
@@ -24,6 +25,19 @@ module Gitlab
24
25
  @encryptor = nil
25
26
  end
26
27
 
28
+ def fallback_decryption_keys=(keys)
29
+ unless keys
30
+ @fallback_decryption_keys = nil
31
+ return
32
+ end
33
+
34
+ unless keys.is_a?(Enumerable) && keys.all? { |key| key.is_a?(OpenSSL::PKey::RSA) }
35
+ raise ArgumentError, 'Invalid fallback RSA encryption keys provided.'
36
+ end
37
+
38
+ @fallback_decryption_keys = Array(keys)
39
+ end
40
+
27
41
  def encryptor
28
42
  @encryptor ||= Encryptor.new(encryption_key)
29
43
  end
@@ -33,11 +47,7 @@ module Gitlab
33
47
 
34
48
  data = Boundary.remove_boundary(data)
35
49
 
36
- begin
37
- license_json = encryptor.decrypt(data)
38
- rescue Encryptor::Error
39
- raise ImportError, 'License data could not be decrypted.'
40
- end
50
+ license_json = decrypt_with_fallback_keys(data)
41
51
 
42
52
  begin
43
53
  attributes = JSON.parse(license_json)
@@ -47,6 +57,22 @@ module Gitlab
47
57
 
48
58
  new(attributes)
49
59
  end
60
+
61
+ def decrypt_with_fallback_keys(data)
62
+ keys_to_try = Array(encryption_key)
63
+ keys_to_try += fallback_decryption_keys if fallback_decryption_keys
64
+
65
+ keys_to_try.each do |decryption_key|
66
+ begin
67
+ decryptor = Encryptor.new(decryption_key)
68
+ return decryptor.decrypt(data)
69
+ rescue Encryptor::Error
70
+ next
71
+ end
72
+ end
73
+
74
+ raise ImportError, 'License data could not be decrypted.'
75
+ end
50
76
  end
51
77
 
52
78
  attr_reader :version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-license
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douwe Maan
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-08-04 00:00:00.000000000 Z
13
+ date: 2023-06-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.9'
21
+ version: '2.4'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.9'
28
+ version: '2.4'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: byebug
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -133,14 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
134
  - - ">="
135
135
  - !ruby/object:Gem::Version
136
- version: 2.3.0
136
+ version: 2.7.0
137
137
  required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - ">="
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
142
  requirements: []
143
- rubygems_version: 3.2.33
143
+ rubygems_version: 3.4.13
144
144
  signing_key:
145
145
  specification_version: 4
146
146
  summary: gitlab-license helps you generate, verify and enforce software licenses.