ecdh: curve names are strings, not bytes
diff --git a/OpenSSL/SSL.py b/OpenSSL/SSL.py
index e6a629b..5b748ee 100644
--- a/OpenSSL/SSL.py
+++ b/OpenSSL/SSL.py
@@ -130,9 +130,10 @@
_num_curves = _lib.EC_get_builtin_curves(_ffi.NULL, 0)
_curves = _ffi.new('EC_builtin_curve[]', _num_curves)
if _lib.EC_get_builtin_curves(_curves, _num_curves) == _num_curves:
- ELLIPTIC_CURVE_DESCRIPTIONS = dict((_ffi.string(_lib.OBJ_nid2sn(c.nid)),
- _ffi.string(c.comment))
- for c in _curves)
+ ELLIPTIC_CURVE_DESCRIPTIONS = dict(
+ (_ffi.string(_lib.OBJ_nid2sn(c.nid)).decode('ascii'),
+ _ffi.string(c.comment).decode('utf-8'))
+ for c in _curves)
del _num_curves
del _curves
@@ -625,7 +626,7 @@
:return: None
"""
if _lib.Cryptography_HAS_EC:
- nid = _lib.OBJ_sn2nid(curve_name)
+ nid = _lib.OBJ_sn2nid(curve_name.encode('ascii'))
if nid == _lib.NID_undef:
raise ValueError("No such OpenSSL object '%s'" % curve_name)
ecdh = _lib.EC_KEY_new_by_curve_name(nid)