Am 12.06.26 um 11:49 schrieb Mark Thomas:
The key differences compared to 1.3.7 are:
- Windows binaries built with OpenSSL 3.0.21
- Fix post handshake authentication when using TLS 1.3
- Fix a small number of small memory leaks
The proposed release artifacts can be found at [1],
and the build was done using tag [2].
The Apache Tomcat Native 1.3.8 release is
[X] Stable, go ahead and release
[ ] Broken because of ...
+1 for release
- checked artefacts for completeness
- checked artefact gpg signatures and sha512 hashes
- compared source tarballs against git sources
- checked OpenSSL version in Windows binaries
- checked some consistencies against own jnirelease.sh results
- built it against OpenSSL 3.6.3, 3.5.7 and 3.0.21, each on the
Platforms SLES 12 and 15 and RHEL 7, 8, 9 and 10 (all x86_64). APR was
1.7.6. Not tried with OpenSSL 4.
- some build warnings, mostly but not all are OpenSSL deprecations; see
below A)
- tested via TC unit tests with tcnative/OpenSSL but only the SSL/TLS
related tests on the above platforms using yesterdays head of TC 11.0.x,
10.1.x and 9.0.x with latest patch levels of JDK 8, 11, 17, 21, 25, 26
and 27 (where applicable) from Adoptium Temurin, Amazon Corretto, Azul
Zulu, Oracle, RedHat and OpenJDK (only a few vendor-version combinations
were tested).
- Only few crashes, most of them for RHEL 10
- Permission in the source tarball fine
A) Compilation warnings
:::::::::::::::::::::::
Non-OpenSSL related:
os/unix/system.c: In function 'Java_org_apache_tomcat_jni_OS_syslog':
os/unix/system.c:437:18: warning: '%s' directive argument is null
[-Wformat-overflow=]
437 | syslog (id, "%s", J2S(msg));
| ^~
os/unix/system.c:437:18: warning: '%s' directive argument is null
[-Wformat-overflow=]
OpenSSL deprecations:
src/ssl.c: In function 'make_dh_params':
src/ssl.c:199:5: warning: 'DH_new' is deprecated: Since OpenSSL 3.0
[-Wdeprecated-declarations]
199 | DH *dh = DH_new();
| ^~
In file included from /path/to/openssl/include/openssl/dsa.h:31,
from /path/to/openssl/include/openssl/x509.h:39,
from /path/to/openssl/include/openssl/ssl.h:34,
from ./include/ssl_private.h:38,
from src/ssl.c:24:
/path/to/openssl/include/openssl/dh.h:210:27: note: declared here
210 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
| ^~~~~~
src/ssl.c:210:5: warning: 'DH_set0_pqg' is deprecated: Since OpenSSL 3.0
[-Wdeprecated-declarations]
210 | if (!p || !g || !DH_set0_pqg(dh, p, NULL, g)) {
| ^~
/path/to/openssl/include/openssl/dh.h:266:27: note: declared here
266 | OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM
*q, BIGNUM *g);
| ^~~~~~~~~~~
src/ssl.c:211:9: warning: 'DH_free' is deprecated: Since OpenSSL 3.0
[-Wdeprecated-declarations]
211 | DH_free(dh);
| ^~~~~~~
/path/to/openssl/include/openssl/dh.h:211:28: note: declared here
211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| ^~~~~~~
src/ssl.c: In function 'free_dh_params':
src/ssl.c:249:9: warning: 'DH_free' is deprecated: Since OpenSSL 3.0
[-Wdeprecated-declarations]
249 | DH_free(dhparams[n].dh);
| ^~~~~~~
/path/to/openssl/include/openssl/dh.h:211:28: note: declared here
211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| ^~~~~~~
src/ssl.c: In function 'ssl_init_cleanup':
src/ssl.c:318:9: warning: 'ENGINE_free' is deprecated: Since OpenSSL 3.0
[-Wdeprecated-declarations]
318 | ENGINE_free(tcn_ssl_engine);
| ^~~~~~~~~~~
In file included from ./include/ssl_private.h:56:
/path/to/openssl/include/openssl/engine.h:493:27: note: declared here
493 | OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e);
| ^~~~~~~~~~~
src/ssl.c: In function 'ssl_try_load_engine':
src/ssl.c:346:5: warning: 'ENGINE_by_id' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
346 | ENGINE *e = ENGINE_by_id("dynamic");
| ^~~~~~
/path/to/openssl/include/openssl/engine.h:336:31: note: declared here
336 | OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id);
| ^~~~~~~~~~~~
src/ssl.c:348:9: warning: 'ENGINE_ctrl_cmd_string' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
348 | if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine, 0)
| ^~
/path/to/openssl/include/openssl/engine.h:479:5: note: declared here
479 | int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name,
const char *arg,
| ^~~~~~~~~~~~~~~~~~~~~~
src/ssl.c:349:13: warning: 'ENGINE_ctrl_cmd_string' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
349 | || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)) {
| ^~
/path/to/openssl/include/openssl/engine.h:479:5: note: declared here
479 | int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name,
const char *arg,
| ^~~~~~~~~~~~~~~~~~~~~~
src/ssl.c:350:13: warning: 'ENGINE_free' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
350 | ENGINE_free(e);
| ^~~~~~~~~~~
/path/to/openssl/include/openssl/engine.h:493:27: note: declared here
493 | OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e);
| ^~~~~~~~~~~
src/ssl.c: In function 'Java_org_apache_tomcat_jni_SSL_initialize':
src/ssl.c:534:13: warning: 'ENGINE_register_all_complete' is deprecated:
Since OpenSSL 3.0 [-Wdeprecated-declarations]
534 | ENGINE_register_all_complete();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/engine.h:415:27: note: declared here
415 | OSSL_DEPRECATEDIN_3_0 int ENGINE_register_all_complete(void);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ssl.c:537:13: warning: 'ENGINE_by_id' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
537 | if ((ee = ENGINE_by_id(J2S(engine))) == NULL
| ^~
/path/to/openssl/include/openssl/engine.h:336:31: note: declared here
336 | OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id);
| ^~~~~~~~~~~~
src/ssl.c:543:21: warning: 'ENGINE_ctrl' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
543 | ENGINE_ctrl(ee,
ENGINE_CTRL_CHIL_SET_FORKCHECK, 1, 0, 0);
| ^~~~~~~~~~~
/path/to/openssl/include/openssl/engine.h:429:27: note: declared here
429 | OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl(ENGINE *e, int cmd, long
i, void *p,
| ^~~~~~~~~~~
src/ssl.c:545:17: warning: 'ENGINE_set_default' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
545 | if (!ENGINE_set_default(ee, ENGINE_METHOD_ALL))
| ^~
/path/to/openssl/include/openssl/engine.h:710:27: note: declared here
710 | OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default(ENGINE *e,
unsigned int flags);
| ^~~~~~~~~~~~~~~~~~
src/ssl.c: In function 'Java_org_apache_tomcat_jni_SSL_getTime':
src/ssl.c:1551:9: warning: 'SSL_SESSION_get_time' is deprecated: Since
OpenSSL 3.4;not Y2038-safe, replace with SSL_SESSION_get_time_ex()
[-Wdeprecated-declarations]
1551 | return SSL_get_time(session);
| ^~~~~~
/path/to/openssl/include/openssl/ssl.h:1759:13: note: declared here
1759 | __owur long SSL_SESSION_get_time(const SSL_SESSION *s);
| ^~~~~~~~~~~~~~~~~~~~
src/sslcontext.c: In function
'Java_org_apache_tomcat_jni_SSLContext_setTmpDH':
src/sslcontext.c:813:5: warning: 'PEM_read_bio_DHparams' is deprecated:
Since OpenSSL 3.0 [-Wdeprecated-declarations]
813 | dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
| ^~
In file included from /path/to/openssl/include/openssl/ssl.h:39,
from ./include/ssl_private.h:38,
from src/sslcontext.c:28:
/path/to/openssl/include/openssl/pem.h:76:11: note: declared here
76 | type *PEM_##readname##_##name(INTYPE *out, type **x, \
| ^~~~
/path/to/openssl/include/openssl/pem.h:274:10: note: in expansion of
macro 'PEM_read_cb_fnsig'
274 | attr PEM_read_cb_fnsig(name, type, BIO, read_bio);
| ^~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:338:5: note: in expansion of
macro 'DECLARE_PEM_read_bio_attr'
338 | DECLARE_PEM_read_bio_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:348:5: note: in expansion of
macro 'DECLARE_PEM_read_attr'
348 | DECLARE_PEM_read_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:479:1: note: in expansion of
macro 'DECLARE_PEM_rw_attr'
479 | DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH)
| ^~~~~~~~~~~~~~~~~~~
src/sslcontext.c:825:9: warning: 'DH_free' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
825 | DH_free(dh);
| ^~~~~~~
In file included from /path/to/openssl/include/openssl/dsa.h:31,
from /path/to/openssl/include/openssl/x509.h:39,
from /path/to/openssl/include/openssl/ssl.h:34:
/path/to/openssl/include/openssl/dh.h:211:28: note: declared here
211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| ^~~~~~~
src/sslcontext.c:832:5: warning: 'DH_free' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
832 | DH_free(dh);
| ^~~~~~~
/path/to/openssl/include/openssl/dh.h:211:28: note: declared here
211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| ^~~~~~~
src/sslcontext.c: In function
'Java_org_apache_tomcat_jni_SSLContext_setTmpECDHByCurveName':
src/sslcontext.c:856:5: warning: 'EC_KEY_new_by_curve_name' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
856 | ecdh = EC_KEY_new_by_curve_name(i);
| ^~~~
In file included from /path/to/openssl/include/openssl/x509.h:35:
/path/to/openssl/include/openssl/ec.h:1009:31: note: declared here
1009 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/sslcontext.c:866:9: warning: 'EC_KEY_free' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
866 | EC_KEY_free(ecdh);
| ^~~~~~~~~~~
/path/to/openssl/include/openssl/ec.h:1014:28: note: declared here
1014 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
src/sslcontext.c:872:5: warning: 'EC_KEY_free' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
872 | EC_KEY_free(ecdh);
| ^~~~~~~~~~~
/path/to/openssl/include/openssl/ec.h:1014:28: note: declared here
1014 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
src/sslcontext.c: In function
'Java_org_apache_tomcat_jni_SSLContext_setCertificate':
src/sslcontext.c:1090:17: warning: 'ENGINE_load_private_key' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
1090 | (c->keys[idx] =
ENGINE_load_private_key(tcn_ssl_engine, key_file,
| ^
In file included from ./include/ssl_private.h:56:
/path/to/openssl/include/openssl/engine.h:640:11: note: declared here
640 | EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
| ^~~~~~~~~~~~~~~~~~~~~~~
src/sslcontext.c:1135:9: warning: 'DH_free' is deprecated: Since OpenSSL
3.0 [-Wdeprecated-declarations]
1135 | DH_free(dhparams);
| ^~~~~~~
/path/to/openssl/include/openssl/dh.h:211:28: note: declared here
211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| ^~~~~~~
src/sslcontext.c:1146:9: warning: 'EC_KEY_new_by_curve_name' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
1146 | (eckey = EC_KEY_new_by_curve_name(nid))) {
| ^
/path/to/openssl/include/openssl/ec.h:1009:31: note: declared here
1009 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/sslcontext.c:1150:5: warning: 'EC_KEY_free' is deprecated: Since
OpenSSL 3.0 [-Wdeprecated-declarations]
1150 | EC_KEY_free(eckey);
| ^~~~~~~~~~~
/path/to/openssl/include/openssl/ec.h:1014:28: note: declared here
1014 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
src/sslcontext.c:1153:5: warning: 'SSL_CTX_set_tmp_dh_callback' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
1153 | SSL_CTX_set_tmp_dh_callback(c->ctx, SSL_callback_tmp_DH);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/ssl.h:2282:6: note: declared here
2282 | void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/sslcontext.c: In function
'Java_org_apache_tomcat_jni_SSLContext_setCertificateRaw':
src/sslcontext.c:1262:5: warning: 'SSL_CTX_set_tmp_dh_callback' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
1262 | SSL_CTX_set_tmp_dh_callback(c->ctx, SSL_callback_tmp_DH);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/ssl.h:2282:6: note: declared here
2282 | void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/sslutils.c: In function 'SSL_dh_GetParamFromFile':
src/sslutils.c:211:5: warning: 'PEM_read_bio_DHparams' is deprecated:
Since OpenSSL 3.0 [-Wdeprecated-declarations]
211 | dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
| ^~
In file included from /path/to/openssl/include/openssl/ssl.h:39,
from ./include/ssl_private.h:38,
from src/sslutils.c:24:
/path/to/openssl/include/openssl/pem.h:76:11: note: declared here
76 | type *PEM_##readname##_##name(INTYPE *out, type **x, \
| ^~~~
/path/to/openssl/include/openssl/pem.h:274:10: note: in expansion of
macro 'PEM_read_cb_fnsig'
274 | attr PEM_read_cb_fnsig(name, type, BIO, read_bio);
| ^~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:338:5: note: in expansion of
macro 'DECLARE_PEM_read_bio_attr'
338 | DECLARE_PEM_read_bio_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:348:5: note: in expansion of
macro 'DECLARE_PEM_read_attr'
348 | DECLARE_PEM_read_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:479:1: note: in expansion of
macro 'DECLARE_PEM_rw_attr'
479 | DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH)
| ^~~~~~~~~~~~~~~~~~~
src/sslutils.c: In function 'SSL_ec_GetParamFromFile':
src/sslutils.c:224:5: warning: 'PEM_read_bio_ECPKParameters' is
deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
224 | group = PEM_read_bio_ECPKParameters(bio, NULL, NULL, NULL);
| ^~~~~
/path/to/openssl/include/openssl/pem.h:76:11: note: declared here
76 | type *PEM_##readname##_##name(INTYPE *out, type **x, \
| ^~~~
/path/to/openssl/include/openssl/pem.h:274:10: note: in expansion of
macro 'PEM_read_cb_fnsig'
274 | attr PEM_read_cb_fnsig(name, type, BIO, read_bio);
| ^~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:338:5: note: in expansion of
macro 'DECLARE_PEM_read_bio_attr'
338 | DECLARE_PEM_read_bio_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:348:5: note: in expansion of
macro 'DECLARE_PEM_read_attr'
348 | DECLARE_PEM_read_attr(attr, name, type) \
| ^~~~~~~~~~~~~~~~~~~~~
/path/to/openssl/include/openssl/pem.h:471:1: note: in expansion of
macro 'DECLARE_PEM_rw_attr'
471 | DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters,
EC_GROUP)
| ^~~~~~~~~~~~~~~~~~~
Thanks for RM!
Best Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]