summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2023-06-21 17:13:06 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2023-06-29 12:49:14 +0000
commitbacb04d77b064d1f348d310b5b57aeebe93f590c (patch)
tree8b32dd0732c2bac0e0f63d76723418a0132952fc
parent3bc3b8d69a291aa513d2d120c8ef46f968f1efdf (diff)
Introduce openssl-hash feature
The feature allows to not use OpenSSL in QCryptographicHash implementation and removes OpenSSL from dependencies of QtCore if disabled. Fixes: QTBUG-114783 Pick-to: 6.6 Change-Id: I2a49fa9ddfa5acedcfc95a3330fd7863a8052a5c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
-rw-r--r--src/corelib/CMakeLists.txt2
-rw-r--r--src/corelib/configure.cmake6
-rw-r--r--src/corelib/tools/qcryptographichash.cpp4
3 files changed, 9 insertions, 3 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt
index d476e264b4..4e8ec20614 100644
--- a/src/corelib/CMakeLists.txt
+++ b/src/corelib/CMakeLists.txt
@@ -829,7 +829,7 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_regularexpression
WrapPCRE2::WrapPCRE2
)
-qt_internal_extend_target(Core CONDITION QT_FEATURE_openssl_linked AND QT_FEATURE_opensslv30
+qt_internal_extend_target(Core CONDITION QT_FEATURE_openssl_hash
LIBRARIES
WrapOpenSSL::WrapOpenSSL
)
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake
index 746ac8927e..2ed0a61a73 100644
--- a/src/corelib/configure.cmake
+++ b/src/corelib/configure.cmake
@@ -1017,6 +1017,11 @@ qt_feature("permissions" PUBLIC
LABEL "Application permissions"
PURPOSE "Provides support for requesting user permission to access restricted data or APIs"
)
+qt_feature("openssl-hash" PUBLIC
+ LABEL "OpenSSL based cryptographic hash"
+ CONDITION QT_FEATURE_openssl_linked AND QT_FEATURE_opensslv30
+ PURPOSE "Uses OpenSSL based implementation of cryptographic hash algorithms."
+)
qt_configure_add_summary_section(NAME "Qt Core")
qt_configure_add_summary_entry(ARGS "backtrace")
@@ -1034,6 +1039,7 @@ qt_configure_add_summary_entry(
ARGS "etw lttng ctf"
MESSAGE "Tracing backend"
)
+qt_configure_add_summary_entry(ARGS "openssl-hash")
qt_configure_add_summary_section(NAME "Logging backends")
qt_configure_add_summary_entry(ARGS "journald")
qt_configure_add_summary_entry(ARGS "syslog")
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
index 2c4a2b276b..d71c822ef7 100644
--- a/src/corelib/tools/qcryptographichash.cpp
+++ b/src/corelib/tools/qcryptographichash.cpp
@@ -25,7 +25,7 @@
#include "../../3rdparty/rfc6234/sha.h"
#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
-#if !QT_CONFIG(opensslv30) || !QT_CONFIG(openssl_linked)
+#if !QT_CONFIG(openssl_hash)
// qdoc and qmake only need SHA-1
#include "../../3rdparty/md5/md5.h"
#include "../../3rdparty/md5/md5.cpp"
@@ -114,7 +114,7 @@ static inline int SHA384_512AddLength(SHA512Context *context, unsigned int lengt
#endif
#endif // QT_CRYPTOGRAPHICHASH_ONLY_SHA1
-#if !defined(QT_BOOTSTRAPPED) && QT_CONFIG(opensslv30) && QT_CONFIG(openssl_linked)
+#if !defined(QT_BOOTSTRAPPED) && QT_CONFIG(openssl_hash)
#define USING_OPENSSL30
#include <openssl/evp.h>
#include <openssl/provider.h>