On 18/12/2025 12:58, Rainer Jung wrote:

I was analyzing it using 9.0.113 but I think I also saw it for 10.1.50. JVM was from various 1.8.0 vendor for TC 9 and at least adopt 11 for 10.1.50 (I then stopped testing).

Bingo. Now I know what is going on.

Those versions have a default value of ciphers of:
"HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA"

That doesn't include the default TLS 1.3 ciphers so when we run a test that uses only TLS 1.3 the new native code fails because no TLS 1.3 ciphers are set.

I was testing with 9.0.x etc where the default for ciphers is now:

"HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"

We need to figure out how to make this work for older versions.

I think we need to be able to differentiate between Tomcat <= 11.0.15, <= 10.1.50 and <= 9.0.113 configuring protocols="TLSv1.3" and the default ciphers that only includes TLSv1.2 ciphers (should use default ciphers for TLSv1.3) and newer versions of Tomcat that configure protocols="TLSv1.3" and an explicit ciphers value without any TLSv1.3 ciphers (should fail).

I think the only way to do this is with a new Tomcat Native method that sets cipher suites for TLS 1.2 and TLS 1.3. I think that is the only way to distinguish between these scenarios.

How about:

public static native boolean setCipherSuites(long ctx, String cipherSuites)

(note the extra "s" at the end of the method name)

with the old method deprecated?

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to