summaryrefslogtreecommitdiff
path: root/lib/crypto/Kconfig
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@kernel.org>2025-07-12 16:22:59 -0700
committerEric Biggers <ebiggers@kernel.org>2025-07-14 11:11:48 -0700
commit00d549bb89e471b7df550459fcb51ffbded39cbf (patch)
treeeb4f699859d57af7537194687503bf92841d1e09 /lib/crypto/Kconfig
parent70cb6ca58fddb02e269fe743ba75d53d577b5b1c (diff)
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>
Diffstat (limited to 'lib/crypto/Kconfig')
-rw-r--r--lib/crypto/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig
index 519c5d6a050f..05cce143af31 100644
--- a/lib/crypto/Kconfig
+++ b/lib/crypto/Kconfig
@@ -147,6 +147,7 @@ config CRYPTO_LIB_SHA1_ARCH
bool
depends on CRYPTO_LIB_SHA1 && !UML
default y if ARM
+ default y if ARM64 && KERNEL_MODE_NEON
config CRYPTO_LIB_SHA256
tristate