Skip to content

Commit 37077e4

Browse files
committed
Removed tests that are no longer necessary now that we have test vectors from RFC 7520
1 parent d1f6de2 commit 37077e4

File tree

1 file changed

+33
-66
lines changed

1 file changed

+33
-66
lines changed

tests/test_algorithms.py

Lines changed: 33 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -131,26 +131,6 @@ def test_rsa_verify_should_return_false_if_signature_invalid(self):
131131
result = algo.verify(message, pub_key, sig)
132132
assert not result
133133

134-
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
135-
def test_rsa_verify_should_return_true_if_signature_valid(self):
136-
algo = RSAAlgorithm(RSAAlgorithm.SHA256)
137-
138-
message = ensure_bytes('Hello World!')
139-
140-
sig = base64.b64decode(ensure_bytes(
141-
'yS6zk9DBkuGTtcBzLUzSpo9gGJxJFOGvUqN01iLhWHrzBQ9ZEz3+Ae38AXp'
142-
'10RWwscp42ySC85Z6zoN67yGkLNWnfmCZSEv+xqELGEvBJvciOKsrhiObUl'
143-
'2mveSc1oeO/2ujkGDkkkJ2epn0YliacVjZF5+/uDmImUfAAj8lzjnHlzYix'
144-
'sn5jGz1H07jYYbi9diixN8IUhXeTafwFg02IcONhum29V40Wu6O5tAKWlJX'
145-
'fHJnNUzAEUOXS0WahHVb57D30pcgIji9z923q90p5c7E2cU8V+E1qe8NdCA'
146-
'APCDzZZ9zQ/dgcMVaBrGrgimrcLbPjueOKFgSO+SSjIElKA=='))
147-
148-
with open(key_path('testkey_rsa.pub'), 'r') as keyfile:
149-
pub_key = algo.prepare_key(keyfile.read())
150-
151-
result = algo.verify(message, pub_key, sig)
152-
assert result
153-
154134
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
155135
def test_ec_should_reject_non_string_key(self):
156136
algo = ECAlgorithm(ECAlgorithm.SHA256)
@@ -197,23 +177,6 @@ def test_ec_verify_should_return_false_if_signature_wrong_length(self):
197177
result = algo.verify(message, pub_key, sig)
198178
assert not result
199179

200-
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
201-
def test_ec_verify_should_return_true_if_signature_valid(self):
202-
algo = ECAlgorithm(ECAlgorithm.SHA256)
203-
204-
message = ensure_bytes('Hello World!')
205-
206-
sig = base64.b64decode(ensure_bytes(
207-
'AC+m4Jf/xI3guAC6w0w37t5zRpSCF6F4udEz5LiMiTIjCS4vcVe6dDOxK+M'
208-
'mvkF8PxJuvqxP2CO3TR3okDPCl/NjATTO1jE+qBZ966CRQSSzcCM+tzcHzw'
209-
'LZS5kbvKu0Acd/K6Ol2/W3B1NeV5F/gjvZn/jOwaLgWEUYsg0o4XVrAg65'))
210-
211-
with open(key_path('testkey_ec.pub'), 'r') as keyfile:
212-
pub_key = algo.prepare_key(keyfile.read())
213-
214-
result = algo.verify(message, pub_key, sig)
215-
assert result
216-
217180
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
218181
def test_rsa_pss_sign_then_verify_should_return_true(self):
219182
algo = RSAPSSAlgorithm(RSAPSSAlgorithm.SHA256)
@@ -252,34 +215,20 @@ def test_rsa_pss_verify_should_return_false_if_signature_invalid(self):
252215
result = algo.verify(jwt_message, jwt_pub_key, jwt_sig)
253216
assert not result
254217

255-
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
256-
def test_rsa_pss_verify_should_return_true_if_signature_valid(self):
257-
algo = RSAPSSAlgorithm(RSAPSSAlgorithm.SHA256)
258-
259-
jwt_message = ensure_bytes('Hello World!')
260-
261-
jwt_sig = base64.b64decode(ensure_bytes(
262-
'ywKAUGRIDC//6X+tjvZA96yEtMqpOrSppCNfYI7NKyon3P7doud5v65oWNu'
263-
'vQsz0fzPGfF7mQFGo9Cm9Vn0nljm4G6PtqZRbz5fXNQBH9k10gq34AtM02c'
264-
'/cveqACQ8gF3zxWh6qr9jVqIpeMEaEBIkvqG954E0HT9s9ybHShgHX9mlWk'
265-
'186/LopP4xe5c/hxOQjwhv6yDlTiwJFiqjNCvj0GyBKsc4iECLGIIO+4mC4'
266-
'daOCWqbpZDuLb1imKpmm8Nsm56kAxijMLZnpCcnPgyb7CqG+B93W9GHglA5'
267-
'drUeR1gRtO7vqbZMsCAQ4bpjXxwbYyjQlEVuMl73UL6sOWg=='))
268-
269-
with open(key_path('testkey_rsa.pub'), 'r') as keyfile:
270-
jwt_pub_key = algo.prepare_key(keyfile.read())
271-
272-
result = algo.verify(jwt_message, jwt_pub_key, jwt_sig)
273-
assert result
274218

