This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-native.git

commit f7930fa16f095717cfc641a8d24e60c343765adc
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue May 24 21:49:45 2022 +0100

    Update OpenSSL to 3.0.0 and make it required
---
 CMakeLists.txt                    |   2 +-
 native/NMAKEmakefile              |   2 +-
 native/build/rpm/tcnative.spec.in |   4 +-
 native/build/tcnative.m4          | 193 ++++++++----------
 native/configure.in               |  24 +--
 native/libtcnative.dsp            |   4 +-
 native/src/ssl.c                  | 407 --------------------------------------
 native/src/sslconf.c              |  60 ------
 native/src/sslcontext.c           | 364 ----------------------------------
 native/src/sslutils.c             |   2 -
 native/srclib/VERSIONS            |  39 +---
 native/tcnative.dsp               |   4 +-
 xdocs/miscellaneous/changelog.xml |   4 +
 13 files changed, 103 insertions(+), 1006 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5db4ca147..0191acec2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,7 @@ include_directories (${TOMCAT_JNI_SOURCE_DIR}/native/include
 
 set (SSL_C_FLAGS "-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H 
-Wa,--noexecstack -DL_ENDIAN -DTERMIO -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT 
-DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM 
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM 
-DGHASH_ASM ")
 
-set (CMAKE_C_FLAGS "-pthread   -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT 
-D_GNU_SOURCE -DHAVE_OPENSSL -fPIC -DOPENSSL_PIC  -m64 -O3 -Wall 
${SSL_C_FLAGS}")
+set (CMAKE_C_FLAGS "-pthread   -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT 
-D_GNU_SOURCE -fPIC -DOPENSSL_PIC  -m64 -O3 -Wall ${SSL_C_FLAGS}")
 
 set (OPENSSL_SRC ${DEPS}/openssl)
 
diff --git a/native/NMAKEmakefile b/native/NMAKEmakefile
index 1c91b5c47..e32c69e6c 100644
--- a/native/NMAKEmakefile
+++ b/native/NMAKEmakefile
@@ -83,7 +83,7 @@ LFLAGS = $(LFLAGS) libeay32.lib ssleay32.lib
 !ENDIF
 
 CFLAGS = $(CFLAGS) -DZLIB_WINAPI -DNO_IDEA -DNO_RC5 -DNO_MDC2 
-DOPENSSL_NO_IDEA \
-       -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DHAVE_OPENSSL -DHAVE_SSL_SET_STATE=1
+       -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DHAVE_SSL_SET_STATE=1
 
 
 PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)-src
diff --git a/native/build/rpm/tcnative.spec.in 
b/native/build/rpm/tcnative.spec.in
index b2a719700..9b2cd6e05 100644
--- a/native/build/rpm/tcnative.spec.in
+++ b/native/build/rpm/tcnative.spec.in
@@ -28,7 +28,7 @@ Group: System Environment/Libraries
 URL: http://apr.apache.org/
 Source0: %{name}-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
-BuildPrereq: autoconf, libtool, doxygen, apr-devel >= 
%{aprmajor}.%{aprminor}.0, openssl >= 1.0.2
+BuildPrereq: autoconf, libtool, doxygen, apr-devel >= 
%{aprmajor}.%{aprminor}.0, openssl >= 3.0.0
 
 %description
 The mission of the Tomcat Native Library (TCN) is to provide a
@@ -38,7 +38,7 @@ contains additional utility interfaces for Java.
 %package devel
 Group: Development/Libraries
 Summary: Tomcat Native development kit
-Requires: tcnative = %{version}-%{release}, apr-devel >= 
%{aprmajor}.%{aprminor}.0, openssl-devel >= 1.0.2
+Requires: tcnative = %{version}-%{release}, apr-devel >= 
%{aprmajor}.%{aprminor}.0, openssl-devel >= 3.0.0
 
 %description devel
 The mission of the Tomcat Native Library (TCN) is to provide a
diff --git a/native/build/tcnative.m4 b/native/build/tcnative.m4
index 9681586ae..4997968a5 100644
--- a/native/build/tcnative.m4
+++ b/native/build/tcnative.m4
@@ -149,137 +149,112 @@ dnl as the help string.
 AC_DEFUN(TCN_HELP_STRING,[ifelse(regexp(AC_ACVERSION, 2\.1), -1, 
AC_HELP_STRING($1,$2),[  ]$1 substr([                       ],len($1))$2)])dnl
 
 dnl
-dnl TCN_CHECK_SSL_TOOLKIT
+dnl TCN_FIND_SSL_TOOLKIT
 dnl
 dnl Configure for the detected openssl toolkit installation, giving
 dnl preference to "--with-ssl=<path>" if it was specified.
 dnl
-AC_DEFUN(TCN_CHECK_SSL_TOOLKIT,[
-AC_MSG_CHECKING(for OpenSSL library)
-AC_ARG_WITH(ssl,
-[  --with-ssl[=PATH]   Build with OpenSSL [yes|no|path]],
-    use_openssl="$withval", use_openssl="auto")
-
-openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
-if test "$use_openssl" = "auto"
-then
+AC_DEFUN([TCN_FIND_SSL_TOOLKIT],[
+  AC_ARG_WITH(ssl,[  --with-ssl=DIR      Specify the location of your OpenSSL 
installation],[
+    AC_MSG_CHECKING([for OpenSSL library])
+    if test -d "$withval"
+    then
+      use_openssl="$withval"
+      AC_MSG_RESULT([$use_openssl])
+    else
+      AC_MSG_RESULT([failed])
+      AC_MSG_ERROR([$withval is not a directory])
+    fi
+  ])
+    
+  if test "x$use_openssl" = x
+  then
+    # User did not specify a path - guess it
+    AC_MSG_CHECKING([for OpenSSL location])
+    openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
     for d in $openssldirs
-    do
+      do
         if test -f $d/include/openssl/opensslv.h
         then
-            use_openssl=$d
-            break
+          use_openssl=$d
+          break
         fi
-    done
-fi
-case "$use_openssl" in
-    no)
-        AC_MSG_RESULT(no)
-        TCN_OPENSSL_INC=""
-        USE_OPENSSL=""
+      done
+  fi
+
+  if test x"$use_openssl" = x
+  then
+    AC_MSG_RESULT(not found)
+    AC_MSG_ERROR([OpenSSL was not found in any of $openssldirs; use 
--with-ssl=/path])
+  fi
+
+  USE_OPENSSL='-DOPENSSL'
+
+  test -d $use_openssl/lib64 && ssllibdir=lib64 || ssllibdir=lib
+    
+  if test "$use_openssl" = "/usr"
+  then
+    TCN_OPENSSL_INC=""
+    TCN_OPENSSL_LIBS="-lssl -lcrypto"
+  else
+    TCN_OPENSSL_INC="-I$use_openssl/include"
+    case $host in
+      *-solaris*)
+        TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir -R$use_openssl/$ssllibdir 
-lssl -lcrypto"
         ;;
-    auto)
-        TCN_OPENSSL_INC=""
-        USE_OPENSSL=""
-        AC_MSG_RESULT(not found)
+      *-hp-hpux*)
+        # By default cc/aCC on HP-UX IA64 will produce 32 bit output
+        ssllibdir=lib/hpux32
+        TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir -lssl -lcrypto"
         ;;
-    *)
-        if test "$use_openssl" = "yes"
-        then
-            # User did not specify a path - guess it
-            for d in $openssldirs
-            do
-                if test -f $d/include/openssl/opensslv.h
-                then
-                    use_openssl=$d
-                    break
-                fi
-            done
-            if test "$use_openssl" = "yes"
-            then
-                AC_MSG_RESULT(not found)
-                AC_MSG_ERROR(
-[OpenSSL was not found in any of $openssldirs; use --with-ssl=/path])
-            fi
-        fi
-        USE_OPENSSL='-DOPENSSL'
-
-        test -d $use_openssl/lib64 && ssllibdir=lib64 || ssllibdir=lib
-        if test "$use_openssl" = "/usr"
-        then
-            TCN_OPENSSL_INC=""
-            TCN_OPENSSL_LIBS="-lssl -lcrypto"
-        else
-            TCN_OPENSSL_INC="-I$use_openssl/include"
-            case $host in
-            *-solaris*)
-                TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir 
-R$use_openssl/$ssllibdir -lssl -lcrypto"
-                ;;
-            *-hp-hpux*)
-                # By default cc/aCC on HP-UX IA64 will produce 32 bit output
-                ssllibdir=lib/hpux32
-                TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir -lssl -lcrypto"
-                ;;
-            *linux*|*freebsd*)
-                TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir 
-Wl,-rpath,$use_openssl/$ssllibdir -lssl -lcrypto"
-                ;;
-            *)
-                TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir -lssl -lcrypto"
-                ;;
-            esac
-        fi
-        AC_MSG_RESULT(using openssl from $use_openssl/$ssllibdir and 
$use_openssl/include)
+      *linux*|*freebsd*)
+        TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir 
-Wl,-rpath,$use_openssl/$ssllibdir -lssl -lcrypto"
+        ;;
+      *)
+        TCN_OPENSSL_LIBS="-L$use_openssl/$ssllibdir -lssl -lcrypto"
+        ;;
+    esac
+  fi
+     
+  AC_MSG_RESULT(using openssl from $use_openssl/$ssllibdir and 
$use_openssl/include)
 
