aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2015-07-12 22:49:24 -0400
committerAlex Gaynor <alex.gaynor@gmail.com>2015-07-12 22:49:24 -0400
commitb4c72cd7cf78ee0f031f28ab010bf2d303582294 (patch)
tree54e140157720aa68d3687fc54de1a537e9569a31
parent8c3dc65bb52ff3ce7acd28c4da07804378d2087a (diff)
parentf32abd7c2aa89e2307875c2d2d9267ac97cd223e (diff)
downloadcryptography-b4c72cd7cf78ee0f031f28ab010bf2d303582294.tar.gz
cryptography-b4c72cd7cf78ee0f031f28ab010bf2d303582294.tar.bz2
cryptography-b4c72cd7cf78ee0f031f28ab010bf2d303582294.zip
Merge pull request #2137 from reaperhulk/encode-rfc822name
Encode rfc822name
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py8
-rw-r--r--tests/test_x509.py8
2 files changed, 15 insertions, 1 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 56096811..bba407db 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -222,6 +222,14 @@ def _encode_subject_alt_name(backend, san):
other_name.value = value
gn.type = backend._lib.GEN_OTHERNAME
gn.d.otherName = other_name
+ elif isinstance(alt_name, x509.RFC822Name):
+ 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_EMAIL
+ gn.d.rfc822Name = asn1_str
else:
raise NotImplementedError(
"Only DNSName and RegisteredID supported right now"
diff --git a/tests/test_x509.py b/tests/test_x509.py
index cb617268..2539be47 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -1008,6 +1008,9 @@ class TestCertificateSigningRequestBuilder(object):
type_id=x509.ObjectIdentifier("1.2.3.3.3.3"),
value=b"0\x03\x02\x01\x05"
),
+ x509.RFC822Name(u"test@example.com"),
+ x509.RFC822Name(u"email"),
+ x509.RFC822Name(u"email@em\xe5\xefl.com"),
]),
critical=False,
).sign(private_key, hashes.SHA256(), backend)
@@ -1034,6 +1037,9 @@ class TestCertificateSigningRequestBuilder(object):
type_id=x509.ObjectIdentifier("1.2.3.3.3.3"),
value=b"0\x03\x02\x01\x05"
),
+ x509.RFC822Name(u"test@example.com"),
+ x509.RFC822Name(u"email"),
+ x509.RFC822Name(u"email@em\xe5\xefl.com"),
]
def test_invalid_asn1_othername(self, backend):
@@ -1064,7 +1070,7 @@ class TestCertificateSigningRequestBuilder(object):
])
).add_extension(
x509.SubjectAlternativeName([
- x509.RFC822Name(u"test@example.com"),
+ x509.UniformResourceIdentifier(u"http://test.com"),
]),
critical=False,
)