--- openssl-1.0.1e/ssl/d1_srvr.c.ecdh-auto-dtls 2016-05-03 15:49:00.000000000 +0200 +++ openssl-1.0.1e/ssl/d1_srvr.c 2016-07-04 14:34:30.000000000 +0200 @@ -1152 +1152,8 @@ int dtls1_send_server_key_exchange(SSL * - if ((ecdhp == NULL) && (s->cert->ecdh_tmp_cb != NULL)) + if (s->cert->ecdh_tmp_auto) + { + /* Get NID of appropriate shared curve */ + int nid = tls1_shared_curve(s, 0); + if (nid != NID_undef) + ecdhp = EC_KEY_new_by_curve_name(nid); + } + else if ((ecdhp == NULL) && (s->cert->ecdh_tmp_cb != NULL)) @@ -1178 +1185,3 @@ int dtls1_send_server_key_exchange(SSL * - if ((ecdh = EC_KEY_dup(ecdhp)) == NULL) + if (s->cert->ecdh_tmp_auto) + ecdh = ecdhp; + else if ((ecdh = EC_KEY_dup(ecdhp)) == NULL)