commit 6bd934de1e393466b319d29c4427598fda096c57 upstream.
The sha256-ce finup implementation for ARM64 produces wrong digest
for empty input (len=0). Expected: the actual digest, result: initial
value of SHA internal state. The error is in sha256_ce_finup:
for empty data `finalize` will be 1, so the code is relying on
sha2_ce_transform to make the final round. However, in
sha256_base_do_update, the block function will not be called when
len == 0.
Fix it by setting finalize to 0 if data is empty.
Fixes:
|
||
---|---|---|
.. | ||
aes-ce-ccm-core.S | ||
aes-ce-ccm-glue.c | ||
aes-ce-cipher.c | ||
aes-ce-setkey.h | ||
aes-ce.S | ||
aes-glue.c | ||
aes-modes.S | ||
aes-neon.S | ||
crc32-arm64.c | ||
ghash-ce-core.S | ||
ghash-ce-glue.c | ||
Kconfig | ||
Makefile | ||
sha1-ce-core.S | ||
sha1-ce-glue.c | ||
sha2-ce-core.S | ||
sha2-ce-glue.c |