On Fri, 6 Sep 2024 18:45:42 GMT, Kevin Driver <kdri...@openjdk.org> wrote:

>> Introduce an API for Key Derivation Functions (KDFs), which are 
>> cryptographic algorithms for deriving additional keys from a secret key and 
>> other data. See [JEP 478](https://openjdk.org/jeps/478).
>> 
>> Work was begun in [another PR](https://github.com/openjdk/jdk/pull/18924).
>
> Kevin Driver has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   updated comments around locking mechanism

src/java.base/share/classes/javax/crypto/KDF.java line 47:

> 45:  * This class provides the functionality of a Key Derivation Function 
> (KDF),
> 46:  * which is a cryptographic algorithm for deriving additional keys from 
> input
> 47:  * keying material and (optionally) other data.

Do you want to say "key material" rather than "keying material" here?

src/java.base/share/classes/javax/crypto/KDF.java line 53:

> 51:  * <p>
> 52:  * The class has two derive methods, {@code deriveKey} and {@code 
> deriveData}.
> 53:  * The {@code deriveKey} method accepts an algorithm {@code String} and

It might be clearer to say an algorithm name, or  algorithm name as a String.

src/java.base/share/classes/javax/crypto/KDF.java line 96:

> 94:  * deriveData methods. Therefore, it is recommended not to call the {@code
> 95:  * getProviderName} or {@code getParameters} methods until after a key
> 96:  * derivation operation. Once a provider is selected, it cannot be 
> changed.

If I read this correctly, the first part of this paragraph is repeating the 
previous paragraph but with different wording, maybe the previous paragraph is 
left over from a previous iteration?

src/java.base/share/classes/javax/crypto/KDFSpi.java line 51:

> 49:  * Implementations which do not support {@code KDFParameters} may require
> 50:  * {@code null} to be passed, otherwise an {@code 
> InvalidAlgorithmParameterException}
> 51:  * may be thrown. On the other hand, implementations which require

I think you may need to clarify this paragraph for both provider 
implementations and anything that uses the concrete implementation. For a 
non-null kdfParameters that is not supported, the current wording seems to 
allow a provider to ignore parameters that it doesn't support, is that the 
intention?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1749288137
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1749288635
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1749289351
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1749287565

Reply via email to