You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/05/31 14:28:38 UTC

[tomcat-native] branch main updated (08a19997a -> 25196d38d)

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

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


    from 08a19997a Update from 1.2.x to 2.0.x
     new f7930fa16 Update OpenSSL to 3.0.0 and make it required
     new 25196d38d Minimum APR version is now 1.7.0

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 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/jnilib.c               |   6 +-
 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 |   7 +
 14 files changed, 109 insertions(+), 1009 deletions(-)


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


[tomcat-native] 02/02: Minimum APR version is now 1.7.0

Posted by ma...@apache.org.
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 25196d38d5bff5c5db8ae6d09e112dc5d3f26277
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed May 25 16:13:54 2022 +0100

    Minimum APR version is now 1.7.0
---
 native/src/jnilib.c               | 6 +++---
 xdocs/miscellaneous/changelog.xml | 3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/native/src/jnilib.c b/native/src/jnilib.c
index 32f5151dd..97284fb1c 100644
--- a/native/src/jnilib.c
+++ b/native/src/jnilib.c
@@ -70,12 +70,12 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
     tcn_global_vm = vm;
     env           = (JNIEnv *)ppe;
     /* Before doing anything else check if we have a valid
-     * APR version. We need version 1.4.3 as minimum.
+     * APR version. We need version 1.7.0 as minimum.
      */
     apr_version(&apv);
     apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
-    if (apvn < 1403) {
-        tcn_Throw(env, "Unsupported APR version %s: this tcnative requires at least 1.4.3",
+    if (apvn < 1700) {
+        tcn_Throw(env, "Unsupported APR version %s: this tcnative requires at least 1.7.0",
                   apr_version_string());
         return JNI_ERR;
     }
diff --git a/xdocs/miscellaneous/changelog.xml b/xdocs/miscellaneous/changelog.xml
index b75237453..3dc6e0461 100644
--- a/xdocs/miscellaneous/changelog.xml
+++ b/xdocs/miscellaneous/changelog.xml
@@ -41,6 +41,9 @@
       Update the minimum required version of OpenSSL to 3.0.0 and make it a
       madatory dependency. (markt)
     </update>
+    <update>
+      Update the minimum required version of APR to 1.7.0. (markt)
+    </update>
   </changelog>
 </section>
 <section name="Changes in 1.2.x">


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


[tomcat-native] 01/02: Update OpenSSL to 3.0.0 and make it required

Posted by ma...@apache.org.
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org