aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-07-11 12:29:52 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-07-13 23:59:44 -0400
commit474a64734079e057bd31d48df8f8f5a52b09c6f5 (patch)
tree5108adf8bd645dd35721c9c5cffc7ebc6fd333b7 /src
parent677c3d55cdbb332723fd1e0e5fe8829465d90c50 (diff)
downloadcryptography-474a64734079e057bd31d48df8f8f5a52b09c6f5.tar.gz
cryptography-474a64734079e057bd31d48df8f8f5a52b09c6f5.tar.bz2
cryptography-474a64734079e057bd31d48df8f8f5a52b09c6f5.zip
encode uri
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py14
1 files changed, 12 insertions, 2 deletions
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)