summaryrefslogtreecommitdiffstats
path: root/lib/libtls/tls_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libtls/tls_server.c')
-rw-r--r--lib/libtls/tls_server.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/lib/libtls/tls_server.c b/lib/libtls/tls_server.c
index 394cea1e8db..2622e4464f4 100644
--- a/lib/libtls/tls_server.c
+++ b/lib/libtls/tls_server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls_server.c,v 1.40 2017/07/05 15:38:35 jsing Exp $ */
+/* $OpenBSD: tls_server.c,v 1.41 2017/08/10 18:18:30 jsing Exp $ */
/*
* Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
*
@@ -241,8 +241,6 @@ static int
tls_configure_server_ssl(struct tls *ctx, SSL_CTX **ssl_ctx,
struct tls_keypair *keypair)
{
- EC_KEY *ecdh_key;
-
SSL_CTX_free(*ssl_ctx);
if ((*ssl_ctx = SSL_CTX_new(SSLv23_server_method())) == NULL) {
@@ -283,17 +281,13 @@ tls_configure_server_ssl(struct tls *ctx, SSL_CTX **ssl_ctx,
else if (ctx->config->dheparams == 1024)
SSL_CTX_set_dh_auto(*ssl_ctx, 2);
- if (ctx->config->ecdhecurve == -1) {
+ if (ctx->config->ecdhecurves != NULL) {
SSL_CTX_set_ecdh_auto(*ssl_ctx, 1);
- } else if (ctx->config->ecdhecurve != NID_undef) {
- if ((ecdh_key = EC_KEY_new_by_curve_name(
- ctx->config->ecdhecurve)) == NULL) {
- tls_set_errorx(ctx, "failed to set ECDHE curve");
+ if (SSL_CTX_set1_groups(*ssl_ctx, ctx->config->ecdhecurves,
+ ctx->config->ecdhecurves_len) != 1) {
+ tls_set_errorx(ctx, "failed to set ecdhe curves");
goto err;
}
- SSL_CTX_set_options(*ssl_ctx, SSL_OP_SINGLE_ECDH_USE);
- SSL_CTX_set_tmp_ecdh(*ssl_ctx, ecdh_key);
- EC_KEY_free(ecdh_key);
}
if (ctx->config->ciphers_server == 1)