mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Add a KUnit test suite for the SM3 library. It closely mirrors the test suites for the other cryptographic hash functions. The actual test and benchmark logic is already in hash-test-template.h; this just wires it up for SM3 in the usual way. Acked-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20260321040935.410034-6-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
175 lines
5.8 KiB
Plaintext
175 lines
5.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
config CRYPTO_LIB_AES_CBC_MACS_KUNIT_TEST
|
|
tristate "KUnit tests for AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_AES_CBC_MACS
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC message
|
|
authentication codes.
|
|
|
|
config CRYPTO_LIB_BLAKE2B_KUNIT_TEST
|
|
tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_BLAKE2B
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the BLAKE2b cryptographic hash function.
|
|
|
|
config CRYPTO_LIB_BLAKE2S_KUNIT_TEST
|
|
tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
# No need to depend on CRYPTO_LIB_BLAKE2S here, as that option doesn't
|
|
# exist; the BLAKE2s code is always built-in for the /dev/random driver.
|
|
help
|
|
KUnit tests for the BLAKE2s cryptographic hash function.
|
|
|
|
config CRYPTO_LIB_CURVE25519_KUNIT_TEST
|
|
tristate "KUnit tests for Curve25519" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_CURVE25519
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the Curve25519 Diffie-Hellman function.
|
|
|
|
config CRYPTO_LIB_GHASH_KUNIT_TEST
|
|
tristate "KUnit tests for GHASH" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_GF128HASH
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the GHASH library functions.
|
|
|
|
config CRYPTO_LIB_MD5_KUNIT_TEST
|
|
tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_MD5
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the MD5 cryptographic hash function and its
|
|
corresponding HMAC.
|
|
|
|
config CRYPTO_LIB_MLDSA_KUNIT_TEST
|
|
tristate "KUnit tests for ML-DSA" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_MLDSA
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the ML-DSA digital signature algorithm.
|
|
|
|
config CRYPTO_LIB_NH_KUNIT_TEST
|
|
tristate "KUnit tests for NH" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_NH
|
|
default KUNIT_ALL_TESTS
|
|
help
|
|
KUnit tests for the NH almost-universal hash function.
|
|
|
|
config CRYPTO_LIB_POLY1305_KUNIT_TEST
|
|
tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_POLY1305
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the Poly1305 library functions.
|
|
|
|
config CRYPTO_LIB_POLYVAL_KUNIT_TEST
|
|
tristate "KUnit tests for POLYVAL" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_GF128HASH
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the POLYVAL library functions.
|
|
|
|
config CRYPTO_LIB_SHA1_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_SHA1
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the SHA-1 cryptographic hash function and its
|
|
corresponding HMAC.
|
|
|
|
# Option is named *_SHA256_KUNIT_TEST, though both SHA-224 and SHA-256 tests are
|
|
# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA256).
|
|
config CRYPTO_LIB_SHA256_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-224 and SHA-256" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_SHA256
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions
|
|
and their corresponding HMACs.
|
|
|
|
# Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are
|
|
# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512).
|
|
config CRYPTO_LIB_SHA512_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_SHA512
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
|
|
and their corresponding HMACs.
|
|
|
|
config CRYPTO_LIB_SHA3_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_SHA3
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the SHA3 cryptographic hash and XOF functions,
|
|
including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
|
|
SHAKE256.
|
|
|
|
config CRYPTO_LIB_SM3_KUNIT_TEST
|
|
tristate "KUnit tests for SM3" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT && CRYPTO_LIB_SM3
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
KUnit tests for the SM3 cryptographic hash function.
|
|
|
|
config CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
|
|
tristate "Enable all crypto library code for KUnit tests"
|
|
depends on KUNIT
|
|
select CRYPTO_LIB_AES_CBC_MACS
|
|
select CRYPTO_LIB_BLAKE2B
|
|
select CRYPTO_LIB_CURVE25519
|
|
select CRYPTO_LIB_GF128HASH
|
|
select CRYPTO_LIB_MD5
|
|
select CRYPTO_LIB_MLDSA
|
|
select CRYPTO_LIB_NH
|
|
select CRYPTO_LIB_POLY1305
|
|
select CRYPTO_LIB_SHA1
|
|
select CRYPTO_LIB_SHA256
|
|
select CRYPTO_LIB_SHA512
|
|
select CRYPTO_LIB_SHA3
|
|
select CRYPTO_LIB_SM3
|
|
help
|
|
Enable all the crypto library code that has KUnit tests.
|
|
|
|
Enable this only if you'd like to test all the crypto library code,
|
|
even code that wouldn't otherwise need to be built.
|
|
|
|
You'll still need to enable the tests themselves, either individually
|
|
or using KUNIT_ALL_TESTS.
|
|
|
|
config CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
bool
|
|
|
|
config CRYPTO_LIB_BENCHMARK
|
|
bool "Include benchmarks in KUnit tests for cryptographic functions"
|
|
depends on CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
help
|
|
Include benchmarks in the KUnit tests for cryptographic functions.
|
|
The benchmark results are printed to the kernel log when the
|
|
corresponding KUnit test suite runs.
|
|
|
|
This is useful for evaluating the performance of the cryptographic
|
|
functions. However, it will increase the runtime of the KUnit tests.
|
|
|
|
If you're only interested in correctness testing, leave this disabled.
|