From: David Benjamin Date: Mon, 25 Apr 2016 18:55:43 +0000 (-0400) Subject: OpenSSL: BoringSSL has SSL_get_client_random(), etc. X-Git-Tag: hostap_2_6~508 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4471338c6556f4e60f4aca1313df2f6c52497c6;p=thirdparty%2Fhostap.git OpenSSL: BoringSSL has SSL_get_client_random(), etc. BoringSSL added OpenSSL 1.1.0's SSL_get_client_random() and friends in working towards opaquifying the SSL struct. But it, for the moment, still looks more like 1.0.2 than 1.1.0 and advertises OPENSSL_VERSION_NUMBER as such. This means that there is no need to define those in BoringSSL and defining them causes conflicts. (C does not like having static and non-static functions with the same name.) As requested, this is conditioned on defined(BORINGSSL_API_VERSION) so wpa_supplicant may continue to support older BoringSSLs for a time. (BoringSSL revisions without the accessors predate BoringSSL maintaining a BORINGSSL_API_VERSION.) Also add a missing opensslv.h include. tls_openssl.c is sensitive to OPENSSL_VERSION_NUMBER, so it should include the header directly rather than rely on another header to do so. Signed-off-by: David Benjamin --- diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c index ebcc54536..4f2e875d1 100644 --- a/src/crypto/tls_openssl.c +++ b/src/crypto/tls_openssl.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #ifndef OPENSSL_NO_ENGINE @@ -51,10 +52,13 @@ typedef int stack_index_t; #endif /* OPENSSL_NO_TLSEXT */ #endif /* SSL_set_tlsext_status_type */ -#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L || \ + defined(LIBRESSL_VERSION_NUMBER)) && \ + !defined(BORINGSSL_API_VERSION) /* * SSL_get_client_random() and SSL_get_server_random() were added in OpenSSL - * 1.1.0. Provide compatibility wrappers for older versions. + * 1.1.0 and newer BoringSSL revisions. Provide compatibility wrappers for + * older versions. */ static size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,