From 8ce71214c1935c2160d139140972f328afacabee Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Sun, 14 Aug 2022 15:58:44 -0400 Subject: qtbase: Add backported patches for OpenSSL 3 support To make QSslSocket work when building with OpenSSL 3.x, add two backported patches pulled from the v5.15.3-lts-lgpl branch of the KDE repo: https://invent.kde.org/qt/qt/qtbase This appears to be the minimal fix for e.g. QtLocation's SSL usage. For more information on the KDE Qt5 patch collection, see: https://community.kde.org/Qt5PatchCollection Bug-AGL: SPEC-4395 Signed-off-by: Scott Murray Change-Id: I0bc3fe7c0726aaea71a2c162db040e57ac92a9db Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27902 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account --- ..._EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase/0002-Adapt-for-q_EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch (limited to 'meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase/0002-Adapt-for-q_EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch') diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase/0002-Adapt-for-q_EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase/0002-Adapt-for-q_EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch new file mode 100644 index 000000000..d43c3fd40 --- /dev/null +++ b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase/0002-Adapt-for-q_EVP_PKEY_base_id-q_EVP_PKEY_get_base_id-.patch @@ -0,0 +1,86 @@ +From bb32d60ee031e29dcfd4bb22d81f6592bf308be9 Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Sun, 5 Dec 2021 16:07:44 +0300 +Subject: [PATCH] =?UTF-8?q?Adapt=20for=20q=5FEVP=5FPKEY=5Fbase=5Fid=20?= + =?UTF-8?q?=E2=86=92=20q=5FEVP=5FPKEY=5Fget=5Fbase=5Fid=20rename=20in=20Op?= + =?UTF-8?q?enSSL=203?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Based on upstream commit 4c0f81490ba0c4ec (the whole commit does not +apply cleanly). +--- + src/network/ssl/qsslsocket_openssl_symbols.cpp | 6 ++++-- + src/network/ssl/qsslsocket_openssl_symbols_p.h | 4 +++- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp +index f343349e2c..f89f5206a3 100644 +--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -148,7 +148,6 @@ DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return) + DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return) + DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return) + DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return) +-DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) + DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return) + DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return) + DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return) +@@ -371,8 +370,10 @@ DEFINEFUNC(STACK_OF(X509) *, SSL_get_peer_cert_chain, SSL *a, a, return nullptr, + + #if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 + DEFINEFUNC(X509 *, SSL_get1_peer_certificate, SSL *a, a, return nullptr, return) ++DEFINEFUNC(int, EVP_PKEY_get_base_id, const EVP_PKEY *pkey, pkey, return -1, return) + #else + DEFINEFUNC(X509 *, SSL_get_peer_certificate, SSL *a, a, return nullptr, return) ++DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) + #endif // OPENSSL_VERSION_MAJOR >= 3 + + DEFINEFUNC(long, SSL_get_verify_result, const SSL *a, a, return -1, return) +@@ -856,7 +857,6 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(EVP_PKEY_CTX_new) + RESOLVEFUNC(EVP_PKEY_param_check) + RESOLVEFUNC(EVP_PKEY_CTX_free) +- RESOLVEFUNC(EVP_PKEY_base_id) + RESOLVEFUNC(RSA_bits) + RESOLVEFUNC(OPENSSL_sk_new_null) + RESOLVEFUNC(OPENSSL_sk_push) +@@ -1084,8 +1084,10 @@ bool q_resolveOpenSslSymbols() + + #if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 + RESOLVEFUNC(SSL_get1_peer_certificate) ++ RESOLVEFUNC(EVP_PKEY_get_base_id) + #else + RESOLVEFUNC(SSL_get_peer_certificate) ++ RESOLVEFUNC(EVP_PKEY_base_id) + #endif // OPENSSL_VERSION_MAJOR >= 3 + + RESOLVEFUNC(SSL_get_verify_result) +diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h +index 000134b671..9af27ab99d 100644 +--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h ++++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -236,7 +236,6 @@ Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a); + EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); + void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); + int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); +-int q_EVP_PKEY_base_id(EVP_PKEY *a); + int q_RSA_bits(RSA *a); + Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); +@@ -751,8 +750,11 @@ void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level); + #if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 + X509 *q_SSL_get1_peer_certificate(SSL *a); + #define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate ++int q_EVP_PKEY_get_base_id(const EVP_PKEY *pkey); ++#define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id + #else + X509 *q_SSL_get_peer_certificate(SSL *a); ++int q_EVP_PKEY_base_id(EVP_PKEY *a); + #endif // OPENSSL_VERSION_MAJOR >= 3 + + QT_END_NAMESPACE +-- +2.35.3 + -- cgit 1.2.3-korg