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

Instead of exposing the x86-optimized SM3 code via an x86-specific
crypto_shash algorithm, instead just implement the sm3_blocks() library
function.  This is much simpler, it makes the SM3 library functions be
x86-optimized, and it fixes the longstanding issue where the
x86-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_avx() to match what the library
expects, including changing the block count to size_t.  Note that the
assembly code actually already treated this argument as size_t.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260321040935.410034-10-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
arch/x86/crypto/Kconfig
arch/x86/crypto/Makefile
arch/x86/crypto/sm3_avx_glue.c [deleted file]
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/x86/sm3-avx-asm_64.S [moved from arch/x86/crypto/sm3-avx-asm_64.S with 98% similarity]
lib/crypto/x86/sm3.h [new file with mode: 0644]