On Thu, 15 Jul 2021 22:44:05 GMT, Valerie Peng <[email protected]> wrote:
>> Smita Kamath has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Updated AES-GCM intrinsic to match latest Java Code
>
> src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
> line 170:
>
>> 168:
>> 169: // always encrypt mode for embedded cipher
>> 170: blockCipher.init(false, key.getAlgorithm(), keyValue);
>
> Is this change intentional? Looks like we are reverting to older version of
> source and undo newer changes.
Nope.. unintentional
> src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
> line 472:
>
>> 470: engine = null;
>> 471: if (encodedKey != null) {
>> 472: Arrays.fill(encodedKey, (byte)0);
>
> Looks like another unintentional newer->older change.
I don't remember an old comment about that, dunno if that was reverted
> src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
> line 992:
>
>> 990: */
>> 991: byte[] overlapDetection(byte[] in, int inOfs, byte[] out, int
>> outOfs) {
>> 992: if (in == out && (!encryption || inOfs < outOfs)) {
>
> So, we will always allocate an output buffer for decryption if in==out? Why
> just decryption? Update the javadoc for this method with the reason?
If the crypto is decryption in-place, an internal output buffer is needed in
case the auth tag fails, otherwise the input buffer would be zero'ed.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4019