diff --git a/src/com/amazon/corretto/crypto/provider/AesGcmSpi.java b/src/com/amazon/corretto/crypto/provider/AesGcmSpi.java index 437ec1b6..2322d9ef 100644 --- a/src/com/amazon/corretto/crypto/provider/AesGcmSpi.java +++ b/src/com/amazon/corretto/crypto/provider/AesGcmSpi.java @@ -993,4 +993,20 @@ private void stateReset() { hasConsumedData = false; contextInitialized = false; } + + @Override + protected int engineDoFinal(final ByteBuffer input, final ByteBuffer output) + throws ShortBufferException, IllegalBlockSizeException, BadPaddingException { + int initialPosition = output.position(); + + engineUpdate(input, output); + + ShimArray shim = new ShimArray(output, engineGetOutputSize(0)); + int finalBytes = engineDoFinal(EMPTY_ARRAY, 0, 0, shim.array, shim.offset); + + shim.writeback(); + output.position(output.position() + finalBytes); + + return output.position() - initialPosition; + } }