275-
276-
class TestAlgorithmsCookbook:
219+
class TestAlgorithmsRFC7520:
277220
"""
278-
These test vectors were taken from IETF JOSE Cookbook Draft
279-
(https://www.ietf.org/id/draft-ietf-jose-cookbook-08.txt)
221+
These test vectors were taken from RFC 7520
222+
(https://tools.ietf.org/html/rfc7520)
280223
"""
281224

282225
def test_hmac_verify_should_return_true_for_test_vector(self):
226+
"""
227+
This test verifies that HMAC verification works with a known good
228+
signature and key.
229+
230+
Reference: https://tools.ietf.org/html/rfc7520#section-4.4
231+
"""
283232
signing_input = ensure_bytes(
284233
'eyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZ'
285234
'jMxNGJjNzAzNyJ9.SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ'
@@ -300,6 +249,12 @@ def test_hmac_verify_should_return_true_for_test_vector(self):
300249

301250
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
302251
def test_rsa_verify_should_return_true_for_test_vector(self):
252+
"""
253+
This test verifies that RSA PKCS v1.5 verification works with a known
254+
good signature and key.
255+
256+
Reference: https://tools.ietf.org/html/rfc7520#section-4.1
257+
"""
303258
signing_input = ensure_bytes(
304259
'eyJhbGciOiJSUzI1NiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhb'
305260
'XBsZSJ9.SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb'
@@ -325,6 +280,12 @@ def test_rsa_verify_should_return_true_for_test_vector(self):
325280

326281
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
327282
def test_rsapss_verify_should_return_true_for_test_vector(self):
283+
"""
284+
This test verifies that RSA-PSS verification works with a known good
285+
signature and key.
286+
287+
Reference: https://tools.ietf.org/html/rfc7520#section-4.2
288+
"""
328289
signing_input = ensure_bytes(
329290
'eyJhbGciOiJQUzM4NCIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhb'
330291
'XBsZSJ9.SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb'
@@ -334,12 +295,12 @@ def test_rsapss_verify_should_return_true_for_test_vector(self):
334295
)
335296

336297
signature = base64url_decode(ensure_bytes(
337-
'cu22eBqkYDKgIlTpzDXGvaFfz6WGoz7fUDcfT0kkOy42miAh2qyBzk1xEsnk2IpN'
338-
'6-tPid6VrklHkqsGqDqHCdP6O8TTB5dDDItllVo6_1OLPpcbUrhiUSMxbbXUvdvW'
339-
'Xzg-UD8biiReQFlfz28zGWVsdiNAUf8ZnyPEgVFn442ZdNqiVJRmBqrYRXe8P_ij'
340-
'Q7p8Vdz0TTrxUeT3lm8d9shnr2lfJT8ImUjvAA2Xez2Mlp8cBE5awDzT0qI0n6ui'
341-
'P1aCN_2_jLAeQTlqRHtfa64QQSUmFAAjVKPbByi7xho0uTOcbH510a6GYmJUAfmW'
342-
'jwZ6oD4ifKo8DYM-X72Eaw'
298+
'cu22eBqkYDKgIlTpzDXGvaFfz6WGoz7fUDcfT0kkOy42miAh2qyBzk1xEsnk2IpN6'
299+
'-tPid6VrklHkqsGqDqHCdP6O8TTB5dDDItllVo6_1OLPpcbUrhiUSMxbbXUvdvWXz'
300+
'g-UD8biiReQFlfz28zGWVsdiNAUf8ZnyPEgVFn442ZdNqiVJRmBqrYRXe8P_ijQ7p'
301+
'8Vdz0TTrxUeT3lm8d9shnr2lfJT8ImUjvAA2Xez2Mlp8cBE5awDzT0qI0n6uiP1aC'
302+
'N_2_jLAeQTlqRHtfa64QQSUmFAAjVKPbByi7xho0uTOcbH510a6GYmJUAfmWjwZ6o'
303+
'D4ifKo8DYM-X72Eaw'
343304
))
344305

345306
algo = RSAPSSAlgorithm(RSAPSSAlgorithm.SHA384)
@@ -350,6 +311,12 @@ def test_rsapss_verify_should_return_true_for_test_vector(self):
350311

351312
@pytest.mark.skipif(not has_crypto, reason='Not supported without cryptography library')
352313
def test_ec_verify_should_return_true_for_test_vector(self):
314+
"""
315+
This test verifies that ECDSA verification works with a known good
316+
signature and key.
317+
318+
Reference: https://tools.ietf.org/html/rfc7520#section-4.3
319+
"""
353320
signing_input = ensure_bytes(
354321
'eyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhb'
355322
'XBsZSJ9.SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb'

0 commit comments

Comments
 (0)