On Thu, 7 Aug 2025 04:43:25 GMT, Valerie Peng <valer...@openjdk.org> wrote:
>> This enhancement introduces a new security property >> "jdk.crypto.disabledAlgorithms" which can be leveraged to disable algorithms >> for JCE/JCA crypto services. For now, only Cipher, KeyStore, MessageDigest, >> and Signature services support this new security property. The support can >> be expanded later to cover more services if needed. Note that this security >> property is meant to disable algorithms irrespective of providers. If the >> algorithm is found to be disabled, it will be rejected before reaching out >> to provider(s) for the corresponding implementation(s). >> >> A few implementation notes: >> 1) The specified security property value is lazily loaded and all changes >> after it's been loaded are ignored. Invalid entries, e.g. wrong syntax, are >> ignored and removed. The algorithm name check is case-insensitive. If a >> disabled algorithm is known to has an object identifier (oid) by JDK, this >> oid and its aliases is also added to the disabled services. >> 2) The algorithm name checking impl is based on the >> sun.security.util.AlgorithmConstraints class, but without the decomposing >> and different constraints. >> 3) The hardwiring of NONEwithRSA signature to RSA/ECB/PKCS1Padding cipher in >> java.security.Signature class is removed. Instead, this is moved to the >> provider level, i.e. SunJCE and SunPKCS11 provider are changed to claim the >> NONEwithRSA signature support. Disabling one will not affect the other. >> >> CSR will be filed once the review is wrapping up. >> >> Thanks~ >> Valerie > > Valerie Peng has updated the pull request incrementally with one additional > commit since the last revision: > > Address review comments from Artur and added a regression test for > invalid property values. test/jdk/java/security/MessageDigest/TestDisabledAlgorithms.java line 29: > 27: * @summary Test JCE layer algorithm restriction > 28: * @run main/othervm TestDisabledAlgorithms MessageDigest.Sha-512 true > 29: * @run main/othervm TestDisabledAlgorithms MessageDigest.what false Let's use differently mixed upper/lower cased versions of `MessageDigest` word to test proper case-insensitive match. In current versions of the tests all service names match exactly the names defines in `CryptoAlgorithmConstraints`. For example: - MessageDigest - messaGedigesT - MESSAGEdigest Same for other services' tests. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2261071041