On Tue, 13 Aug 2024 15:24:11 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:
> 
>   addressed several review comments, namely: - renaming the getParameters 
> method - renaming the AlgorithmParameterSpec object - address some javadoc 
> exception messages - add some information to KDF class private constructor 
> javadocs - other general cleanup

src/java.base/share/classes/com/sun/crypto/provider/HkdfKeyDerivation.java line 
369:

> 367:                 throw new RuntimeException(sbe);
> 368:             }
> 369:         }

`tLength` may not be necessary. Variables only used inside the loop can also be 
moved to the loop.
The loop can be modified as:


for (int i = 0, offset = 0; i < rounds; i++, offset += hmacLen) {
            // Calculate this round
            try {
                if (i > 0) {
                    hmacObj.update(kdfOutput, offset - hmacLen, hmacLen); // 
add T(i-1)
                }
                hmacObj.update(info);                       // Add info
                hmacObj.update((byte) (i + 1));             // Add round number
                hmacObj.doFinal(kdfOutput, offset);
            } catch (ShortBufferException sbe) {
                // This really shouldn't happen given that we've
                // sized the buffers to their largest possible size up-front,
                // but just in case...
                throw new RuntimeException(sbe);
            }
        }

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

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

Reply via email to