On Fri, 18 Jul 2025 01:44:33 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

src/java.base/share/classes/com/sun/crypto/provider/RSACipherAdaptor.java line 
37:

> 35: import java.security.InvalidAlgorithmParameterException;
> 36: import java.security.InvalidParameterException;
> 37: import java.security.ProviderException;

not used

src/java.base/share/classes/com/sun/crypto/provider/RSACipherAdaptor.java line 
43:

> 41: import javax.crypto.BadPaddingException;
> 42: import javax.crypto.IllegalBlockSizeException;
> 43: import javax.crypto.NoSuchPaddingException;

not used

src/java.base/share/classes/javax/crypto/Cipher.java line 370:

> 368:                                    "missing mode and/or padding-"
> 369:                                    + transformation);
> 370: 

extra line intentional?

src/java.base/share/classes/sun/security/util/CryptoAlgorithmConstraints.java 
line 36:

> 34: import java.util.Set;
> 35: import java.util.concurrent.ConcurrentHashMap;
> 36: import sun.security.util.KnownOIDs;

This import isn't needed since `KnownOIDs` in the same package.

src/java.base/share/classes/sun/security/util/KnownOIDs.java line 186:

> 184:     // RSASecurity
> 185:     // PKCS1 1.2.840.113549.1.1.*
> 186:     PKCS1("1.2.840.113549.1.1", "RSA", false), // RSA KeyPairGenerator 
> and KeyFactory

With you specifying a new "RSA" stdName in the `RSA` enum, do we really need a 
`"RSA", false` here?  After doing an internet search on the OID, it looks like 
"PKCS-1" maybe more appropriate.

src/java.base/share/conf/security/java.security line 775:

> 773: 
> 774: #
> 775: # Algorithm restrictions for Java Crypto API services

Since this is a title, an empty comment line between this and the start of the 
description would be appropriate.

src/java.base/share/conf/security/java.security line 776:

> 774: #
> 775: # Algorithm restrictions for Java Crypto API services
> 776: # The syntax of the disabled services string is described as follows:

Before you get into the syntax, I think you should explain what the feature is 
and how it is triggered, such as, `getInstance()`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229859202
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229859346
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2220011949
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229663944
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229631993
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229636323
PR Review Comment: https://git.openjdk.org/jdk/pull/26377#discussion_r2229645390

Reply via email to