On Fri, 3 Oct 2025 02:37:46 GMT, Weijun Wang <[email protected]> wrote:

>> This PR updates the cipher transformation parsing and verification logic to 
>> be stricter and throws NoSuchAlgorithmException (NSAE) when additional 
>> slash(es) is found. With the existing parsing logic, the extra slash(es) is 
>> likely to end up in the last component, i.e. the padding scheme, and lead to 
>> NoSuchPaddingException (NSPE) from the underlying CipherSpi object. 
>> 
>> Out of the supported cipher algorithms for all JDK providers, PBES2 cipher 
>> algorithms and RSA cipher with OAEP paddings may contain truncated SHA-512 
>> in their transformations. This proposed fix would check for truncated SHA in 
>> both algorithm and padding schemes and throws NSAE if any extra slash is 
>> found. 
>> 
>> Thanks in advance for the review~
>
> src/java.base/share/classes/javax/crypto/Cipher.java line 329:
> 
>> 327:                     SHA512TRUNCATED.length());
>> 328:             sha512SlashIdx = (sha512Idx != -1 ? sha512Idx + 3 : -2);
>> 329:         }
> 
> The logic is quite complex. Can you create a dedicated method for it like 
> `indexOfRealSlashIn(String s)`?
> 
> We can even call it on the mode part.

There are quite a few values being updated here, that's why I didn't make it 
into a method initially. Let me think about it more...

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27615#discussion_r2407720539

Reply via email to