On Thu, 16 Oct 2025 00:42:20 GMT, Valerie Peng <[email protected]> wrote:

>> src/java.base/share/classes/com/sun/crypto/provider/AES_Crypt.java line 954:
>> 
>>> 952:             }
>>> 953:             w[i] = w[i - nk] ^ tmp;
>>> 954:         }
>> 
>> Looks like most of these local variables can be removed? Since you are not 
>> changing the value of `len`, you can just use `WB`. `rW` is only used inside 
>> the if-block from line 944-948, so it can be declared on line 945.  Line 
>> 946-948 can be merged on one line, e.g. `tmp = subByte(rW, SBOX) ^ RCON[(i / 
>> nk) - 1];` and no need for `subWord` and `g`. Same goes for line 950 and 951.
>> Also, the value of `WB * (rounds + 1)` is used twice, this can be stored in 
>> a local variable say `wLen`, so it's only calculated once.
>> Same goes for the `i * WB` value from line 937-940
>
> On the second thought, instead of calculating `i * WB` value, You can use 
> another local variable to store this index and increment it by 4 for each 
> iteration.

I've made these changes and used the 2nd approach for indexing key.  Fixed.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27807#discussion_r2434497439

Reply via email to