RFR: 8267125: AES Galois CounterMode (GCM) interleaved implementation using AVX512 + VAES instructions [v7]

Anthony Scarpino ascarpino at openjdk.java.net
Fri Aug 6 20:40:37 UTC 2021


On Fri, 6 Aug 2021 19:57:11 GMT, Valerie Peng <valeriep at openjdk.org> wrote:

>> Smita Kamath has updated the pull request incrementally with five additional commits since the last revision:
>> 
>>  - Merge branch 'aes-gcm' of github.com:smita-kamath/jdk into aes-gcm
>>  - Updates, comment and variable cleanup
>>  - merge rest
>>  - merge
>>  - fixes and code comments
>
> src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java line 1120:
> 
>> 1118:                 inOfs += r;
>> 1119:                 inLen -= r;
>> 1120:             }
> 
> Have you considered move the "if (inLen >= PARALLEL_LEN) block" into EncryptOp.update() impl (just like the Encrypt.doFinal() impl) ? Even though not all op.update() calls process large data, but it'd reduce code duplication and ensures that all large data processed by EncryptOp.update() calls would call the intrinsified method.

There are cases where inLen is known to be smaller than PARALLEL_LEN and is a waste of a check, such as merging with the ibuffer to create one block.  Also moving it into EncryptOp would always mean an additional check and maybe an unnecessary jump to another method.

I did that for doFinal, because gctr/ghash.doFinal() needs to was no extra checks.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4019


More information about the security-dev mailing list