diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-30 22:12:46 -0400 | 
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-30 22:12:46 -0400 | 
| commit | 33bf83fbba6e3a0e2d308160d46865a0ffeb5a8b (patch) | |
| tree | d549a53d61b314f9b024c9a76e9f2803802b35ef /tests | |
| parent | d10e1ab8bb4630eb8e0902b37e9e4ea2013bd349 (diff) | |
| parent | 1effb6e11ef4248c65b37a97dfe9dd0c2710882e (diff) | |
| download | cryptography-33bf83fbba6e3a0e2d308160d46865a0ffeb5a8b.tar.gz cryptography-33bf83fbba6e3a0e2d308160d46865a0ffeb5a8b.tar.bz2 cryptography-33bf83fbba6e3a0e2d308160d46865a0ffeb5a8b.zip  | |
Merge pull request #1801 from reaperhulk/x509-request-der
X509 request DER parsing
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/hazmat/backends/test_multibackend.py | 6 | ||||
| -rw-r--r-- | tests/test_x509.py | 71 | 
2 files changed, 57 insertions, 20 deletions
diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py index 40305387..5871e6c8 100644 --- a/tests/hazmat/backends/test_multibackend.py +++ b/tests/hazmat/backends/test_multibackend.py @@ -200,6 +200,9 @@ class DummyX509Backend(object):      def load_pem_x509_csr(self, data):          pass +    def load_der_x509_csr(self, data): +        pass +  class TestMultiBackend(object):      def test_ciphers(self): @@ -476,6 +479,7 @@ class TestMultiBackend(object):          backend.load_pem_x509_certificate(b"certdata")          backend.load_der_x509_certificate(b"certdata")          backend.load_pem_x509_csr(b"reqdata") +        backend.load_der_x509_csr(b"reqdata")          backend = MultiBackend([])          with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509): @@ -484,3 +488,5 @@ class TestMultiBackend(object):              backend.load_der_x509_certificate(b"certdata")          with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):              backend.load_pem_x509_csr(b"reqdata") +        with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509): +            backend.load_der_x509_csr(b"reqdata") diff --git a/tests/test_x509.py b/tests/test_x509.py index 22b93f61..dc148d9d 100644 --- a/tests/test_x509.py +++ b/tests/test_x509.py @@ -340,12 +340,21 @@ class TestRSACertificate(object):          with pytest.raises(UnsupportedAlgorithm):              cert.signature_hash_algorithm -    def test_load_rsa_certificate_request(self, backend): -        request = _load_cert( -            os.path.join("x509", "requests", "rsa_sha1.pem"), -            x509.load_pem_x509_csr, -            backend -        ) +    @pytest.mark.parametrize( +        ("path", "loader_func"), +        [ +            [ +                os.path.join("x509", "requests", "rsa_sha1.pem"), +                x509.load_pem_x509_csr +            ], +            [ +                os.path.join("x509", "requests", "rsa_sha1.der"), +                x509.load_der_x509_csr +            ], +        ] +    ) +    def test_load_rsa_certificate_request(self, path, loader_func, backend): +        request = _load_cert(path, loader_func, backend)          assert isinstance(request.signature_hash_algorithm, hashes.SHA1)          public_key = request.public_key()          assert isinstance(public_key, rsa.RSAPublicKey) @@ -359,9 +368,13 @@ class TestRSACertificate(object):              x509.NameAttribute(x509.OID_COMMON_NAME, 'cryptography.io'),          ] -    def test_invalid_certificate_request_pem(self, backend): +    @pytest.mark.parametrize( +        "loader_func", +        [x509.load_pem_x509_csr, x509.load_der_x509_csr] +    ) +    def test_invalid_certificate_request(self, loader_func, backend):          with pytest.raises(ValueError): -            x509.load_pem_x509_csr(b"notacsr", backend) +            loader_func(b"notacsr", backend)      def test_unsupported_signature_hash_algorithm_request(self, backend):          request = _load_cert( @@ -424,12 +437,21 @@ class TestDSACertificate(object):                  "822ff5d234e073b901cf5941f58e1f538e71d40d", 16              ) -    def test_load_dsa_request(self, backend): -        request = _load_cert( -            os.path.join("x509", "requests", "dsa_sha1.pem"), -            x509.load_pem_x509_csr, -            backend -        ) +    @pytest.mark.parametrize( +        ("path", "loader_func"), +        [ +            [ +                os.path.join("x509", "requests", "dsa_sha1.pem"), +                x509.load_pem_x509_csr +            ], +            [ +                os.path.join("x509", "requests", "dsa_sha1.der"), +                x509.load_der_x509_csr +            ], +        ] +    ) +    def test_load_dsa_request(self, path, loader_func, backend): +        request = _load_cert(path, loader_func, backend)          assert isinstance(request.signature_hash_algorithm, hashes.SHA1)          public_key = request.public_key()          assert isinstance(public_key, dsa.DSAPublicKey) @@ -479,13 +501,22 @@ class TestECDSACertificate(object):          with pytest.raises(NotImplementedError):              cert.public_key() -    def test_load_ecdsa_certificate_request(self, backend): +    @pytest.mark.parametrize( +        ("path", "loader_func"), +        [ +            [ +                os.path.join("x509", "requests", "ec_sha256.pem"), +                x509.load_pem_x509_csr +            ], +            [ +                os.path.join("x509", "requests", "ec_sha256.der"), +                x509.load_der_x509_csr +            ], +        ] +    ) +    def test_load_ecdsa_certificate_request(self, path, loader_func, backend):          _skip_curve_unsupported(backend, ec.SECP384R1()) -        request = _load_cert( -            os.path.join("x509", "requests", "ec_sha256.pem"), -            x509.load_pem_x509_csr, -            backend -        ) +        request = _load_cert(path, loader_func, backend)          assert isinstance(request.signature_hash_algorithm, hashes.SHA256)          public_key = request.public_key()          assert isinstance(public_key, ec.EllipticCurvePublicKey)  | 
