diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-10 18:37:28 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-10 18:37:28 -0400 |
commit | b9287cac82a06fde4e474d88ee1989efd7144dff (patch) | |
tree | 1f6b2cdb7c0501ee8a9810b118fadf11f4bdb4b8 /tests/hazmat/primitives/test_rsa.py | |
parent | a66cb11b6abdd5a77f09c7bf8adbd424c701bb2b (diff) | |
parent | a2c48659274fb25a07fbffca3a74d11c6a49f131 (diff) | |
download | cryptography-b9287cac82a06fde4e474d88ee1989efd7144dff.tar.gz cryptography-b9287cac82a06fde4e474d88ee1989efd7144dff.tar.bz2 cryptography-b9287cac82a06fde4e474d88ee1989efd7144dff.zip |
Merge pull request #1741 from reaperhulk/serialize-der-public-keys
support DER serialization of public keys
Diffstat (limited to 'tests/hazmat/primitives/test_rsa.py')
-rw-r--r-- | tests/hazmat/primitives/test_rsa.py | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/tests/hazmat/primitives/test_rsa.py b/tests/hazmat/primitives/test_rsa.py index d79d9320..ab7cc3ad 100644 --- a/tests/hazmat/primitives/test_rsa.py +++ b/tests/hazmat/primitives/test_rsa.py @@ -1865,30 +1865,44 @@ class TestRSAPEMPrivateKeySerialization(object): @pytest.mark.requires_backend_interface(interface=RSABackend) @pytest.mark.requires_backend_interface(interface=PEMSerializationBackend) class TestRSAPEMPublicKeySerialization(object): - def test_public_bytes_unencrypted_pem(self, backend): - key_bytes = load_vectors_from_file( - os.path.join("asymmetric", "PKCS8", "unenc-rsa-pkcs8.pub.pem"), - lambda pemfile: pemfile.read().encode() - ) - key = serialization.load_pem_public_key(key_bytes, backend) - _skip_if_no_serialization(key, backend) - serialized = key.public_bytes( - serialization.Encoding.PEM, - serialization.PublicFormat.SubjectPublicKeyInfo, - ) - assert serialized == key_bytes - - def test_public_bytes_pkcs1_unencrypted_pem(self, backend): + @pytest.mark.parametrize( + ("key_path", "loader_func", "encoding", "format"), + [ + ( + os.path.join("asymmetric", "public", "PKCS1", "rsa.pub.pem"), + serialization.load_pem_public_key, + serialization.Encoding.PEM, + serialization.PublicFormat.PKCS1, + ), ( + os.path.join("asymmetric", "public", "PKCS1", "rsa.pub.der"), + serialization.load_der_public_key, + serialization.Encoding.DER, + serialization.PublicFormat.PKCS1, + ), ( + os.path.join("asymmetric", "PKCS8", "unenc-rsa-pkcs8.pub.pem"), + serialization.load_pem_public_key, + serialization.Encoding.PEM, + serialization.PublicFormat.SubjectPublicKeyInfo, + ), ( + os.path.join( + "asymmetric", + "DER_Serialization", + "unenc-rsa-pkcs8.pub.der" + ), + serialization.load_der_public_key, + serialization.Encoding.DER, + serialization.PublicFormat.SubjectPublicKeyInfo, + ) + ] + ) + def test_public_bytes_match(self, key_path, loader_func, encoding, format, + backend): key_bytes = load_vectors_from_file( - os.path.join("asymmetric", "public", "PKCS1", "rsa.pub.pem"), - lambda pemfile: pemfile.read().encode() + key_path, lambda pemfile: pemfile.read(), mode="rb" ) - key = serialization.load_pem_public_key(key_bytes, backend) + key = loader_func(key_bytes, backend) _skip_if_no_serialization(key, backend) - serialized = key.public_bytes( - serialization.Encoding.PEM, - serialization.PublicFormat.PKCS1, - ) + serialized = key.public_bytes(encoding, format) assert serialized == key_bytes def test_public_bytes_invalid_encoding(self, backend): |