From 742236c7ebbc669a10eef438400b162afcc8a093 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Sat, 16 Jul 2022 11:44:16 +0000 Subject: [PATCH] Bug 5133: OpenSSL 3.0 support (#694) This TLS update includes: * Fix build with OpenSSL v3. * Refactor RSA key generation to avoid deprecated RSA_*() APIs. * Refactor DH parameter and key config to avoid deprecated DH_*() APIs. * Refactor ECDH key creation to avoid deprecated EC_*() APIs. * Deprecate ssl_engine support in builds with OpenSSL v1-. * Disable ssl_engine support in builds OpenSSL v3+. We deprecated/removed ssl_engine support (as summarized in the last two bullets above) without providing an OpenSSL Providers-based alternative because of the following factors: 1. We do not have the resources to update ssl_engine code to build (without deprecation warnings) with OpenSSL v3 when the feature is unused. 2. We do not have the resources to create an OpenSSL v3 Provider-based replacement for ssl_engine code that uses deprecated Engine APIs. 3. OpenSSL v3 deprecated Engine support (triggering deprecation warnings in applications that use Engine APIs with OpenSSL v3). Since Squid default builds use -Werror, doing nothing would break such builds. 4. Squid ssl_engine does not appear to be a popular feature. --- configure.ac | 1 + doc/release-notes/release-6.sgml | 4 +- src/cf.data.pre | 2 + src/main.cc | 2 + src/security/PeerOptions.cc | 66 +++++++++++++------------ src/security/ServerOptions.cc | 82 ++++++++++++++++++++++++++++++++ src/security/forward.h | 28 ++++++----- src/ssl/gadgets.cc | 40 +++++++--------- src/ssl/gadgets.h | 8 +--- src/ssl/support.cc | 23 ++++++--- 10 files changed, 176 insertions(+), 80 deletions(-) diff --git a/configure.ac b/configure.ac index d3f8f21d85..2d65559ea9 100644 --- a/configure.ac +++ b/configure.ac @@ -1283,6 +1283,7 @@ if test "x$with_openssl" = "xyes"; then openssl/bio.h \ openssl/bn.h \ openssl/crypto.h \ + openssl/decoder.h \ openssl/dh.h \ openssl/err.h \ openssl/evp.h \ diff --git a/doc/release-notes/release-6.sgml b/doc/release-notes/release-6.sgml index 0e193a9155..8faa0159f0 100644 --- a/doc/release-notes/release-6.sgml +++ b/doc/release-notes/release-6.sgml @@ -63,7 +63,9 @@ This section gives an account of those changes in three categories: Changes to existing directives