]> git.ipfire.org Git - thirdparty/linux.git/commit
lib/crypto: x86/sha512: Migrate optimized SHA-512 code to library
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:03:18 +0000 (09:03 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:26:20 +0000 (09:26 -0700)
commit484c18119f4fbc6bca7c41e64b6fa84133e1057b
tree346e22a5915b62021b8fbccb090193cfcff848a3
parent02b35bab7e6c5bb2a843828316d528216b8cedc8
lib/crypto: x86/sha512: Migrate optimized SHA-512 code to library

Instead of exposing the x86-optimized SHA-512 code via x86-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 x86-optimized, and it fixes the
longstanding issue where the x86-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-15-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
arch/x86/crypto/Kconfig
arch/x86/crypto/Makefile
arch/x86/crypto/sha512_ssse3_glue.c [deleted file]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/x86/sha512-avx-asm.S [moved from arch/x86/crypto/sha512-avx-asm.S with 98% similarity]
lib/crypto/x86/sha512-avx2-asm.S [moved from arch/x86/crypto/sha512-avx2-asm.S with 99% similarity]
lib/crypto/x86/sha512-ssse3-asm.S [moved from arch/x86/crypto/sha512-ssse3-asm.S with 97% similarity]
lib/crypto/x86/sha512.h [new file with mode: 0644]