-        saved_cflags="$CFLAGS"
-        saved_libs="$LIBS"
-        CFLAGS="$CFLAGS $TCN_OPENSSL_INC"
-        LIBS="$LIBS $TCN_OPENSSL_LIBS"
+  saved_cflags="$CFLAGS"
+  saved_libs="$LIBS"
+  CFLAGS="$CFLAGS $TCN_OPENSSL_INC"
+  LIBS="$LIBS $TCN_OPENSSL_LIBS"
 
-AC_ARG_ENABLE(openssl-version-check,
-[AC_HELP_STRING([--disable-openssl-version-check],
-        [disable the OpenSSL version check])])
-case "$enable_openssl_version_check" in
-yes|'')
-        AC_MSG_CHECKING(OpenSSL library version >= 1.0.2)
-        AC_TRY_RUN([
+  AC_ARG_ENABLE(openssl-version-check,
+      [AC_HELP_STRING([--disable-openssl-version-check],
+      [disable the OpenSSL version check])])
+  case "$enable_openssl_version_check" in
+    yes|'')
+      AC_MSG_CHECKING(OpenSSL library version >= 3.0.0)
+      AC_TRY_RUN([
 #include <stdio.h>
 #include <openssl/opensslv.h>
 int main() {
-        if (OPENSSL_VERSION_NUMBER >= 0x1000200fL)
+        if (OPENSSL_VERSION_NUMBER >= 0x3000000fL)
             return (0);
     printf("\n\nFound   OPENSSL_VERSION_NUMBER %#010x (" OPENSSL_VERSION_TEXT 
")\n",
         OPENSSL_VERSION_NUMBER);
-    printf("Require OPENSSL_VERSION_NUMBER 0x1000200f or greater (1.0.2)\n\n");
+    printf("Require OPENSSL_VERSION_NUMBER 0x3000000f or greater (3.0.0)\n\n");
         return (1);
 }
-        ],
-        [AC_MSG_RESULT(ok)],
-        [AC_MSG_ERROR(Your version of OpenSSL is not compatible with this 
version of tcnative)],
-        [AC_MSG_RESULT(assuming target platform has compatible version)])
-;;
-no)
+    ],
+    [AC_MSG_RESULT(ok)],
+    [AC_MSG_ERROR(Your version of OpenSSL is not compatible with this version 
of tcnative)],
+    [AC_MSG_RESULT(assuming target platform has compatible version)])
+    ;;
+  no)
     AC_MSG_RESULT(Skipped OpenSSL version check)
