summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2022-07-03 13:38:20 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2022-07-03 13:38:20 +0900
commit682b8acae4a983636bc178fbda25dfb5139b3716 (patch)
treec15857972ffc5dcb4be37f7a83c27067b004654a
parent8caad52294a5755c1e7fcb9dba617bd20cb06631 (diff)
downloadtdelibs-682b8acae4a983636bc178fbda25dfb5139b3716.tar.gz
tdelibs-682b8acae4a983636bc178fbda25dfb5139b3716.zip
KSSL: fixed detection of correct 'SSL_get_peer_certificate' method. This resolves incompatibility with openSSL 3.0.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--tdeio/kssl/kopenssl.cpp3
1 files changed, 2 insertions, 1 deletions
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");