Merge pull request #435 from reaperhulk/m-asn1-time-dup
X509_REVOKED_dup is a thing cryptography can do for you
diff --git a/setup.py b/setup.py
index c7c59ee..2edb712 100755
--- a/setup.py
+++ b/setup.py
@@ -82,7 +82,7 @@
packages=find_packages(where="src"),
package_dir={"": "src"},
install_requires=[
- "cryptography>=0.7",
+ "cryptography>=1.2",
"six>=1.5.2"
],
)
diff --git a/src/OpenSSL/crypto.py b/src/OpenSSL/crypto.py
index 86752d3..b2b858e 100644
--- a/src/OpenSSL/crypto.py
+++ b/src/OpenSSL/crypto.py
@@ -1714,32 +1714,6 @@
return _bio_to_string(bio)
-def _X509_REVOKED_dup(original):
- copy = _lib.X509_REVOKED_new()
- if copy == _ffi.NULL:
- # TODO: This is untested.
- _raise_current_error()
-
- if original.serialNumber != _ffi.NULL:
- _lib.ASN1_INTEGER_free(copy.serialNumber)
- copy.serialNumber = _lib.ASN1_INTEGER_dup(original.serialNumber)
-
- if original.revocationDate != _ffi.NULL:
- _lib.ASN1_TIME_free(copy.revocationDate)
- copy.revocationDate = _lib.M_ASN1_TIME_dup(original.revocationDate)
-
- if original.extensions != _ffi.NULL:
- extension_stack = _lib.sk_X509_EXTENSION_new_null()
- for i in range(_lib.sk_X509_EXTENSION_num(original.extensions)):
- original_ext = _lib.sk_X509_EXTENSION_value(original.extensions, i)
- copy_ext = _lib.X509_EXTENSION_dup(original_ext)
- _lib.sk_X509_EXTENSION_push(extension_stack, copy_ext)
- copy.extensions = extension_stack
-
- copy.sequence = original.sequence
- return copy
-
-
class Revoked(object):
"""
A certificate revocation.
@@ -1945,7 +1919,7 @@
revoked_stack = self._crl.crl.revoked
for i in range(_lib.sk_X509_REVOKED_num(revoked_stack)):
revoked = _lib.sk_X509_REVOKED_value(revoked_stack, i)
- revoked_copy = _X509_REVOKED_dup(revoked)
+ revoked_copy = _lib.Cryptography_X509_REVOKED_dup(revoked)
pyrev = Revoked.__new__(Revoked)
pyrev._revoked = _ffi.gc(revoked_copy, _lib.X509_REVOKED_free)
results.append(pyrev)
@@ -1965,7 +1939,7 @@
:return: :py:const:`None`
"""
- copy = _X509_REVOKED_dup(revoked._revoked)
+ copy = _lib.Cryptography_X509_REVOKED_dup(revoked._revoked)
if copy == _ffi.NULL:
# TODO: This is untested.
_raise_current_error()
diff --git a/tests/test_crypto.py b/tests/test_crypto.py
index 03b94b9..a344f1c 100644
--- a/tests/test_crypto.py
+++ b/tests/test_crypto.py
@@ -3186,6 +3186,8 @@
"""
crl = CRL()
revoked = Revoked()
+ revoked.set_serial(b"01")
+ revoked.set_rev_date(b"20160310020145Z")
crl.add_revoked(revoked=revoked)
self.assertTrue(isinstance(crl.get_revoked()[0], Revoked))