Right, with a closer look, it does require multiple threads to trigger this problem.

Valerie


On 3/31/2020 6:10 PM, Weijun Wang wrote:

On Apr 1, 2020, at 4:01 AM, Valerie Peng <[email protected]> wrote:

Hi Alexey,

Good catch, thanks for the report, I will review it.

On a first look, it seems that this is more about the clone() method of the 
SHA-3 impl missed copying/cloning an internal field.

Given that this is about SUN provider, I've modified the synopsis accordingly 
and move the priority up to P3.

It may not take multi-thread to reproduce this? If so, we can simplify the 
regression test.
Looks like a must:

     private void keccak() {
         // convert the 200-byte state into 25 lanes
         bytes2Lanes(state, lanes);
         // process the lanes through step mappings
         for (int ir = 0; ir < NR; ir++) {
             smIota(smChi(smPiRho(smTheta(lanes))), ir);
         }
         // convert the resulting 25 lanes back into 200-byte state
         lanes2Bytes(lanes, state);
     }

One object's lanes can only be used by another if this method is called by 
multiple threads at the same time.

--Max

Regards,
Valerie
On 3/31/2020 11:27 AM, Alexey Bakhtin wrote:
Hi All,

Please review fix for SHA3 message digests thread safety.
Issue reproduced on the JDK11, JDK13 and JDK14
JTREG test is provided in the patch

JBS: https://bugs.openjdk.java.net/browse/JDK-8241960
Webrev: https://cr.openjdk.java.net/~abakhtin/8241960/webrev.v0/

Regards
Alexey

Reply via email to