aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-04 22:35:54 +0100
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-08 06:46:14 -0500
commitbdf425cb183764c23aa7551909369aa8a57a2d65 (patch)
tree1834d06410021fbcc4b1427fe160cc633a63e8f2 /src
parent1cd8fee9c6fa746d395c88df1c6fd59d32280eb5 (diff)
downloadcryptography-bdf425cb183764c23aa7551909369aa8a57a2d65.tar.gz
cryptography-bdf425cb183764c23aa7551909369aa8a57a2d65.tar.bz2
cryptography-bdf425cb183764c23aa7551909369aa8a57a2d65.zip
support relativename encoding using X509_NAME
X509_NAME contains a STACK_OF(X509_NAME_ENTRY) which we duplicate
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index c2f4ba6d..941f8c38 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -411,9 +411,9 @@ def _encode_crl_distribution_points(backend, crl_distribution_points):
dp.reasons = bitmask
if point.full_name:
- # Type 0 is fullName, there is no #define for it in the code.
dpn = backend._lib.DIST_POINT_NAME_new()
assert dpn != backend._ffi.NULL
+ # Type 0 is fullName, there is no #define for it in the code.
dpn.type = 0
for name in point.full_name:
gns = backend._lib.GENERAL_NAMES_new()
@@ -427,10 +427,13 @@ def _encode_crl_distribution_points(backend, crl_distribution_points):
dp.distpoint = dpn
if point.relative_name:
- # TODO: don't duplicate this with fullname above
dpn = backend._lib.DIST_POINT_NAME_new()
assert dpn != backend._ffi.NULL
- dpn.name.relativename = _encode_name(backend, point.relative_name)
+ dpn.type = 1
+ name = _encode_name_gc(backend, point.relative_name)
+ relativename = backend._lib.sk_X509_NAME_ENTRY_dup(name.entries)
+ assert relativename != backend._ffi.NULL
+ dpn.name.relativename = relativename
dp.distpoint = dpn
if point.crl_issuer: