<div dir="ltr">Hello,<div><br></div><div>with the Java 7u76 update the default security setting is, that SSL3 is banned.</div><div><br></div><div>At first I thought, this would reflect in enabled and supported protocols, however the list of supported protocols still contain SSL3 and I can also enable SSL3 and this is reflected on the getEnabledProtocols():</div><div><br></div><div><div>1.7.0_76 Oracle Corporation jdk.tls.disabledAlgorithms=SSLv3</div><div>Default Protocols, enabled: [TLSv1] supported: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]</div><div>Set SSL3+TLSv1, enabled: [SSLv3, TLSv1]</div><div>Set SSL3, enabled: [SSLv3]</div><div>Now handshaking...</div><div>Exception in thread "main" javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)</div></div><div><br></div><div>Only at handshake time it looks, like the disabled check is done. </div><div><br></div><div>I wonder would it be cleaner to remove it from the supported set and not keep it in the enabled set (but accept the setEnabled for backward compatibility).</div><div><br></div><div>Gruss</div><div>Bernd</div><div><br></div><div>PS: testcode:</div><div><div>        //Security.setProperty("jdk.tls.disabledAlgorithms", "");</div><div>        System.out.printf("%s %s jdk.tls.disabledAlgorithms=%s%n", System.getProperty("java.version", "?"), System.getProperty("java.vendor", "?"), Security.getProperty("jdk.tls.disabledAlgorithms"));</div><div>        SSLSocket s = (SSLSocket)SSLSocketFactory.getDefault().createSocket("<a href="http://www.google.com">www.google.com</a>", 443);</div><div>        System.out.printf("Default Protocols, enabled: %s supported: %s%n", Arrays.toString(s.getEnabledProtocols()), Arrays.toString(s.getSupportedProtocols()));</div><div>        s.setEnabledProtocols(new String[]{ "SSLv3", "TLSv1"});</div><div>        System.out.printf("Set SSL3+TLSv1, enabled: %s%n", Arrays.toString(s.getEnabledProtocols()));</div><div>        s.setEnabledProtocols(new String[]{ "SSLv3"});</div><div>        System.out.printf("Set SSL3, enabled: %s%nNow handshaking...%n", Arrays.toString(s.getEnabledProtocols()));</div><div>        s.startHandshake();</div><div>        System.out.println("Ciper " + s.getSession().getCipherSuite() + " (" + s.getSession().getProtocol() + ")");</div></div><div><br></div></div>