Skip to content

Commit 825ce8d

Browse files
authored
Extend specs for ps and ecdsa algos (#682)
Extend specs
1 parent 2765653 commit 825ce8d

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

spec/jwt/jwa/ecdsa_spec.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,29 @@
3131
end
3232
end
3333
end
34+
35+
let(:ecdsa_key) { test_pkey('ec256-private.pem') }
36+
let(:data) { 'test data' }
37+
let(:instance) { described_class.new('ES256', 'sha256') }
38+
39+
describe '#verify' do
40+
context 'when the verification key is valid' do
41+
it 'returns true for a valid signature' do
42+
signature = instance.sign(data: data, signing_key: ecdsa_key)
43+
expect(instance.verify(data: data, signature: signature, verification_key: ecdsa_key)).to be true
44+
end
45+
46+
it 'returns false for an invalid signature' do
47+
expect(instance.verify(data: data, signature: 'invalid_signature', verification_key: ecdsa_key)).to be false
48+
end
49+
end
50+
context 'when verification results in a OpenSSL::PKey::PKeyError error' do
51+
it 'raises a JWT::VerificationError' do
52+
allow(ecdsa_key).to receive(:dsa_verify_asn1).and_raise(OpenSSL::PKey::PKeyError.new('Error'))
53+
expect do
54+
instance.verify(data: data, signature: '', verification_key: ecdsa_key)
55+
end.to raise_error(JWT::VerificationError, 'Signature verification raised')
56+
end
57+
end
58+
end
3459
end

spec/jwt/jwa/ps_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,14 @@
8282
expect(ps256_instance.verify(data: data, signature: 'invalid_signature', verification_key: rsa_key)).to be(false)
8383
end
8484
end
85+
86+
context 'when verification results in a OpenSSL::PKey::PKeyError error' do
87+
it 'raises a JWT::VerificationError' do
88+
allow(rsa_key).to receive(:verify_pss).and_raise(OpenSSL::PKey::PKeyError.new('Error'))
89+
expect do
90+
ps256_instance.verify(data: data, signature: ps256_signature, verification_key: rsa_key)
91+
end.to raise_error(JWT::VerificationError, 'Signature verification raised')
92+
end
93+
end
8594
end
8695
end

0 commit comments

Comments
 (0)