-;;
-esac
+    ;;
+  esac
 
-        AC_MSG_CHECKING(for OpenSSL DSA support)
-        if test -f $use_openssl/include/openssl/dsa.h
-        then
-            AC_DEFINE(HAVE_OPENSSL_DSA)
-            AC_MSG_RESULT(yes)
-        else
-            AC_MSG_RESULT(no)
-        fi
-        CFLAGS="$saved_cflags"
-        LIBS="$saved_libs"
-        ;;
-esac
-if test "x$USE_OPENSSL" != "x"
-then
-    APR_ADDTO(TCNATIVE_PRIV_INCLUDES, [$TCN_OPENSSL_INC])
-    APR_ADDTO(TCNATIVE_LDFLAGS, [$TCN_OPENSSL_LIBS])
-    APR_ADDTO(CFLAGS, [-DHAVE_OPENSSL])
-fi
+  CFLAGS="$saved_cflags"
+  LIBS="$saved_libs"
+
+  APR_ADDTO(TCNATIVE_PRIV_INCLUDES, [$TCN_OPENSSL_INC])
+  APR_ADDTO(TCNATIVE_LDFLAGS, [$TCN_OPENSSL_LIBS])
 ])
 
 dnl
diff --git a/native/configure.in b/native/configure.in
index ee9ff2f93..f7262e9a8 100644
--- a/native/configure.in
+++ b/native/configure.in
@@ -132,23 +132,6 @@ AC_SUBST(JAVA_PLATFORM)
 AC_SUBST(JAVA_OS)
 
 
