1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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):
|