wolfssl: remove now deprecated compatibility code
authorPetr Štetiar <ynezz@true.cz>
Thu, 10 Dec 2020 15:00:02 +0000 (16:00 +0100)
committerPetr Štetiar <ynezz@true.cz>
Thu, 10 Dec 2020 16:14:45 +0000 (17:14 +0100)
Mainly that NO_X509_CHECK_HOST is causing certificate validation issues
in some setups:

 root@OpenWrt:/# wget https://www.google.com
 Downloading 'https://www.google.com'
 Connecting to 172.217.23.196:443
 Connection error: Server hostname does not match SSL certificate

but instead of spending time on fixing it, I've simply decided to remove
it as we're now on wolfSSL 4.5.0 and those symbols should be avaialable
so no symbol detection and handling should be needed anymore.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
CMakeLists.txt
ustream-io-wolfssl.c
ustream-openssl.c
ustream-ssl.c

index b883751f6e3eb35ada71656c1736f88fb4300c49..c98b12ac8d99353d4bf4e5c2e662343a8123f32a 100644 (file)
@@ -1,7 +1,5 @@
 cmake_minimum_required(VERSION 2.6)
 
-INCLUDE(CheckSymbolExists)
-
 PROJECT(ustream-ssl C)
 
 ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3)
@@ -26,17 +24,6 @@ ELSEIF(WOLFSSL)
   SET(SSL_SRC ustream-io-wolfssl.c ustream-openssl.c)
   SET(SSL_LIB ${wolfssl_library} m)
   SET(CMAKE_REQUIRED_LIBRARIES "${wolfssl_library} -lm")
-  CHECK_SYMBOL_EXISTS (wolfSSL_SSLSetIORecv "wolfssl/ssl.h"
-                      HAVE_WOLFSSL_SSLSETIORECV)
-  IF (NOT HAVE_WOLFSSL_SSLSETIORECV)
-    ADD_DEFINITIONS(-DNO_WOLFSSL_SSLSETIO_SEND_RECV)
-  ENDIF()
-  CHECK_SYMBOL_EXISTS (wolfSSL_X509_check_host
-                      "wolfssl/options.h;wolfssl/ssl.h"
-                      HAVE_WOLFSSL_X509_CHECK_HOST)
-  IF (NOT HAVE_WOLFSSL_X509_CHECK_HOST)
-    ADD_DEFINITIONS(-DNO_X509_CHECK_HOST)
-  ENDIF()
 ELSE()
   SET(SSL_SRC ustream-io-openssl.c ustream-openssl.c)
   SET(SSL_LIB crypto ssl)
index db69499a8e4b42b89a1e0d8eca8b5ea08fa7fbf0..4ff85d34e33331535f25645121d90b11078e20df 100644 (file)
@@ -67,15 +67,8 @@ static int io_send_cb(SSL* ssl, char *buf, int sz, void *ctx)
 
 __hidden void ustream_set_io(struct ustream_ssl_ctx *ctx, void *ssl, struct ustream *conn)
 {
-#ifndef NO_WOLFSSL_SSLSETIO_SEND_RECV
        wolfSSL_SSLSetIORecv(ssl, io_recv_cb);
        wolfSSL_SSLSetIOSend(ssl, io_send_cb);
-#else
-       wolfSSL_SetIORecv((void *) ctx, io_recv_cb);
-       wolfSSL_SetIOSend((void *) ctx, io_send_cb);
-       if (ssl == NULL)
-               return;
-#endif
        wolfSSL_SetIOReadCtx(ssl, conn);
        wolfSSL_SetIOWriteCtx(ssl, conn);
 }
index 9b4ac6c8089449e63ded2cd1410c1cfef15616a7..1ce796a3964fbed890eb514de4ed810e87594689 100644 (file)
@@ -247,8 +247,6 @@ static void ustream_ssl_error(struct ustream_ssl *us, int ret)
        uloop_timeout_set(&us->error_timer, 0);
 }
 
-#ifndef NO_X509_CHECK_HOST
-
 static bool ustream_ssl_verify_cn(struct ustream_ssl *us, X509 *cert)
 {
        int ret;
@@ -264,8 +262,6 @@ static bool ustream_ssl_verify_cn(struct ustream_ssl *us, X509 *cert)
        return ret == 1;
 }
 
-#endif
-
 static void ustream_ssl_verify_cert(struct ustream_ssl *us)
 {
        void *ssl = us->ssl;
@@ -284,9 +280,8 @@ static void ustream_ssl_verify_cert(struct ustream_ssl *us)
                return;
 
        us->valid_cert = true;
-#ifndef NO_X509_CHECK_HOST
        us->valid_cn = ustream_ssl_verify_cn(us, cert);
-#endif
+
        X509_free(cert);
 }
 
index 46ac5523d999ab3b53830248f89ccc3d15b537f8..cd69f9e97449435ee407f81b36ae49930cbef5fc 100644 (file)
@@ -199,9 +199,6 @@ static int _ustream_ssl_init(struct ustream_ssl *us, struct ustream *conn, struc
        us->conn = conn;
        us->ctx = ctx;
 
-#if defined(HAVE_WOLFSSL) && defined(NO_WOLFSSL_SSLSETIO_SEND_RECV)
-       ustream_set_io(ctx, NULL, conn);
-#endif
        us->ssl = __ustream_ssl_session_new(us->ctx);
        if (!us->ssl)
                return -ENOMEM;