mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-17 22:23:45 -04:00
Move the Curve25519 test from an ad-hoc self-test to a KUnit test. Generally keep the same test logic for now, just translated to KUnit. There's one exception, which is that I dropped the incomplete test of curve25519_generic(). The approach I'm taking to cover the different implementations with the KUnit tests is to just rely on booting kernels in QEMU with different '-cpu' options, rather than try to make the tests (incompletely) test multiple implementations on one CPU. This way, both the test and the library API are simpler. This commit makes the file lib/crypto/curve25519.c no longer needed, as its only purpose was to call the self-test. However, keep it for now, since a later commit will add code to it again. Temporarily omit the default value of CRYPTO_SELFTESTS that the other lib/crypto/ KUnit tests have. It would cause a recursive kconfig dependency, since the Curve25519 code is still entangled with CRYPTO. A later commit will fix that. Link: https://lore.kernel.org/r/20250906213523.84915-8-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
90 lines
3.1 KiB
Plaintext
90 lines
3.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
config CRYPTO_LIB_BLAKE2S_KUNIT_TEST
|
|
tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
# No need to select 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
|
|
default KUNIT_ALL_TESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_CURVE25519
|
|
help
|
|
KUnit tests for the Curve25519 Diffie-Hellman function.
|
|
|
|
config CRYPTO_LIB_MD5_KUNIT_TEST
|
|
tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_MD5
|
|
help
|
|
KUnit tests for the MD5 cryptographic hash function and its
|
|
corresponding HMAC.
|
|
|
|
config CRYPTO_LIB_POLY1305_KUNIT_TEST
|
|
tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_POLY1305
|
|
help
|
|
KUnit tests for the Poly1305 library functions.
|
|
|
|
config CRYPTO_LIB_SHA1_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_SHA1
|
|
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
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_SHA256
|
|
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
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_SHA512
|
|
help
|
|
KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
|
|
and their corresponding HMACs.
|
|
|
|
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.
|