On Tue, 28 Nov 2023 00:51:54 GMT, Anthony Scarpino <ascarp...@openjdk.org> 
wrote:

>> src/java.base/share/classes/com/sun/crypto/provider/ChaCha20Cipher.java line 
>> 1427:
>> 
>>> 1425:             input.get(in);
>>> 1426:             byte[] out = new byte[in.length];
>>> 1427:             doUpdate(in, 0, in.length, out, out.length);
>> 
>> Suggestion:
>> 
>>             byte[] out = in;
>>             doUpdate(in, 0, in.length, out, 0);
>> 
>> I guess we need more test coverage here
>
> I don't see a testing issue there, but that's better memory usage.  I 
> probably copied this code over from AES/GCM where it's blocksized data and 
> `in` and `out` could have been different sizes.  But CC20 can use this 
> optimization because it's a streaming cipher.

I was talking about the second line:

doUpdate(in, 0, in.length, out, out.length);

this tells the doUpdate operation to start writing to `out` at `out.length`; 
that should have triggered an exception in testing.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16487#discussion_r1407327505

Reply via email to