lib/crypto: arm/sha512: Migrate optimized SHA-512 code to library
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:03:11 +0000 (09:03 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:26:19 +0000 (09:26 -0700)
commit24c91b62ac50a798ceabb3482efbca3e0e88a2db
tree859589acb7b87b05b71120e42dec8c7fe7067731
parent4bc7f7b687a2a1506cdc457bc4f6d29a81794a08
lib/crypto: arm/sha512: Migrate optimized SHA-512 code to library

Instead of exposing the arm-optimized SHA-512 code via arm-specific
crypto_shash algorithms, instead just implement the sha512_blocks()
library function.  This is much simpler, it makes the SHA-512 (and
SHA-384) library functions be arm-optimized, and it fixes the
longstanding issue where the arm-optimized SHA-512 code was disabled by
default.  SHA-512 still remains available through crypto_shash, but
individual architectures no longer need to handle it.

To match sha512_blocks(), change the type of the nblocks parameter of
the assembly functions from int to size_t.  The assembly functions
actually already treated it as size_t.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250630160320.2888-8-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
16 files changed:
arch/arm/configs/exynos_defconfig
arch/arm/configs/milbeaut_m10v_defconfig
arch/arm/configs/multi_v7_defconfig
arch/arm/configs/omap2plus_defconfig
arch/arm/configs/pxa_defconfig
arch/arm/crypto/Kconfig
arch/arm/crypto/Makefile
arch/arm/crypto/sha512-armv4.pl [deleted file]
arch/arm/crypto/sha512-glue.c [deleted file]
arch/arm/crypto/sha512-neon-glue.c [deleted file]
arch/arm/crypto/sha512.h [deleted file]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/arm/.gitignore [new file with mode: 0644]
lib/crypto/arm/sha512-armv4.pl [new file with mode: 0644]
lib/crypto/arm/sha512.h [new file with mode: 0644]