-dnl
-dnl Detect openssl toolkit installation
-dnl
-
-use_openssl=true;
-
-AC_ARG_ENABLE(openssl,
-[AS_HELP_STRING([--disable-openssl],[avoid using OpenSSL toolkit])],
-[
-  case "${enableval}" in
-    no )
-       use_openssl=false;
-       AC_MSG_RESULT([Disabling SSL support...])
-       ;;
-  esac
-])
-
 AC_ARG_ENABLE(insecure-export-ciphers,
 [AS_HELP_STRING([--enable-insecure-export-ciphers],[allow including insecure 
export and null ciphers in the cipher string (default is disabled=not 
allowed)])],
 [
@@ -160,9 +143,10 @@ AC_ARG_ENABLE(insecure-export-ciphers,
   esac
 ])
 
-if $use_openssl ; then
-  TCN_CHECK_SSL_TOOLKIT
-fi
+dnl
+dnl  Find the OpenSSL installation
+dnl
+TCN_FIND_SSL_TOOLKIT
 
 so_ext=$APR_SO_EXT
 lib_target=$APR_LIB_TARGET
diff --git a/native/libtcnative.dsp b/native/libtcnative.dsp
index 4451dcc64..d4f79e8e8 100644
--- a/native/libtcnative.dsp
+++ b/native/libtcnative.dsp
@@ -43,7 +43,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MD /W3 /Zi /O2 /Oy- /D "WIN32" /D "NDEBUG" /D 
"_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_IDEA" /D 
"NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D 
"OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D HAVE_SSL_SET_STATE=1 
/Fd"Release\libtcnative_src" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_IDEA" /D 
"NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D 
"OPENSSL_NO_MDC2" /D HAVE_SSL_SET_STATE=1 /Fd"Release\libtcnative_src" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -69,7 +69,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D 
"_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W4 /GX /Zi /Od /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_IDEA" /D 
"NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D 
"OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D HAVE_SSL_SET_STATE=1 
/Fd"Debug\libtcnative_src" /FD /c
+# ADD CPP /nologo /MDd /W4 /GX /Zi /Od /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_IDEA" /D 
"NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D 
"OPENSSL_NO_MDC2" /D HAVE_SSL_SET_STATE=1 /Fd"Debug\libtcnative_src" /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
diff --git a/native/src/ssl.c b/native/src/ssl.c
index 6d248550f..ca6a5c26a 100644
--- a/native/src/ssl.c
+++ b/native/src/ssl.c
@@ -20,7 +20,6 @@
 #include "apr_atomic.h"
 #include "apr_poll.h"
 
-#ifdef HAVE_OPENSSL
 #include "ssl_private.h"
 
 static int ssl_initialized = 0;
@@ -2034,409 +2033,3 @@ TCN_IMPLEMENT_CALL(jint, SSL, 
getHandshakeCount)(TCN_STDARGS, jlong ssl)
 }
 
 /*** End Apple API Additions ***/
