On Mon, 21 Oct 2024 18:21:37 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:
> 
>   remove unused method

Several comments.

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

> 222:      * @throws NullPointerException
> 223:      *         if {@code algorithm} is {@code null}
> 224:      * @implNote The JDK Reference Implementation additionally uses the

I still recommend moving this `@implNote` right after the spec body text and 
before the 1st `@param`. Same with other `getInstance` methods and 
`engineDeriveKey` in `KDFSpi`.

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

> 384:      * @throws InvalidAlgorithmParameterException
> 385:      *         if the specified provider does not support a {@code KDF}
> 386:      *         implementation for the specified algorithm and parameters

Will it be clearer if we say `if the specified provider supports the specified 
{@code KDF} algorithm but does not support the provided parameters for that 
algorithm.`?

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

> 38:  * All the abstract methods in this class must be implemented by each
> 39:  * cryptographic service provider who wishes to supply the implementation 
> of a
> 40:  * particular key derivation algorithm.

Shall we say `key derivation function algorithm`?

src/java.base/share/classes/javax/crypto/spec/HKDFParameterSpec.java line 123:

> 121:          *         than 0)
> 122:          *
> 123:          * @return an {@code ExtractThenExpand} object

In `extractOnly`, you have `@return an immutable...`. Do you want to add the 
"immutable" word here also?

src/java.base/share/classes/javax/crypto/spec/HKDFParameterSpec.java line 336:

> 334:          * @return the unmodifiable {@code List} of salt values
> 335:          *
> 336:          * @implNote An HKDF implementation should concatenate the salt

Should this be `salt` or `salts`?

src/java.base/share/classes/javax/crypto/spec/HKDFParameterSpec.java line 415:

> 413: 
> 414:     /**
> 415:      * Defines the input parameters of an ExtractThenExpand operation as 
> defined

In the class spec. the name of this operation is "Extract-then-Expand".

src/java.base/share/classes/javax/crypto/spec/HKDFParameterSpec.java line 477:

> 475:          * @return the unmodifiable {@code List} of salt values
> 476:          *
> 477:          * @implNote An HKDF implementation should concatenate the salt

Same comments. Shall we use `salt` or `salts`?

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

PR Review: https://git.openjdk.org/jdk/pull/20301#pullrequestreview-2399553428
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819382446
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819388314
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819401155
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819348634
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819351988
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819355456
PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1819357743

Reply via email to