On Fri, 3 Nov 2023 04:08:27 GMT, Anthony Scarpino <ascarp...@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 src/java.base/share/classes/com/sun/crypto/provider/ChaCha20Cipher.java line 859: > 857: try { > 858: outArray = engineDoFinal(inArray, inOfs, inLen); > 859: } catch (BadPaddingException e) { Should we really be hiding the `BadPaddingException` here and in other places in this method? `AEADBadTagException` extends `BadPaddingException`, and I'm pretty sure we don't want to hide it. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16487#discussion_r1407397841