]> git.ipfire.org Git - thirdparty/linux.git/commit
lib/crypto: riscv/sm3: Migrate optimized code into library
authorEric Biggers <ebiggers@kernel.org>
Sat, 21 Mar 2026 04:09:31 +0000 (21:09 -0700)
committerEric Biggers <ebiggers@kernel.org>
Tue, 24 Mar 2026 00:50:59 +0000 (17:50 -0700)
commit5f6bbba5e9bb7f271557513d0ed77bb7b5a92698
tree62feed9a3bb2bb747b4c39af5c85d823fd807cb6
parent9f69f52b462cdaed83b782d0408ce9286f054f92
lib/crypto: riscv/sm3: Migrate optimized code into library

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

Tweak the prototype of sm3_transform_zvksh_zvkb() to match what the
library expects, including changing the block count to size_t.
Note that the assembly code already treated it as size_t.

Note: to see the diff from arch/riscv/crypto/sm3-riscv64-glue.c to
lib/crypto/riscv/sm3.h, view this commit with 'git show -M10'.

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