diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2014-03-20 10:52:51 -0700 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2014-03-20 10:52:51 -0700 |
commit | 23c641dad201446a019d4a5f1181908744fd347a (patch) | |
tree | f8cf519f89e5e3f6f2acc4cd4586985d0da3fd5b /tests/hazmat/primitives/utils.py | |
parent | 62e18d7873470517c97c0c37be6bc1a81c304d8a (diff) | |
parent | 4d8358fb50253bebdf637f517da8ba2406080d3f (diff) | |
download | cryptography-23c641dad201446a019d4a5f1181908744fd347a.tar.gz cryptography-23c641dad201446a019d4a5f1181908744fd347a.tar.bz2 cryptography-23c641dad201446a019d4a5f1181908744fd347a.zip |
Merge pull request #826 from reaperhulk/rsa-more-sig-verification
RSA more sig verification
Diffstat (limited to 'tests/hazmat/primitives/utils.py')
-rw-r--r-- | tests/hazmat/primitives/utils.py | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/tests/hazmat/primitives/utils.py b/tests/hazmat/primitives/utils.py index a29ef70e..2e838474 100644 --- a/tests/hazmat/primitives/utils.py +++ b/tests/hazmat/primitives/utils.py @@ -20,10 +20,11 @@ import os import pytest from cryptography.exceptions import ( - AlreadyFinalized, AlreadyUpdated, InvalidTag, NotYetFinalized + AlreadyFinalized, AlreadyUpdated, InvalidSignature, InvalidTag, + NotYetFinalized ) from cryptography.hazmat.primitives import hashes, hmac -from cryptography.hazmat.primitives.asymmetric import padding, rsa +from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives.ciphers import Cipher from cryptography.hazmat.primitives.kdf.hkdf import HKDF from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC @@ -374,33 +375,34 @@ def generate_hkdf_test(param_loader, path, file_names, algorithm): return test_hkdf -def generate_rsa_pss_test(param_loader, path, file_names, hash_alg): +def generate_rsa_verification_test(param_loader, path, file_names, hash_alg, + pad_factory): all_params = _load_all_params(path, file_names, param_loader) all_params = [i for i in all_params if i["algorithm"] == hash_alg.name.upper()] @pytest.mark.parametrize("params", all_params) - def test_rsa_pss(self, backend, params): - rsa_pss_test(backend, params, hash_alg) + def test_rsa_verification(self, backend, params): + rsa_verification_test(backend, params, hash_alg, pad_factory) - return test_rsa_pss + return test_rsa_verification -def rsa_pss_test(backend, params, hash_alg): +def rsa_verification_test(backend, params, hash_alg, pad_factory): public_key = rsa.RSAPublicKey( public_exponent=params["public_exponent"], modulus=params["modulus"] ) + pad = pad_factory(params, hash_alg) verifier = public_key.verifier( binascii.unhexlify(params["s"]), - padding.PSS( - mgf=padding.MGF1( - algorithm=hash_alg, - salt_length=params["salt_length"] - ) - ), + pad, hash_alg, backend ) verifier.update(binascii.unhexlify(params["msg"])) - verifier.verify() + if params["fail"]: + with pytest.raises(InvalidSignature): + verifier.verify() + else: + verifier.verify() |