diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-12-24 18:34:56 -0500 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-12-24 18:34:56 -0500 |
commit | 48f17cb225abcf43f77915d152f6cc15b762c702 (patch) | |
tree | 76c4df17325935f35c1ff908c6ec7ad0977509b2 /src | |
parent | e454a5752a9b26c7c097e874409b513d8cc67e51 (diff) | |
parent | 4791d6fa1a829defb7b40258e2b101df0da177c9 (diff) | |
download | cryptography-48f17cb225abcf43f77915d152f6cc15b762c702.tar.gz cryptography-48f17cb225abcf43f77915d152f6cc15b762c702.tar.bz2 cryptography-48f17cb225abcf43f77915d152f6cc15b762c702.zip |
Merge pull request #2565 from reaperhulk/crl-interface
add create_x509_crl interface
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/hazmat/backends/interfaces.py | 7 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/multibackend.py | 9 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/backend.py | 3 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/interfaces.py b/src/cryptography/hazmat/backends/interfaces.py index 92d9653a..a1d6f812 100644 --- a/src/cryptography/hazmat/backends/interfaces.py +++ b/src/cryptography/hazmat/backends/interfaces.py @@ -292,6 +292,13 @@ class X509Backend(object): Create and sign an X.509 certificate from a CertificateBuilder object. """ + @abc.abstractmethod + def create_x509_crl(self, builder, private_key, algorithm): + """ + Create and sign an X.509 CertificateRevocationList from a + CertificateRevocationListBuilder object. + """ + @six.add_metaclass(abc.ABCMeta) class DHBackend(object): diff --git a/src/cryptography/hazmat/backends/multibackend.py b/src/cryptography/hazmat/backends/multibackend.py index bbaaf424..ebecb364 100644 --- a/src/cryptography/hazmat/backends/multibackend.py +++ b/src/cryptography/hazmat/backends/multibackend.py @@ -384,3 +384,12 @@ class MultiBackend(object): "This backend does not support X.509.", _Reasons.UNSUPPORTED_X509 ) + + def create_x509_crl(self, builder, private_key, algorithm): + for b in self._filtered_backends(X509Backend): + return b.create_x509_crl(builder, private_key, algorithm) + + raise UnsupportedAlgorithm( + "This backend does not support X.509.", + _Reasons.UNSUPPORTED_X509 + ) diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index e69554f9..c3eccb06 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -1455,6 +1455,9 @@ class Backend(object): return _Certificate(self, x509_cert) + def create_x509_crl(self, builder, private_key, algorithm): + raise NotImplementedError + def load_pem_private_key(self, data, password): return self._load_key( self._lib.PEM_read_bio_PrivateKey, |