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

chibenwa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


The following commit(s) were added to refs/heads/master by this push:
     new 71e33d997f JAMES-4193 Correct boring ssl tls 1.3 cipher suite 
sanitizing that led to disabled tls 1.3 (#3029)
71e33d997f is described below

commit 71e33d997f4990bc0a415912a5b3bc83433fd10a
Author: Benoit TELLIER <[email protected]>
AuthorDate: Thu Apr 30 07:33:14 2026 +0200

    JAMES-4193 Correct boring ssl tls 1.3 cipher suite sanitizing that led to 
disabled tls 1.3 (#3029)
---
 .../org/apache/james/protocols/lib/TCNativeEncryptionFactory.java   | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/TCNativeEncryptionFactory.java
 
b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/TCNativeEncryptionFactory.java
index 87a60738e5..e14700eb56 100644
--- 
a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/TCNativeEncryptionFactory.java
+++ 
b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/TCNativeEncryptionFactory.java
@@ -32,6 +32,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import io.netty.buffer.ByteBufAllocator;
+import io.netty.handler.ssl.IdentityCipherSuiteFilter;
 import io.netty.handler.ssl.SslContext;
 import io.netty.handler.ssl.SslContextBuilder;
 import io.netty.handler.ssl.SslHandler;
@@ -86,7 +87,10 @@ public class TCNativeEncryptionFactory implements 
Encryption.Factory {
             .sslProvider(SslProvider.OPENSSL);
 
         if (conf.getEnabledCipherSuites() != null && 
conf.getEnabledCipherSuites().length > 0) {
-            builder.ciphers(Arrays.asList(conf.getEnabledCipherSuites()));
+            // IdentityCipherSuiteFilter bypasses SupportedCipherSuiteFilter 
which strips TLS 1.3
+            // ciphers because BoringSSL's getSupportedCipherSuites() doesn't 
enumerate them.
+            // Without this, Netty calls SSL_CTX_set_ciphersuites("") 
disabling TLS 1.3 entirely.
+            builder.ciphers(Arrays.asList(conf.getEnabledCipherSuites()), 
IdentityCipherSuiteFilter.INSTANCE);
         }
         if (conf.getEnabledProtocols() != null && 
conf.getEnabledProtocols().length > 0) {
             builder.protocols(conf.getEnabledProtocols());


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

Reply via email to