lib/crypto: sparc/sha512: Migrate optimized SHA-512 code to library
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:03:17 +0000 (09:03 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:26:20 +0000 (09:26 -0700)
commit02b35bab7e6c5bb2a843828316d528216b8cedc8
tree79afdac51707d8f950eed91b9198b518b613c08c
parentb7b366087e0f1645f867077a14bab617516d0f57
lib/crypto: sparc/sha512: Migrate optimized SHA-512 code to library

Instead of exposing the sparc-optimized SHA-512 code via sparc-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 sparc-optimized, and it fixes the
longstanding issue where the sparc-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 function from int to size_t.  The assembly function
actually already treated it as size_t.

Note: to see the diff from arch/sparc/crypto/sha512_glue.c to
lib/crypto/sparc/sha512.h, view this commit with 'git show -M10'.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250630160320.2888-14-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
arch/sparc/crypto/Kconfig
arch/sparc/crypto/Makefile
arch/sparc/crypto/sha512_asm.S [deleted file]
arch/sparc/crypto/sha512_glue.c [deleted file]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/sparc/sha512.h [new file with mode: 0644]
lib/crypto/sparc/sha512_asm.S [new file with mode: 0644]