From 81998134b71a7f01b5972dcbd3a1d34df84d9d21 Mon Sep 17 00:00:00 2001 From: Patrick Godschalk Date: Tue, 3 Sep 2013 14:16:57 +0200 Subject: [PATCH 1/3] Set ECDHE on OpenSSL 1.00+. --- libratbox/src/openssl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libratbox/src/openssl.c b/libratbox/src/openssl.c index 693a49d5c..e4a12a377 100644 --- a/libratbox/src/openssl.c +++ b/libratbox/src/openssl.c @@ -314,6 +314,11 @@ rb_init_ssl(void) /* Disable SSLv2, make the client use our settings */ SSL_CTX_set_options(ssl_server_ctx, SSL_OP_NO_SSLv2 | SSL_OP_CIPHER_SERVER_PREFERENCE); SSL_CTX_set_verify(ssl_server_ctx, SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE, verify_accept_all_cb); + + /* Set ECDHE on OpenSSL 1.00+ */ + if (OPENSSL_VERSION_NUMBER >= 0x10000000) { + SSL_CTX_set_tmp_ecdh(ssl_server_ctx, EC_KEY_new_by_curve_name(NID_secp384r1)); + } ssl_client_ctx = SSL_CTX_new(TLSv1_client_method()); From f36d4bb460c50981507e5bb5a8e566fd23f1f2fe Mon Sep 17 00:00:00 2001 From: Patrick Godschalk Date: Tue, 3 Sep 2013 14:23:13 +0200 Subject: [PATCH 2/3] Add notice about ECC/ECDHE in OpenSSL. --- README.FIRST | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.FIRST b/README.FIRST index 8c23c45f4..ca6e5fcdc 100644 --- a/README.FIRST +++ b/README.FIRST @@ -32,6 +32,10 @@ Feature Specific Requirements: - For encrypted oper and (optional) server passwords, a working DES, MD5, or SHA library implementing crypt(). + +- For ECDHE, OpenSSL 1.0.0 or newer is required. RHEL/Fedora and derivatives like CentOS + will need to compile OpenSSL from source, as ECC/ECDHE-functionality is removed from + the OpenSSL package in these distributions. ******************************************************************************* From 31d22015193d35390ca02f33b3e9dabc31476de9 Mon Sep 17 00:00:00 2001 From: Patrick Godschalk Date: Fri, 6 Sep 2013 20:05:49 +0200 Subject: [PATCH 3/3] Have OpenSSL version check use cpp --- libratbox/src/openssl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libratbox/src/openssl.c b/libratbox/src/openssl.c index e4a12a377..cae15a0ad 100644 --- a/libratbox/src/openssl.c +++ b/libratbox/src/openssl.c @@ -316,9 +316,9 @@ rb_init_ssl(void) SSL_CTX_set_verify(ssl_server_ctx, SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE, verify_accept_all_cb); /* Set ECDHE on OpenSSL 1.00+ */ - if (OPENSSL_VERSION_NUMBER >= 0x10000000) { + #if (OPENSSL_VERSION_NUMBER >= 0x10000000) SSL_CTX_set_tmp_ecdh(ssl_server_ctx, EC_KEY_new_by_curve_name(NID_secp384r1)); - } + #endif ssl_client_ctx = SSL_CTX_new(TLSv1_client_method());