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