On Fri, 11 Jun 2021 04:21:15 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

>> The collection required when new Constraints() should retain the default 
>> case of the elements, because some code will depend on this, for example, .
>> [entry.startsWith("keySize")](https://github.com/openjdk/jdk/blob/dd1cbadc82bcecf718b96c833a5845fde79db061/src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java#L383).
>> But the set required by the permits should unify the case of the elements, 
>> because algorithm may be uppercase or lowercase, but the Set:contains() 
>> cannot handle this situation.
>> So we need to create a new Set that ignores the default case of elements.
>
> For the entry.startsWith("keySize") example, I don't think keySize is an 
> algorithm that could be listed individually in the list.  The "keySize" may 
> be just a part one algorithm, for example "RSA keySize < 1024".
> 
> It's a good point about the lowercase and upper case.  Did you check how 
> constraints like the "keySize" are expressed in the list or set?

Yes, you're right. The "keySize" is not an independent algorithm listed in 
list, it exists in a form like "ec keysize <224".
In the case of "keySize", the object in the list stored in 
`algorithmConstraints` is `KeySizeConstraint`, then keysize will be checked in 
[algorithmConstraints.permits(algorithm, 
parameters)](https://github.com/openjdk/jdk/blob/dd1cbadc82bcecf718b96c833a5845fde79db061/src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java#L169)
 by `KeySizeConstraint:permits`.

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

PR: https://git.openjdk.java.net/jdk/pull/4424

Reply via email to