linux/arch/arm64/crypto
Eric Biggers 00d549bb89 lib/crypto: arm64/sha1: Migrate optimized code into library
Instead of exposing the arm64-optimized SHA-1 code via arm64-specific
crypto_shash algorithms, instead just implement the sha1_blocks()
library function.  This is much simpler, it makes the SHA-1 library
functions be arm64-optimized, and it fixes the longstanding issue where
the arm64-optimized SHA-1 code was disabled by default.  SHA-1 still
remains available through crypto_shash, but individual architectures no
longer need to handle it.

Remove support for SHA-1 finalization from assembly code, since the
library does not yet support architecture-specific overrides of the
finalization.  (Support for that has been omitted for now, for
simplicity and because usually it isn't performance-critical.)

To match sha1_blocks(), change the type of the nblocks parameter and the
return value of __sha1_ce_transform() from int to size_t.  Update the
assembly code accordingly.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250712232329.818226-9-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2025-07-14 11:11:48 -07:00
..
.gitignore
Kconfig lib/crypto: arm64/sha1: Migrate optimized code into library 2025-07-14 11:11:48 -07:00
Makefile lib/crypto: arm64/sha1: Migrate optimized code into library 2025-07-14 11:11:48 -07:00
aes-ce-ccm-core.S
aes-ce-ccm-glue.c
aes-ce-core.S
aes-ce-glue.c
aes-ce-setkey.h
aes-ce.S
aes-cipher-core.S
aes-cipher-glue.c
aes-glue-ce.c
aes-glue-neon.c
aes-glue.c crypto: arm64/aes - Use API partial block handling 2025-04-23 15:52:47 +08:00
aes-modes.S
aes-neon.S
aes-neonbs-core.S
aes-neonbs-glue.c crypto: skcipher - Make skcipher_walk src.virt.addr const 2025-03-15 16:21:22 +08:00
ghash-ce-core.S
ghash-ce-glue.c crypto: arm64/ghash - Use API partial block handling 2025-04-23 11:33:47 +08:00
nh-neon-core.S
nhpoly1305-neon-glue.c
polyval-ce-core.S
polyval-ce-glue.c crypto: arm64/polyval - Use API partial block handling 2025-04-28 19:40:54 +08:00
sha3-ce-core.S
sha3-ce-glue.c crypto: arm64/sha3-ce - Use API partial block handling 2025-04-23 15:52:46 +08:00
sm3-ce-core.S
sm3-ce-glue.c crypto: arm64/sm3-ce - Use API partial block handling 2025-04-23 15:52:47 +08:00
sm3-neon-core.S
sm3-neon-glue.c crypto: arm64/sm3-neon - Use API partial block handling 2025-04-23 15:52:47 +08:00
sm4-ce-asm.h
sm4-ce-ccm-core.S
sm4-ce-ccm-glue.c
sm4-ce-cipher-core.S
sm4-ce-cipher-glue.c
sm4-ce-core.S
sm4-ce-gcm-core.S
sm4-ce-gcm-glue.c
sm4-ce-glue.c crypto: arm64/sm4 - Use API partial block handling 2025-04-23 15:52:47 +08:00
sm4-ce.h
sm4-neon-core.S
sm4-neon-glue.c