diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-08-08 15:46:51 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-08-08 15:46:51 -0400 |
commit | 8c1c24ccbab627419c97ad8b39ece3f90b5b1b1a (patch) | |
tree | 107f522a7832ca59bdf5a6436ba88e130b32fb4e /tests | |
parent | d5bf17ad99939920aa73e6d00a36818ecaf1c2cc (diff) | |
parent | 2c9d6f13bfbc5269af8d8d4baec63f7c70063a5d (diff) | |
download | cryptography-8c1c24ccbab627419c97ad8b39ece3f90b5b1b1a.tar.gz cryptography-8c1c24ccbab627419c97ad8b39ece3f90b5b1b1a.tar.bz2 cryptography-8c1c24ccbab627419c97ad8b39ece3f90b5b1b1a.zip |
Merge pull request #2208 from reaperhulk/encode-ski
Support SubjectKeyIdentifier in CertificateBuilder
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_x509.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/test_x509.py b/tests/test_x509.py index 4e763e36..1cbff511 100644 --- a/tests/test_x509.py +++ b/tests/test_x509.py @@ -1990,6 +1990,42 @@ class TestCertificateSigningRequestBuilder(object): ) assert ext.value == aia + @pytest.mark.requires_backend_interface(interface=RSABackend) + @pytest.mark.requires_backend_interface(interface=X509Backend) + def test_build_cert_with_ski(self, backend): + issuer_private_key = RSA_KEY_2048.private_key(backend) + subject_private_key = RSA_KEY_2048.private_key(backend) + + not_valid_before = datetime.datetime(2002, 1, 1, 12, 1) + not_valid_after = datetime.datetime(2030, 12, 31, 8, 30) + + ski = x509.SubjectKeyIdentifier.from_public_key( + subject_private_key.public_key() + ) + + builder = x509.CertificateBuilder().serial_number( + 777 + ).issuer_name(x509.Name([ + x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US'), + ])).subject_name(x509.Name([ + x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US'), + ])).public_key( + subject_private_key.public_key() + ).add_extension( + ski, critical=False + ).not_valid_before( + not_valid_before + ).not_valid_after( + not_valid_after + ) + + cert = builder.sign(issuer_private_key, hashes.SHA1(), backend) + + ext = cert.extensions.get_extension_for_oid( + x509.OID_SUBJECT_KEY_IDENTIFIER + ) + assert ext.value == ski + @pytest.mark.requires_backend_interface(interface=DSABackend) @pytest.mark.requires_backend_interface(interface=X509Backend) |