RFR: 8133816: Display extra SSLServerSocket info in debug mode
Xue-Lei Andrew Fan
xuelei at openjdk.org
Wed Aug 17 14:40:41 UTC 2022
On Wed, 3 Aug 2022 15:40:54 GMT, Weibing Xiao <duke at openjdk.org> wrote:
> Log the debugging info for server cipher suites when setting javax.net.debug == ssl, handshake.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 409:
> 407: if (shc.sslConfig.preferLocalCipherSuites) {
> 408: preferred = shc.activeCipherSuites;
> 409: proposed = clientHello.cipherSuites;
Instead of wrapping all information in one block, I may prefer to break down and place them in the close place where is happens.
I may dump the debug log here for cipher suite preference and server activated cipher suites.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 416:
> 414:
> 415: List<CipherSuite> legacySuites = new LinkedList<>();
> 416: boolean CSFound = false;
This variable may be not necessary if the debug log has been broken down into multiple place.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 420:
> 418: if (!HandshakeContext.isNegotiable(
> 419: proposed, shc.negotiatedProtocol, cs)) {
> 420: continue;
I may add a debug log that the cipher suite is not negotiable her for the protocol.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 438:
> 436:
> 437: if (ke == null) {
> 438: continue;
I may add a debug log here that the key exchange is not good for the cipher suite and protocol.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 447:
> 445: continue;
> 446: }
> 447:
I may not remove this blank line.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 449:
> 447: SSLPossession[] hcds = ke.createPossessions(shc);
> 448: if ((hcds == null) || (hcds.length == 0)) {
> 449: continue;
I may add a debug log here that the cipher suite is legacy.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 452:
> 450: SSLLogger.fine("use cipher suite " + cs.name);
> 451: }
> 452:
I may not remove this blank line.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 461:
> 459: SSLKeyExchange ke = SSLKeyExchange.valueOf(
> 460: cs.keyExchange, shc.negotiatedProtocol);
> 461:
I may not add this extra line.
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 472:
> 470:
> 471: throw shc.conContext.fatal(Alert.HANDSHAKE_FAILURE,
> 472: "no cipher suites in common");
As there are detailed negotiation debug log, I may just update this line from "no cipher suites in common" to "no cipher suites or key exchange algorithms in common"
src/java.base/share/classes/sun/security/ssl/ServerHello.java line 757:
> 755: if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
> 756: printServerSocketConfig(shc, null);
> 757: }
Similarly, I may break down the debug log closer to the actions.
-------------
PR: https://git.openjdk.org/jdk/pull/9731
More information about the security-dev
mailing list