xref: /linux/lib/crypto/tests/Kconfig (revision fc8c78bce3335860ff4ae9fcfd3b2eb1f674efbb)
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
122aeef50eSEric Biggersconfig CRYPTO_LIB_AES_CCM_KUNIT_TEST
132aeef50eSEric Biggers	tristate "KUnit tests for AES-CCM" if !KUNIT_ALL_TESTS
142aeef50eSEric Biggers	depends on KUNIT && CRYPTO_LIB_AES_CCM
152aeef50eSEric Biggers	default KUNIT_ALL_TESTS
162aeef50eSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
172aeef50eSEric Biggers	# This test uses BLAKE2s, but that's always built-in.
182aeef50eSEric Biggers	help
192aeef50eSEric Biggers	  KUnit tests for the AES-CCM authenticated encryption algorithm.
202aeef50eSEric Biggers
21*b09bd2d9SEric Biggersconfig CRYPTO_LIB_AES_GCM_KUNIT_TEST
22*b09bd2d9SEric Biggers	tristate "KUnit tests for AES-GCM" if !KUNIT_ALL_TESTS
23*b09bd2d9SEric Biggers	depends on KUNIT && CRYPTO_LIB_AES_GCM
24*b09bd2d9SEric Biggers	default KUNIT_ALL_TESTS
25*b09bd2d9SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
26*b09bd2d9SEric Biggers	# This test uses BLAKE2s, but that's always built-in.
27*b09bd2d9SEric Biggers	help
28*b09bd2d9SEric Biggers	  KUnit tests for the AES-GCM authenticated encryption algorithm.
29*b09bd2d9SEric Biggers
306401fd33SEric Biggersconfig CRYPTO_LIB_BLAKE2B_KUNIT_TEST
316401fd33SEric Biggers	tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
324478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_BLAKE2B
336d80749bSEric Biggers	default KUNIT_ALL_TESTS
346401fd33SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
356401fd33SEric Biggers	help
366401fd33SEric Biggers	  KUnit tests for the BLAKE2b cryptographic hash function.
376401fd33SEric Biggers
38362f9228SEric Biggersconfig CRYPTO_LIB_BLAKE2S_KUNIT_TEST
39362f9228SEric Biggers	tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
40362f9228SEric Biggers	depends on KUNIT
416d80749bSEric Biggers	default KUNIT_ALL_TESTS
42362f9228SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
434478e8eeSEric Biggers	# No need to depend on CRYPTO_LIB_BLAKE2S here, as that option doesn't
44362f9228SEric Biggers	# exist; the BLAKE2s code is always built-in for the /dev/random driver.
45362f9228SEric Biggers	help
46362f9228SEric Biggers	  KUnit tests for the BLAKE2s cryptographic hash function.
47362f9228SEric Biggers
48d2a68abaSEric Biggersconfig CRYPTO_LIB_CHACHA20POLY1305_KUNIT_TEST
49d2a68abaSEric Biggers	tristate "KUnit tests for ChaCha20Poly1305" if !KUNIT_ALL_TESTS
50d2a68abaSEric Biggers	depends on KUNIT && CRYPTO_LIB_CHACHA20POLY1305
51d2a68abaSEric Biggers	default KUNIT_ALL_TESTS
52d2a68abaSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
53d2a68abaSEric Biggers	help
54d2a68abaSEric Biggers	  KUnit tests for the ChaCha20Poly1305 authenticated encryption
55d2a68abaSEric Biggers	  algorithm.
56d2a68abaSEric Biggers
57afc4e4a5SEric Biggersconfig CRYPTO_LIB_CURVE25519_KUNIT_TEST
58afc4e4a5SEric Biggers	tristate "KUnit tests for Curve25519" if !KUNIT_ALL_TESTS
594478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_CURVE25519
606d80749bSEric Biggers	default KUNIT_ALL_TESTS
61afc4e4a5SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
62afc4e4a5SEric Biggers	help
63afc4e4a5SEric Biggers	  KUnit tests for the Curve25519 Diffie-Hellman function.
64afc4e4a5SEric Biggers
6575e34befSEric Biggersconfig CRYPTO_LIB_GHASH_KUNIT_TEST
6675e34befSEric Biggers	tristate "KUnit tests for GHASH" if !KUNIT_ALL_TESTS
6775e34befSEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
6875e34befSEric Biggers	default KUNIT_ALL_TESTS
6975e34befSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
7075e34befSEric Biggers	help
7175e34befSEric Biggers	  KUnit tests for the GHASH library functions.
7275e34befSEric Biggers
73d6b6aac0SEric Biggersconfig CRYPTO_LIB_MD5_KUNIT_TEST
74d6b6aac0SEric Biggers	tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
754478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MD5
766d80749bSEric Biggers	default KUNIT_ALL_TESTS
77d6b6aac0SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
78d6b6aac0SEric Biggers	help
79d6b6aac0SEric Biggers	  KUnit tests for the MD5 cryptographic hash function and its
80d6b6aac0SEric Biggers	  corresponding HMAC.
81d6b6aac0SEric Biggers
82ed894facSEric Biggersconfig CRYPTO_LIB_MLDSA_KUNIT_TEST
83ed894facSEric Biggers	tristate "KUnit tests for ML-DSA" if !KUNIT_ALL_TESTS
844478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MLDSA
856d80749bSEric Biggers	default KUNIT_ALL_TESTS
86ed894facSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
87ed894facSEric Biggers	help
88ed894facSEric Biggers	  KUnit tests for the ML-DSA digital signature algorithm.
89ed894facSEric Biggers
907246fe6cSEric Biggersconfig CRYPTO_LIB_NH_KUNIT_TEST
917246fe6cSEric Biggers	tristate "KUnit tests for NH" if !KUNIT_ALL_TESTS
924478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_NH
936d80749bSEric Biggers	default KUNIT_ALL_TESTS
947246fe6cSEric Biggers	help
957246fe6cSEric Biggers	  KUnit tests for the NH almost-universal hash function.
967246fe6cSEric Biggers
976dd4d9f7SEric Biggersconfig CRYPTO_LIB_POLY1305_KUNIT_TEST
986dd4d9f7SEric Biggers	tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
994478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_POLY1305
1006d80749bSEric Biggers	default KUNIT_ALL_TESTS
1016dd4d9f7SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
1026dd4d9f7SEric Biggers	help
1036dd4d9f7SEric Biggers	  KUnit tests for the Poly1305 library functions.
1046dd4d9f7SEric Biggers
105b3aed551SEric Biggersconfig CRYPTO_LIB_POLYVAL_KUNIT_TEST
106b3aed551SEric Biggers	tristate "KUnit tests for POLYVAL" if !KUNIT_ALL_TESTS
10761f66c52SEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
1086d80749bSEric Biggers	default KUNIT_ALL_TESTS
109b3aed551SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
110b3aed551SEric Biggers	help
111b3aed551SEric Biggers	  KUnit tests for the POLYVAL library functions.
112b3aed551SEric Biggers
11366b13060SEric Biggersconfig CRYPTO_LIB_SHA1_KUNIT_TEST
11466b13060SEric Biggers	tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
1154478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA1
1166d80749bSEric Biggers	default KUNIT_ALL_TESTS
11766b13060SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
11866b13060SEric Biggers	help
11966b13060SEric Biggers	  KUnit tests for the SHA-1 cryptographic hash function and its
12066b13060SEric Biggers	  corresponding HMAC.
12166b13060SEric Biggers
1224dcf6cadSEric Biggers# Option is named *_SHA256_KUNIT_TEST, though both SHA-224 and SHA-256 tests are
1234dcf6cadSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA256).
1244dcf6cadSEric Biggersconfig CRYPTO_LIB_SHA256_KUNIT_TEST
1254dcf6cadSEric Biggers	tristate "KUnit tests for SHA-224 and SHA-256" if !KUNIT_ALL_TESTS
1264478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA256
1276d80749bSEric Biggers	default KUNIT_ALL_TESTS
1284dcf6cadSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
1294dcf6cadSEric Biggers	help
1304dcf6cadSEric Biggers	  KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions
1314dcf6cadSEric Biggers	  and their corresponding HMACs.
1324dcf6cadSEric Biggers
133571eaeddSEric Biggers# Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are
134571eaeddSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512).
135571eaeddSEric Biggersconfig CRYPTO_LIB_SHA512_KUNIT_TEST
136571eaeddSEric Biggers	tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS
1374478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA512
1386d80749bSEric Biggers	default KUNIT_ALL_TESTS
139571eaeddSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
140571eaeddSEric Biggers	help
141571eaeddSEric Biggers	  KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
142571eaeddSEric Biggers	  and their corresponding HMACs.
143571eaeddSEric Biggers
14415c64c47SDavid Howellsconfig CRYPTO_LIB_SHA3_KUNIT_TEST
14515c64c47SDavid Howells	tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
1464478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA3
1476d80749bSEric Biggers	default KUNIT_ALL_TESTS
14815c64c47SDavid Howells	select CRYPTO_LIB_BENCHMARK_VISIBLE
14915c64c47SDavid Howells	help
15015c64c47SDavid Howells	  KUnit tests for the SHA3 cryptographic hash and XOF functions,
15115c64c47SDavid Howells	  including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
15215c64c47SDavid Howells	  SHAKE256.
15315c64c47SDavid Howells
154d6781b8bSEric Biggersconfig CRYPTO_LIB_SM3_KUNIT_TEST
155d6781b8bSEric Biggers	tristate "KUnit tests for SM3" if !KUNIT_ALL_TESTS
156d6781b8bSEric Biggers	depends on KUNIT && CRYPTO_LIB_SM3
157d6781b8bSEric Biggers	default KUNIT_ALL_TESTS
158d6781b8bSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
159d6781b8bSEric Biggers	help
160d6781b8bSEric Biggers	  KUnit tests for the SM3 cryptographic hash function.
161d6781b8bSEric Biggers
162ed176744SEric Biggersconfig CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
163ed176744SEric Biggers	tristate "Enable all crypto library code for KUnit tests"
164ed176744SEric Biggers	depends on KUNIT
1653cbcf6a2SEric Biggers	select CRYPTO_LIB_AES_CBC
166ed176744SEric Biggers	select CRYPTO_LIB_AES_CBC_MACS
1676a1f9969SEric Biggers	select CRYPTO_LIB_AES_CCM
1681f2d69a3SEric Biggers	select CRYPTO_LIB_AES_CTR
1695ab301fcSEric Biggers	select CRYPTO_LIB_AES_ECB
1702a87486bSEric Biggers	select CRYPTO_LIB_AES_GCM
171de9cccc5SEric Biggers	select CRYPTO_LIB_AES_XTS
172ed176744SEric Biggers	select CRYPTO_LIB_BLAKE2B
173d2a68abaSEric Biggers	select CRYPTO_LIB_CHACHA20POLY1305
174ed176744SEric Biggers	select CRYPTO_LIB_CURVE25519
17561f66c52SEric Biggers	select CRYPTO_LIB_GF128HASH
176ed176744SEric Biggers	select CRYPTO_LIB_MD5
177ed176744SEric Biggers	select CRYPTO_LIB_MLDSA
178ed176744SEric Biggers	select CRYPTO_LIB_NH
179ed176744SEric Biggers	select CRYPTO_LIB_POLY1305
180ed176744SEric Biggers	select CRYPTO_LIB_SHA1
181ed176744SEric Biggers	select CRYPTO_LIB_SHA256
182ed176744SEric Biggers	select CRYPTO_LIB_SHA512
183ed176744SEric Biggers	select CRYPTO_LIB_SHA3
184d6781b8bSEric Biggers	select CRYPTO_LIB_SM3
185ed176744SEric Biggers	help
186ed176744SEric Biggers	  Enable all the crypto library code that has KUnit tests.
187ed176744SEric Biggers
188ed176744SEric Biggers	  Enable this only if you'd like to test all the crypto library code,
189ed176744SEric Biggers	  even code that wouldn't otherwise need to be built.
190ed176744SEric Biggers
191ed176744SEric Biggers	  You'll still need to enable the tests themselves, either individually
192ed176744SEric Biggers	  or using KUNIT_ALL_TESTS.
193ed176744SEric Biggers
1944dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK_VISIBLE
1954dcf6cadSEric Biggers	bool
1964dcf6cadSEric Biggers
1974dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK
1984dcf6cadSEric Biggers	bool "Include benchmarks in KUnit tests for cryptographic functions"
1994dcf6cadSEric Biggers	depends on CRYPTO_LIB_BENCHMARK_VISIBLE
2004dcf6cadSEric Biggers	help
2014dcf6cadSEric Biggers	  Include benchmarks in the KUnit tests for cryptographic functions.
2024dcf6cadSEric Biggers	  The benchmark results are printed to the kernel log when the
2034dcf6cadSEric Biggers	  corresponding KUnit test suite runs.
2044dcf6cadSEric Biggers
2054dcf6cadSEric Biggers	  This is useful for evaluating the performance of the cryptographic
2064dcf6cadSEric Biggers	  functions.  However, it will increase the runtime of the KUnit tests.
2074dcf6cadSEric Biggers
2084dcf6cadSEric Biggers	  If you're only interested in correctness testing, leave this disabled.
209