xref: /linux/lib/crypto/tests/Kconfig (revision 2aeef50ecadca2fea0c96abed49452ff9b582b48)
14dcf6cadSEric Biggers# SPDX-License-Identifier: GPL-2.0-or-later
24dcf6cadSEric Biggers
3a348fd1fSEric Biggersconfig CRYPTO_LIB_AES_CBC_MACS_KUNIT_TEST
4a348fd1fSEric Biggers	tristate "KUnit tests for AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC" if !KUNIT_ALL_TESTS
5a348fd1fSEric Biggers	depends on KUNIT && CRYPTO_LIB_AES_CBC_MACS
66d80749bSEric Biggers	default KUNIT_ALL_TESTS
7a348fd1fSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
8a348fd1fSEric Biggers	help
9a348fd1fSEric Biggers	  KUnit tests for the AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC message
10a348fd1fSEric Biggers	  authentication codes.
11a348fd1fSEric Biggers
12*2aeef50eSEric Biggersconfig CRYPTO_LIB_AES_CCM_KUNIT_TEST
13*2aeef50eSEric Biggers	tristate "KUnit tests for AES-CCM" if !KUNIT_ALL_TESTS
14*2aeef50eSEric Biggers	depends on KUNIT && CRYPTO_LIB_AES_CCM
15*2aeef50eSEric Biggers	default KUNIT_ALL_TESTS
16*2aeef50eSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
17*2aeef50eSEric Biggers	# This test uses BLAKE2s, but that's always built-in.
18*2aeef50eSEric Biggers	help
19*2aeef50eSEric Biggers	  KUnit tests for the AES-CCM authenticated encryption algorithm.
20*2aeef50eSEric Biggers
216401fd33SEric Biggersconfig CRYPTO_LIB_BLAKE2B_KUNIT_TEST
226401fd33SEric Biggers	tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
234478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_BLAKE2B
246d80749bSEric Biggers	default KUNIT_ALL_TESTS
256401fd33SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
266401fd33SEric Biggers	help
276401fd33SEric Biggers	  KUnit tests for the BLAKE2b cryptographic hash function.
286401fd33SEric Biggers
29362f9228SEric Biggersconfig CRYPTO_LIB_BLAKE2S_KUNIT_TEST
30362f9228SEric Biggers	tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
31362f9228SEric Biggers	depends on KUNIT
326d80749bSEric Biggers	default KUNIT_ALL_TESTS
33362f9228SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
344478e8eeSEric Biggers	# No need to depend on CRYPTO_LIB_BLAKE2S here, as that option doesn't
35362f9228SEric Biggers	# exist; the BLAKE2s code is always built-in for the /dev/random driver.
36362f9228SEric Biggers	help
37362f9228SEric Biggers	  KUnit tests for the BLAKE2s cryptographic hash function.
38362f9228SEric Biggers
39d2a68abaSEric Biggersconfig CRYPTO_LIB_CHACHA20POLY1305_KUNIT_TEST
40d2a68abaSEric Biggers	tristate "KUnit tests for ChaCha20Poly1305" if !KUNIT_ALL_TESTS
41d2a68abaSEric Biggers	depends on KUNIT && CRYPTO_LIB_CHACHA20POLY1305
42d2a68abaSEric Biggers	default KUNIT_ALL_TESTS
43d2a68abaSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
44d2a68abaSEric Biggers	help
45d2a68abaSEric Biggers	  KUnit tests for the ChaCha20Poly1305 authenticated encryption
46d2a68abaSEric Biggers	  algorithm.
47d2a68abaSEric Biggers
48afc4e4a5SEric Biggersconfig CRYPTO_LIB_CURVE25519_KUNIT_TEST
49afc4e4a5SEric Biggers	tristate "KUnit tests for Curve25519" if !KUNIT_ALL_TESTS
504478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_CURVE25519
516d80749bSEric Biggers	default KUNIT_ALL_TESTS
52afc4e4a5SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
53afc4e4a5SEric Biggers	help
54afc4e4a5SEric Biggers	  KUnit tests for the Curve25519 Diffie-Hellman function.
55afc4e4a5SEric Biggers
5675e34befSEric Biggersconfig CRYPTO_LIB_GHASH_KUNIT_TEST
5775e34befSEric Biggers	tristate "KUnit tests for GHASH" if !KUNIT_ALL_TESTS
5875e34befSEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
5975e34befSEric Biggers	default KUNIT_ALL_TESTS
6075e34befSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
6175e34befSEric Biggers	help
6275e34befSEric Biggers	  KUnit tests for the GHASH library functions.
6375e34befSEric Biggers
64d6b6aac0SEric Biggersconfig CRYPTO_LIB_MD5_KUNIT_TEST
65d6b6aac0SEric Biggers	tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
664478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MD5
676d80749bSEric Biggers	default KUNIT_ALL_TESTS
68d6b6aac0SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
69d6b6aac0SEric Biggers	help
70d6b6aac0SEric Biggers	  KUnit tests for the MD5 cryptographic hash function and its
71d6b6aac0SEric Biggers	  corresponding HMAC.
72d6b6aac0SEric Biggers
73ed894facSEric Biggersconfig CRYPTO_LIB_MLDSA_KUNIT_TEST
74ed894facSEric Biggers	tristate "KUnit tests for ML-DSA" if !KUNIT_ALL_TESTS
754478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MLDSA
766d80749bSEric Biggers	default KUNIT_ALL_TESTS
77ed894facSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
78ed894facSEric Biggers	help
79ed894facSEric Biggers	  KUnit tests for the ML-DSA digital signature algorithm.
80ed894facSEric Biggers
817246fe6cSEric Biggersconfig CRYPTO_LIB_NH_KUNIT_TEST
827246fe6cSEric Biggers	tristate "KUnit tests for NH" if !KUNIT_ALL_TESTS
834478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_NH
846d80749bSEric Biggers	default KUNIT_ALL_TESTS
857246fe6cSEric Biggers	help
867246fe6cSEric Biggers	  KUnit tests for the NH almost-universal hash function.
877246fe6cSEric Biggers
886dd4d9f7SEric Biggersconfig CRYPTO_LIB_POLY1305_KUNIT_TEST
896dd4d9f7SEric Biggers	tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
904478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_POLY1305
916d80749bSEric Biggers	default KUNIT_ALL_TESTS
926dd4d9f7SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
936dd4d9f7SEric Biggers	help
946dd4d9f7SEric Biggers	  KUnit tests for the Poly1305 library functions.
956dd4d9f7SEric Biggers
96b3aed551SEric Biggersconfig CRYPTO_LIB_POLYVAL_KUNIT_TEST
97b3aed551SEric Biggers	tristate "KUnit tests for POLYVAL" if !KUNIT_ALL_TESTS
9861f66c52SEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
996d80749bSEric Biggers	default KUNIT_ALL_TESTS
100b3aed551SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
101b3aed551SEric Biggers	help
102b3aed551SEric Biggers	  KUnit tests for the POLYVAL library functions.
103b3aed551SEric Biggers
10466b13060SEric Biggersconfig CRYPTO_LIB_SHA1_KUNIT_TEST
10566b13060SEric Biggers	tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
1064478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA1
1076d80749bSEric Biggers	default KUNIT_ALL_TESTS
10866b13060SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
10966b13060SEric Biggers	help
11066b13060SEric Biggers	  KUnit tests for the SHA-1 cryptographic hash function and its
11166b13060SEric Biggers	  corresponding HMAC.
11266b13060SEric Biggers
1134dcf6cadSEric Biggers# Option is named *_SHA256_KUNIT_TEST, though both SHA-224 and SHA-256 tests are
1144dcf6cadSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA256).
1154dcf6cadSEric Biggersconfig CRYPTO_LIB_SHA256_KUNIT_TEST
1164dcf6cadSEric Biggers	tristate "KUnit tests for SHA-224 and SHA-256" if !KUNIT_ALL_TESTS
1174478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA256
1186d80749bSEric Biggers	default KUNIT_ALL_TESTS
1194dcf6cadSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
1204dcf6cadSEric Biggers	help
1214dcf6cadSEric Biggers	  KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions
1224dcf6cadSEric Biggers	  and their corresponding HMACs.
1234dcf6cadSEric Biggers
124571eaeddSEric Biggers# Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are
125571eaeddSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512).
126571eaeddSEric Biggersconfig CRYPTO_LIB_SHA512_KUNIT_TEST
127571eaeddSEric Biggers	tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS
1284478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA512
1296d80749bSEric Biggers	default KUNIT_ALL_TESTS
130571eaeddSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
131571eaeddSEric Biggers	help
132571eaeddSEric Biggers	  KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
133571eaeddSEric Biggers	  and their corresponding HMACs.
134571eaeddSEric Biggers
13515c64c47SDavid Howellsconfig CRYPTO_LIB_SHA3_KUNIT_TEST
13615c64c47SDavid Howells	tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
1374478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA3
1386d80749bSEric Biggers	default KUNIT_ALL_TESTS
13915c64c47SDavid Howells	select CRYPTO_LIB_BENCHMARK_VISIBLE
14015c64c47SDavid Howells	help
14115c64c47SDavid Howells	  KUnit tests for the SHA3 cryptographic hash and XOF functions,
14215c64c47SDavid Howells	  including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
14315c64c47SDavid Howells	  SHAKE256.
14415c64c47SDavid Howells
145d6781b8bSEric Biggersconfig CRYPTO_LIB_SM3_KUNIT_TEST
146d6781b8bSEric Biggers	tristate "KUnit tests for SM3" if !KUNIT_ALL_TESTS
147d6781b8bSEric Biggers	depends on KUNIT && CRYPTO_LIB_SM3
148d6781b8bSEric Biggers	default KUNIT_ALL_TESTS
149d6781b8bSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
150d6781b8bSEric Biggers	help
151d6781b8bSEric Biggers	  KUnit tests for the SM3 cryptographic hash function.
152d6781b8bSEric Biggers
153ed176744SEric Biggersconfig CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
154ed176744SEric Biggers	tristate "Enable all crypto library code for KUnit tests"
155ed176744SEric Biggers	depends on KUNIT
1563cbcf6a2SEric Biggers	select CRYPTO_LIB_AES_CBC
157ed176744SEric Biggers	select CRYPTO_LIB_AES_CBC_MACS
1586a1f9969SEric Biggers	select CRYPTO_LIB_AES_CCM
1591f2d69a3SEric Biggers	select CRYPTO_LIB_AES_CTR
1605ab301fcSEric Biggers	select CRYPTO_LIB_AES_ECB
1612a87486bSEric Biggers	select CRYPTO_LIB_AES_GCM
162de9cccc5SEric Biggers	select CRYPTO_LIB_AES_XTS
163ed176744SEric Biggers	select CRYPTO_LIB_BLAKE2B
164d2a68abaSEric Biggers	select CRYPTO_LIB_CHACHA20POLY1305
165ed176744SEric Biggers	select CRYPTO_LIB_CURVE25519
16661f66c52SEric Biggers	select CRYPTO_LIB_GF128HASH
167ed176744SEric Biggers	select CRYPTO_LIB_MD5
168ed176744SEric Biggers	select CRYPTO_LIB_MLDSA
169ed176744SEric Biggers	select CRYPTO_LIB_NH
170ed176744SEric Biggers	select CRYPTO_LIB_POLY1305
171ed176744SEric Biggers	select CRYPTO_LIB_SHA1
172ed176744SEric Biggers	select CRYPTO_LIB_SHA256
173ed176744SEric Biggers	select CRYPTO_LIB_SHA512
174ed176744SEric Biggers	select CRYPTO_LIB_SHA3
175d6781b8bSEric Biggers	select CRYPTO_LIB_SM3
176ed176744SEric Biggers	help
177ed176744SEric Biggers	  Enable all the crypto library code that has KUnit tests.
178ed176744SEric Biggers
179ed176744SEric Biggers	  Enable this only if you'd like to test all the crypto library code,
180ed176744SEric Biggers	  even code that wouldn't otherwise need to be built.
181ed176744SEric Biggers
182ed176744SEric Biggers	  You'll still need to enable the tests themselves, either individually
183ed176744SEric Biggers	  or using KUNIT_ALL_TESTS.
184ed176744SEric Biggers
1854dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK_VISIBLE
1864dcf6cadSEric Biggers	bool
1874dcf6cadSEric Biggers
1884dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK
1894dcf6cadSEric Biggers	bool "Include benchmarks in KUnit tests for cryptographic functions"
1904dcf6cadSEric Biggers	depends on CRYPTO_LIB_BENCHMARK_VISIBLE
1914dcf6cadSEric Biggers	help
1924dcf6cadSEric Biggers	  Include benchmarks in the KUnit tests for cryptographic functions.
1934dcf6cadSEric Biggers	  The benchmark results are printed to the kernel log when the
1944dcf6cadSEric Biggers	  corresponding KUnit test suite runs.
1954dcf6cadSEric Biggers
1964dcf6cadSEric Biggers	  This is useful for evaluating the performance of the cryptographic
1974dcf6cadSEric Biggers	  functions.  However, it will increase the runtime of the KUnit tests.
1984dcf6cadSEric Biggers
1994dcf6cadSEric Biggers	  If you're only interested in correctness testing, leave this disabled.
200