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