From 9ce25a9e624a43e47f677a764d4eedcdc7f6c86e Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Fri, 10 Jul 2015 11:08:31 -0500 Subject: support DirectoryName encoding for general names --- src/cryptography/hazmat/backends/openssl/backend.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index d6493778..194f295c 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -171,6 +171,15 @@ def _encode_subject_alt_name(backend, san): ) assert obj != backend._ffi.NULL gn.d.registeredID = obj + elif isinstance(alt_name, x509.DirectoryName): + gn = backend._lib.GENERAL_NAME_new() + assert gn != backend._ffi.NULL + name = _encode_name(backend, alt_name.value) + # _encode_name registers the X509_NAME for gc so we'll duplicate + # a new one that is not gc'd for the struct + name = backend._lib.X509_NAME_dup(name) + gn.type = backend._lib.GEN_DIRNAME + gn.d.directoryName = name else: raise NotImplementedError( "Only DNSName and RegisteredID supported right now" -- cgit v1.2.3