From da3e60dcc41ec2f66c915c8f406d3b523e4a4bb7 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 3 Jul 2022 13:38:20 +0900 Subject: KSSL: fixed detection of correct 'SSL_get_peer_certificate' method. This resolves incompatibility with openSSL 3.0. Signed-off-by: Michele Calgaro (cherry picked from commit 682b8acae4a983636bc178fbda25dfb5139b3716) --- tdeio/kssl/kopenssl.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tdeio/kssl/kopenssl.cpp b/tdeio/kssl/kopenssl.cpp index a009bd7e9..312c85c17 100644 --- a/tdeio/kssl/kopenssl.cpp +++ b/tdeio/kssl/kopenssl.cpp @@ -635,7 +635,8 @@ TDEConfig *cfg; K_SSLv3_client_method = (SSL_METHOD *(*)()) GET_SSLLIB_SYMBOL("SSLv3_client_method"); K_TLS_client_method = (SSL_METHOD *(*)()) GET_SSLLIB_SYMBOL("TLS_client_method"); if (!K_TLS_client_method) K_TLS_client_method = (SSL_METHOD *(*)()) GET_SSLLIB_SYMBOL("SSLv23_client_method"); - K_SSL_get_peer_certificate = (X509 *(*)(SSL *)) GET_SSLLIB_SYMBOL("SSL_get_peer_certificate"); + K_SSL_get_peer_certificate = (X509 *(*)(SSL *)) GET_SSLLIB_SYMBOL("SSL_get1_peer_certificate"); + if (!K_SSL_get_peer_certificate) K_SSL_get_peer_certificate = (X509 *(*)(SSL *)) GET_SSLLIB_SYMBOL("SSL_get_peer_certificate"); K_SSL_CIPHER_get_bits = (int (*)(SSL_CIPHER *,int *)) GET_SSLLIB_SYMBOL("SSL_CIPHER_get_bits"); K_SSL_CIPHER_get_version = (char * (*)(SSL_CIPHER *)) GET_SSLLIB_SYMBOL("SSL_CIPHER_get_version"); K_SSL_CIPHER_get_name = (const char * (*)(SSL_CIPHER *)) GET_SSLLIB_SYMBOL("SSL_CIPHER_get_name"); -- cgit v1.2.1