-
-#else /* HAVE_OPENSSL */
-/* OpenSSL is not supported.
- * Create empty stubs.
- */
-
-TCN_IMPLEMENT_CALL(jint, SSL, version)(TCN_STDARGS)
-{
-    UNREFERENCED_STDARGS;
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, versionString)(TCN_STDARGS)
-{
-    UNREFERENCED_STDARGS;
-    return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, initialize)(TCN_STDARGS, jstring engine)
-{
-    UNREFERENCED(o);
-    UNREFERENCED(engine);
-    tcn_ThrowAPRException(e, APR_ENOTIMPL);
-    return (jint)APR_ENOTIMPL;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, randLoad)(TCN_STDARGS, jstring file)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(file);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, randSave)(TCN_STDARGS, jstring file)
-{
-    UNREFERENCED_STDARGS;
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, randMake)(TCN_STDARGS, jstring file,
-                                            jint length, jboolean base64)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(file);
-    UNREFERENCED(length);
-    UNREFERENCED(base64);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, randSet)(TCN_STDARGS, jstring file)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(file);
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, fipsModeGet)(TCN_STDARGS)
-{
-    UNREFERENCED(o);
-    tcn_ThrowException(e, "FIPS was not available to tcnative at build time. 
You will need to re-build tcnative against an OpenSSL with FIPS.");
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, fipsModeSet)(TCN_STDARGS, jint mode)
-{
-    UNREFERENCED(o);
-    UNREFERENCED(mode);
-    tcn_ThrowException(e, "FIPS was not available to tcnative at build time. 
You will need to re-build tcnative against an OpenSSL with FIPS.");
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSL, newBIO)(TCN_STDARGS, jlong pool,
-                                       jobject callback)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(pool);
-    UNREFERENCED(callback);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, closeBIO)(TCN_STDARGS, jlong bio)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(bio);
-    return (jint)APR_ENOTIMPL;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setPasswordCallback)(TCN_STDARGS,
-                                                   jobject callback)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(callback);
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setPassword)(TCN_STDARGS, jstring password)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(password);
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, generateRSATempKey)(TCN_STDARGS, jint idx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(idx);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, loadDSATempKey)(TCN_STDARGS, jint idx,
-                                                  jstring file)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(idx);
-    UNREFERENCED(file);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getLastError)(TCN_STDARGS)
-{
-    UNREFERENCED_STDARGS;
-    return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSL, hasOp)(TCN_STDARGS, jint op)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(op);
-    return JNI_FALSE;
-}
-
-/*** Begin Twitter 1:1 API addition ***/
-TCN_IMPLEMENT_CALL(jint, SSL, getLastErrorNumber)(TCN_STDARGS) {
-  UNREFERENCED(o);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong /* SSL * */, SSL, newSSL)(TCN_STDARGS,
-                                                   jlong ctx /* tcn_ssl_ctxt_t 
* */,
-                                                   jboolean server) {
-  UNREFERENCED(o);
-  UNREFERENCED(ctx);
-  UNREFERENCED(server);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setBIO)(TCN_STDARGS, jlong ssl, jlong rbio, 
jlong wbio) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  UNREFERENCED(rbio);
-  UNREFERENCED(wbio);
-  tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, pendingWrittenBytesInBIO)(TCN_STDARGS, jlong 
bio) {
-  UNREFERENCED(o);
-  UNREFERENCED(bio);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, pendingReadableBytesInSSL)(TCN_STDARGS, jlong 
ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, writeToBIO)(TCN_STDARGS, jlong bio, jlong wbuf, 
jint wlen) {
-  UNREFERENCED(o);
-  UNREFERENCED(bio);
-  UNREFERENCED(wbuf);
-  UNREFERENCED(wlen);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, readFromBIO)(TCN_STDARGS, jlong bio, jlong rbuf, 
jint rlen) {
-  UNREFERENCED(o);
-  UNREFERENCED(bio);
-  UNREFERENCED(rbuf);
-  UNREFERENCED(rlen);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, writeToSSL)(TCN_STDARGS, jlong ssl, jlong wbuf, 
jint wlen) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  UNREFERENCED(wbuf);
-  UNREFERENCED(wlen);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, readFromSSL)(TCN_STDARGS, jlong ssl, jlong rbuf, 
jint rlen) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  UNREFERENCED(rbuf);
-  UNREFERENCED(rlen);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, getShutdown)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setShutdown)(TCN_STDARGS, jlong ssl, jint mode) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  UNREFERENCED(mode);
-  tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, freeSSL)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSL, makeNetworkBIO)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, freeBIO)(TCN_STDARGS, jlong bio) {
-  UNREFERENCED(o);
-  UNREFERENCED(bio);
-  tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, shutdownSSL)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getCipherForSSL)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, isInInit)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, doHandshake)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, renegotiate)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, renegotiatePending)(TCN_STDARGS, jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, verifyClientPostHandshake)(TCN_STDARGS, jlong 
ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, getPostHandshakeAuthInProgress)(TCN_STDARGS, 
jlong ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getNextProtoNegotiated)(TCN_STDARGS, jlong 
ssl) {
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-/*** End Twitter 1:1 API addition ***/
-
-/*** Begin Apple 1:1 API addition ***/
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getAlpnSelected)(TCN_STDARGS, jlong ssl) {
-    UNREFERENCED(o);
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-    return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jobjectArray, SSL, getPeerCertChain)(TCN_STDARGS, jlong ssl)
-{
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jbyteArray, SSL, getPeerCertificate)(TCN_STDARGS, jlong ssl)
-{
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getErrorString)(TCN_STDARGS, jlong number)
-{
-  UNREFERENCED(o);
-  UNREFERENCED(number);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jstring, SSL, getVersion)(TCN_STDARGS, jlong ssl)
-{
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSL, getTime)(TCN_STDARGS, jlong ssl)
-{
-  UNREFERENCED(o);
-  UNREFERENCED(ssl);
-  tcn_ThrowException(e, "Not implemented");
-  return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setVerify)(TCN_STDARGS, jlong ssl,
-                                                jint level, jint depth)
-{
-    UNREFERENCED(o);
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(void, SSL, setOptions)(TCN_STDARGS, jlong ssl,
-                                                 jint opt)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ssl);
-    UNREFERENCED(opt);
-    tcn_ThrowException(e, "Not implemented");
-}
-
-TCN_IMPLEMENT_CALL(jint, SSL, getOptions)(TCN_STDARGS, jlong ssl)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-    return 0;
-}
-TCN_IMPLEMENT_CALL(jobjectArray, SSL, getCiphers)(TCN_STDARGS, jlong ssl)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-    return 0;
-}
-TCN_IMPLEMENT_CALL(jboolean, SSL, setCipherSuites)(TCN_STDARGS, jlong ssl,
-                                                         jstring ciphers)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ssl);
-    UNREFERENCED(ciphers);
-    tcn_ThrowException(e, "Not implemented");
-    return JNI_FALSE;
-}
-TCN_IMPLEMENT_CALL(jbyteArray, SSL, getSessionId)(TCN_STDARGS, jlong ssl)
-{
-    UNREFERENCED(o);
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-    return 0;
-}
-TCN_IMPLEMENT_CALL(jint, SSL, getHandshakeCount)(TCN_STDARGS, jlong ssl)
-{
-    UNREFERENCED(o);
-    UNREFERENCED(ssl);
-    tcn_ThrowException(e, "Not implemented");
-    return 0;
-}
-/*** End Apple API Additions ***/
-#endif /* HAVE_OPENSSL */
diff --git a/native/src/sslconf.c b/native/src/sslconf.c
index e2ece6fe5..a3b8cfdfd 100644
--- a/native/src/sslconf.c
+++ b/native/src/sslconf.c
@@ -19,8 +19,6 @@
 
 #include "tcn.h"
 
