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

Reply via email to