aliquot-pay 2.1.2 → 3.0.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aliquot-pay.rb +12 -16
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c5bffd61e042fd964cca3d4c766cd63ce6e5434602f28cf17e54a70db6001e1
4
- data.tar.gz: 0b4c0729cba721c98abe88b1bd7ef70a1205acf71f6eba6f03d77e66bc01f252
3
+ metadata.gz: 35dfff1ebd40162ee529331539e3e84c3cd9d4584aa8c5cbcd512ad4f1bddbcd
4
+ data.tar.gz: 06405dd759121d55be37e9488f0a21b50bf710613b5d00cc9d91cbdd6bc1a6a7
5
5
  SHA512:
6
- metadata.gz: e095b875006d99d6e95d6768d482848ba7c304241f72653be631386ac6c2b56b01a79e4d2980c098e6329e2e34635ab11f8569f576389456439d3bf9760e4f3c
7
- data.tar.gz: b9f02b833e505701d13262d0888168b195f0672d29ab4df64e437189e7d9302765885e0a74bdd992fada5793a4b60006b1febdfa77769aa3c36ee73a84d587ee
6
+ metadata.gz: eab0cb24c340f738da984ec910f134836cd04deee6baca6ee2946e9fdcedc0253f8aba93c71e3c9f98b36f086ae7b003fb1a3eeb5964f9a67a1b189cede7132c
7
+ data.tar.gz: 8ec410a4184ba33fd932694d77ac37978e2da7af1851c5a97ff6640aad82a8690a14114e48607cd3df1dfdbb5a71ea0525a588895574cbfe1b6dbfcf34611999
data/lib/aliquot-pay.rb CHANGED
@@ -18,7 +18,7 @@ class AliquotPay
18
18
  attr_accessor :signed_key, :signatures
19
19
  attr_accessor :key_expiration, :key_value
20
20
  attr_accessor :encrypted_message, :cleartext_message, :ephemeral_public_key, :tag
21
- attr_accessor :message_expiration, :message_id, :payment_method, :payment_method_details
21
+ attr_accessor :message_expiration, :message_id, :payment_method, :payment_method_details, :gateway_merchant_id
22
22
  attr_accessor :pan, :expiration_month, :expiration_year, :auth_method
23
23
  attr_accessor :cryptogram, :eci_indicator
24
24
 
@@ -34,7 +34,7 @@ class AliquotPay
34
34
  end
35
35
 
36
36
  def extract_root_signing_keys
37
- key = Base64.strict_encode64(eckey_to_public(ensure_root_key))
37
+ key = Base64.strict_encode64(ensure_root_key.to_der)
38
38
  {
39
39
  'keys' => [
40
40
  'protocolVersion' => @protocol_version,
@@ -43,19 +43,6 @@ class AliquotPay
43
43
  }.to_json
44
44
  end
45
45
 
46
- if OpenSSL::VERSION >= '3'
47
- # pkeys are immutable on OpenSSL >=3.0
48
- def eckey_to_public(key)
49
- key.public_to_der
50
- end
51
- else
52
- def eckey_to_public(key)
53
- k = OpenSSL::PKey::EC.new(EC_CURVE)
54
- k.public_key = key.public_key
55
- k.to_der
56
- end
57
- end
58
-
59
46
  def sign(key, message)
60
47
  d = OpenSSL::Digest::SHA256.new
61
48
  def key.private?; private_key?; end
@@ -116,6 +103,7 @@ class AliquotPay
116
103
 
117
104
  def build_cleartext_message
118
105
  return @cleartext_message if @cleartext_message
106
+
119
107
  default_message_id = Base64.strict_encode64(OpenSSL::Random.random_bytes(24))
120
108
  default_message_expiration = ((Time.now.to_f + 60 * 5) * 1000).round.to_s
121
109
 
@@ -125,6 +113,14 @@ class AliquotPay
125
113
  'paymentMethod' => @payment_method || 'CARD',
126
114
  'paymentMethodDetails' => build_payment_method_details
127
115
  }
116
+
117
+ if @protocol_version == :ECv2
118
+ @cleartext_message.merge!(
119
+ 'gatewayMerchantId' => @gateway_merchant_id || 'SOME GATEWAY MERCHANT ID'
120
+ )
121
+ end
122
+
123
+ @cleartext_message
128
124
  end
129
125
 
130
126
  def build_signed_message
@@ -150,7 +146,7 @@ class AliquotPay
150
146
  fail 'Intermediate key must be public and private key'
151
147
  end
152
148
 
153
- default_key_value = Base64.strict_encode64(eckey_to_public(@intermediate_key))
149
+ default_key_value = Base64.strict_encode64(@intermediate_key.to_der)
154
150
  default_key_expiration = "#{Time.now.to_i + 3600}000"
155
151
 
156
152
  @signed_key = {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aliquot-pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clearhaus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-24 00:00:00.000000000 Z
11
+ date: 2023-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hkdf