-#ifdef HAVE_OPENSSL
-
 #include "ssl_private.h"
 
 #ifdef HAVE_SSL_CONF_CMD
@@ -373,61 +371,3 @@ TCN_IMPLEMENT_CALL(jint, SSLConf, finish)(TCN_STDARGS, 
jlong cctx)
 
 
 #endif /* HAVE_SSL_CONF_CMD */
-
-#else /* HAVE_OPENSSL */
-/* OpenSSL is not supported.
- * Create empty stubs.
- */
-
-TCN_IMPLEMENT_CALL(jlong, SSLConf, make)(TCN_STDARGS, jlong pool,
-                                         jint flags)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(pool);
-    UNREFERENCED(flags);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLConf, free)(TCN_STDARGS, jlong cctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(cctx);
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLConf, check)(TCN_STDARGS, jlong cctx,
-                                         jstring cmd, jstring value)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(cctx);
-    UNREFERENCED(cmd);
-    UNREFERENCED(value);
-    return APR_ENOTIMPL;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLConf, assign)(TCN_STDARGS, jlong cctx,
-                                          jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(cctx);
-    UNREFERENCED(ctx);
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLConf, apply)(TCN_STDARGS, jlong cctx,
-                                         jstring cmd, jstring value)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(cctx);
-    UNREFERENCED(cmd);
-    UNREFERENCED(value);
-    return APR_ENOTIMPL;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLConf, finish)(TCN_STDARGS, jlong cctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(cctx);
-    return APR_ENOTIMPL;
-}
-
-
-#endif /* HAVE_OPENSSL */
diff --git a/native/src/sslcontext.c b/native/src/sslcontext.c
index 483446dd6..d01c9d532 100644
--- a/native/src/sslcontext.c
+++ b/native/src/sslcontext.c
@@ -23,7 +23,6 @@
 #include "apr_thread_mutex.h"
 #include "apr_poll.h"
 
-#ifdef HAVE_OPENSSL
 #include "ssl_private.h"
 
 static jclass byteArrayClass;
@@ -2133,366 +2132,3 @@ TCN_IMPLEMENT_CALL(jboolean, SSLContext, 
setSessionIdContext)(TCN_STDARGS, jlong
 }
 
 /* End of netty-tc-native add */
