aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-01-11 17:04:44 +0100
committerDaniel Stenberg <daniel@haxx.se>2019-01-13 17:06:59 +0100
commitcf8c70594fda8aaba1b2b1d1e34deefe927434f9 (patch)
treee81fbedc2cdf472d4975af9f250b779bc4985134
parent52e27fe9c6421d36337c0b69df6ca2b3b2d72613 (diff)
openssl: adapt to 3.0.0, OpenSSL_version_num() is deprecated
OpenSSL_version() replaces OpenSSL_version_num() Closes #3462
-rwxr-xr-xconfigure.ac6
-rw-r--r--lib/vtls/openssl.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 42fc0031a..817a24a8e 100755
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -1770,10 +1770,12 @@ if test -z "$ssl_backends" -o "x$OPT_SSL" != xno &&
dnl Older versions of Cyassl (some time before 2.9.4) don't have
dnl SSL_get_shutdown (but this check won't actually detect it there
dnl as it's a macro that needs the header files be included)
+ dnl OpenSSL_version is introduced in 3.0.0
AC_CHECK_FUNCS( RAND_egd \
SSL_get_shutdown \
- SSLv2_client_method )
+ SSLv2_client_method \
+ OpenSSL_version )
AC_MSG_CHECKING([for BoringSSL])
AC_COMPILE_IFELSE([
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 8bddb9a8c..45e72d6a3 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -3774,7 +3774,12 @@ static size_t Curl_ossl_version(char *buffer, size_t size)
{
#ifdef OPENSSL_IS_BORINGSSL
return msnprintf(buffer, size, OSSL_PACKAGE);
-#else /* OPENSSL_IS_BORINGSSL */
+#elif defined(HAVE_OPENSSL_VERSION) && defined(OPENSSL_VERSION_STRING)
+ return msnprintf(buffer, size, "%s/%s",
+ OSSL_PACKAGE, OpenSSL_version(OPENSSL_VERSION_STRING));
+#else
+ /* not BoringSSL and not using OpenSSL_version */
+
char sub[3];
unsigned long ssleay_value;
sub[2]='\0';