RFR: 8318756 Create better internal buffer for AEADs [v2]
Daniel Jeliński
djelinski at openjdk.org
Mon Dec 4 08:52:41 UTC 2023
On Fri, 1 Dec 2023 22:42:47 GMT, Anthony Scarpino <ascarpino at openjdk.org> wrote:
>> Hi,
>>
>> I need a review for a new internal buffer class called AEADBufferStream. AEADBufferStream extends ByteArrayOutputStream, but eliminates some data checking and copying that are not necessary for what GaloisCounterMode.java and ChaCha20Cipher.java need.
>>
>> The changes greatest benefit is with decryption operations. ChaCha20-Poly1305 had larger performance gains by adopting similar techniques that AES/GCM already uses.
>>
>> The new buffer shows up to 21% bytes/sec performance increase for decryption for ChaCha20-Poly1305 and 12% for AES/GCM. 16K data sizes saw a memory usage reduction of 46% with and 83% with ChaCha20-Poly1305. These results come from the JMH tests updated in this request and memory usage using the JMH gc profile gc.alloc.rate.norm entry
>>
>> thanks
>>
>> Tony
>
> Anthony Scarpino has updated the pull request incrementally with one additional commit since the last revision:
>
> comments update
src/java.base/share/classes/com/sun/crypto/provider/AEADBufferedStream.java line 80:
> 78: return;
> 79: }
> 80: if (buf == null) {
leftover from previous implementation; buf is never null.
src/java.base/share/classes/com/sun/crypto/provider/ChaCha20Cipher.java line 707:
> 705: } catch (AEADBadTagException e) {
> 706: // exception is never thrown by update ops
> 707: return 0;
Suggestion:
throw new AssertionError(e);
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16487#discussion_r1413444768
PR Review Comment: https://git.openjdk.org/jdk/pull/16487#discussion_r1413463109
More information about the security-dev
mailing list