lib/crypto: tests: Add KUnit tests for SHA-224 and SHA-256

Add KUnit test suites for the SHA-224 and SHA-256 library functions,
including the corresponding HMAC support.  The core test logic is in the
previously-added hash-test-template.h.  This commit just adds the actual
KUnit suites, and it adds the generated test vectors to the tree so that
gen-hash-testvecs.py won't have to be run at build time.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250709200112.258500-3-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
Eric Biggers
2025-07-09 13:01:10 -07:00
parent 950a81224e
commit 4dcf6cadda
8 changed files with 590 additions and 0 deletions

29
lib/crypto/tests/Kconfig Normal file
View File

@@ -0,0 +1,29 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# 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.
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.