diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/hazmat/backends/test_multibackend.py | 6 | ||||
| -rw-r--r-- | tests/hazmat/backends/test_openssl.py | 2 | ||||
| -rw-r--r-- | tests/hazmat/primitives/test_serialization.py | 37 | 
3 files changed, 40 insertions, 5 deletions
diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py index 655acc44..e4a05aae 100644 --- a/tests/hazmat/backends/test_multibackend.py +++ b/tests/hazmat/backends/test_multibackend.py @@ -217,6 +217,9 @@ class DummyPEMSerializationBackend(object):      def load_pem_private_key(self, data, password):          pass +    def load_pem_public_key(self, data): +    pass +  class TestMultiBackend(object):      def test_ciphers(self): @@ -532,7 +535,10 @@ class TestMultiBackend(object):          backend = MultiBackend([DummyPEMSerializationBackend()])          backend.load_pem_private_key(b"keydata", None) +        backend.load_pem_public_key(b"keydata")          backend = MultiBackend([])          with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_SERIALIZATION):              backend.load_pem_private_key(b"keydata", None) +        with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_SERIALIZATION): +            backend.load_pem_public_key(b"keydata") diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py index cf70f109..d4c5e2e7 100644 --- a/tests/hazmat/backends/test_openssl.py +++ b/tests/hazmat/backends/test_openssl.py @@ -473,6 +473,8 @@ class TestOpenSSLSerialisationWithOpenSSL(object):          key = pretend.stub(type="unsupported")          with raises_unsupported_algorithm(None):              backend._evp_pkey_to_private_key(key) +        with raises_unsupported_algorithm(None): +            backend._evp_pkey_to_public_key(key)      def test_very_long_pem_serialization_password(self):          password = "x" * 1024 diff --git a/tests/hazmat/primitives/test_serialization.py b/tests/hazmat/primitives/test_serialization.py index 4bc7e811..2ee096be 100644 --- a/tests/hazmat/primitives/test_serialization.py +++ b/tests/hazmat/primitives/test_serialization.py @@ -82,21 +82,40 @@ class TestPEMSerialization(object):          assert key          assert isinstance(key, interfaces.EllipticCurvePrivateKey) -    def test_load_pem_rsa_public_key(self, backend): -        key = load_vectors_from_file( +    @pytest.mark.parametrize( +        ("key_file"), +        [ +            os.path.join("asymmetric", "PKCS8", "unenc-rsa-pkcs8.pub.pem"),              os.path.join(                  "asymmetric", "PEM_Serialization", "rsa_public_key.pem"), +            ), +        ] +    ) +    def test_load_pem_rsa_public_key(self, key_file, backend): +        key = load_vectors_from_file( +            key_file,              lambda pemfile: load_pem_public_key(                  pemfile.read().encode(), backend              )          )          assert key          assert isinstance(key, interfaces.RSAPublicKey) +        if isinstance(key, interfaces.RSAPublicKeyWithNumbers): +            numbers = key.public_numbers() +            assert numbers.e == 65537 -    def test_load_pem_dsa_public_key(self, backend): +    @pytest.mark.parametrize( +    ("key_file"), +    [ +        os.path.join("asymmetric", "PKCS8", "unenc-dsa-pkcs8.pub.pem"), +        os.path.join( +                "asymmetric", "PEM_Serialization", +                "dsa_public_key.pem" +),      ), +    ] +    def test_load_pem_dsa_public_key(self, keyfile, backend):          key = load_vectors_from_file( -            os.path.join( -                "asymmetric", "PEM_Serialization", "dsa_public_key.pem"), +            keyfile,              lambda pemfile: load_pem_public_key(                  pemfile.read().encode(), backend              ) @@ -104,6 +123,14 @@ class TestPEMSerialization(object):          assert key          assert isinstance(key, interfaces.DSAPublicKey) +    def test_load_pem_ec_public_key(self, backend): +        key = load_vectors_from_file( +            os.path.join("asymmetric", "PEM_Serialization", +                "ec_public_key.pem"), +            lambda pemfile: load_pem_public_key( +                pemfile.read().encode(), backend +            ) +        )  @pytest.mark.traditional_openssl_serialization  class TestTraditionalOpenSSLSerialization(object):  | 
