crypto.keccak.State: add checks to prevent insecure transitions (#22020)

* crypto.keccak.State: don't unconditionally permute after a squeeze()

Now, squeeze() behaves like absorb()

Namely,

squeeze(x[0..t]);
squeeze(x[t..n)); with t <= n

becomes equivalent to squeeze(x[0..n]).

* keccak: in debug mode, track transitions to prevent insecure ones.

Fixes #22019
a5d4ad17b7Frank Denis committed on 11/20/2024, 10:16:09 AM· committed by GitHubparentdafe1a9
1 file changedLine totals unavailable