From d7a0303be12cce21be00f7b72964e91311019e03 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Wed, 5 Aug 2015 13:13:53 +0100 Subject: refactor SAN encoding to separate out general names in openssl backend --- src/cryptography/hazmat/backends/openssl/backend.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index f9da9ea7..7c3d33ab 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -228,18 +228,19 @@ def _encode_authority_information_access(backend, authority_info_access): return pp, r -def _encode_subject_alt_name(backend, san): +def _encode_general_names(backend, names): general_names = backend._lib.GENERAL_NAMES_new() assert general_names != backend._ffi.NULL - general_names = backend._ffi.gc( - general_names, backend._lib.GENERAL_NAMES_free - ) - - for alt_name in san: - gn = _encode_general_name(backend, alt_name) + for name in names: + gn = _encode_general_name(backend, name) res = backend._lib.sk_GENERAL_NAME_push(general_names, gn) assert res != 0 + return general_names + + +def _encode_subject_alt_name(backend, san): + general_names = _encode_general_names(backend, san) pp = backend._ffi.new("unsigned char **") r = backend._lib.i2d_GENERAL_NAMES(general_names, pp) assert r > 0 -- cgit v1.2.3