On 5/22/2020 11:17 AM, Sean Mullan wrote:
On 5/22/20 1:55 PM, Xuelei Fan wrote:
* test/jdk/sun/security/ssl/X509TrustManagerImpl/TooMuchCAs.java

Will this test FAIL if we ever exceed the maximum number of CAs? I think it is important that it does FAIL, as the extension is effectively not working anymore and could cause compatibility issues. I even think we would need to try to think of some way to fix it, either by seeing if some CAs could be excluded - not really sure, hopefully it won't ever happen but we would want to know about it in advance.

Alexey (from azul) and I discussed the idea to control the number of CAs.  However, there are still some issues in practice.

"If the certificate authorities can not be fully listed, it cannot be used to indicate the peer certificate selection accuracy.  For example, client support A, B and C, and is only able to indicate A and B.  If the server supports C, the connection cannot be established with this extension. This is not the expected behavior.  Maybe, it is no worse than without this extension. "

It looks like safer that the extension is not used if the size exceed the limit, at least there ARE less compatibility issues.  I have a note in the CSR and release note for the behaviors.

The test case, TooMuchCAs, is used to make sure the connection can be established when the CAs size exceed the limit (no extension used).

Sure, I agree that is the best behavior. I guess my point is that if we ever really exceed the maximum number of CAs in the cacerts keystore, it would be good to have a test that will fail because of that. Minimally, this would allow us to publish a release note warning users that the CA extension will no longer work unless some roots are removed.

Good point. It is useful to have a test case to check the size limit of the cacert keystore. A new test case, CacertsLimit.java, is added. The same webrev URL is used:
   http://cr.openjdk.java.net/~xuelei/8206925/webrev.05/

Would the other test fail (test/jdk/sun/security/ssl/X509KeyManager/CertificateAuthorities.java) if that happens?

No, it should pass.

Xuelei

Reply via email to