Hi Neil,
Thanks for your interest in JEP 527.
On 8/20/26 12:57 PM, Neil Wilson wrote:
Hello,
I’m currently working on updating an LDAP directory server with
support for quantum-resistant encryption. This includes support for
TLS-secured connections, and I see that via JEP 527, JDK 27 includes
support for some quantum-resistant hybrid key exchange algorithms. And
because X25519MLKEM768 is being set as the highest-priority curve
group, this is a feature that should basically come for free when
communicating with peers that support that curve group.
However, I can’t seem to find any method that can be used to determine
which curve group was actually selected for a connection during the
TLS negotiation process. This information doesn’t seem to be available
in SSLSession, or anywhere else that I can find. When I run a test
client with -Djavax.net.debug=all, I can see the “named_group” field
in the debug output for the ServerHello message, but there just
doesn’t seem to be any way to gain programmatic access to that.
I think that it’s essential to be able to obtain the negotiated curve
group programmatically to be able to verify whether a given TLS
session is protected with quantum-resistant encryption. I’d like to be
able to log this along with other details like the negotiated TLS
protocol and cipher suite, and potentially to even be able to use this
information to make access control decisions, like only returning
certain sensitive information to clients if I can confirm if the
communication has been secured with quantum-resistant encryption.
Would it be possible to get a method like SSLSession.getNamedGroup()
to be able to determine which named group was selected in the course
of negotiating the session?
Yes, we are working on it. You can track progress in the enhancement :
https://bugs.openjdk.org/browse/JDK-8388519
You can also see the negotiated named group when using JFR. See
https://bugs.openjdk.org/browse/JDK-8386594. This is only in JDK 28
right now, but should eventually be backported to prior releases that
are planned to support TLS 1.3 Hybrid Key Exchange.
--Sean
Thanks!
Neil Wilson