On Fri, 16 Aug 2024 18:18:51 GMT, Valerie Peng <valer...@openjdk.org> wrote:
>> src/java.base/share/classes/com/sun/crypto/provider/HkdfKeyDerivation.java >> line 258: >> >>> 256: byte[] workItemBytes = CipherCore.getKeyBytes(checkIt); >>> 257: return new SecretKeySpec(workItemBytes, "Generic"); >>> 258: } else { >> >> I think this is less error prone and easier to read than what you have below: >> >> ByteArrayOutputStream os = new ByteArrayOutputStream(); >> for (SecretKey workItem : localKeys) { >> try { >> os.write(CipherCore.getKeyBytes(workItem)); >> } catch (IOException e) { >> // won't happen >> } >> } >> return new SecretKeySpec(os.toByteArray(), "Generic"); >> >> And if your concerned about the extra copy from `toByteArray()`, you could >> consider using an internal class `AEADBufferedStream` which extends >> ByteArrayOutputStream but will return the internal copy to avoid extra mem >> allocation. > > +1. Addressed in https://github.com/openjdk/jdk/pull/20301/commits/48395b86ba8e1cda663ae326e06ae2556f4b905a. Please indicate if this is resolved. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20301#discussion_r1722375664