RFR: 8331008: Implement JEP 478: Key Derivation Function API (Preview) [v11]

Valerie Peng valeriep at openjdk.org
Fri Aug 16 01:09:55 UTC 2024


On Tue, 13 Aug 2024 15:24:11 GMT, Kevin Driver <kdriver at 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



More information about the security-dev mailing list