Fix Keccak undefined behavior on exotic platforms.

Bug reported and diagnosed in:
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975977

Fixes bug #40210.
This commit is contained in:
George Kadianakis 2020-12-17 13:49:17 +02:00
parent fcae26adf7
commit d89974c5c6
2 changed files with 6 additions and 1 deletions

5
changes/bug40210 Normal file
View File

@ -0,0 +1,5 @@
o Minor features (crypto):
- Fix undefined behavior on our Keccak library. The bug only appears on
platforms with 32-byte CPU cache lines (e.g. armv5tel) and would result
in wrong digests. Fixes bug 40210; bugfix on 0.2.8.1-alpha. Thanks to
Bernhard Übelacker, Arnd Bergmann and weasel for diagnosing this.

View File

@ -21,7 +21,7 @@ typedef struct keccak_state {
size_t offset; size_t offset;
uint8_t finalized : 1; uint8_t finalized : 1;
} keccak_state; } __attribute__((aligned(8))) keccak_state;
/* Initialize a Keccak instance suitable for SHA-3 hash functions. */ /* Initialize a Keccak instance suitable for SHA-3 hash functions. */
int keccak_digest_init(keccak_state *s, size_t bits); int keccak_digest_init(keccak_state *s, size_t bits);