On Fri, 16 Aug 2024 19:30:40 GMT, Kevin Driver <kdri...@openjdk.org> wrote:

>> src/java.base/share/classes/com/sun/crypto/provider/HkdfKeyDerivation.java 
>> line 226:
>> 
>>> 224:                 byte[] extractResult = hkdfExtract(inputKeyMaterial, 
>>> (salt
>>> 225:                                                                       
>>> == null) ? null : salt.getEncoded());
>>> 226:                 pseudoRandomKey = new SecretKeySpec(extractResult, 
>>> "RAW");
>> 
>> Use `hmacAlgName` instead of `RAW` as the key algorithm? Or is it 
>> well-established fact that most if not all Hmac impls doesn't care or check 
>> the key algorithm?
>
> @wangweij felt this was advantageous.

Valerie is correct. I might have confused algorithm name and format name.

>> src/java.base/share/classes/com/sun/crypto/provider/HkdfKeyDerivation.java 
>> line 300:
>> 
>>> 298:         }
>>> 299:         Mac hmacObj = Mac.getInstance(hmacAlgName);
>>> 300:         hmacObj.init(new SecretKeySpec(salt, "HKDF-Salt"));
>> 
>> Why use "HKDF-Salt" as key algorithm name? This is just internal key for the 
>> Hmac object and maybe it's safer to just use the `hmacAlgName` as the key 
>> algorithm? The key algorithm does not affect the Hmac operation anyway.
>
> @wangweij felt this was advantageous.

I think Valerie is right. In case a Mac implementation is picky on the key 
algorithm name.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1720378787
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1720378058

Reply via email to