From b653c68df06fd21079781c201aaad14cd9c43571 Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sat, 9 Nov 2024 11:53:09 +0100 Subject: [PATCH] Fix error on Windows when trying to set set::tls::ecdh-curves. "[error] ecdh-curves specified but your OpenSSL/LibreSSL library does not support setting curves manually by name. Either upgrade to a newer library version or remove the 'ecdh-curves' directive from your configuration file" This also meant the default curves that were offered were up to LibreSSL, which meant the following list in practice: Elliptic curves offered: prime256v1 secp384r1 secp521r1 X25519 X448 Instead of: Elliptic curves offered: prime256v1 secp384r1 secp521r1 X25519 Not that X448 is considered bad, it just didn't match what we claimed in the docs at https://www.unrealircd.org/docs/TLS_Ciphers_and_protocols Fixed by: #define HAS_SSL_CTX_SET1_CURVES_LIST --- include/windows/setup.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/windows/setup.h b/include/windows/setup.h index 65ddbeddd..26dfa6cae 100644 --- a/include/windows/setup.h +++ b/include/windows/setup.h @@ -41,6 +41,7 @@ #define HAVE_EXPLICIT_BZERO #define HAVE_STRNLEN #define explicit_bzero(a,b) SecureZeroMemory(a,b) +#define HAS_SSL_CTX_SET1_CURVES_LIST /* mode_t: Needed in s_conf.c for the third argument of open(3p). * Should be an int because of http://msdn.microsoft.com/en-us/library/z0kc8e3z(VS.71).aspx