diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-07-12 22:49:24 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-07-12 22:49:24 -0400 |
commit | b4c72cd7cf78ee0f031f28ab010bf2d303582294 (patch) | |
tree | 54e140157720aa68d3687fc54de1a537e9569a31 | |
parent | 8c3dc65bb52ff3ce7acd28c4da07804378d2087a (diff) | |
parent | f32abd7c2aa89e2307875c2d2d9267ac97cd223e (diff) | |
download | cryptography-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.py | 8 | ||||
-rw-r--r-- | tests/test_x509.py | 8 |
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, ) |