{
PyObject *name_bytes;
int nid;
- EC_KEY *key;
-
if (!PyUnicode_FSConverter(name, &name_bytes))
return NULL;
assert(PyBytes_Check(name_bytes));
"unknown elliptic curve name %R", name);
return NULL;
}
- key = EC_KEY_new_by_curve_name(nid);
+#if OPENSSL_VERSION_MAJOR < 3
+ EC_KEY *key = EC_KEY_new_by_curve_name(nid);
if (key == NULL) {
_setSSLError(get_state_ctx(self), NULL, 0, __FILE__, __LINE__);
return NULL;
}
SSL_CTX_set_tmp_ecdh(self->ctx, key);
EC_KEY_free(key);
+#else
+ if (!SSL_CTX_set1_groups(self->ctx, &nid, 1)) {
+ _setSSLError(get_state_ctx(self), NULL, 0, __FILE__, __LINE__);
+ return NULL;
+ }
+#endif
Py_RETURN_NONE;
}