ruby-common 1.0.2 → 1.0.4

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: 0dd03746b475edbc264058f3faaa16831625260421dc077dd90443c43f23237e
4
- data.tar.gz: 94104a902329dcf94ef5d1267716a5c10a69bee660c4182f76d559a2f42227bb
3
+ metadata.gz: c24b995c7cd6e05a8042d2ec467a879fb5a68ddd189ea6f0fc1e06d7426dc657
4
+ data.tar.gz: 2e73a5b4eeabba4389a4bd4b72dd9c3abeecc077b91319dae8d0d6b739843f00
5
5
  SHA512:
6
- metadata.gz: 66c026586ab134fa73bfeb96154970fea8bac2471e8a4dc5a3f6099e1a71f51c9282f84cfe251d0eb7c1ee2211008dbe9ab98ebdc346fb007a253de535fb5971
7
- data.tar.gz: '09cdc1c043e63cbb912d6bac89721c0bc280adb44649825f3925e586187748657902dec2a936ced13690ebf293d8c6cda6523cbfa27b319e1aca24be4e529c78'
6
+ metadata.gz: c3fc46151099072d1a66919932685c648725234332aa5c0877dc5a4ad116c18f50b388f5b60d3dd5c1e88594c2d90818f49123256bd0ce94447863b35da09b10
7
+ data.tar.gz: 46cbef1d26d40ce445c478822e453d27e33662769b1bb6e87c420c141ab4e8dffb35a21b297a890b8e69430675ea99f32abb1ce42a1c07aae0abff2423ed2752
@@ -11,6 +11,10 @@ class SignatureVerifierUtils
11
11
  return Base64.decode64(key)
12
12
  end
13
13
 
14
+ def self.base64_encode(key)
15
+ return Base64.encode64(key)
16
+ end
17
+
14
18
  def self.encode(key, data)
15
19
  begin
16
20
  hmac = OpenSSL::HMAC.new(key, 'sha256')
@@ -19,4 +23,11 @@ class SignatureVerifierUtils
19
23
  raise SignatureParseError, "Error encode data"
20
24
  end
21
25
  end
26
+
27
+ def self.pad_start(input_string, length, char)
28
+ return input_string if input_string.length >= length
29
+
30
+ padding = char.to_s * (length - input_string.length)
31
+ padding + input_string
32
+ end
22
33
  end
@@ -118,7 +118,7 @@ class Signature4VerifierService
118
118
 
119
119
  def parse3(signature)
120
120
  sign_decoded = SignatureVerifierUtils.base64_decode(signature)
121
- unpack_result = PhpUnpack.unpack('Cversion/NrequestTime/NsignatureTime/CmasterSignType/nmasterTokenLength', sign_buffer)
121
+ unpack_result = PhpUnpack.unpack('Cversion/NrequestTime/NsignatureTime/CmasterSignType/nmasterTokenLength', sign_decoded)
122
122
 
123
123
  version = unpack_result['version']
124
124
  raise VersionError, 'Invalid signature version' if version != 3
@@ -127,13 +127,12 @@ class Signature4VerifierService
127
127
  raise SignatureParseError, 'invalid timestamp (future time)' if timestamp > (Time.now.to_i)
128
128
 
129
129
  master_token_length = unpack_result['masterTokenLength']
130
- #TODO CO TO KURWA JEST ZA METODA?
131
- master_token = get_bytes_and_advance_position(sign_decoded, master_token_length)
130
+ master_token = sign_decoded.slice!(0, master_token_length)
132
131
  unpack_result['masterToken'] = master_token
133
132
 
134
133
  customer_data = PhpUnpack.unpack('CcustomerSignType/ncustomerTokenLength', sign_buffer)
135
134
  customer_token_length = customer_data['customerTokenLength']
136
- customer_token = get_bytes_and_advance_position(sign_decoded, customer_token_length)
135
+ customer_token = sign_decoded.slice!(0, customer_token_length)
137
136
  customer_data['customerToken'] = customer_token
138
137
 
139
138
  unpack_result.merge!(customer_data)
@@ -154,7 +153,7 @@ class Signature4VerifierService
154
153
 
155
154
  raise SignatureParseError, 'premature end of signature 0x01' if header.empty? || !header.key?('fieldId')
156
155
 
157
- field = FIELD_IDS[header['fieldId'].first]
156
+ field = field_type_def(header['fieldId'].first, i)
158
157
  v = {}
159
158
 
160
159
  case field&.type
@@ -199,5 +198,18 @@ class Signature4VerifierService
199
198
  def get_base(verdict, request_time, signature_time, ip_address, user_agent)
200
199
  [verdict, request_time, signature_time, ip_address, user_agent].join("\n")
201
200
  end
201
+
202
+ private def field_type_def(field_id, i)
203
+ if FIELD_IDS[field_id]
204
+ return FIELD_IDS[field_id]
205
+ end
206
+
207
+ result_type = FIELD_IDS[field_id & 0xC0].type
208
+
209
+ i_str = SignatureVerifierUtils.pad_start(i.to_s, 2, '0')
210
+ result_name = result_type + i_str
211
+
212
+ Field.new(result_name, result_type)
213
+ end
202
214
  end
203
215
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ruby
4
4
  module Common
5
- VERSION = "1.0.2"
5
+ VERSION = "1.0.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Parzych
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-05 00:00:00.000000000 Z
11
+ date: 2025-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbnacl
@@ -62,7 +62,6 @@ files:
62
62
  - CHANGELOG.md
63
63
  - CODE_OF_CONDUCT.md
64
64
  - Gemfile
65
- - Gemfile.lock
66
65
  - LICENSE.md
67
66
  - README.md
68
67
  - Rakefile
data/Gemfile.lock DELETED
@@ -1,34 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- ruby-common (0.1.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.5.1)
10
- rake (13.2.1)
11
- rspec (3.13.0)
12
- rspec-core (~> 3.13.0)
13
- rspec-expectations (~> 3.13.0)
14
- rspec-mocks (~> 3.13.0)
15
- rspec-core (3.13.0)
16
- rspec-support (~> 3.13.0)
17
- rspec-expectations (3.13.1)
18
- diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.13.0)
20
- rspec-mocks (3.13.1)
21
- diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.13.0)
23
- rspec-support (3.13.1)
24
-
25
- PLATFORMS
26
- x86_64-linux
27
-
28
- DEPENDENCIES
29
- rake (~> 13.0)
30
- rspec
31
- ruby-common!
32
-
33
- BUNDLED WITH
34
- 2.3.5