aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_x509.py
diff options
context:
space:
mode:
authorIan Cordasco <graffatcolmingov@gmail.com>2015-06-24 21:45:55 -0500
committerIan Cordasco <graffatcolmingov@gmail.com>2015-06-24 21:45:57 -0500
commit13cdc7bf087dc017ca5cfdfc3c0afdfd99b7979b (patch)
tree54cc84f17ecefad4c25ef3923285ed625df5da15 /tests/test_x509.py
parent22e69b58a95d69cc0001d16f888411cf52db96e1 (diff)
downloadcryptography-13cdc7bf087dc017ca5cfdfc3c0afdfd99b7979b.tar.gz
cryptography-13cdc7bf087dc017ca5cfdfc3c0afdfd99b7979b.tar.bz2
cryptography-13cdc7bf087dc017ca5cfdfc3c0afdfd99b7979b.zip
Add test for unicode attributes in CSRs
This creates a CSR, converts it to bytes, and then loads it again to ensure that the unicode strings are parsed properly.
Diffstat (limited to 'tests/test_x509.py')
-rw-r--r--tests/test_x509.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/test_x509.py b/tests/test_x509.py
index fb7f17d4..5be51773 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -728,6 +728,38 @@ class TestCertificateSigningRequestBuilder(object):
assert basic_constraints.value.path_length == 2
@pytest.mark.requires_backend_interface(interface=RSABackend)
+ def test_build_ca_request_with_unicode(self, backend):
+ private_key = RSA_KEY_2048.private_key(backend)
+
+ request = x509.CertificateSigningRequestBuilder().subject_name(
+ x509.Name([
+ x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US'),
+ x509.NameAttribute(x509.OID_STATE_OR_PROVINCE_NAME, u'Texas'),
+ x509.NameAttribute(x509.OID_LOCALITY_NAME, u'Austin'),
+ x509.NameAttribute(x509.OID_ORGANIZATION_NAME,
+ u'PyCA\U0001f37a'),
+ x509.NameAttribute(x509.OID_COMMON_NAME, u'cryptography.io'),
+ ])
+ ).add_extension(
+ x509.BasicConstraints(ca=True, path_length=2), critical=True
+ ).sign(
+ backend, private_key, hashes.SHA1()
+ )
+
+ loaded_request = x509.load_pem_x509_csr(
+ request.public_bytes(encoding=serialization.Encoding.PEM), backend
+ )
+ subject = loaded_request.subject
+ assert isinstance(subject, x509.Name)
+ assert list(subject) == [
+ x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US'),
+ x509.NameAttribute(x509.OID_STATE_OR_PROVINCE_NAME, u'Texas'),
+ x509.NameAttribute(x509.OID_LOCALITY_NAME, u'Austin'),
+ x509.NameAttribute(x509.OID_ORGANIZATION_NAME, u'PyCA\U0001f37a'),
+ x509.NameAttribute(x509.OID_COMMON_NAME, u'cryptography.io'),
+ ]
+
+ @pytest.mark.requires_backend_interface(interface=RSABackend)
def test_build_nonca_request_with_rsa(self, backend):
private_key = RSA_KEY_2048.private_key(backend)