pedicel-pay 0.0.7 → 0.0.8

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: a92860cb4e7c25dc894df194c4fa590e2dfe92075faf8bbd89328b0e00708fb2
4
- data.tar.gz: 17dc4fae67dc3b00eea283fa5d281fc91f41c055baf4d38d805d7a63082a75ed
3
+ metadata.gz: 85d66f4d33714f24c34da1a20ae870a91b3dd0b91384384837d6800b465532c9
4
+ data.tar.gz: 351a005183dba34cc6e28ef1535291ad5cb491d488bdc00b44a44c83f1a1d1a8
5
5
  SHA512:
6
- metadata.gz: 87e21de8f44baac69f46be2b9156f0d089cc3c30d445d990c1424dd69c402448f6fd32396f031c17b257b864d87ca6e8421fc7fb8c93a05875d866ee7046e24f
7
- data.tar.gz: '097631854de1f3527cddc1f9fc083b84c8a4400a8df6de6b1aebb3eaca3d8416ad73802f8148a8e15fab0883e689d522574c35df91fc9d09e5d0ea7957565a90'
6
+ metadata.gz: 6510894a8d6c86b1ecc979c5cfa6f411aaf2fe9fa09f3c70e1157d45fbff9e9ba0dd7b7d0f55049e3b6006055b25d95e3544dd22528807a7d30f28f20498b7c4
7
+ data.tar.gz: a4ccc1389c256f096ccd86eee3488b64e25664c03972044357709f5754f2518acc627f2cc155219f54790cf018bffaf3578dcba1715d964f57ae4ec7b3d12a0b
@@ -140,7 +140,7 @@ module PedicelPay
140
140
  else raise ArgumentError, 'invalid recipient'
141
141
  end
142
142
 
143
- ephemeral_seckey = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE).generate_key
143
+ ephemeral_seckey = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE)
144
144
 
145
145
  [ephemeral_seckey.dh_compute_key(pubkey), ephemeral_seckey.public_key]
146
146
  end
@@ -158,8 +158,7 @@ module PedicelPay
158
158
  end
159
159
 
160
160
  def self.generate_ca(config: PedicelPay.config)
161
- key = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE)
162
- key.generate_key
161
+ key = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE)
163
162
 
164
163
  cert = OpenSSL::X509::Certificate.new
165
164
  cert.version = 2 # https://www.ietf.org/rfc/rfc5280.txt -> Section 4.1, search for "v3(2)".
@@ -183,8 +182,7 @@ module PedicelPay
183
182
  end
184
183
 
185
184
  def self.generate_intermediate(ca_key:, ca_certificate:, config: PedicelPay.config)
186
- key = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE)
187
- key.generate_key
185
+ key = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE)
188
186
 
189
187
  cert = OpenSSL::X509::Certificate.new
190
188
  # https://www.ietf.org/rfc/rfc5280.txt -> Section 4.1, search for "v3(2)".
@@ -216,8 +214,7 @@ module PedicelPay
216
214
  end
217
215
 
218
216
  def self.generate_leaf(intermediate_key:, intermediate_certificate:, config: PedicelPay.config)
219
- key = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE)
220
- key.generate_key
217
+ key = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE)
221
218
 
222
219
  cert = OpenSSL::X509::Certificate.new
223
220
  cert.version = 2 # https://www.ietf.org/rfc/rfc5280.txt -> Section 4.1, search for "v3(2)".
@@ -13,8 +13,7 @@ module PedicelPay
13
13
  end
14
14
 
15
15
  def generate_key
16
- @key = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE)
17
- @key.generate_key
16
+ @key = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE)
18
17
 
19
18
  @key
20
19
  end
@@ -9,11 +9,24 @@ module PedicelPay
9
9
  end
10
10
 
11
11
  def self.ec_key_to_pkey_public_key(ec_key)
12
- # EC#public_key is not a PKey public key, but an EC point.
13
- pub = OpenSSL::PKey::EC.new(ec_key.group)
14
- pub.public_key = ec_key.is_a?(OpenSSL::PKey::PKey) ? ec_key.public_key : ec_key
12
+ # OpenSSL::PKey::EC#public_key is not a PKey public key but an EC point.
13
+ # The ASN1 detour below is because OpenSSL < 3 does not have
14
+ # OpenSSL::PKey::EC#public_to_pem. Otherwise, this method could be served
15
+ # directly to OpenSSL::PKey::EC.new. An approach respecting the
16
+ # immutability of a PKey and the potential absence of #public_to_pem
17
+ # is necessary. See https://stackoverflow.com/a/75572569.
18
+ point = ec_key.is_a?(OpenSSL::PKey::PKey) ? ec_key.public_key : ec_key
19
+ asn1 = OpenSSL::ASN1::Sequence(
20
+ [
21
+ OpenSSL::ASN1::Sequence([
22
+ OpenSSL::ASN1::ObjectId('id-ecPublicKey'),
23
+ OpenSSL::ASN1::ObjectId(ec_key.group.curve_name)
24
+ ]),
25
+ OpenSSL::ASN1::BitString(point.to_octet_string(:uncompressed))
26
+ ]
27
+ )
15
28
 
16
- pub
29
+ OpenSSL::PKey::EC.new(asn1.to_der)
17
30
  end
18
31
 
19
32
  def self.bytestring_to_hex(string)
@@ -1,3 +1,3 @@
1
1
  module PedicelPay
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pedicel-pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clearhaus A/S
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-09 00:00:00.000000000 Z
11
+ date: 2023-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 2.1.4
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 2.1.4
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,43 +30,29 @@ dependencies:
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 1.1.0
33
+ version: 1.2.0
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 1.1.0
40
+ version: 1.2.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: thor
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.20'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.20'
69
- - !ruby/object:Gem::Dependency
70
- name: openssl
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
45
+ - - ">="
74
46
  - !ruby/object:Gem::Version
75
- version: '2.1'
47
+ version: '0'
76
48
  type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - "~>"
52
+ - - ">="
81
53
  - !ruby/object:Gem::Version
82
- version: '2.1'
83
- description:
54
+ version: '0'
55
+ description:
84
56
  email: hello@clearhaus.com
85
57
  executables:
86
58
  - pedicel-pay
@@ -100,7 +72,7 @@ homepage: https://github.com/clearhaus/pedicel-pay
100
72
  licenses:
101
73
  - MIT
102
74
  metadata: {}
103
- post_install_message:
75
+ post_install_message:
104
76
  rdoc_options: []
105
77
  require_paths:
106
78
  - lib
@@ -115,8 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
87
  - !ruby/object:Gem::Version
116
88
  version: '0'
117
89
  requirements: []
118
- rubygems_version: 3.3.5
119
- signing_key:
90
+ rubygems_version: 3.3.26
91
+ signing_key:
120
92
  specification_version: 4
121
93
  summary: Backend and client part of Apple Pay
122
94
  test_files: []