From 66d1d626cf1405119d89c6fd0fb7e9019bd67f6c Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 6 Jun 2022 10:24:58 +0200 Subject: [PATCH] fix build with libressl >= 3.5.0 Fix the following build failure with libressl >= 3.5.0: In file included from ../xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp:36:0, from enc/OpenSSL/OpenSSLCryptoKeyRSA.cpp:35: ../xsec/enc/OpenSSL/OpenSSLSupport.hpp:92:20: error: field 'mp_ctx_store' has incomplete type 'EVP_ENCODE_CTX {aka evp_Encode_Ctx_st}' EVP_ENCODE_CTX mp_ctx_store; ^~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/e908e59ec5b8e1ac505c44900dcb39527f0ec1d3 Signed-off-by: Fabrice Fontaine [Upstream status: https://issues.apache.org/jira/browse/SANTUARIO-588] --- xsec/enc/OpenSSL/OpenSSLCryptoBase64.cpp | 3 ++- xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp | 3 ++- xsec/enc/OpenSSL/OpenSSLSupport.cpp | 5 +++-- xsec/enc/OpenSSL/OpenSSLSupport.hpp | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/xsec/enc/OpenSSL/OpenSSLCryptoBase64.cpp b/xsec/enc/OpenSSL/OpenSSLCryptoBase64.cpp index a8ea9f1d..a9a84e3f 100644 --- a/xsec/enc/OpenSSL/OpenSSLCryptoBase64.cpp +++ b/xsec/enc/OpenSSL/OpenSSLCryptoBase64.cpp @@ -48,7 +48,8 @@ XERCES_CPP_NAMESPACE_USE // Construction/Destruction // -------------------------------------------------------------------------------- -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ + ((defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)) OpenSSLCryptoBase64::OpenSSLCryptoBase64() : mp_ectx(&m_ectx_store), mp_dctx(&m_dctx_store) { } OpenSSLCryptoBase64::~OpenSSLCryptoBase64() { } #else diff --git a/xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp b/xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp index 82aeb0a1..7c947d50 100644 --- a/xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp +++ b/xsec/enc/OpenSSL/OpenSSLCryptoBase64.hpp @@ -205,7 +205,8 @@ private : EVP_ENCODE_CTX *mp_ectx; // Encode context EVP_ENCODE_CTX *mp_dctx; // Decode context -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ + ((defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)) EVP_ENCODE_CTX m_ectx_store; EVP_ENCODE_CTX m_dctx_store; #endif diff --git a/xsec/enc/OpenSSL/OpenSSLSupport.cpp b/xsec/enc/OpenSSL/OpenSSLSupport.cpp index cf874f82..c4453004 100644 --- a/xsec/enc/OpenSSL/OpenSSLSupport.cpp +++ b/xsec/enc/OpenSSL/OpenSSLSupport.cpp @@ -273,7 +273,8 @@ int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) #endif -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ + ((defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)) EvpEncodeCtxRAII::EvpEncodeCtxRAII() : mp_ctx(&mp_ctx_store) { }; EvpEncodeCtxRAII::~EvpEncodeCtxRAII() { } #else @@ -289,4 +290,4 @@ EVP_ENCODE_CTX return mp_ctx; } -#endif \ No newline at end of file +#endif diff --git a/xsec/enc/OpenSSL/OpenSSLSupport.hpp b/xsec/enc/OpenSSL/OpenSSLSupport.hpp index b5f67f26..09d50899 100644 --- a/xsec/enc/OpenSSL/OpenSSLSupport.hpp +++ b/xsec/enc/OpenSSL/OpenSSLSupport.hpp @@ -88,7 +88,8 @@ public: private: EVP_ENCODE_CTX *mp_ctx; -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ + ((defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)) EVP_ENCODE_CTX mp_ctx_store; #endif }; -- 2.35.1