From bacb04d77b064d1f348d310b5b57aeebe93f590c Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Wed, 21 Jun 2023 17:13:06 +0200 Subject: [PATCH] Introduce openssl-hash feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Alexandru Croitor Reviewed-by: MÃ¥rten Nordheim --- src/corelib/CMakeLists.txt | 2 +- src/corelib/configure.cmake | 6 ++++++ 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 d476e264b4e..4e8ec206143 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 746ac8927ea..2ed0a61a730 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 2c4a2b276b2..d71c822ef72 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 #include