OpenSSL/crypto.py | 3 +++ OpenSSL/test/test_crypto.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/OpenSSL/crypto.py b/OpenSSL/crypto.py index 555ba24..2c1eddb 100644 --- a/OpenSSL/crypto.py +++ b/OpenSSL/crypto.py @@ -464,6 +464,9 @@ class X509Name(object): if isinstance(value, _text_type): value = value.encode('utf-8') + # Make it so OpenSSL generates utf-8 strings. + _lib.ASN1_STRING_set_default_mask_asc(b'utf8only') + add_result = _lib.X509_NAME_add_entry_by_NID( self._name, nid, _lib.MBSTRING_UTF8, value, -1, -1, 0) if not add_result: diff --git a/OpenSSL/test/test_crypto.py b/OpenSSL/test/test_crypto.py index 1620623..b817451 100644 --- a/OpenSSL/test/test_crypto.py +++ b/OpenSSL/test/test_crypto.py @@ -1003,7 +1003,7 @@ class X509NameTests(TestCase): self.assertEqual( a.der(), b('0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US' - '1\x0c0\n\x06\x03U\x04\x03\x13\x03foo')) + '1\x0c0\n\x06\x03U\x04\x03\x0c\x03foo')) def test_get_components(self):