-#else
-/* OpenSSL is not supported.
- * Create empty stubs.
- */
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, make)(TCN_STDARGS, jlong pool,
-                                            jint protocol, jint mode)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(pool);
-    UNREFERENCED(protocol);
-    UNREFERENCED(mode);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLContext, free)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return APR_ENOTIMPL;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setContextId)(TCN_STDARGS, jlong ctx,
-                                                   jstring id)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(id);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setBIO)(TCN_STDARGS, jlong ctx,
-                                             jlong bio, jint dir)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(bio);
-    UNREFERENCED(dir);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setOptions)(TCN_STDARGS, jlong ctx,
-                                                 jint opt)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(opt);
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLContext, getOptions)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, clearOptions)(TCN_STDARGS, jlong ctx,
-                                                   jint opt)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(opt);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setQuietShutdown)(TCN_STDARGS, jlong ctx,
-                                                       jboolean mode)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(mode);
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCipherSuite)(TCN_STDARGS, jlong 
ctx,
-                                                         jstring ciphers)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(ciphers);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCARevocation)(TCN_STDARGS, jlong 
ctx,
-                                                          jstring file,
-                                                          jstring path)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(file);
-    UNREFERENCED(path);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCertificateChainFile)(TCN_STDARGS, 
jlong ctx,
-                                                                  jstring file,
-                                                                  jboolean 
skipfirst)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(file);
-    UNREFERENCED(skipfirst);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCACertificate)(TCN_STDARGS,
-                                                           jlong ctx,
-                                                           jstring file,
-                                                           jstring path)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(file);
-    UNREFERENCED(path);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setShutdownType)(TCN_STDARGS, jlong ctx,
-                                                      jint type)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(type);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setVerify)(TCN_STDARGS, jlong ctx,
-                                                jint level, jint depth)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(level);
-    UNREFERENCED(depth);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setRandom)(TCN_STDARGS, jlong ctx,
-                                                jstring file)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(file);
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCertificate)(TCN_STDARGS, jlong 
ctx,
-                                                         jstring cert, jstring 
key,
-                                                         jstring password, 
jint idx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(cert);
-    UNREFERENCED(key);
-    UNREFERENCED(password);
-    UNREFERENCED(idx);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setCertificateRaw)(TCN_STDARGS, jlong 
ctx,
-                                                         jbyteArray javaCert, 
jbyteArray javaKey,
-                                                         jint idx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(javaCert);
-    UNREFERENCED(javaKey);
-    UNREFERENCED(idx);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, addChainCertificateRaw)(TCN_STDARGS, 
jlong ctx,
-                                                                 jbyteArray 
javaCert)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(javaCert);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, 
addClientCACertificateRaw)(TCN_STDARGS, jlong ctx,
-                                                                    jbyteArray 
javaCert)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(javaCert);
-    return JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jint, SSLContext, setALPN)(TCN_STDARGS, jlong ctx,
-                                              jbyteArray buf, jint len)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(buf);
-    UNREFERENCED(len);
-    return APR_ENOTIMPL;
-}
-
-/* Start of netty-tc-native add */
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setNpnProtos)(TCN_STDARGS, jlong ctx, 
jobjectArray next_protos,
-        jint selectorFailureBehavior)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(next_protos);
-}
-
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setAlpnProtos)(TCN_STDARGS, jlong ctx, 
jobjectArray alpn_protos,
-        jint selectorFailureBehavior)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(alpn_protos);
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, setSessionCacheMode)(TCN_STDARGS, jlong 
ctx, jlong mode)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(mode);
-    return -1;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, getSessionCacheMode)(TCN_STDARGS, jlong 
ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return -1;
-}
-
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, setSessionCacheTimeout)(TCN_STDARGS, 
jlong ctx, jlong timeout)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(timeout);
-    return -1;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, getSessionCacheTimeout)(TCN_STDARGS, 
jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return -1;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, setSessionCacheSize)(TCN_STDARGS, jlong 
ctx, jlong size)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(size);
-    return -1;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, getSessionCacheSize)(TCN_STDARGS, jlong 
ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return -1;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionNumber)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionConnect)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionConnectGood)(TCN_STDARGS, jlong 
ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionConnectRenegotiate)(TCN_STDARGS, 
jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionAccept)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionAcceptGood)(TCN_STDARGS, jlong 
ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionAcceptRenegotiate)(TCN_STDARGS, 
jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionHits)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionCbHits)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionTimeouts)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionCacheFull)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(jlong, SSLContext, sessionMisses)(TCN_STDARGS, jlong ctx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    return 0;
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setSessionTicketKeys)(TCN_STDARGS, jlong 
ctx, jbyteArray keys)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(keys);
-}
-
-TCN_IMPLEMENT_CALL(void, SSLContext, setCertVerifyCallback)(TCN_STDARGS, jlong 
ctx, jobject verifier)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(verifier);
-}
-TCN_IMPLEMENT_CALL(jboolean, SSLContext, setSessionIdContext)(TCN_STDARGS, 
jlong ctx, jbyteArray sidCtx)
-{
-    UNREFERENCED_STDARGS;
-    UNREFERENCED(ctx);
-    UNREFERENCED(sidCtx);
-    return JNI_FALSE;
-}
-/* End of netty-tc-native add */
-
-#endif
diff --git a/native/src/sslutils.c b/native/src/sslutils.c
index 46898be03..580595249 100644
--- a/native/src/sslutils.c
+++ b/native/src/sslutils.c
@@ -19,7 +19,6 @@
 
 #include "tcn.h"
 
-#ifdef HAVE_OPENSSL
 #include "apr_poll.h"
 #include "ssl_private.h"
 
