Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libtcnative-2-0 for openSUSE:Factory
checked in at 2026-04-07 16:35:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtcnative-2-0 (Old)
and /work/SRC/openSUSE:Factory/.libtcnative-2-0.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtcnative-2-0"
Tue Apr 7 16:35:02 2026 rev:2 rq:1344977 version:2.0.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/libtcnative-2-0/libtcnative-2-0.changes
2026-02-09 19:31:11.029788437 +0100
+++
/work/SRC/openSUSE:Factory/.libtcnative-2-0.new.21863/libtcnative-2-0.changes
2026-04-07 16:51:51.463864737 +0200
@@ -1,0 +2,49 @@
+Tue Apr 7 11:09:43 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to version 2.0.14
+ * Changes of 2.0.14
+ + Code: Refactor access to ASN1_OCTET_STRING to use setters to
+ fix errors when building against the latest OpenSSL 4.0.x code
+ + Fix: Fix the handling of OCSP requests with multiple responder
+ URIs
+ + Fix: Fix the handling of TRY_AGAIN responses to OCSP requests
+ when soft fail is disabled.
+ * Changes of 2.0.13
+ + Code: Due to various refactorings, the 2.0.x code no longer
+ compiles with LibreSSL. Without a volunteer to maintain
+ LibreSSL support, the LibreSSL code will be removed no earlier
+ than 30 September 2026
+ + Fix: Remove group write permissions from the files in the
+ tar.gz source archive
+ + Code: Refactor the SSL_CONF_CTX clean-up to align it with SSL
+ and SSL_CTX clean-up
+ + Fix: Fix unnecessarily large buffer allocation when filtering
+ out NULL and export ciphers. Pull requests #35 and #37
+ provided by chenjp
+ + Fix: Fix a potential memory leak if an invalid OpenSSLConf is
+ provided. Pull request #36 provided by chenjp. (markt)
+ + Fix: Refactor setting of OCSP configuration defaults as they
+ were only applied if the SSL_CONF_CTX was used. While one was
+ always used with Tomcat versions aware of the OCSP
+ configuration options, one was not always used with Tomcat
+ versions unaware of the OCSP configuration options leading to
+ OCSP verification being enabled by default when the expected
+ behaviour was disabled by default
+ + Code: Improve performance for the rare case of handling large
+ OCSP responses
+ + Fix: 69939: Fix the cause of a crash with OpenSSL 3.0.x when a
+ certificate PEM file does not contain explicit DH parameters
+ + Fix: Refactor extraction of ECDH curve name from the
+ Certificate to avoid deprecated OpenSSL methods.
+ + Fix: Refactor the native implementation of SSL.getTime() to
+ avoid the Y2038 problem in SSL_SESSION_get_time() when running
+ on a version of OpenSSL that includes the new
+ SSL_SESSION_get_time_ex() method.
+- Build against libopenssl-3-devel and not against the meta-package
+ libopenssl-devel. This allows buiding on distributions where the
+ openssl-3 exists, but is not default
+- Added patch:
+ * apr163.patch
+ + Allow building and running against libapr-1 1.6.3
+
+-------------------------------------------------------------------
Old:
----
tomcat-native-2.0.12-src.tar.gz
tomcat-native-2.0.12-src.tar.gz.asc
New:
----
apr163.patch
tomcat-native-2.0.14-src.tar.gz
tomcat-native-2.0.14-src.tar.gz.asc
----------(New B)----------
New:- Added patch:
* apr163.patch
+ Allow building and running against libapr-1 1.6.3
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libtcnative-2-0.spec ++++++
--- /var/tmp/diff_new_pack.MOcR7v/_old 2026-04-07 16:51:53.983969496 +0200
+++ /var/tmp/diff_new_pack.MOcR7v/_new 2026-04-07 16:51:53.995969998 +0200
@@ -18,24 +18,25 @@
%{!?make_build:%global make_build make %{?_smp_mflags}}
Name: libtcnative-2-0
-Version: 2.0.12
+Version: 2.0.14
Release: 0
Summary: Tomcat resources for performance, compatibility, etc
License: Apache-2.0
Group: Productivity/Networking/Web/Servers
URL: https://tomcat.apache.org/native-doc/index.html
-Source0:
https://www.apache.org/dist/tomcat/tomcat-connectors/native/%{version}/source/tomcat-native-%{version}-src.tar.gz
-Source1:
https://www.apache.org/dist/tomcat/tomcat-connectors/native/%{version}/source/tomcat-native-%{version}-src.tar.gz.asc
+Source0:
https://archive.apache.org/dist/tomcat/tomcat-connectors/native/%{version}/source/tomcat-native-%{version}-src.tar.gz
+Source1:
https://archive.apache.org/dist/tomcat/tomcat-connectors/native/%{version}/source/tomcat-native-%{version}-src.tar.gz.asc
# https://www.apache.org/dist/tomcat/tomcat-connectors/KEYS
Source2: %{name}.keyring
+Patch0: apr163.patch
BuildRequires: fdupes
BuildRequires: java-devel >= 11
-BuildRequires: libapr1-devel >= 1.7
-BuildRequires: libopenssl-devel >= 3.0.0
+BuildRequires: libapr1-devel >= 1.6.3
+BuildRequires: libopenssl-3-devel
BuildRequires: pkgconfig
Provides: tcnative = %{version}
Provides: tomcat-native = %{version}
-%if 0%{?suse_version} && 0%{?suse_version} < 1600
+%if 0%{?suse_version} < 1600 && 0%{?sle_version} < 150400
ExclusiveArch: do-not-build
%endif
@@ -49,8 +50,8 @@
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
Requires: glibc-devel
-Requires: libapr1-devel >= 1.7
-Requires: libopenssl-devel >= 3.0.0
+Requires: libapr1-devel >= 1.6.3
+Requires: libopenssl-3-devel
Conflicts: libtcnative-1-0-devel
%description devel
@@ -60,6 +61,7 @@
%prep
%setup -q -n tomcat-native-%{version}-src
+%patch -P 0 -p1
%build
cd native
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.MOcR7v/_old 2026-04-07 16:51:54.107974688 +0200
+++ /var/tmp/diff_new_pack.MOcR7v/_new 2026-04-07 16:51:54.139976028 +0200
@@ -1,6 +1,6 @@
-mtime: 1770639401
-commit: 3043c6b807106f2af12e065736de105dc0e1b6718d52f11e7cc9ff5a4038f105
+mtime: 1775560667
+commit: c3221c5bc176032471c21c7151adcafeeec88ba9ff30e9732e79725fb54cf804
url: https://src.opensuse.org/java-packages/libtcnative-2-0.git
-revision: 3043c6b807106f2af12e065736de105dc0e1b6718d52f11e7cc9ff5a4038f105
+revision: c3221c5bc176032471c21c7151adcafeeec88ba9ff30e9732e79725fb54cf804
projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
++++++ apr163.patch ++++++
--- tomcat-native-2.0.12-src/native/build/tcnative.m4 2026-04-07
12:40:54.611849110 +0200
+++ tomcat-native-2.0.12-src/native/build/tcnative.m4 2026-04-07
12:43:50.867607459 +0200
@@ -38,9 +38,9 @@
set $sapr_version
IFS=$tc_save_IFS
decimal_apr_version=`printf %02d%02d%03d ${1} ${2} ${3}`
- if test "${decimal_apr_version}" -lt "0107000"
+ if test "${decimal_apr_version}" -lt "0106003"
then
- AC_MSG_ERROR(Found APR $sapr_version. You need version 1.7.0 or newer
installed.)
+ AC_MSG_ERROR(Found APR $sapr_version. You need version 1.6.3 or newer
installed.)
fi
AC_MSG_NOTICE(APR $sapr_version detected.)
--- tomcat-native-2.0.12-src/native/configure 2026-04-07 12:40:54.610583326
+0200
+++ tomcat-native-2.0.12-src/native/configure 2026-04-07 12:43:33.856315133
+0200
@@ -12469,9 +12469,9 @@
set $sapr_version
IFS=$tc_save_IFS
decimal_apr_version=`printf %02d%02d%03d ${1} ${2} ${3}`
- if test "${decimal_apr_version}" -lt "0107000"
+ if test "${decimal_apr_version}" -lt "0106003"
then
- as_fn_error $? "Found APR $sapr_version. You need version 1.7.0 or newer
installed." "$LINENO" 5
+ as_fn_error $? "Found APR $sapr_version. You need version 1.6.3 or newer
installed." "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: APR $sapr_version detected."
>&5
printf "%s\n" "$as_me: APR $sapr_version detected." >&6;}
--- tomcat-native-2.0.12-src/native/src/jnilib.c 2026-04-07
12:40:54.608429654 +0200
+++ tomcat-native-2.0.12-src/native/src/jnilib.c 2026-04-07
12:44:21.004117648 +0200
@@ -66,8 +66,8 @@
*/
apr_version(&apv);
apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
- if (apvn < 1700) {
- tcn_Throw(env, "Unsupported APR version %s: this tcnative requires at
least 1.7.0",
+ if (apvn < 1603) {
+ tcn_Throw(env, "Unsupported APR version %s: this tcnative requires at
least 1.6.3",
apr_version_string());
return JNI_ERR;
}
++++++ build.specials.obscpio ++++++
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-04-07 13:18:29.000000000 +0200
@@ -0,0 +1 @@
+.osc
++++++ tomcat-native-2.0.12-src.tar.gz -> tomcat-native-2.0.14-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/CHANGELOG.txt
new/tomcat-native-2.0.14-src/CHANGELOG.txt
--- old/tomcat-native-2.0.12-src/CHANGELOG.txt 2026-01-06 19:07:33.000000000
+0100
+++ new/tomcat-native-2.0.14-src/CHANGELOG.txt 2026-03-06 15:06:03.000000000
+0100
@@ -3,20 +3,61 @@
This is the Changelog for Apache Tomcat Native 2.0.x. The Tomcat Native
2.0.x branch started from the 1.2.33 tag.
- Changes in 2.0.12
+ 2.0.14
+
+ * Code: Refactor access to ASN1_OCTET_STRING to use setters to fix
+ errors when building against the latest OpenSSL 4.0.x code. (markt)
+ * Fix: Fix the handling of OCSP requests with multiple responder URIs.
+ (jfclere)
+ * Fix: Fix the handling of TRY_AGAIN responses to OCSP requests when
+ soft fail is disabled. (jfclere)
+
+ 2026-02-11 2.0.13
+
+ * Code: Due to various refactorings, the 2.0.x code no longer compiles
+ with LibreSSL. Without a volunteer to maintain LibreSSL support, the
+ LibreSSL code will be removed no earlier than 30 September 2026.
+ (markt)
+ * Fix: Remove group write permissions from the files in the tar.gz
+ source archive. (markt)
+ * Code: Refactor the SSL_CONF_CTX clean-up to align it with SSL and
+ SSL_CTX clean-up. (markt)
+ * Fix: Fix unnecessarily large buffer allocation when filtering out NULL
+ and export ciphers. Pull requests #35 and #37 provided by chenjp.
+ (markt)
+ * Fix: Fix a potential memory leak if an invalid OpenSSLConf is
+ provided. Pull request #36 provided by chenjp. (markt)
+ * Fix: Refactor setting of OCSP configuration defaults as they were only
+ applied if the SSL_CONF_CTX was used. While one was always used with
+ Tomcat versions aware of the OCSP configuration options, one was not
+ always used with Tomcat versions unaware of the OCSP configuration
+ options leading to OCSP verification being enabled by default when the
+ expected behaviour was disabled by default. (markt)
+ * Code: Improve performance for the rare case of handling large OCSP
+ responses. (markt)
+ * Fix: 69939: Fix the cause of a crash with OpenSSL 3.0.x when a
+ certificate PEM file does not contain explicit DH parameters. (markt)
+ * Fix: Refactor extraction of ECDH curve name from the Certificate to
+ avoid deprecated OpenSSL methods.
+ * Fix: Refactor the native implementation of SSL.getTime() to avoid the
+ Y2038 problem in SSL_SESSION_get_time() when running on a version of
+ OpenSSL that includes the new SSL_SESSION_get_time_ex() method.
+ (markt)
+
+ 2026-01-12 2.0.12
* Fix: Refactor the addition of TLS 1.3 cipher suite configuration to
avoid a regression when running a version of Tomcat that pre-dates
this change. (markt)
- Changes in 2.0.11 (not released)
+ not released 2.0.11
* Fix: Fix a reference to an uninitialized variable. (schultz)
* Fix: Correct file names and update versions in native build
instructions. (markt)
* Update: Remove references to deprecated engine configuration. (markt)
- Changes in 2.0.10 (not released)
+ not released 2.0.10
* Update: The Windows binaries are now built with OCSP support enabled
by default. (markt)
@@ -36,7 +77,7 @@
* Update: Use automated configuration of DH parameters rather than
deprecated callback. (markt)
- Changes in 2.0.9
+ 2025-05-29 2.0.9
* Update: Update the Windows build environment to use Visual Studio
2022. (markt)
@@ -45,7 +86,7 @@
* Update: Update the recommended minimum version of APR to 1.7.6.
(markt)
- Changes in 2.0.8
+ 2024-07-24 2.0.8
* Fix: Fix a crash on Windows when SSLContext.setCACertificate() is
invoked with a null value for caCertificateFile and a non-null value
@@ -58,7 +99,7 @@
* Update: Update the recommended minimum version of OpenSSL to 3.0.14.
(markt)
- Changes in 2.0.7
+ 2024-02-08 2.0.7
* Add: 67538: Make use of Ant's <javaversion /> task to enforce the
mininum Java build version. (michaelo)
@@ -81,7 +122,7 @@
* Update: Update the recommended minimum version of OpenSSL to 3.0.13.
(markt)
- Changes in 2.0.6
+ 2023-10-02 2.0.6
* Fix: 67061: If the insecure optionalNoCA certificate verification mode
is used, disable OCSP if enabled else client certificates from unknown
@@ -89,7 +130,7 @@
* Update: Update the recommended minimum version of OpenSSL to 3.0.11.
(markt)
- Changes in 2.0.5
+ 2023-08-07 2.0.5
* Update: 66666: Remove non-reachable functions from ssl.c. (michaelo)
* Update: Align default pass phrase prompt with HTTPd. (michaelo)
@@ -104,32 +145,32 @@
* Update: Update the recommended minimum version of OpenSSL to 3.0.10.
(markt)
- Changes in 2.0.4
+ not released 2.0.4
* Update: Update the recommended minimum version of APR to 1.7.4.
(markt)
* Update: Update the recommended minimum version of OpenSSL to 3.0.9.
(markt)
- Changes in 2.0.3
+ 2023-02-13 2.0.3
* Update: Update the recommended minimum version of APR to 1.7.2.
(markt)
* Update: Update the recommended minimum version of OpenSSL to 3.0.8.
(markt)
- Changes in 2.0.2
+ 2022-11-08 2.0.2
* Update: Update the minimum supported version of LibreSSL to 3.5.2.
Based on pull request #13 provided by orbea. (markt)
* Fix: Fix build when building with rlibtool. Pull request #14 provided
by orbea. (markt)
- Changes in 2.0.1
+ 2022-07-12 2.0.1
* Update: Update recommended OpenSSL version to 3.0.5 or later. (markt)
- Changes in 2.0.0
+ not released 2.0.0
* Update: Update the minimum required version of OpenSSL to 3.0.0 and
make it a madatory dependency. (markt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/HOWTO-RELEASE.txt
new/tomcat-native-2.0.14-src/HOWTO-RELEASE.txt
--- old/tomcat-native-2.0.12-src/HOWTO-RELEASE.txt 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/HOWTO-RELEASE.txt 2026-03-06
15:04:25.000000000 +0100
@@ -58,6 +58,7 @@
# Edit files to remove / disable dev build flags
# - build.properties.default
# - tcn_version.h
+# - changelog.xml (clear rtext)
# Confirm the previous edits
git diff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/build.properties.default
new/tomcat-native-2.0.14-src/build.properties.default
--- old/tomcat-native-2.0.12-src/build.properties.default 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/build.properties.default 2026-03-06
15:04:25.000000000 +0100
@@ -18,7 +18,7 @@
# ----- Version Control Flags -----
version.major=2
version.minor=0
-version.build=12
+version.build=14
version.patch=0
version.suffix=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/index.html
new/tomcat-native-2.0.14-src/docs/index.html
--- old/tomcat-native-2.0.12-src/docs/index.html 2026-01-06
19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/index.html 2026-03-06
15:06:03.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="./images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="./images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Documentation
Index</title><meta name="author" content="Jean-Frederic
Clere"></head><body><div id="wrapper"><header><div id="header"><div><div><div
class="logo noPrint"><a href="https://tomcat.apache.org/"><img alt="Tomcat
Home" src="./images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="./images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library
2.0</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft" class="noprint"><div><nav><div><h2><strong>Links</stro
ng></h2><ul><li><a href="index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="miscellaneous/changelog.html">Changelog</a></li><li><a
href="miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="news/2024.html">2024</a></li><li><a
href="news/2023.html">2023</a></li><li><a
href="news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>Documentation Index</h2><h3
id="Introduction">Introduction</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="./images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="./images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Documentation
Index</title><meta name="author" content="Jean-Frederic
Clere"></head><body><div id="wrapper"><header><div id="header"><div><div><div
class="logo noPrint"><a href="https://tomcat.apache.org/"><img alt="Tomcat
Home" src="./images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="./images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library
2.0</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft" class="noprint"><div><nav><div><h2><strong>Links</stro
ng></h2><ul><li><a href="index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="miscellaneous/changelog.html">Changelog</a></li><li><a
href="miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="news/2026.html">2026</a></li><li><a
href="news/2025.html">2025</a></li><li><a
href="news/2024.html">2024</a></li><li><a
href="news/2023.html">2023</a></li><li><a
href="news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>Documentation Index</h2><h3
id="Introduction">Introduction</h3><div class="text">
<p>
The Apache Tomcat Native Library is an optional component for use with
@@ -10,10 +10,10 @@
</div><h3 id="Headlines">Headlines</h3><div class="text">
<ul>
-<li><a href="news/2025.html#20250529">29 May 2025 - <b>TC-Native-2.0.9
+<li><a href="news/2026.html#20260211">11 February 2026 -
<b>Tomcat-Native-2.0.13
released</b></a>
<p>The Apache Tomcat team is proud to announce the immediate availability of
-Tomcat Native 2.0.9 Stable.</p>
+Tomcat Native 2.0.13 Stable.</p>
<p>
The sources and the binaries for selected platforms are available from the
<a href="../download-native.cgi">Download page</a>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/docs/miscellaneous/changelog.html
new/tomcat-native-2.0.14-src/docs/miscellaneous/changelog.html
--- old/tomcat-native-2.0.12-src/docs/miscellaneous/changelog.html
2026-01-06 19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/miscellaneous/changelog.html
2026-03-06 15:06:02.000000000 +0100
@@ -1,10 +1,74 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Miscellaneous
Documentation - </title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
Miscellaneous Documentation</h1><div style="height: 1px;"></div><div
style="clear: left;"></div></div></div></div></header><div
id="middle"><div><div id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></
h2><ul><li><a href="../index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2></h2><h3 id="Preface">Preface</h3><div
class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Miscellaneous
Documentation - </title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
Miscellaneous Documentation</h1><div style="height: 1px;"></div><div
style="clear: left;"></div></div></div></div></header><div
id="middle"><div><div id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></
h2><ul><li><a href="../index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2></h2><h3 id="Preface">Preface</h3><div
class="text">
<p>
This is the Changelog for Apache Tomcat Native 2.0.x. The Tomcat Native 2.0.x
branch started from the 1.2.33 tag.
</p>
-</div><h3 id="Changes_in_2.0.12">Changes in 2.0.12</h3><div class="text">
+</div><h3 id="2.0.14"><span style="float: right;"></span> 2.0.14</h3><div
class="text">
+ <ul class="changelog">
+ <li><img alt="Code: " class="icon" src="../images/code.gif">
+ Refactor access to ASN1_OCTET_STRING to use setters to fix errors when
+ building against the latest OpenSSL 4.0.x code. (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Fix the handling of OCSP requests with multiple responder URIs. (jfclere)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Fix the handling of <code>TRY_AGAIN</code> responses to OCSP requests
when
+ soft fail is disabled. (jfclere)
+ </li>
+ </ul>
+</div><h3 id="2.0.13"><span style="float: right;">2026-02-11</span>
2.0.13</h3><div class="text">
+ <ul class="changelog">
+ <li><img alt="Code: " class="icon" src="../images/code.gif">
+ Due to various refactorings, the 2.0.x code no longer compiles with
+ LibreSSL. Without a volunteer to maintain LibreSSL support, the LibreSSL
+ code will be removed no earlier than 30 September 2026. (markt)</li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Remove group write permissions from the files in the tar.gz source
+ archive. (markt)
+ </li>
+ <li><img alt="Code: " class="icon" src="../images/code.gif">
+ Refactor the SSL_CONF_CTX clean-up to align it with SSL and SSL_CTX
+ clean-up. (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Fix unnecessarily large buffer allocation when filtering out NULL and
+ export ciphers. Pull requests <a
href="https://github.com/apache/tomcat-native/pull/35">#35</a> and <a
href="https://github.com/apache/tomcat-native/pull/37">#37</a> provided by
+ chenjp. (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Fix a potential memory leak if an invalid <code>OpenSSLConf</code> is
+ provided. Pull request <a
href="https://github.com/apache/tomcat-native/pull/36">#36</a> provided by
chenjp. (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Refactor setting of OCSP configuration defaults as they were only applied
+ if the SSL_CONF_CTX was used. While one was always used with Tomcat
+ versions aware of the OCSP configuration options, one was not always used
+ with Tomcat versions unaware of the OCSP configuration options leading to
+ OCSP verification being enabled by default when the expected behaviour
was
+ disabled by default. (markt)
+ </li>
+ <li><img alt="Code: " class="icon" src="../images/code.gif">
+ Improve performance for the rare case of handling large OCSP responses.
+ (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ <a
href="https://bz.apache.org/bugzilla/show_bug.cgi?id=69939">69939</a>: Fix the
cause of a crash with OpenSSL 3.0.x when a
+ certificate PEM file does not contain explicit DH parameters. (markt)
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Refactor extraction of ECDH curve name from the Certificate to avoid
+ deprecated OpenSSL methods.
+ </li>
+ <li><img alt="Fix: " class="icon" src="../images/fix.gif">
+ Refactor the native implementation of <code>SSL.getTime()</code> to avoid
+ the Y2038 problem in <code>SSL_SESSION_get_time()</code> when running on
a
+ version of OpenSSL that includes the new
+ <code>SSL_SESSION_get_time_ex()</code> method. (markt)
+ </li>
+ </ul>
+</div><h3 id="2.0.12"><span style="float: right;">2026-01-12</span>
2.0.12</h3><div class="text">
<ul class="changelog">
<li><img alt="Fix: " class="icon" src="../images/fix.gif">
Refactor the addition of TLS 1.3 cipher suite configuration to avoid a
@@ -12,7 +76,7 @@
(markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.11_(not_released)">Changes in 2.0.11 (not
released)</h3><div class="text">
+</div><h3 id="2.0.11"><span style="float: right;">not released</span>
2.0.11</h3><div class="text">
<ul class="changelog">
<li><img alt="Fix: " class="icon" src="../images/fix.gif">
Fix a reference to an uninitialized variable. (schultz)
@@ -25,7 +89,7 @@
Remove references to deprecated engine configuration. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.10_(not_released)">Changes in 2.0.10 (not
released)</h3><div class="text">
+</div><h3 id="2.0.10"><span style="float: right;">not released</span>
2.0.10</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
The Windows binaries are now built with OCSP support enabled by default.
@@ -63,7 +127,7 @@
callback. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.9">Changes in 2.0.9</h3><div class="text">
+</div><h3 id="2.0.9"><span style="float: right;">2025-05-29</span>
2.0.9</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update the Windows build environment to use Visual Studio 2022. (markt)
@@ -75,7 +139,7 @@
Update the recommended minimum version of APR to 1.7.6. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.8">Changes in 2.0.8</h3><div class="text">
+</div><h3 id="2.0.8"><span style="float: right;">2024-07-24</span>
2.0.8</h3><div class="text">
<ul class="changelog">
<li><img alt="Fix: " class="icon" src="../images/fix.gif">
Fix a crash on Windows when <code>SSLContext.setCACertificate()</code>
@@ -96,7 +160,7 @@
Update the recommended minimum version of OpenSSL to 3.0.14. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.7">Changes in 2.0.7</h3><div class="text">
+</div><h3 id="2.0.7"><span style="float: right;">2024-02-08</span>
2.0.7</h3><div class="text">
<ul class="changelog">
<li><img alt="Add: " class="icon" src="../images/add.gif">
<a
href="https://bz.apache.org/bugzilla/show_bug.cgi?id=67538">67538</a>: Make use
of Ant's <code><javaversion /></code>
@@ -135,7 +199,7 @@
Update the recommended minimum version of OpenSSL to 3.0.13. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.6">Changes in 2.0.6</h3><div class="text">
+</div><h3 id="2.0.6"><span style="float: right;">2023-10-02</span>
2.0.6</h3><div class="text">
<ul class="changelog">
<li><img alt="Fix: " class="icon" src="../images/fix.gif">
<a
href="https://bz.apache.org/bugzilla/show_bug.cgi?id=67061">67061</a>: If the
insecure optionalNoCA certificate verification
@@ -146,7 +210,7 @@
Update the recommended minimum version of OpenSSL to 3.0.11. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.5">Changes in 2.0.5</h3><div class="text">
+</div><h3 id="2.0.5"><span style="float: right;">2023-08-07</span>
2.0.5</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
<a
href="https://bz.apache.org/bugzilla/show_bug.cgi?id=66666">66666</a>: Remove
non-reachable functions from ssl.c. (michaelo)
@@ -173,7 +237,7 @@
Update the recommended minimum version of OpenSSL to 3.0.10. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.4">Changes in 2.0.4</h3><div class="text">
+</div><h3 id="2.0.4"><span style="float: right;">not released</span>
2.0.4</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update the recommended minimum version of APR to 1.7.4. (markt)
@@ -182,7 +246,7 @@
Update the recommended minimum version of OpenSSL to 3.0.9. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.3">Changes in 2.0.3</h3><div class="text">
+</div><h3 id="2.0.3"><span style="float: right;">2023-02-13</span>
2.0.3</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update the recommended minimum version of APR to 1.7.2. (markt)
@@ -191,7 +255,7 @@
Update the recommended minimum version of OpenSSL to 3.0.8. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.2">Changes in 2.0.2</h3><div class="text">
+</div><h3 id="2.0.2"><span style="float: right;">2022-11-08</span>
2.0.2</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update the minimum supported version of LibreSSL to 3.5.2. Based on pull
@@ -202,13 +266,13 @@
by orbea. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.1">Changes in 2.0.1</h3><div class="text">
+</div><h3 id="2.0.1"><span style="float: right;">2022-07-12</span>
2.0.1</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update recommended OpenSSL version to 3.0.5 or later. (markt)
</li>
</ul>
-</div><h3 id="Changes_in_2.0.0">Changes in 2.0.0</h3><div class="text">
+</div><h3 id="2.0.0"><span style="float: right;">not released</span>
2.0.0</h3><div class="text">
<ul class="changelog">
<li><img alt="Update: " class="icon" src="../images/update.gif">
Update the minimum required version of OpenSSL to 3.0.0 and make it a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/docs/miscellaneous/tls-renegotiation.html
new/tomcat-native-2.0.14-src/docs/miscellaneous/tls-renegotiation.html
--- old/tomcat-native-2.0.12-src/docs/miscellaneous/tls-renegotiation.html
2026-01-06 19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/miscellaneous/tls-renegotiation.html
2026-03-06 15:06:02.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Miscellaneous
Documentation - </title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
Miscellaneous Documentation</h1><div style="height: 1px;"></div><div
style="clear: left;"></div></div></div></div></header><div
id="middle"><div><div id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></
h2><ul><li><a href="../index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2></h2><h3
id="Introduction">Introduction</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - Miscellaneous
Documentation - </title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
Miscellaneous Documentation</h1><div style="height: 1px;"></div><div
style="clear: left;"></div></div></div></div></header><div
id="middle"><div><div id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></
h2><ul><li><a href="../index.html">Docs
Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2></h2><h3
id="Introduction">Introduction</h3><div class="text">
<p>
Historically there have been security issues associated with TLS
renegotiation. This page describes the renegotiation behaviour of the Tomcat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/news/2022.html
new/tomcat-native-2.0.14-src/docs/news/2022.html
--- old/tomcat-native-2.0.12-src/docs/news/2022.html 2026-01-06
19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/news/2022.html 2026-03-06
15:06:03.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2022 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2022 News and Status</h2><h3
id="2022_News_&_Status">2022 News & Status</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2022 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2022 News and Status</h2><h3
id="2022_News_&_Status">2022 News & Status</h3><div class="text">
<div class="subsection"><h4 id="20220811">11 November 2022 -
TC-Native-2.0.2 released</h4><div class="text">
<p>The Apache Tomcat team is proud to announce the immediate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/news/2023.html
new/tomcat-native-2.0.14-src/docs/news/2023.html
--- old/tomcat-native-2.0.12-src/docs/news/2023.html 2026-01-06
19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/news/2023.html 2026-03-06
15:06:03.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2023 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2023 News and Status</h2><h3
id="2023_News_&_Status">2023 News & Status</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2023 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2023 News and Status</h2><h3
id="2023_News_&_Status">2023 News & Status</h3><div class="text">
<div class="subsection"><h4 id="20231002">2 October 2023 -
TC-Native-2.0.6 released</h4><div class="text">
<p>The Apache Tomcat team is proud to announce the immediate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/news/2024.html
new/tomcat-native-2.0.14-src/docs/news/2024.html
--- old/tomcat-native-2.0.12-src/docs/news/2024.html 2026-01-06
19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/news/2024.html 2026-03-06
15:06:03.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2024 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2024 News and Status</h2><h3
id="2024_News_&_Status">2024 News & Status</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2024 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2024 News and Status</h2><h3
id="2024_News_&_Status">2024 News & Status</h3><div class="text">
<div class="subsection"><h4 id="202400727">27 July 2024 -
TC-Native-2.0.8 released</h4><div class="text">
<p>The Apache Tomcat team is proud to announce the immediate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/news/2025.html
new/tomcat-native-2.0.14-src/docs/news/2025.html
--- old/tomcat-native-2.0.12-src/docs/news/2025.html 2026-01-06
19:07:33.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/news/2025.html 2026-03-06
15:06:03.000000000 +0100
@@ -1,5 +1,5 @@
<!DOCTYPE html SYSTEM "about:legacy-compat">
-<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2025 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2025 News and Status</h2><h3
id="2025_News_&_Status">2025 News & Status</h3><div class="text">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2025 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2025 News and Status</h2><h3
id="2025_News_&_Status">2025 News & Status</h3><div class="text">
<div class="subsection"><h4 id="20250529">29 May 2025 - TC-Native-2.0.9
released</h4><div class="text">
<p>The Apache Tomcat team is proud to announce the immediate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/docs/news/2026.html
new/tomcat-native-2.0.14-src/docs/news/2026.html
--- old/tomcat-native-2.0.12-src/docs/news/2026.html 1970-01-01
01:00:00.000000000 +0100
+++ new/tomcat-native-2.0.14-src/docs/news/2026.html 2026-03-06
15:06:03.000000000 +0100
@@ -0,0 +1,16 @@
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html;
charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet"
type="text/css"><link href="../images/style.css" rel="stylesheet"
type="text/css"><title>The Apache Tomcat Native Library 2.0 - News - 2026 News
and Status</title></head><body><div id="wrapper"><header><div
id="header"><div><div><div class="logo noPrint"><a
href="https://tomcat.apache.org/"><img alt="Tomcat Home"
src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div
class="asfLogo noPrint"><a href="http://www.apache.org/" target="_blank"><img
src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width:
266px; height: 83px;"></a></div><h1>The Apache Tomcat Native Library 2.0 -
News</h1><div style="height: 1px;"></div><div style="clear:
left;"></div></div></div></div></header><div id="middle"><div><div
id="mainLeft"
class="noprint"><div><nav><div><h2><strong>Links</strong></h2><ul><li><a
href="../ind
ex.html">Docs Home</a></li></ul></div><div><h2><strong>Miscellaneous
Documentation</strong></h2><ul><li><a
href="../miscellaneous/changelog.html">Changelog</a></li><li><a
href="../miscellaneous/tls-renegotiation.html">TLS
renegotiation</a></li></ul></div><div><h2><strong>News</strong></h2><ul><li><a
href="../news/2026.html">2026</a></li><li><a
href="../news/2025.html">2025</a></li><li><a
href="../news/2024.html">2024</a></li><li><a
href="../news/2023.html">2023</a></li><li><a
href="../news/2022.html">2022</a></li></ul></div></nav></div></div><div
id="mainRight"><div id="content"><h2>2026 News and Status</h2><h3
id="2026_News_&_Status">2026 News & Status</h3><div class="text">
+
+ <div class="subsection"><h4 id="20260211">11 February 2026 -
Tomcat-Native-2.0.13 released</h4><div class="text">
+ <p>The Apache Tomcat team is proud to announce the immediate
+ availability of Tomcat Native 2.0.13.</p>
+ </div></div>
+
+ <div class="subsection"><h4 id="20260112">12 January 2026 -
Tomcat-Native-2.0.12 released</h4><div class="text">
+ <p>The Apache Tomcat team is proud to announce the immediate
+ availability of Tomcat Native 2.0.12.</p>
+ </div></div>
+
+ </div></div></div></div></div><footer><div id="footer">
+ Copyright © 2008-2026, The Apache Software Foundation
+ </div></footer></div></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/java/org/apache/tomcat/jni/SSLConf.java
new/tomcat-native-2.0.14-src/java/org/apache/tomcat/jni/SSLConf.java
--- old/tomcat-native-2.0.12-src/java/org/apache/tomcat/jni/SSLConf.java
2026-01-06 19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/java/org/apache/tomcat/jni/SSLConf.java
2026-03-06 15:04:25.000000000 +0100
@@ -53,7 +53,11 @@
public static native void free(long cctx);
/**
- * Check a command with an SSL_CONF context.
+ * Optionally used to check a command with an SSL_CONF context.
+ * <p>
+ * This call is also used to pass Tomcat specific settings to Tomcat
Native. It must be called for for each Tomcat
+ * specific setting (e.g. {@link
org.apache.tomcat.util.net.openssl.OpenSSLConfCmd#NO_OCSP_CHECK}) before {@link
+ * #assign(long, long)} is called.
*
* @param cctx SSL_CONF context to use.
* @param name command name.
@@ -71,6 +75,10 @@
/**
* Assign an SSL context to an SSL_CONF context. All following calls to
{@link #apply(long, String, String)} will be
* applied to this SSL context.
+ * <p>
+ * For Tomcat specific settings this call applies previous settings set
via calls to {@link
+ * #check(long, String, String)}. Further calls to {@link #check(long,
String, String)} after a call to this method
+ * will have no effect.
*
* @param cctx SSL_CONF context to use.
* @param ctx SSL context to assign to the given SSL_CONF context.
@@ -82,6 +90,8 @@
/**
* Apply a command to an SSL_CONF context.
+ * <p>
+ * This call has no effect for Tomcat specific settings.
*
* @param cctx SSL_CONF context to use.
* @param name command name.
@@ -97,6 +107,8 @@
/**
* Finish commands for an SSL_CONF context.
+ * <p>
+ * This call has no effect for Tomcat specific settings.
*
* @param cctx SSL_CONF context to use.
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/jnirelease.sh
new/tomcat-native-2.0.14-src/jnirelease.sh
--- old/tomcat-native-2.0.12-src/jnirelease.sh 2026-01-06 19:06:49.000000000
+0100
+++ new/tomcat-native-2.0.14-src/jnirelease.sh 2026-03-06 15:04:25.000000000
+0100
@@ -256,6 +256,9 @@
./buildconf --with-apr=$apr_src_dir || exit 1
cd "$top"
+# Remove write permissions from all but the owner
+chmod -R go-w ${JKJNIDIST}
+
# Create source distribution
tar -cf - ${JKJNIDIST} | gzip -c9 > ${JKJNIDIST}.tar.gz || exit 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/native/include/ssl_private.h
new/tomcat-native-2.0.14-src/native/include/ssl_private.h
--- old/tomcat-native-2.0.12-src/native/include/ssl_private.h 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/include/ssl_private.h 2026-03-06
15:04:25.000000000 +0100
@@ -49,6 +49,7 @@
#ifndef LIBRESSL_VERSION_NUMBER
#include <openssl/provider.h>
#endif
+#include <openssl/core_names.h>
#ifndef RAND_MAX
#include <limits.h>
@@ -378,7 +379,7 @@
DH *SSL_get_dh_params(unsigned keylen);
EVP_PKEY *SSL_dh_GetParamFromFile(const char *);
#ifdef HAVE_ECC
-EC_GROUP *SSL_ec_GetParamFromFile(const char *);
+int SSL_ec_GetParamFromFile(const char *);
#endif
DH *SSL_callback_tmp_DH(SSL *, int, int);
void SSL_callback_handshake(const SSL *, int, int);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/native/include/tcn_version.h
new/tomcat-native-2.0.14-src/native/include/tcn_version.h
--- old/tomcat-native-2.0.12-src/native/include/tcn_version.h 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/include/tcn_version.h 2026-03-06
15:04:25.000000000 +0100
@@ -63,7 +63,7 @@
#define TCN_MINOR_VERSION 0
/** patch level */
-#define TCN_PATCH_VERSION 12
+#define TCN_PATCH_VERSION 14
/**
* This symbol is defined for internal, "development" copies of TCN. This
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/native/os/win32/libtcnative.rc
new/tomcat-native-2.0.14-src/native/os/win32/libtcnative.rc
--- old/tomcat-native-2.0.12-src/native/os/win32/libtcnative.rc 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/os/win32/libtcnative.rc 2026-03-06
15:04:25.000000000 +0100
@@ -19,7 +19,7 @@
"See the License for the specific language governing " \
"permissions and limitations under the License."
-#define TCN_VERSION "2.0.12"
+#define TCN_VERSION "2.0.14"
1000 ICON "apache.ico"
1001 DIALOGEX 0, 0, 252, 51
@@ -35,8 +35,8 @@
END
1 VERSIONINFO
- FILEVERSION 2,0,12,0
- PRODUCTVERSION 2,0,12,0
+ FILEVERSION 2,0,14,0
+ PRODUCTVERSION 2,0,14,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/src/jnilib.c
new/tomcat-native-2.0.14-src/native/src/jnilib.c
--- old/tomcat-native-2.0.12-src/native/src/jnilib.c 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/src/jnilib.c 2026-03-06
15:04:25.000000000 +0100
@@ -452,7 +452,7 @@
return 0;
}
-apr_pool_t *tcn_get_global_pool()
+apr_pool_t *tcn_get_global_pool(void)
{
if (!tcn_global_pool) {
if (apr_pool_create(&tcn_global_pool, NULL) != APR_SUCCESS) {
@@ -463,12 +463,12 @@
return tcn_global_pool;
}
-jclass tcn_get_string_class()
+jclass tcn_get_string_class(void)
{
return jString_class;
}
-JavaVM * tcn_get_java_vm()
+JavaVM * tcn_get_java_vm(void)
{
return tcn_global_vm;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/src/ssl.c
new/tomcat-native-2.0.14-src/native/src/ssl.c
--- old/tomcat-native-2.0.12-src/native/src/ssl.c 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/src/ssl.c 2026-03-06
15:04:25.000000000 +0100
@@ -990,7 +990,11 @@
session = SSL_get_session(ssl_);
if (session) {
- return SSL_get_time(session);
+#if (OPENSSL_VERSION_NUMBER > 0x302FFFFFL)
+ return SSL_SESSION_get_time_ex(session);
+#else
+ return SSL_SESSION_get_time(session);
+#endif
} else {
tcn_ThrowException(e, "ssl session is null");
return 0;
@@ -1148,7 +1152,7 @@
* no matter what was given in the config.
*/
len = strlen(J2S(cipherList)) + strlen(SSL_CIPHERS_ALWAYS_DISABLED) + 1;
- buf = malloc(len * sizeof(char *));
+ buf = malloc(len * sizeof(char));
if (buf == NULL) {
rv = JNI_FALSE;
goto free_cipherList;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/src/sslconf.c
new/tomcat-native-2.0.14-src/native/src/sslconf.c
--- old/tomcat-native-2.0.12-src/native/src/sslconf.c 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/src/sslconf.c 2026-03-06
15:04:25.000000000 +0100
@@ -113,12 +113,29 @@
c->cctx = cctx;
c->pool = p;
- /* OCSP defaults */
+ /*
+ * Some Tomcat Native specific settings are also set via this
representation
+ * of the SSL_CONF_CTX. This process is a little bit hacky. The expected
+ * call sequence is:
+ * - SSLConf.make() - create SSL_CONF_CTX and the associated Tomcat Native
+ * object
+ * - SSLConf.check() - MUST be called for each Tomcat specific setting that
+ * needs to be configured. May be called for OpenSSL settings in which
+ * case the setting will be validated.
+ * - SSLConf.assign() - this actually *applies* the Tomcat Native specific
+ * configuration to Tomcat Native as well as linking the SSL_CONF_CTX
+ * object with the SSL_CTX object.
+ * - SSLConf.apply() - called for each OpenSSL setting. Any Tomcat specific
+ * settings used here will be ignored.
+ * - SSLConf.finish() - MUST be called to complete the OpenSSL setting
+ * process.
+ */
+ /* Initialise Tomcat Native specific OCSP defaults */
c->no_ocsp_check = OCSP_NO_CHECK_DEFAULT;
c->ocsp_soft_fail = OCSP_SOFT_FAIL_DEFAULT;
c->ocsp_timeout = OCSP_TIMEOUT_DEFAULT;
c->ocsp_verify_flags = OCSP_VERIFY_FLAGS_DEFAULT;
-
+
/*
* Let us cleanup the SSL_CONF context when the pool is destroyed
*/
@@ -135,11 +152,7 @@
tcn_ssl_conf_ctxt_t *c = J2P(cctx, tcn_ssl_conf_ctxt_t *);
UNREFERENCED_STDARGS;
TCN_ASSERT(c != 0);
- if (c->cctx != NULL) {
- SSL_CONF_CTX_free(c->cctx);
- c->cctx = NULL;
- c->pool = NULL;
- }
+ apr_pool_cleanup_run(c->pool, c, ssl_ctx_config_cleanup);
}
/* Check a command for an SSL_CONF context */
@@ -157,16 +170,20 @@
TCN_ASSERT(c->cctx != 0);
if (!J2S(cmd)) {
tcn_Throw(e, "Can not check null SSL_CONF command");
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
+ /*
+ * Although this is the check method, this sets the Tomcat specific
+ * settings.
+ */
if (!strcmp(J2S(cmd), "NO_OCSP_CHECK")) {
if (!strcasecmp(J2S(value), "false"))
c->no_ocsp_check = 0;
else
c->no_ocsp_check = 1;
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_SOFT_FAIL")) {
@@ -174,9 +191,8 @@
c->ocsp_soft_fail = 0;
else
c->ocsp_soft_fail = 1;
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_TIMEOUT")) {
@@ -187,9 +203,8 @@
// Tomcat configures timeout is millisecond. APR uses microseconds.
c->ocsp_timeout = i * 1000;
}
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_VERIFY_FLAGS")) {
@@ -199,9 +214,8 @@
if (!errno) {
c->ocsp_verify_flags = i;
}
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ rc = 1;
+ goto cleanup;
}
SSL_ERR_clear();
@@ -211,35 +225,42 @@
char err[TCN_OPENSSL_ERROR_STRING_LENGTH];
ERR_error_string_n(ec, err, TCN_OPENSSL_ERROR_STRING_LENGTH);
tcn_Throw(e, "Could not determine SSL_CONF command type for '%s'
(%s)", J2S(cmd), err);
- return 0;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
if (value_type == SSL_CONF_TYPE_UNKNOWN) {
tcn_Throw(e, "Invalid SSL_CONF command '%s', type unknown", J2S(cmd));
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
if (value_type == SSL_CONF_TYPE_FILE) {
if (!J2S(value)) {
tcn_Throw(e, "SSL_CONF command '%s' needs a non-empty file
argument", J2S(cmd));
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
if (check_file(c->pool, J2S(value))) {
tcn_Throw(e, "SSL_CONF command '%s' file '%s' does not exist or is
empty", J2S(cmd), J2S(value));
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
}
else if (value_type == SSL_CONF_TYPE_DIR) {
if (!J2S(value)) {
tcn_Throw(e, "SSL_CONF command '%s' needs a non-empty directory
argument", J2S(cmd));
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
if (check_dir(c->pool, J2S(value))) {
tcn_Throw(e, "SSL_CONF command '%s' directory '%s' does not
exist", J2S(cmd), J2S(value));
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
}
+cleanup:
TCN_FREE_CSTRING(cmd);
TCN_FREE_CSTRING(value);
return rc;
@@ -281,7 +302,8 @@
TCN_ASSERT(c->cctx != 0);
if (!J2S(cmd)) {
tcn_Throw(e, "Can not apply null SSL_CONF command");
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
#ifndef HAVE_EXPORT_CIPHERS
if (!strcmp(J2S(cmd), "CipherString")) {
@@ -290,10 +312,11 @@
* no matter what was given in the config.
*/
len = strlen(J2S(value)) + strlen(SSL_CIPHERS_ALWAYS_DISABLED) + 1;
- buf = malloc(len * sizeof(char *));
+ buf = malloc(len * sizeof(char));
if (buf == NULL) {
tcn_Throw(e, "Could not allocate memory to adjust cipher string");
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
memcpy(buf, SSL_CIPHERS_ALWAYS_DISABLED,
strlen(SSL_CIPHERS_ALWAYS_DISABLED));
memcpy(buf + strlen(SSL_CIPHERS_ALWAYS_DISABLED), J2S(value),
strlen(J2S(value)));
@@ -301,45 +324,36 @@
}
#endif
if (!strcmp(J2S(cmd), "NO_OCSP_CHECK")) {
- if (!strcasecmp(J2S(value), "false"))
- c->no_ocsp_check = 0;
- else
- c->no_ocsp_check = 1;
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ /*
+ * Skip as this is a Tomcat specific setting that will have been set
+ * when check() was called.
+ */
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_SOFT_FAIL")) {
- if (!strcasecmp(J2S(value), "false"))
- c->ocsp_soft_fail = 0;
- else
- c->ocsp_soft_fail = 1;
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ /*
+ * Skip as this is a Tomcat specific setting that will have been set
+ * when check() was called.
+ */
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_TIMEOUT")) {
- int i;
- errno = 0;
- i = (int) strtol(J2S(value), NULL, 10);
- if (!errno) {
- // Tomcat configures timeout is millisecond. APR uses microseconds.
- c->ocsp_timeout = i * 1000;
- }
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ /*
+ * Skip as this is a Tomcat specific setting that will have been set
+ * when check() was called.
+ */
+ rc = 1;
+ goto cleanup;
}
if (!strcmp(J2S(cmd), "OCSP_VERIFY_FLAGS")) {
- int i;
- errno = 0;
- i = (int) strtol(J2S(value), NULL, 10);
- if (!errno) {
- c->ocsp_verify_flags = i;
- }
- TCN_FREE_CSTRING(cmd);
- TCN_FREE_CSTRING(value);
- return 1;
+ /*
+ * Skip as this is a Tomcat specific setting that will have been set
+ * when check() was called.
+ */
+ rc = 1;
+ goto cleanup;
}
SSL_ERR_clear();
rc = SSL_CONF_cmd(c->cctx, J2S(cmd), buf != NULL ? buf : J2S(value));
@@ -352,8 +366,11 @@
} else {
tcn_Throw(e, "Could not apply SSL_CONF command '%s' with value
'%s'", J2S(cmd), buf != NULL ? buf : J2S(value));
}
- return SSL_THROW_RETURN;
+ rc = SSL_THROW_RETURN;
+ goto cleanup;
}
+
+cleanup:
#ifndef HAVE_EXPORT_CIPHERS
if (buf != NULL) {
free(buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/src/sslcontext.c
new/tomcat-native-2.0.14-src/native/src/sslcontext.c
--- old/tomcat-native-2.0.12-src/native/src/sslcontext.c 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/src/sslcontext.c 2026-03-06
15:04:25.000000000 +0100
@@ -414,6 +414,12 @@
stringClass = (jclass) (*e)->NewGlobalRef(e, sClazz);
}
+ /* Configure OCSP defaults here in case there is no SSL_CONF_CTX used. */
+ c->no_ocsp_check = OCSP_NO_CHECK_DEFAULT;
+ c->ocsp_soft_fail = OCSP_SOFT_FAIL_DEFAULT;
+ c->ocsp_timeout = OCSP_TIMEOUT_DEFAULT;
+ c->ocsp_verify_flags = OCSP_VERIFY_FLAGS_DEFAULT;
+
return P2J(c);
init_failed:
return 0;
@@ -541,7 +547,7 @@
* no matter what was given in the config.
*/
len = strlen(J2S(cipherList)) + strlen(SSL_CIPHERS_ALWAYS_DISABLED) + 1;
- buf = malloc(len * sizeof(char *));
+ buf = malloc(len * sizeof(char));
if (buf == NULL) {
rv = JNI_FALSE;
goto free_cipherList;
@@ -946,9 +952,7 @@
const char *p;
char err[TCN_OPENSSL_ERROR_STRING_LENGTH];
#ifdef HAVE_ECC
- EC_GROUP *ecparams = NULL;
int nid;
- EC_KEY *eckey = NULL;
#endif
EVP_PKEY *evp;
@@ -1026,8 +1030,9 @@
/* XXX Does this also work for pkcs12 or only for PEM files?
* If only for PEM files move above to the PEM handling */
if ((idx == 0) && (evp = SSL_dh_GetParamFromFile(cert_file))) {
- SSL_CTX_set0_tmp_dh_pkey(c->ctx, evp);
- EVP_PKEY_free(evp);
+ if (!SSL_CTX_set0_tmp_dh_pkey(c->ctx, evp)) {
+ EVP_PKEY_free(evp);
+ }
}
#ifdef HAVE_ECC
@@ -1036,14 +1041,10 @@
*/
/* XXX Does this also work for pkcs12 or only for PEM files?
* If only for PEM files move above to the PEM handling */
- if ((ecparams = SSL_ec_GetParamFromFile(cert_file)) &&
- (nid = EC_GROUP_get_curve_name(ecparams)) &&
- (eckey = EC_KEY_new_by_curve_name(nid))) {
- SSL_CTX_set_tmp_ecdh(c->ctx, eckey);
- }
- /* OpenSSL assures us that _free() is NULL-safe */
- EC_KEY_free(eckey);
- EC_GROUP_free(ecparams);
+ nid = SSL_ec_GetParamFromFile(cert_file);
+ if (nid != NID_undef) {
+ SSL_CTX_set1_groups(c->ctx, &nid, 1);
+ }
#endif
SSL_CTX_set_dh_auto(c->ctx, 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/src/sslutils.c
new/tomcat-native-2.0.14-src/native/src/sslutils.c
--- old/tomcat-native-2.0.12-src/native/src/sslutils.c 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/src/sslutils.c 2026-03-06
15:04:25.000000000 +0100
@@ -190,7 +190,7 @@
return NULL;
evp = PEM_read_bio_Parameters_ex(bio, NULL, NULL, NULL);
BIO_free(bio);
- if (!EVP_PKEY_is_a(evp, "DH")) {
+ if (evp && !EVP_PKEY_is_a(evp, "DH")) {
EVP_PKEY_free(evp);
return NULL;
}
@@ -198,16 +198,41 @@
}
#ifdef HAVE_ECC
-EC_GROUP *SSL_ec_GetParamFromFile(const char *file)
+int SSL_ec_GetParamFromFile(const char *file)
{
- EC_GROUP *group = NULL;
+ EVP_PKEY *evp = NULL;
BIO *bio;
+ char curve_name[80];
if ((bio = BIO_new_file(file, "r")) == NULL)
- return NULL;
- group = PEM_read_bio_ECPKParameters(bio, NULL, NULL, NULL);
+ return NID_undef;
+ evp = PEM_read_bio_Parameters_ex(bio, NULL, NULL, NULL);
BIO_free(bio);
- return (group);
+ if (evp && !EVP_PKEY_is_a(evp, "EC")) {
+ EVP_PKEY_free(evp);
+ return NID_undef;
+ }
+
+ OSSL_PARAM param[] = {
+ OSSL_PARAM_construct_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME,
curve_name, sizeof(curve_name)),
+ OSSL_PARAM_construct_end()
+ };
+
+ /* Query the curve name from the EVP_PKEY params object */
+ if (EVP_PKEY_get_params(evp, param) <= 0) {
+ EVP_PKEY_free(evp);
+ return NID_undef; /* Failed to retrieve the curve name */
+ }
+
+ /* Convert the curve name to the NID */
+ int nid = OBJ_sn2nid(curve_name);
+ if (nid == NID_undef) {
+ /* If the short name didn't resolve, try the long name */
+ nid = OBJ_ln2nid(curve_name);
+ }
+
+ EVP_PKEY_free(evp);
+ return nid; /* Returns the curve's NID, or NID_undef on failure */
}
#endif
@@ -591,7 +616,7 @@
if (!err) {
new_nocsp_urls = *nocsp_urls+1;
- if ((new_ocsp_urls = apr_xrealloc(*ocsp_urls,*nocsp_urls,
new_nocsp_urls, p)) == NULL)
+ if ((new_ocsp_urls = apr_xrealloc(*ocsp_urls, *nocsp_urls *
sizeof(char *), new_nocsp_urls * sizeof(char *), p)) == NULL)
err = 1;
}
if (!err) {
@@ -663,23 +688,25 @@
/* the main function that gets the ASN1 encoding string and returns
a pointer to a NULL terminated "array" of char *, that contains
the ocsp_urls */
-static char **decode_OCSP_url(ASN1_OCTET_STRING *os, apr_pool_t *p)
+static char **decode_OCSP_url(ASN1_OCTET_STRING *os, int *numofresponses,
apr_pool_t *p)
{
char **response = NULL;
unsigned char *ocsp_urls;
- int len, numofresponses = 0 ;
+ int len;
+
+ *numofresponses = 0 ;
len = ASN1_STRING_length(os);
- ocsp_urls = apr_palloc(p, len + 1);
- memcpy(ocsp_urls,os->data, len);
+ ocsp_urls = apr_palloc(p, len + 1);
+ memcpy(ocsp_urls, ASN1_STRING_get0_data(os), len);
ocsp_urls[len] = '\0';
if ((response = apr_pcalloc(p, sizeof(char *))) == NULL) {
return NULL;
}
- if (parse_ASN1_Sequence(ocsp_urls, &response, &numofresponses, p) ||
- numofresponses ==0) {
+ if (parse_ASN1_Sequence(ocsp_urls, &response, numofresponses, p) ||
+ *numofresponses ==0) {
response = NULL;
}
return response;
@@ -866,19 +893,20 @@
/* Reads the response from the APR socket to a buffer, and parses the buffer to
return the OCSP response */
-#define ADDLEN 512
+#define BUFFER_SIZE 512
+#define OCSP_MAX_RESPONSE_SIZE 65536
static OCSP_RESPONSE *ocsp_get_resp(apr_pool_t *mp, apr_socket_t *sock)
{
int buflen;
apr_size_t totalread = 0;
apr_size_t readlen;
- char *buf, tmpbuf[ADDLEN];
+ char *buf, tmpbuf[BUFFER_SIZE];
apr_status_t rv = APR_SUCCESS;
apr_pool_t *p;
OCSP_RESPONSE *resp;
apr_pool_create(&p, mp);
- buflen = ADDLEN;
+ buflen = BUFFER_SIZE;
buf = apr_palloc(p, buflen);
if (buf == NULL) {
apr_pool_destroy(p);
@@ -889,13 +917,16 @@
readlen = sizeof(tmpbuf);
rv = apr_socket_recv(sock, tmpbuf, &readlen);
if (rv == APR_SUCCESS) { /* if we have read something .. we can put it
in the buffer*/
- if ((totalread + readlen) >= buflen) {
- buf = apr_xrealloc(buf, buflen, buflen + ADDLEN, p);
+ if ((totalread + readlen) > OCSP_MAX_RESPONSE_SIZE) {
+ apr_pool_destroy(p);
+ return NULL;
+ } else if ((totalread + readlen) >= buflen) {
+ buf = apr_xrealloc(buf, buflen, buflen * 2, p);
if (buf == NULL) {
apr_pool_destroy(p);
return NULL;
}
- buflen += ADDLEN; /* if needed we enlarge the buffer */
+ buflen *= 2; /* if needed we enlarge the buffer */
}
memcpy(buf + totalread, tmpbuf, readlen); /* the copy to the
buffer */
totalread += readlen; /* update the total bytes read */
@@ -911,7 +942,7 @@
}
}
- resp = parse_ocsp_resp(buf, buflen);
+ resp = parse_ocsp_resp(buf, totalread);
apr_pool_destroy(p);
return resp;
}
@@ -1001,7 +1032,7 @@
OCSP_CERTID *certid;
ASN1_GENERALIZEDTIME *thisupd;
ASN1_GENERALIZEDTIME *nextupd;
- STACK_OF(X509) *certStack;
+ const STACK_OF(X509) *certStack;
r = OCSP_response_status(ocsp_resp);
@@ -1017,7 +1048,8 @@
}
certStack = OCSP_resp_get0_certs(bs);
- if (OCSP_basic_verify(bs, certStack, X509_STORE_CTX_get0_store(ctx),
verifyFlags) <= 0) {
+ // Cast to non-const pointer is OK here since OCSP_basic_verify does not
modify the provided certs
+ if (OCSP_basic_verify(bs, (STACK_OF(X509) *)certStack,
X509_STORE_CTX_get0_store(ctx), verifyFlags) <= 0) {
X509_STORE_CTX_set_error(ctx, X509_V_ERR_OCSP_SIGNATURE_FAILURE);
o = OCSP_STATUS_UNKNOWN;
goto clean_bs;
@@ -1060,7 +1092,7 @@
static int ssl_ocsp_request(X509 *cert, X509 *issuer, X509_STORE_CTX *ctx, int
timeout, int verifyFlags)
{
char **ocsp_urls = NULL;
- int nid;
+ int nid, numofresponses;
int rv = OCSP_STATUS_UNKNOWN;
X509_EXTENSION *ext;
ASN1_OCTET_STRING *os;
@@ -1074,36 +1106,47 @@
ext = X509_get_ext(cert,nid);
os = X509_EXTENSION_get_data(ext);
- ocsp_urls = decode_OCSP_url(os, p);
+ ocsp_urls = decode_OCSP_url(os, &numofresponses, p);
}
-
/* if we find the extensions and we can parse it check
the ocsp status. Otherwise, return OCSP_STATUS_UNKNOWN */
- if (ocsp_urls != NULL) {
+ if (ocsp_urls != NULL && numofresponses > 0) {
OCSP_REQUEST *req;
OCSP_RESPONSE *resp = NULL;
- /* for the time being just check for the fist response .. a better
- approach is to iterate for all the possible ocsp urls */
+ int i;
+
req = get_ocsp_request(cert, issuer);
- if (req != NULL) {
- resp = get_ocsp_response(p, ocsp_urls[0], req, timeout);
- if (resp != NULL) {
- rv = process_ocsp_response(req, resp, cert, issuer, ctx,
verifyFlags);
- } else {
- /* Unable to send request / receive response. */
- X509_STORE_CTX_set_error(ctx, X509_V_ERR_UNABLE_TO_GET_CRL);
- }
- } else {
+ if (req == NULL) {
/* correct error code for application errors? */
X509_STORE_CTX_set_error(ctx, X509_V_ERR_APPLICATION_VERIFICATION);
- }
+ } else {
+ /* Iterate through all the possible OCSP URLs until we get a
definitive response */
+ for (i = 0; i < numofresponses; i++) {
+ if (ocsp_urls[i] == NULL) {
+ continue;
+ }
- if (req != NULL) {
- OCSP_REQUEST_free(req);
- }
+ resp = get_ocsp_response(p, ocsp_urls[i], req, timeout);
+ if (resp != NULL) {
+ rv = process_ocsp_response(req, resp, cert, issuer, ctx,
verifyFlags);
+ OCSP_RESPONSE_free(resp);
+ resp = NULL;
+
+ /* If we got a definitive answer (OK or REVOKED), stop
trying */
+ if (rv == OCSP_STATUS_OK || rv == OCSP_STATUS_REVOKED) {
+ break;
+ }
+ /* Otherwise (UNKNOWN), try the next URL */
+ }
+ }
- if (resp != NULL) {
- OCSP_RESPONSE_free(resp);
+ /* If all URLs failed to respond or returned UNKNOWN */
+ if (rv == OCSP_STATUS_UNKNOWN) {
+ /* Unable to send request / receive response from any URL. */
+ X509_STORE_CTX_set_error(ctx, X509_V_ERR_UNABLE_TO_GET_CRL);
+ }
+
+ OCSP_REQUEST_free(req);
}
}
apr_pool_destroy(p);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/srclib/VERSIONS
new/tomcat-native-2.0.14-src/native/srclib/VERSIONS
--- old/tomcat-native-2.0.12-src/native/srclib/VERSIONS 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/srclib/VERSIONS 2026-03-06
15:04:25.000000000 +0100
@@ -5,7 +5,7 @@
The following version of the libraries are recommended:
- APR 1.7.6 or later, http://apr.apache.org
-- OpenSSL 3.5.4 or later, http://www.openssl.org
+- OpenSSL 3.5.5 or later, http://www.openssl.org
Older versions should also work but are not as thoroughly tested by the Tomcat
Native team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/native/tcnative.spec
new/tomcat-native-2.0.14-src/native/tcnative.spec
--- old/tomcat-native-2.0.12-src/native/tcnative.spec 2026-01-06
19:07:36.000000000 +0100
+++ new/tomcat-native-2.0.14-src/native/tcnative.spec 2026-03-06
15:06:06.000000000 +0100
@@ -21,7 +21,7 @@
Summary: Tomcat Native Java library
Name: tcnative
-Version: 2.0.12
+Version: 2.0.14
Release: 1
License: Apache Software License
Group: System Environment/Libraries
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/xdocs/index.xml
new/tomcat-native-2.0.14-src/xdocs/index.xml
--- old/tomcat-native-2.0.12-src/xdocs/index.xml 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/index.xml 2026-03-06
15:04:25.000000000 +0100
@@ -42,10 +42,10 @@
<section name="Headlines">
<ul>
-<li><a href="news/2025.html#20250529">29 May 2025 - <b>TC-Native-2.0.9
+<li><a href="news/2026.html#20260211">11 February 2026 -
<b>Tomcat-Native-2.0.13
released</b></a>
<p>The Apache Tomcat team is proud to announce the immediate availability of
-Tomcat Native 2.0.9 Stable.</p>
+Tomcat Native 2.0.13 Stable.</p>
<p>
The sources and the binaries for selected platforms are available from the
<a href="../download-native.cgi">Download page</a>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/xdocs/miscellaneous/changelog.xml
new/tomcat-native-2.0.14-src/xdocs/miscellaneous/changelog.xml
--- old/tomcat-native-2.0.12-src/xdocs/miscellaneous/changelog.xml
2026-01-06 19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/miscellaneous/changelog.xml
2026-03-06 15:04:25.000000000 +0100
@@ -31,7 +31,73 @@
branch started from the 1.2.33 tag.
</p>
</section>
-<section name="Changes in 2.0.12">
+<section name="2.0.14" rtext="">
+ <changelog>
+ <scode>
+ Refactor access to ASN1_OCTET_STRING to use setters to fix errors when
+ building against the latest OpenSSL 4.0.x code. (markt)
+ </scode>
+ <fix>
+ Fix the handling of OCSP requests with multiple responder URIs. (jfclere)
+ </fix>
+ <fix>
+ Fix the handling of <code>TRY_AGAIN</code> responses to OCSP requests
when
+ soft fail is disabled. (jfclere)
+ </fix>
+ </changelog>
+</section>
+<section name="2.0.13" rtext="2026-02-11">
+ <changelog>
+ <scode>
+ Due to various refactorings, the 2.0.x code no longer compiles with
+ LibreSSL. Without a volunteer to maintain LibreSSL support, the LibreSSL
+ code will be removed no earlier than 30 September 2026. (markt)</scode>
+ <fix>
+ Remove group write permissions from the files in the tar.gz source
+ archive. (markt)
+ </fix>
+ <scode>
+ Refactor the SSL_CONF_CTX clean-up to align it with SSL and SSL_CTX
+ clean-up. (markt)
+ </scode>
+ <fix>
+ Fix unnecessarily large buffer allocation when filtering out NULL and
+ export ciphers. Pull requests <pr>35</pr> and <pr>37</pr> provided by
+ chenjp. (markt)
+ </fix>
+ <fix>
+ Fix a potential memory leak if an invalid <code>OpenSSLConf</code> is
+ provided. Pull request <pr>36</pr> provided by chenjp. (markt)
+ </fix>
+ <fix>
+ Refactor setting of OCSP configuration defaults as they were only applied
+ if the SSL_CONF_CTX was used. While one was always used with Tomcat
+ versions aware of the OCSP configuration options, one was not always used
+ with Tomcat versions unaware of the OCSP configuration options leading to
+ OCSP verification being enabled by default when the expected behaviour
was
+ disabled by default. (markt)
+ </fix>
+ <scode>
+ Improve performance for the rare case of handling large OCSP responses.
+ (markt)
+ </scode>
+ <fix>
+ <bug>69939</bug>: Fix the cause of a crash with OpenSSL 3.0.x when a
+ certificate PEM file does not contain explicit DH parameters. (markt)
+ </fix>
+ <fix>
+ Refactor extraction of ECDH curve name from the Certificate to avoid
+ deprecated OpenSSL methods.
+ </fix>
+ <fix>
+ Refactor the native implementation of <code>SSL.getTime()</code> to avoid
+ the Y2038 problem in <code>SSL_SESSION_get_time()</code> when running on
a
+ version of OpenSSL that includes the new
+ <code>SSL_SESSION_get_time_ex()</code> method. (markt)
+ </fix>
+ </changelog>
+</section>
+<section name="2.0.12" rtext="2026-01-12">
<changelog>
<fix>
Refactor the addition of TLS 1.3 cipher suite configuration to avoid a
@@ -40,7 +106,7 @@
</fix>
</changelog>
</section>
-<section name="Changes in 2.0.11 (not released)">
+<section name="2.0.11" rtext="not released">
<changelog>
<fix>
Fix a reference to an uninitialized variable. (schultz)
@@ -54,7 +120,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.10 (not released)">
+<section name="2.0.10" rtext="not released">
<changelog>
<update>
The Windows binaries are now built with OCSP support enabled by default.
@@ -93,7 +159,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.9">
+<section name="2.0.9" rtext="2025-05-29">
<changelog>
<update>
Update the Windows build environment to use Visual Studio 2022. (markt)
@@ -106,7 +172,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.8">
+<section name="2.0.8" rtext="2024-07-24">
<changelog>
<fix>
Fix a crash on Windows when <code>SSLContext.setCACertificate()</code>
@@ -128,7 +194,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.7">
+<section name="2.0.7" rtext="2024-02-08">
<changelog>
<add>
<bug>67538</bug>: Make use of Ant's <code><javaversion /></code>
@@ -168,7 +234,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.6">
+<section name="2.0.6" rtext="2023-10-02">
<changelog>
<fix>
<bug>67061</bug>: If the insecure optionalNoCA certificate verification
@@ -180,7 +246,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.5">
+<section name="2.0.5" rtext="2023-08-07">
<changelog>
<update>
<bug>66666</bug>: Remove non-reachable functions from ssl.c. (michaelo)
@@ -208,7 +274,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.4">
+<section name="2.0.4" rtext="not released">
<changelog>
<update>
Update the recommended minimum version of APR to 1.7.4. (markt)
@@ -218,7 +284,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.3">
+<section name="2.0.3" rtext="2023-02-13">
<changelog>
<update>
Update the recommended minimum version of APR to 1.7.2. (markt)
@@ -228,7 +294,7 @@
</update>
</changelog>
</section>
-<section name="Changes in 2.0.2">
+<section name="2.0.2" rtext="2022-11-08">
<changelog>
<update>
Update the minimum supported version of LibreSSL to 3.5.2. Based on pull
@@ -241,14 +307,14 @@
</changelog>
</section>
-<section name="Changes in 2.0.1">
+<section name="2.0.1" rtext="2022-07-12">
<changelog>
<update>
Update recommended OpenSSL version to 3.0.5 or later. (markt)
</update>
</changelog>
</section>
-<section name="Changes in 2.0.0">
+<section name="2.0.0" rtext="not released">
<changelog>
<update>
Update the minimum required version of OpenSSL to 3.0.0 and make it a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/tomcat-native-2.0.12-src/xdocs/miscellaneous/project.xml
new/tomcat-native-2.0.14-src/xdocs/miscellaneous/project.xml
--- old/tomcat-native-2.0.12-src/xdocs/miscellaneous/project.xml
2026-01-06 19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/miscellaneous/project.xml
2026-03-06 15:04:25.000000000 +0100
@@ -35,6 +35,8 @@
</menu>
<menu name="News">
+ <item name="2026" href="../news/2026.html"/>
+ <item name="2025" href="../news/2025.html"/>
<item name="2024" href="../news/2024.html"/>
<item name="2023" href="../news/2023.html"/>
<item name="2022" href="../news/2022.html"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/xdocs/news/2026.xml
new/tomcat-native-2.0.14-src/xdocs/news/2026.xml
--- old/tomcat-native-2.0.12-src/xdocs/news/2026.xml 1970-01-01
01:00:00.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/news/2026.xml 2026-03-06
15:04:25.000000000 +0100
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE document [
+ <!ENTITY project SYSTEM "project.xml">
+]>
+<document url="2026.html">
+
+ &project;
+
+ <properties>
+ <title>2026 News and Status</title>
+ </properties>
+
+ <body>
+
+ <section name="2026 News & Status">
+
+ <subsection anchor="20260211" name="11 February 2026 -
Tomcat-Native-2.0.13 released">
+ <p>The Apache Tomcat team is proud to announce the immediate
+ availability of Tomcat Native 2.0.13.</p>
+ </subsection>
+
+ <subsection anchor="20260112" name="12 January 2026 -
Tomcat-Native-2.0.12 released">
+ <p>The Apache Tomcat team is proud to announce the immediate
+ availability of Tomcat Native 2.0.12.</p>
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/xdocs/news/project.xml
new/tomcat-native-2.0.14-src/xdocs/news/project.xml
--- old/tomcat-native-2.0.12-src/xdocs/news/project.xml 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/news/project.xml 2026-03-06
15:04:25.000000000 +0100
@@ -35,6 +35,7 @@
</menu>
<menu name="News">
+ <item name="2026" href="../news/2026.html"/>
<item name="2025" href="../news/2025.html"/>
<item name="2024" href="../news/2024.html"/>
<item name="2023" href="../news/2023.html"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/tomcat-native-2.0.12-src/xdocs/project.xml
new/tomcat-native-2.0.14-src/xdocs/project.xml
--- old/tomcat-native-2.0.12-src/xdocs/project.xml 2026-01-06
19:06:49.000000000 +0100
+++ new/tomcat-native-2.0.14-src/xdocs/project.xml 2026-03-06
15:04:25.000000000 +0100
@@ -35,6 +35,8 @@
</menu>
<menu name="News">
+ <item name="2026" href="news/2026.html"/>
+ <item name="2025" href="news/2025.html"/>
<item name="2024" href="news/2024.html"/>
<item name="2023" href="news/2023.html"/>
<item name="2022" href="news/2022.html"/>