On Mon, 12 Oct 2020 20:57:50 GMT, Valerie Peng <[email protected]> wrote:
>> I didn't see a way to override this because CipherSpi is a public class, any
>> methods I added would become a new API.
>> Also bufferCrypt is private, so I had to copy it. CipherSpi does not know
>> which mode is being used, but AESCipher does. Maybe I'm missing something,
>> I'd rather it not be a copy, but I couldn't see a better way. If you have a
>> specific idea, please give me details.
>
> How about overriding
> protected int engineDoFinal(ByteBuffer input, ByteBuffer output) throws ... {
> if (core.getMode() == CipherCore.GCM_MODE && !input.hasArray()) {
> // call your own optimized byte buffer code path
> } else {
> super.engineDoFinal(input, output);
> }
> }
>
> Would this work? If yes, then no need to duplicate the whole bufferCrypt()
> method.
Good call.. I wouldn't have thought about super.
-------------
PR: https://git.openjdk.java.net/jdk/pull/411