@@ -1126,4 +1125,3 @@ static int ssl_ocsp_request(X509 *cert, X509 *issuer, 
X509_STORE_CTX *ctx)
 }
 
 #endif /* HAVE_OCSP_STAPLING */
-#endif /* HAVE_OPENSSL  */
diff --git a/native/srclib/VERSIONS b/native/srclib/VERSIONS
index 32686396b..671153aa0 100644
--- a/native/srclib/VERSIONS
+++ b/native/srclib/VERSIONS
@@ -1,44 +1,11 @@
 The current minimum versions are:
-- OpenSSL 1.0.2 
-- APR 1.4.3
+- OpenSSL 3.0.0
+- APR 1.7.0
 
 The following version of the libraries are recommended:
 
 - APR 1.7.0 or later, http://apr.apache.org
-- OpenSSL 1.1.1o or later, http://www.openssl.org
+- OpenSSL 3.0.3 or later, http://www.openssl.org
 
 Older versions should also work but are not as thoroughly tested by the Tomcat
 Native team
-
-
-It is current anticipated that Tomcat Native releases will transition to 1.3.x
-after April 2021 when the minimum version will become OpenSSL 1.1.0 and
-APR 1.5.2.
-
-
-The minimum version of OpenSSL is driven by the version of OpenSSL used by
-downstream distributions.
-
-The current state of OpenSSL in Debian is:
-- OpenSSL 1.1.0l in Debian 9  (EOL end June 2022)
-- OpenSSL 1.1.1n in Debian 10 (EOL end June 2024)
-- OpenSSL 1.1.1n in Debian 11 (EOL end June 2026)
-
-And in Ubuntu:
-- OpenSSL 1.0.2g in Ubuntu 16.04 LTS (EOL in April 2021)
-- OpenSSL 1.1.1  in Ubuntu 18.04 LTS (EOL in April 2028)
-- OpenSSL 1.1.1f in Ubuntu 20.04 LTS (EOL in April 2030)
-- OpenSSL 3.0.2  in Ubuntu 22.04 LTS (EOL in April 2032)
-
-The minimum version of APR is driven by the version of APR used by
-downstream distributions.
-
-The current state of APR in Debian is:
-- APR 1.5.2 in Debian 9 (EOL in June 2022)
-- APR 1.6.5 in Debian 10
-
-And in Ubuntu:
-- APR 1.5.2 in Ubuntu 16.04 LTS (EOL in April 2021)
-- APR 1.6.3 in Ubuntu 18.04 LTS (EOL in April 2028)
-- APR 1.6.5 in Ubuntu 20.04 LTS (EOL in April 2030)
-- APR 1.7.0 in Ubuntu 22.04 LTS (EOL in April 2032)
diff --git a/native/tcnative.dsp b/native/tcnative.dsp
index 8a119678b..64755c341 100644
--- a/native/tcnative.dsp
+++ b/native/tcnative.dsp
@@ -43,7 +43,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MD /W3 /Zi /O2 /Oy- /D "WIN32" /D "NDEBUG" /D 
"_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D 
"APR_DECLARE_STATIC" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" 
/D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D 
HAVE_SSL_SET_STATE=1 /Fd"LibR\tcnative_src" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D 
"APR_DECLARE_STATIC" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" 
/D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D HAVE_SSL_SET_STATE=1 
/Fd"LibR\tcnative_src" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -69,7 +69,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D 
"_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W4 /GX /Zi /Od /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D 
"APR_DECLARE_STATIC" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" 
/D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D "HAVE_OPENSSL" /D 
HAVE_SSL_SET_STATE=1 /Fd"LibD\tcnative_src" /FD /c
+# ADD CPP /nologo /MDd /W4 /GX /Zi /Od /I "./include" /I 
"./srclib/apr/include" /I "./srclib/apr/include/arch/win32" /I 
"$(JAVA_HOME)/include" /I "$(JAVA_HOME)/include/win32" /I 
"./srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D 
"APR_DECLARE_STATIC" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" 
/D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /D HAVE_SSL_SET_STATE=1 
/Fd"LibD\tcnative_src" /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
diff --git a/xdocs/miscellaneous/changelog.xml 
b/xdocs/miscellaneous/changelog.xml
index 79305961b..b75237453 100644
--- a/xdocs/miscellaneous/changelog.xml
+++ b/xdocs/miscellaneous/changelog.xml
@@ -37,6 +37,10 @@
 </section>
 <section name="Changes in 2.0.0">
   <changelog>
+    <update>
+      Update the minimum required version of OpenSSL to 3.0.0 and make it a
+      madatory dependency. (markt)
+    </update>
   </changelog>
 </section>
 <section name="Changes in 1.2.x">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to