diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2023-06-21 17:13:06 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-06-29 12:49:14 +0000 |
commit | bacb04d77b064d1f348d310b5b57aeebe93f590c (patch) | |
tree | 8b32dd0732c2bac0e0f63d76723418a0132952fc | |
parent | 3bc3b8d69a291aa513d2d120c8ef46f968f1efdf (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.txt | 2 | ||||
-rw-r--r-- | src/corelib/configure.cmake | 6 | ||||
-rw-r--r-- | src/corelib/tools/qcryptographichash.cpp | 4 |
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> |