On Fri, 6 Jun 2025 20:01:17 GMT, Hai-May Chao <hc...@openjdk.org> wrote:

> > > > It is nice to refactor the common code for algorithm constraints 
> > > > checking into a new class, `X509KeyManagerConstraints.java`, used by 
> > > > both `SunX509KeyManagerImpl` and `X509KeyManagerImpl`. However, it 
> > > > looks like a new system property, 
> > > > "jdk.tls.keymanager.disableConstraintsChecking", is introduced, and it 
> > > > will affect both `SunX509KeyManagerImpl` and `X509KeyManagerImpl`. 
> > > > Should the property be a switch for SunX509 KeyManager, not a general 
> > > > toggle for all KeyManager? Avoiding its misuse for `X509KeyManagerImpl` 
> > > > that may lead to disable the existing RFC compliant algorithm 
> > > > constraints checking? It might be preferable to keep the property logic 
> > > > in `SunX509KeyManagerImpl` (not in the common code).
> > > 
> > > 
> > > @haimaychao Thanks for looking into it! Yes, it will disable constraints 
> > > checking for both key managers and I did it this way on purpose. I think 
> > > it will be simpler and less confusing to the end users. This system 
> > > property is off by default and my assumption is that if end users want to 
> > > disable KM algorithm constraints checking they would expect it to be 
> > > disabled system-wide. Making this toggle SunX509-specific is a trivial 
> > > change if we have a consensus on this.
> > > @seanjmullan What do you think?
> > 
> > 
> > Need to think about it some more, but I am kind of leaning towards it only 
> > affecting SunX509. The main benefit of the property is to workaround any 
> > compatibility issues where current code is not ready for the change. Any 
> > application already using the PKIX TrustManager already has this checking 
> > enabled/enforced.
> 
> I'd agree. As I mentioned in my earlier comment, if the new system property 
> ends up toggling behavior in both `SunX509KeyManager` and 
> `X509KeyManagerImpl`, we could run into an unintended side effect. While 
> we're adding compliant algorithm constraints checking to `SunX509KeyManager`, 
> turning on the property to disable it for compatibility reasons would also 
> disable the already-existing checking in `X509KeyManagerImpl`. The 
> applications already relying on the stricter checks in `X509KeyManagerImpl` 
> might lose that enforcement unintentionally.

I made the toggle specific to SunX509 Key Manager as suggested.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/25016#issuecomment-2985653083

Reply via email to