aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-04 20:59:24 +0100
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-08 14:24:33 -0500
commit2c9d6f13bfbc5269af8d8d4baec63f7c70063a5d (patch)
tree107f522a7832ca59bdf5a6436ba88e130b32fb4e /tests
parentd5bf17ad99939920aa73e6d00a36818ecaf1c2cc (diff)
downloadcryptography-2c9d6f13bfbc5269af8d8d4baec63f7c70063a5d.tar.gz
cryptography-2c9d6f13bfbc5269af8d8d4baec63f7c70063a5d.tar.bz2
cryptography-2c9d6f13bfbc5269af8d8d4baec63f7c70063a5d.zip
add support for encoding SubjectKeyIdentifier to CertificateBuilder
Diffstat (limited to 'tests')
-rw-r--r--tests/test_x509.py36
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)