mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-17 22:24:18 -04:00
Add a SHA3 kunit test suite, providing the following:
(*) A simple test of each of SHA3-224, SHA3-256, SHA3-384, SHA3-512,
SHAKE128 and SHAKE256.
(*) NIST 0- and 1600-bit test vectors for SHAKE128 and SHAKE256.
(*) Output tiling (multiple squeezing) tests for SHAKE256.
(*) Standard hash template test for SHA3-256. To make this possible,
gen-hash-testvecs.py is modified to support sha3-256.
(*) Standard benchmark test for SHA3-256.
[EB: dropped some unnecessary changes to gen-hash-testvecs.py, moved
addition of Testing section in doc file into this commit, and
other small cleanups]
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Harald Freudenberger <freude@linux.ibm.com>
Link: https://lore.kernel.org/r/20251026055032.1413733-6-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
110 lines
3.8 KiB
Plaintext
110 lines
3.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
config CRYPTO_LIB_BLAKE2B_KUNIT_TEST
|
|
tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_BLAKE2B
|
|
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 || 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 || CRYPTO_SELFTESTS
|
|
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_SHA3_KUNIT_TEST
|
|
tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
|
|
depends on KUNIT
|
|
default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
|
|
select CRYPTO_LIB_BENCHMARK_VISIBLE
|
|
select CRYPTO_LIB_SHA3
|
|
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_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.
|