diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2016-03-14 22:24:58 -0400 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2016-03-14 22:24:58 -0400 |
commit | 9d7196d7f8a45667b27ae0d7378d7486b60c9229 (patch) | |
tree | 39115367a69165310f08b97045ca24020da92512 /tests/test_x509.py | |
parent | e8d6a9c262950b8dd6f7671b61383e8c5fe396f7 (diff) | |
parent | b2729914013900c276d559165e479896649a1b5c (diff) | |
download | cryptography-9d7196d7f8a45667b27ae0d7378d7486b60c9229.tar.gz cryptography-9d7196d7f8a45667b27ae0d7378d7486b60c9229.tar.bz2 cryptography-9d7196d7f8a45667b27ae0d7378d7486b60c9229.zip |
Merge pull request #2828 from alex/unreocgnized-extension
Fixed #2747 -- allow creating x509 exts with unknown extensions
Diffstat (limited to 'tests/test_x509.py')
-rw-r--r-- | tests/test_x509.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_x509.py b/tests/test_x509.py index a6398bb3..aaeefae9 100644 --- a/tests/test_x509.py +++ b/tests/test_x509.py @@ -2382,6 +2382,39 @@ class TestCertificateBuilder(object): ) assert basic_constraints.value.path_length is None + @pytest.mark.parametrize( + "unrecognized", [ + x509.UnrecognizedExtension( + x509.ObjectIdentifier("1.2.3.4.5"), + b"abcdef", + ) + ] + ) + @pytest.mark.requires_backend_interface(interface=RSABackend) + @pytest.mark.requires_backend_interface(interface=X509Backend) + def test_unrecognized_extension(self, backend, unrecognized): + private_key = RSA_KEY_2048.private_key(backend) + + cert = x509.CertificateBuilder().subject_name( + x509.Name([x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US')]) + ).issuer_name( + x509.Name([x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US')]) + ).not_valid_before( + datetime.datetime(2002, 1, 1, 12, 1) + ).not_valid_after( + datetime.datetime(2030, 12, 31, 8, 30) + ).public_key( + private_key.public_key() + ).serial_number( + 123 + ).add_extension( + unrecognized, critical=False + ).sign(private_key, hashes.SHA256(), backend) + + ext = cert.extensions.get_extension_for_oid(unrecognized.oid) + + assert ext.value == unrecognized + @pytest.mark.requires_backend_interface(interface=X509Backend) class TestCertificateSigningRequestBuilder(object): |