From 474a64734079e057bd31d48df8f8f5a52b09c6f5 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 11 Jul 2015 12:29:52 -0500 Subject: encode uri --- src/cryptography/hazmat/backends/openssl/backend.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index bba407db..bdce2303 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -12,6 +12,8 @@ import idna import six +from six.moves import urllib_parse + from cryptography import utils, x509 from cryptography.exceptions import ( InternalError, UnsupportedAlgorithm, _Reasons @@ -230,9 +232,17 @@ def _encode_subject_alt_name(backend, san): ) gn.type = backend._lib.GEN_EMAIL gn.d.rfc822Name = asn1_str + elif isinstance(alt_name, x509.UniformResourceIdentifier): + gn = backend._lib.GENERAL_NAME_new() + assert gn != backend._ffi.NULL + asn1_str = _encode_asn1_str( + backend, alt_name._encoded, len(alt_name._encoded) + ) + gn.type = backend._lib.GEN_URI + gn.d.uniformResourceIdentifier = asn1_str else: - raise NotImplementedError( - "Only DNSName and RegisteredID supported right now" + raise ValueError( + "{0} is an unknown GeneralName type".format(alt_name) ) res = backend._lib.sk_GENERAL_NAME_push(general_names, gn) -- cgit v1.2.3