When a signature/digest algorithm was being checked, the algorithm constraints 
checked both the signature/digest algorithm and the key to see if they were 
restricted. This caused duplicate checks and was also problematic for 
`jarsigner` (and `keytool`) which need to distinguish these two cases, so that 
the output can properly indicate when the key is disabled but the signature or 
digest alg is ok. 

To address this issue, a new `checkKey` parameter is added to the 
`DisabledAlgorithmConstraints.permits` methods. When `true` the key (alg and 
size) is also checked, otherwise it is not. This flag is always set to `false` 
by `jarsigner` when checking algs and by the JDK when checking digest 
algorithms. Other small changes include changes in `SignerInfo` to use a record 
to store info about the algorithms to be checked, and removing an unnecessary 
CRL checking method from `AlgorithmChecker`.

`keytool` will be enhanced in a subsequent CR to call the new methods.

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

Commit messages:
 - Change name of `checkKeySize` param to `checkKey`.
 - 8275887: jarsigner prints invalid digest/signature algorithm warnings if 
keysize is weak/disabled

Changes: https://git.openjdk.java.net/jdk/pull/6296/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6296&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8275887
  Stats: 128 lines in 9 files changed: 40 ins; 31 del; 57 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6296.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6296/head:pull/6296

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

Reply via email to