]> git.ipfire.org Git - thirdparty/linux.git/commit
lib/crypto: riscv/sha512: Migrate optimized SHA-512 code to library
authorEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:03:15 +0000 (09:03 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 30 Jun 2025 16:26:19 +0000 (09:26 -0700)
commitb59059a22c5a717284b05385de5c0cbff2879859
treebefd47fb80d5d644f712f1840dcf780c117cc3f0
parent7117739ad2b40298776f428382ebce525adc7f7d
lib/crypto: riscv/sha512: Migrate optimized SHA-512 code to library

Instead of exposing the riscv-optimized SHA-512 code via riscv-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 riscv-optimized, and it fixes the
longstanding issue where the riscv-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/riscv/crypto/sha512-riscv64-glue.c to
lib/crypto/riscv/sha512.h, view this commit with 'git show -M10'.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250630160320.2888-12-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
arch/riscv/crypto/Kconfig
arch/riscv/crypto/Makefile
arch/riscv/crypto/sha512-riscv64-glue.c [deleted file]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/riscv/sha512-riscv64-zvknhb-zvkb.S [moved from arch/riscv/crypto/sha512-riscv64-zvknhb-zvkb.S with 98% similarity]
lib/crypto/riscv/sha512.h [new file with mode: 0644]