RFR: 8296507: GCM using more memory than necessary with in-place operations [v2]

Valerie Peng valeriep at openjdk.org
Thu Dec 1 20:53:01 UTC 2022


On Thu, 1 Dec 2022 04:10:32 GMT, Anthony Scarpino <ascarpino at openjdk.org> wrote:

>> src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java line 778:
>> 
>>> 776:                             gctr, ghash);
>>> 777:                     } else {
>>> 778:                         int ofs = src.arrayOffset() + src.position();
>> 
>> Isn't this also used on line 774? Why not move this up and directly refer to it for both places?
>
> The line 774 case only uses the calculated value once.  I'm avoiding the unnecessary store & load operations when it is set the value to a variable. I see it when I run  javap -c to view the bytecode.  It's purely an optimization for performance.   I do set it to the variable in the line 778 case because calculating the value twice is probably more expensive than once with the store & load operations.

I see.

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

PR: https://git.openjdk.org/jdk/pull/11121


More information about the security-dev mailing list