aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/hazmat/backends/openssl/x509.py
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-12-30 20:19:00 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-12-30 20:19:00 -0600
commit58ddc11036bbbb3c558015f9a5c8ea201fa609ec (patch)
tree4c6cee146e21b1d95640bb05573fb975ff001e99 /src/cryptography/hazmat/backends/openssl/x509.py
parent7640889dbbc379fe1f164cbd3094b2189aa655ba (diff)
downloadcryptography-58ddc11036bbbb3c558015f9a5c8ea201fa609ec.tar.gz
cryptography-58ddc11036bbbb3c558015f9a5c8ea201fa609ec.tar.bz2
cryptography-58ddc11036bbbb3c558015f9a5c8ea201fa609ec.zip
support unrecognized extensions in x509
Diffstat (limited to 'src/cryptography/hazmat/backends/openssl/x509.py')
-rw-r--r--src/cryptography/hazmat/backends/openssl/x509.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py
index 293c6288..b8614e0b 100644
--- a/src/cryptography/hazmat/backends/openssl/x509.py
+++ b/src/cryptography/hazmat/backends/openssl/x509.py
@@ -213,6 +213,15 @@ class _X509ExtensionParser(object):
"Critical extension {0} is not currently supported"
.format(oid), oid
)
+ else:
+ # Dump the DER payload into an UnrecognizedExtension object
+ data = backend._lib.X509_EXTENSION_get_data(ext)
+ backend.openssl_assert(data != backend._ffi.NULL)
+ der = backend._ffi.buffer(data.data, data.length)[:]
+ unrecognized = x509.UnrecognizedExtension(oid, der)
+ extensions.append(
+ x509.Extension(oid, critical, unrecognized)
+ )
else:
# For extensions which are not supported by OpenSSL we pass the
# extension object directly to the parsing routine so it can