From 27d33053ca67009758fcde5efcd256ac3c8900cd Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 25 Aug 2023 11:44:59 +0200 Subject: [PATCH 01/15] Commented required ruby version --- pedicel.gemspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pedicel.gemspec b/pedicel.gemspec index 9f8c0d3..e805b8f 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -18,10 +18,10 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'dry-schema', '~> 1.9' s.add_runtime_dependency 'dry-logic', '~> 1.0' - s.required_ruby_version = '~> 2.7.4' + # s.required_ruby_version = '~> 2.7.4' - s.add_development_dependency 'rake', '~> 12.3' - s.add_development_dependency 'rspec', '~> 3.7' s.add_development_dependency 'pedicel-pay', '~> 0.0' s.add_development_dependency 'pry', '~> 0.0' + s.add_development_dependency 'rake', '~> 12.3' + s.add_development_dependency 'rspec', '~> 3.7' end From 83cbd6a4f6c0999315f7a18cdebb4db7459c59d2 Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 25 Aug 2023 12:47:17 +0200 Subject: [PATCH 02/15] Fixed tests to support Ruby > 3 --- Gemfile | 2 ++ pedicel.gemspec | 4 ++-- spec/lib/pedicel/base_spec.rb | 39 +++++++++++++++++------------------ 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Gemfile b/Gemfile index fa75df1..69653eb 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ source 'https://rubygems.org' +gem 'pedicel-pay', path: '../pedicel-pay' + gemspec diff --git a/pedicel.gemspec b/pedicel.gemspec index e805b8f..bcefc05 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -18,9 +18,9 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'dry-schema', '~> 1.9' s.add_runtime_dependency 'dry-logic', '~> 1.0' - # s.required_ruby_version = '~> 2.7.4' + s.required_ruby_version = '>= 2.7.4', '<= 3.2' - s.add_development_dependency 'pedicel-pay', '~> 0.0' + s.add_development_dependency 'pedicel-pay' s.add_development_dependency 'pry', '~> 0.0' s.add_development_dependency 'rake', '~> 12.3' s.add_development_dependency 'rspec', '~> 3.7' diff --git a/spec/lib/pedicel/base_spec.rb b/spec/lib/pedicel/base_spec.rb index 76cccc9..f932abf 100644 --- a/spec/lib/pedicel/base_spec.rb +++ b/spec/lib/pedicel/base_spec.rb @@ -356,81 +356,81 @@ def create_special_certificate(ca_key, ca_certificate, config, oids) end it 'does not err when the chain is good' do - expect{Pedicel::Base.verify_x509_chain(params)}.to_not raise_error + expect{Pedicel::Base.verify_x509_chain(**params)}.to_not raise_error end context 'intermediate equals leaf' do it 'errs if intermediate = leaf (because root did not sign leaf)' do params[:intermediate] = params[:leaf] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') end it 'errs even if intermediate = leaf is self-signed' do params[:intermediate] = params[:leaf] = PedicelPay::Backend.generate.ca_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') end end context 'leaf equals intermediate' do it 'errs if leaf = intermediate (because intermediate did not sign leaf)' do params[:leaf] = params[:intermediate] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'errs even if leaf = intermediate is self-signed' do params[:leaf] = params[:intermediate] = PedicelPay::Backend.generate.ca_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') end end it 'errs if intermediate equals root (because root did not sign leaf)' do params[:intermediate] = params[:root] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'errs if root equals intermediate (because intermediate is not self-signed)' do params[:root] = params[:intermediate] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') end it 'errs if leaf equals root (because intermediate did not sign leaf)' do params[:leaf] = params[:root] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'errs if root equals leaf (becuase leaf is not self-signed)' do params[:root] = params[:leaf] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') end it 'errs if leaf is used for all 3 certificates (because of multiple reasons)' do params[:root] = params[:leaf] params[:intermediate] = params[:leaf] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') end it 'errs if intermediate is used for all 3 certificates' do params[:root] = params[:intermediate] params[:leaf] = params[:intermediate] - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to root') end it 'does not err when root is used for all 3 certificates' do params[:intermediate] = params[:root] params[:leaf] = params[:root] - expect{Pedicel::Base.verify_x509_chain(params)}.to_not raise_error + expect{Pedicel::Base.verify_x509_chain(**params)}.to_not raise_error end it 'errs if intermediate is not signed by root' do params[:root] = PedicelPay::Backend.generate.ca_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') end it 'errs if leaf is not signed by intermediate (1)' do params[:leaf] = PedicelPay::Backend.generate.leaf_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'errs if leaf is not signed by intermediate (2)' do @@ -438,35 +438,34 @@ def create_special_certificate(ca_key, ca_certificate, config, oids) params[:root] = another_backend.ca_certificate params[:intermediate] = another_backend.intermediate_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'errs if leaf is not signed by intermediate and intermediate is not signed by root' do params[:root] = PedicelPay::Backend.generate.ca_certificate params[:intermediate] = PedicelPay::Backend.generate.intermediate_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to intermediate') end it 'errs if certs are interchanged' do params.keys.permutation.reject{|ks| ks == params.keys}.each do |permutated_keys| permutated_params = permutated_keys.zip(params.values).to_h - expect{Pedicel::Base.verify_x509_chain(permutated_params)}.to raise_error(Pedicel::SignatureError, /\Ainvalid chain due to (root|intermediate|leaf)\z/) + expect{Pedicel::Base.verify_x509_chain(**permutated_params)}.to raise_error(Pedicel::SignatureError, /\Ainvalid chain due to (root|intermediate|leaf)\z/) end end it 'errs even if the leaf is self-signed' do params[:leaf] = PedicelPay::Backend.generate.ca_certificate - expect{Pedicel::Base.verify_x509_chain(params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') + expect{Pedicel::Base.verify_x509_chain(**params)}.to raise_error(Pedicel::SignatureError, 'invalid chain due to leaf') end it 'is true when the chain is good' do - expect(Pedicel::Base.verify_x509_chain(params)).to be true + expect(Pedicel::Base.verify_x509_chain(**params)).to be true end end - describe 'Pedicel::Base.verify_signed_time' do let (:signature) { OpenSSL::PKCS7.new(pedicel.signature) } let (:now) { signature.signers.first.signed_time } From ac88a322af8b9555ccbdfe4915589c369609ba37 Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 25 Aug 2023 12:52:51 +0200 Subject: [PATCH 03/15] Changed ruby versions in workflows/test.yml --- .github/workflows/test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 73266ba..3efb3f4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,11 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] - ruby: [2.7] + ruby: + - '2.7' + - '3.0' + - '3.1' + - '3.2' runs-on: ${{ matrix.os }} steps: - name: Check out repository From ad0d330cb9de4b26a6d6215a6df9e6ed32c8b710 Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 25 Aug 2023 14:52:09 +0200 Subject: [PATCH 04/15] Update dependencies --- Gemfile | 3 ++- pedicel.gemspec | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 69653eb..051601c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,6 @@ source 'https://rubygems.org' -gem 'pedicel-pay', path: '../pedicel-pay' +# dev dependency +gem 'pedicel-pay', git: 'https://github.com/cub8/pedicel-pay', branch: 'raise-gems-versions' gemspec diff --git a/pedicel.gemspec b/pedicel.gemspec index bcefc05..401933a 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 2.7.4', '<= 3.2' - s.add_development_dependency 'pedicel-pay' + # s.add_development_dependency 'pedicel-pay' s.add_development_dependency 'pry', '~> 0.0' s.add_development_dependency 'rake', '~> 12.3' s.add_development_dependency 'rspec', '~> 3.7' From 1963a31bb6ade8e51a556405b56661941ce86a37 Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 25 Aug 2023 15:40:19 +0200 Subject: [PATCH 05/15] Change dry-validation version --- pedicel.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pedicel.gemspec b/pedicel.gemspec index 401933a..f7151a9 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |s| s.files = Dir.glob("lib/**/*.rb") - s.add_runtime_dependency 'dry-validation', '1.9' + s.add_runtime_dependency 'dry-validation', '~> 1.9' s.add_runtime_dependency 'dry-schema', '~> 1.9' s.add_runtime_dependency 'dry-logic', '~> 1.0' From 5266aff8cb9735fca4a6cd5c4b1ae9dd207d8e8e Mon Sep 17 00:00:00 2001 From: cub8 Date: Tue, 29 Aug 2023 13:27:53 +0200 Subject: [PATCH 06/15] Updated library to add OpenSSL 3.0 support --- spec/lib/pedicel/base_spec.rb | 5 ++--- spec/lib/pedicel/ec_spec.rb | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/lib/pedicel/base_spec.rb b/spec/lib/pedicel/base_spec.rb index f932abf..d4fdc91 100644 --- a/spec/lib/pedicel/base_spec.rb +++ b/spec/lib/pedicel/base_spec.rb @@ -233,8 +233,7 @@ it 'handles that one certificate can be both intermediate and leaf' do def create_special_certificate(ca_key, ca_certificate, config, oids) - key = OpenSSL::PKey::EC.new(PedicelPay::EC_CURVE) - key.generate_key + key = OpenSSL::PKey::EC.generate(PedicelPay::EC_CURVE) cert = OpenSSL::X509::Certificate.new # https://www.ietf.org/rfc/rfc5280.txt -> Section 4.1, search for "v3(2)". @@ -242,7 +241,7 @@ def create_special_certificate(ca_key, ca_certificate, config, oids) cert.serial = 1 cert.subject = config[:subject][:intermediate] cert.issuer = ca_certificate.subject - cert.public_key = PedicelPay::Helper.ec_key_to_pkey_public_key(key) + cert.public_key = key # PedicelPay::Helper.ec_key_to_pkey_public_key(key) cert.not_before = config[:valid].min cert.not_after = config[:valid].max diff --git a/spec/lib/pedicel/ec_spec.rb b/spec/lib/pedicel/ec_spec.rb index 5ca7f93..e778680 100644 --- a/spec/lib/pedicel/ec_spec.rb +++ b/spec/lib/pedicel/ec_spec.rb @@ -180,8 +180,7 @@ end it "errs if the private key is from another curve than the token's ephemeral public key" do - key = OpenSSL::PKey::EC.new('wap-wsg-idm-ecid-wtls1') # Apple, do never switch to this curve. - key.generate_key + key = OpenSSL::PKey::EC.generate('wap-wsg-idm-ecid-wtls1') # Apple, do never switch to this curve. expect{pedicel.shared_secret(private_key: key)}.to raise_error(Pedicel::EcKeyError, /curve.*differ/) end From 7bca05878f39f0dec3587078431d954a4f1f4a14 Mon Sep 17 00:00:00 2001 From: cub8 Date: Tue, 29 Aug 2023 13:32:47 +0200 Subject: [PATCH 07/15] Remove Ruby version upper bound --- pedicel.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pedicel.gemspec b/pedicel.gemspec index f7151a9..c244846 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'dry-schema', '~> 1.9' s.add_runtime_dependency 'dry-logic', '~> 1.0' - s.required_ruby_version = '>= 2.7.4', '<= 3.2' + s.required_ruby_version = '>= 2.7.4' # s.add_development_dependency 'pedicel-pay' s.add_development_dependency 'pry', '~> 0.0' From 1fe4852f890ab39332d34e662ae709dc56f59eec Mon Sep 17 00:00:00 2001 From: cub8 Date: Tue, 29 Aug 2023 13:42:49 +0200 Subject: [PATCH 08/15] change pedicel-pay git branch --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 051601c..477a05b 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' # dev dependency -gem 'pedicel-pay', git: 'https://github.com/cub8/pedicel-pay', branch: 'raise-gems-versions' +gem 'pedicel-pay', git: 'https://github.com/cub8/pedicel-pay', branch: 'openssl-30-support' gemspec From 106f98cd6a716dc1785c313f0fc8521bf0db733c Mon Sep 17 00:00:00 2001 From: cub8 Date: Tue, 29 Aug 2023 14:31:08 +0200 Subject: [PATCH 09/15] Update actions/checkout@v2 actions/checkout@v3 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3efb3f4..8d5451e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Run tests uses: ruby/setup-ruby@v1 From 7f0979b15c759182ae0cdc10b081257215877bd2 Mon Sep 17 00:00:00 2001 From: cub8 Date: Wed, 30 Aug 2023 17:32:35 +0200 Subject: [PATCH 10/15] Remove matrix.os, replace it with runs-on: ubuntu-latest --- .github/workflows/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d5451e..baa3c0b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,13 +7,12 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] ruby: - '2.7' - '3.0' - '3.1' - '3.2' - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v3 From a34392001fd3a1a6e0a3a67f3203e76c78e8f121 Mon Sep 17 00:00:00 2001 From: cub8 Date: Fri, 1 Sep 2023 15:35:27 +0200 Subject: [PATCH 11/15] Remove commented code in one test --- spec/lib/pedicel/base_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/pedicel/base_spec.rb b/spec/lib/pedicel/base_spec.rb index d4fdc91..1d64501 100644 --- a/spec/lib/pedicel/base_spec.rb +++ b/spec/lib/pedicel/base_spec.rb @@ -241,7 +241,7 @@ def create_special_certificate(ca_key, ca_certificate, config, oids) cert.serial = 1 cert.subject = config[:subject][:intermediate] cert.issuer = ca_certificate.subject - cert.public_key = key # PedicelPay::Helper.ec_key_to_pkey_public_key(key) + cert.public_key = key cert.not_before = config[:valid].min cert.not_after = config[:valid].max From d531d951c0220c964859fa19aa9191e015909352 Mon Sep 17 00:00:00 2001 From: cub8 Date: Mon, 4 Sep 2023 12:49:26 +0200 Subject: [PATCH 12/15] Added dry-core 1.0.0 to development dependencies. --- pedicel.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/pedicel.gemspec b/pedicel.gemspec index c244846..24b0d8f 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -15,6 +15,7 @@ Gem::Specification.new do |s| s.files = Dir.glob("lib/**/*.rb") s.add_runtime_dependency 'dry-validation', '~> 1.9' + s.add_runtime_dependency 'dry-core', '1.0.0' s.add_runtime_dependency 'dry-schema', '~> 1.9' s.add_runtime_dependency 'dry-logic', '~> 1.0' From 421cf5d9ad7fd582b229219cdeeae1d96c1c822e Mon Sep 17 00:00:00 2001 From: cub8 Date: Mon, 4 Sep 2023 12:58:42 +0200 Subject: [PATCH 13/15] Get rid of RSpec deprecation warnings. --- spec/lib/pedicel/base_spec.rb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/spec/lib/pedicel/base_spec.rb b/spec/lib/pedicel/base_spec.rb index 1d64501..b31089d 100644 --- a/spec/lib/pedicel/base_spec.rb +++ b/spec/lib/pedicel/base_spec.rb @@ -105,37 +105,37 @@ subject { lambda { pedicel.verify_signature } } it 'does not err when all checks are good' do - is_expected.to_not raise_error + expect { subject.call }.to_not raise_error end it 'checks for the custom OIDs (1.a)' do expect(Pedicel::Base).to receive(:extract_certificates).and_raise(Pedicel::SignatureError, 'boom') - is_expected.to raise_error(Pedicel::SignatureError, 'boom') + expect { subject.call }.to raise_error(Pedicel::SignatureError, 'boom') end it 'checks that the root certificate is trusted (1.b)' do expect(Pedicel::Base).to receive(:verify_root_certificate).and_raise(Pedicel::SignatureError, 'boom') - is_expected.to raise_error(Pedicel::SignatureError, 'boom') + expect { subject.call }.to raise_error(Pedicel::SignatureError, 'boom') end it 'checks the chain (1.c)' do expect(Pedicel::Base).to receive(:verify_x509_chain).and_raise(Pedicel::SignatureError, 'boom') - is_expected.to raise_error(Pedicel::SignatureError, 'boom') + expect { subject.call }.to raise_error(Pedicel::SignatureError, 'boom') end it "checks the token's signature (1.d)" do expect(pedicel).to receive(:validate_signature).and_raise(Pedicel::SignatureError, 'boom') - is_expected.to raise_error(Pedicel::SignatureError, 'boom') + expect { subject.call }.to raise_error(Pedicel::SignatureError, 'boom') end it 'checks signing time (1.e)' do expect(Pedicel::Base).to receive(:verify_signed_time).and_raise(Pedicel::SignatureError, 'boom') - is_expected.to raise_error(Pedicel::SignatureError, 'boom') + expect { subject.call }.to raise_error(Pedicel::SignatureError, 'boom') end end @@ -197,26 +197,26 @@ end it 'does not err when all checks are good' do - is_expected.to_not raise_error + expect { subject.call }.to_not raise_error end it 'errs if there is no leaf OID' do pedicel.config.merge!(oid_leaf_certificate: 'invalid oid') - is_expected.to raise_error(Pedicel::SignatureError, /no.*leaf.*found/) + expect { subject.call }.to raise_error(Pedicel::SignatureError, /no.*leaf.*found/) end it 'errs if there is no intermediate OID' do pedicel.config.merge!(oid_intermediate_certificate: 'invalid oid') - is_expected.to raise_error(Pedicel::SignatureError, /no.*intermediate.*found/) + expect { subject.call }.to raise_error(Pedicel::SignatureError, /no.*intermediate.*found/) end it 'errs if there are neither a leaf nor an intermediate OID' do pedicel.config.merge!(oid_leaf_certificate: 'invalid oid') pedicel.config.merge!(oid_intermediate_certificate: 'invalid oid') - is_expected.to raise_error(Pedicel::SignatureError, /no.*(leaf|intermediate).*found/) + expect { subject.call }.to raise_error(Pedicel::SignatureError, /no.*(leaf|intermediate).*found/) end end From 0da4804f0ad5833e21c690ddbca09f6604d41d3f Mon Sep 17 00:00:00 2001 From: cub8 Date: Mon, 4 Sep 2023 14:43:51 +0200 Subject: [PATCH 14/15] Remove unused method from spec_helper.rb. --- spec/spec_helper.rb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4b41a37..f51440a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,10 +1,2 @@ require 'securerandom' require 'base64' - -def ec_key_to_pkey_public_key(ec_key) - # EC#public_key is not a PKey public key, but an EC point. - pub = OpenSSL::PKey::EC.new(ec_key.group) - pub.public_key = ec_key.is_a?(OpenSSL::PKey::PKey) ? ec_key.public_key : ec_key - - pub -end From 99bbec355565e8ca29bb34133d985034dbb314b8 Mon Sep 17 00:00:00 2001 From: cub8 Date: Tue, 5 Sep 2023 13:10:49 +0200 Subject: [PATCH 15/15] Bump version to 1.2.0. --- Gemfile | 3 --- lib/pedicel/version.rb | 2 +- pedicel.gemspec | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 477a05b..fa75df1 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,3 @@ source 'https://rubygems.org' -# dev dependency -gem 'pedicel-pay', git: 'https://github.com/cub8/pedicel-pay', branch: 'openssl-30-support' - gemspec diff --git a/lib/pedicel/version.rb b/lib/pedicel/version.rb index 1daac40..532449c 100644 --- a/lib/pedicel/version.rb +++ b/lib/pedicel/version.rb @@ -1,3 +1,3 @@ module Pedicel - VERSION = '1.1.0'.freeze + VERSION = '1.2.0'.freeze end diff --git a/pedicel.gemspec b/pedicel.gemspec index 24b0d8f..b4dbabf 100644 --- a/pedicel.gemspec +++ b/pedicel.gemspec @@ -21,7 +21,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 2.7.4' - # s.add_development_dependency 'pedicel-pay' + s.add_development_dependency 'pedicel-pay', '~> 0.0.8' s.add_development_dependency 'pry', '~> 0.0' s.add_development_dependency 'rake', '~> 12.3' s.add_development_dependency 'rspec', '~> 3.7'