Existing legacy mechanism check disables mechanism(s) when the support is 
partial, e.g. supports decryption but not encryption, or supports verification 
but not signing. Some mechanisms can be used for both encryption/decryption and 
sign/verify such as RSA related ones. If the particular mechanism supports 
sign/verify/decryption but not encryption, it'd be disabled as a result. Fine 
tune the legacy mechanism check with the service type, i.e. supports encryption 
for Cipher,  sign for Signature, so the mechanism is disabled based on the 
service type.
For completeness sake, I also added a PKCS11 provider configuration option to 
control this check (default is true, disable mechanisms with partial support).

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

Commit messages:
 - 8293345: SunPKCS11 provider checks on PKCS11 Mechanism are problematic

Changes: https://git.openjdk.org/jdk/pull/18387/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18387&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8293345
  Stats: 51 lines in 2 files changed: 25 ins; 25 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/18387.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18387/head:pull/18387

PR: https://git.openjdk.org/jdk/pull/18387

Reply via email to