diff --git a/README.md b/README.md index d8a000a4..fde550eb 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ External dependencies are linked outside the getdns API build tree (we rely on c * [libunbound from NLnet Labs](http://www.nlnetlabs.nl/projects/unbound/) version 1.4.16 or later * [libexpat](http://expat.sourceforge.net/) for libunbound. * [libidn from the FSF](http://www.gnu.org/software/libidn/) version 1. -* [libopenssl from the OpenSSL Project](https://www.openssl.org/) version 0.9.7 or later. (Note: version 1.0.2 or later is required for TLS support) +* [libssl from the OpenSSL Project](https://www.openssl.org/) version 0.9.7 or later. (Note: version 1.0.2 or later is required for TLS support) * Doxygen is used to generate documentation, while this is not technically necessary for the build it makes things a lot more pleasant. You have to install the library and also the library-devel (or -dev) for your diff --git a/m4/acx_openssl.m4 b/m4/acx_openssl.m4 index 87507dce..693075c4 100644 --- a/m4/acx_openssl.m4 +++ b/m4/acx_openssl.m4 @@ -105,8 +105,9 @@ AC_DEFUN([ACX_SSL_CHECKS], [ AC_CHECK_HEADERS([openssl/ssl.h],,, [AC_INCLUDES_DEFAULT]) AC_CHECK_HEADERS([openssl/err.h],,, [AC_INCLUDES_DEFAULT]) AC_CHECK_HEADERS([openssl/rand.h],,, [AC_INCLUDES_DEFAULT]) -AC_CHECK_LIB(ssl, TLSv1_2_client_method,AC_DEFINE([HAVE_LIBTLS1_2], [1], - [Define if you have libssl with tls 1.2]),[AC_MSG_WARN([Cannot find TLSv1_2_client_method in libssl library. TLS will not be available.])]) +dnl Authentication now requires 1.0.2, which supports TLSv1.2 +AC_CHECK_LIB(ssl, SSL_CTX_get0_param,AC_DEFINE([HAVE_LIBSSL_102], [1], + [Define if you have libssl 1.0.2 or later]),[AC_MSG_WARN([libssl 1.0.2 or higher is required for TLS authentication. TLS will not be available.])]) ])dnl End of ACX_SSL_CHECKS dnl Check for SSL, where SSL is mandatory diff --git a/src/context.c b/src/context.c index ad6a55b0..c6e71be8 100644 --- a/src/context.c +++ b/src/context.c @@ -2164,7 +2164,7 @@ getdns_context_prepare_for_resolution(struct getdns_context *context, if (context->resolution_type == GETDNS_RESOLUTION_STUB) { if (tls_is_in_transports_list(context) == 1 && context->tls_ctx == NULL) { -#ifdef HAVE_LIBTLS1_2 +#ifdef HAVE_LIBSSL_102 /* Create client context, use TLS v1.2 only for now */ context->tls_ctx = SSL_CTX_new(TLSv1_2_client_method()); #endif diff --git a/src/stub.c b/src/stub.c index 291b9bed..53c73190 100644 --- a/src/stub.c +++ b/src/stub.c @@ -825,6 +825,7 @@ tls_failed(getdns_upstream *upstream) static SSL* tls_create_object(getdns_context *context, int fd, const char* auth_name) { +#ifdef HAVE_LIBSSL_102 /* Create SSL instance */ if (context->tls_ctx == NULL || auth_name == NULL) return NULL; @@ -845,6 +846,9 @@ tls_create_object(getdns_context *context, int fd, const char* auth_name) SSL_set_connect_state(ssl); (void) SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY); return ssl; +#else + return NULL; +#endif } static int