xref: /linux/lib/crypto/tests/Kconfig (revision 2a87486bc5c2bcb6c8085c4e4a3c8ee73a7c5c75)
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
126401fd33SEric Biggersconfig CRYPTO_LIB_BLAKE2B_KUNIT_TEST
136401fd33SEric Biggers	tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
144478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_BLAKE2B
156d80749bSEric Biggers	default KUNIT_ALL_TESTS
166401fd33SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
176401fd33SEric Biggers	help
186401fd33SEric Biggers	  KUnit tests for the BLAKE2b cryptographic hash function.
196401fd33SEric Biggers
20362f9228SEric Biggersconfig CRYPTO_LIB_BLAKE2S_KUNIT_TEST
21362f9228SEric Biggers	tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
22362f9228SEric Biggers	depends on KUNIT
236d80749bSEric Biggers	default KUNIT_ALL_TESTS
24362f9228SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
254478e8eeSEric Biggers	# No need to depend on CRYPTO_LIB_BLAKE2S here, as that option doesn't
26362f9228SEric Biggers	# exist; the BLAKE2s code is always built-in for the /dev/random driver.
27362f9228SEric Biggers	help
28362f9228SEric Biggers	  KUnit tests for the BLAKE2s cryptographic hash function.
29362f9228SEric Biggers
30d2a68abaSEric Biggersconfig CRYPTO_LIB_CHACHA20POLY1305_KUNIT_TEST
31d2a68abaSEric Biggers	tristate "KUnit tests for ChaCha20Poly1305" if !KUNIT_ALL_TESTS
32d2a68abaSEric Biggers	depends on KUNIT && CRYPTO_LIB_CHACHA20POLY1305
33d2a68abaSEric Biggers	default KUNIT_ALL_TESTS
34d2a68abaSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
35d2a68abaSEric Biggers	help
36d2a68abaSEric Biggers	  KUnit tests for the ChaCha20Poly1305 authenticated encryption
37d2a68abaSEric Biggers	  algorithm.
38d2a68abaSEric Biggers
39afc4e4a5SEric Biggersconfig CRYPTO_LIB_CURVE25519_KUNIT_TEST
40afc4e4a5SEric Biggers	tristate "KUnit tests for Curve25519" if !KUNIT_ALL_TESTS
414478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_CURVE25519
426d80749bSEric Biggers	default KUNIT_ALL_TESTS
43afc4e4a5SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
44afc4e4a5SEric Biggers	help
45afc4e4a5SEric Biggers	  KUnit tests for the Curve25519 Diffie-Hellman function.
46afc4e4a5SEric Biggers
4775e34befSEric Biggersconfig CRYPTO_LIB_GHASH_KUNIT_TEST
4875e34befSEric Biggers	tristate "KUnit tests for GHASH" if !KUNIT_ALL_TESTS
4975e34befSEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
5075e34befSEric Biggers	default KUNIT_ALL_TESTS
5175e34befSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
5275e34befSEric Biggers	help
5375e34befSEric Biggers	  KUnit tests for the GHASH library functions.
5475e34befSEric Biggers
55d6b6aac0SEric Biggersconfig CRYPTO_LIB_MD5_KUNIT_TEST
56d6b6aac0SEric Biggers	tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
574478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MD5
586d80749bSEric Biggers	default KUNIT_ALL_TESTS
59d6b6aac0SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
60d6b6aac0SEric Biggers	help
61d6b6aac0SEric Biggers	  KUnit tests for the MD5 cryptographic hash function and its
62d6b6aac0SEric Biggers	  corresponding HMAC.
63d6b6aac0SEric Biggers
64ed894facSEric Biggersconfig CRYPTO_LIB_MLDSA_KUNIT_TEST
65ed894facSEric Biggers	tristate "KUnit tests for ML-DSA" if !KUNIT_ALL_TESTS
664478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_MLDSA
676d80749bSEric Biggers	default KUNIT_ALL_TESTS
68ed894facSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
69ed894facSEric Biggers	help
70ed894facSEric Biggers	  KUnit tests for the ML-DSA digital signature algorithm.
71ed894facSEric Biggers
727246fe6cSEric Biggersconfig CRYPTO_LIB_NH_KUNIT_TEST
737246fe6cSEric Biggers	tristate "KUnit tests for NH" if !KUNIT_ALL_TESTS
744478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_NH
756d80749bSEric Biggers	default KUNIT_ALL_TESTS
767246fe6cSEric Biggers	help
777246fe6cSEric Biggers	  KUnit tests for the NH almost-universal hash function.
787246fe6cSEric Biggers
796dd4d9f7SEric Biggersconfig CRYPTO_LIB_POLY1305_KUNIT_TEST
806dd4d9f7SEric Biggers	tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
814478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_POLY1305
826d80749bSEric Biggers	default KUNIT_ALL_TESTS
836dd4d9f7SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
846dd4d9f7SEric Biggers	help
856dd4d9f7SEric Biggers	  KUnit tests for the Poly1305 library functions.
866dd4d9f7SEric Biggers
87b3aed551SEric Biggersconfig CRYPTO_LIB_POLYVAL_KUNIT_TEST
88b3aed551SEric Biggers	tristate "KUnit tests for POLYVAL" if !KUNIT_ALL_TESTS
8961f66c52SEric Biggers	depends on KUNIT && CRYPTO_LIB_GF128HASH
906d80749bSEric Biggers	default KUNIT_ALL_TESTS
91b3aed551SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
92b3aed551SEric Biggers	help
93b3aed551SEric Biggers	  KUnit tests for the POLYVAL library functions.
94b3aed551SEric Biggers
9566b13060SEric Biggersconfig CRYPTO_LIB_SHA1_KUNIT_TEST
9666b13060SEric Biggers	tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
974478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA1
986d80749bSEric Biggers	default KUNIT_ALL_TESTS
9966b13060SEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
10066b13060SEric Biggers	help
10166b13060SEric Biggers	  KUnit tests for the SHA-1 cryptographic hash function and its
10266b13060SEric Biggers	  corresponding HMAC.
10366b13060SEric Biggers
1044dcf6cadSEric Biggers# Option is named *_SHA256_KUNIT_TEST, though both SHA-224 and SHA-256 tests are
1054dcf6cadSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA256).
1064dcf6cadSEric Biggersconfig CRYPTO_LIB_SHA256_KUNIT_TEST
1074dcf6cadSEric Biggers	tristate "KUnit tests for SHA-224 and SHA-256" if !KUNIT_ALL_TESTS
1084478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA256
1096d80749bSEric Biggers	default KUNIT_ALL_TESTS
1104dcf6cadSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
1114dcf6cadSEric Biggers	help
1124dcf6cadSEric Biggers	  KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions
1134dcf6cadSEric Biggers	  and their corresponding HMACs.
1144dcf6cadSEric Biggers
115571eaeddSEric Biggers# Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are
116571eaeddSEric Biggers# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512).
117571eaeddSEric Biggersconfig CRYPTO_LIB_SHA512_KUNIT_TEST
118571eaeddSEric Biggers	tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS
1194478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA512
1206d80749bSEric Biggers	default KUNIT_ALL_TESTS
121571eaeddSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
122571eaeddSEric Biggers	help
123571eaeddSEric Biggers	  KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
124571eaeddSEric Biggers	  and their corresponding HMACs.
125571eaeddSEric Biggers
12615c64c47SDavid Howellsconfig CRYPTO_LIB_SHA3_KUNIT_TEST
12715c64c47SDavid Howells	tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
1284478e8eeSEric Biggers	depends on KUNIT && CRYPTO_LIB_SHA3
1296d80749bSEric Biggers	default KUNIT_ALL_TESTS
13015c64c47SDavid Howells	select CRYPTO_LIB_BENCHMARK_VISIBLE
13115c64c47SDavid Howells	help
13215c64c47SDavid Howells	  KUnit tests for the SHA3 cryptographic hash and XOF functions,
13315c64c47SDavid Howells	  including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
13415c64c47SDavid Howells	  SHAKE256.
13515c64c47SDavid Howells
136d6781b8bSEric Biggersconfig CRYPTO_LIB_SM3_KUNIT_TEST
137d6781b8bSEric Biggers	tristate "KUnit tests for SM3" if !KUNIT_ALL_TESTS
138d6781b8bSEric Biggers	depends on KUNIT && CRYPTO_LIB_SM3
139d6781b8bSEric Biggers	default KUNIT_ALL_TESTS
140d6781b8bSEric Biggers	select CRYPTO_LIB_BENCHMARK_VISIBLE
141d6781b8bSEric Biggers	help
142d6781b8bSEric Biggers	  KUnit tests for the SM3 cryptographic hash function.
143d6781b8bSEric Biggers
144ed176744SEric Biggersconfig CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
145ed176744SEric Biggers	tristate "Enable all crypto library code for KUnit tests"
146ed176744SEric Biggers	depends on KUNIT
1473cbcf6a2SEric Biggers	select CRYPTO_LIB_AES_CBC
148ed176744SEric Biggers	select CRYPTO_LIB_AES_CBC_MACS
1491f2d69a3SEric Biggers	select CRYPTO_LIB_AES_CTR
1505ab301fcSEric Biggers	select CRYPTO_LIB_AES_ECB
151*2a87486bSEric Biggers	select CRYPTO_LIB_AES_GCM
152de9cccc5SEric Biggers	select CRYPTO_LIB_AES_XTS
153ed176744SEric Biggers	select CRYPTO_LIB_BLAKE2B
154d2a68abaSEric Biggers	select CRYPTO_LIB_CHACHA20POLY1305
155ed176744SEric Biggers	select CRYPTO_LIB_CURVE25519
15661f66c52SEric Biggers	select CRYPTO_LIB_GF128HASH
157ed176744SEric Biggers	select CRYPTO_LIB_MD5
158ed176744SEric Biggers	select CRYPTO_LIB_MLDSA
159ed176744SEric Biggers	select CRYPTO_LIB_NH
160ed176744SEric Biggers	select CRYPTO_LIB_POLY1305
161ed176744SEric Biggers	select CRYPTO_LIB_SHA1
162ed176744SEric Biggers	select CRYPTO_LIB_SHA256
163ed176744SEric Biggers	select CRYPTO_LIB_SHA512
164ed176744SEric Biggers	select CRYPTO_LIB_SHA3
165d6781b8bSEric Biggers	select CRYPTO_LIB_SM3
166ed176744SEric Biggers	help
167ed176744SEric Biggers	  Enable all the crypto library code that has KUnit tests.
168ed176744SEric Biggers
169ed176744SEric Biggers	  Enable this only if you'd like to test all the crypto library code,
170ed176744SEric Biggers	  even code that wouldn't otherwise need to be built.
171ed176744SEric Biggers
172ed176744SEric Biggers	  You'll still need to enable the tests themselves, either individually
173ed176744SEric Biggers	  or using KUNIT_ALL_TESTS.
174ed176744SEric Biggers
1754dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK_VISIBLE
1764dcf6cadSEric Biggers	bool
1774dcf6cadSEric Biggers
1784dcf6cadSEric Biggersconfig CRYPTO_LIB_BENCHMARK
1794dcf6cadSEric Biggers	bool "Include benchmarks in KUnit tests for cryptographic functions"
1804dcf6cadSEric Biggers	depends on CRYPTO_LIB_BENCHMARK_VISIBLE
1814dcf6cadSEric Biggers	help
1824dcf6cadSEric Biggers	  Include benchmarks in the KUnit tests for cryptographic functions.
1834dcf6cadSEric Biggers	  The benchmark results are printed to the kernel log when the
1844dcf6cadSEric Biggers	  corresponding KUnit test suite runs.
1854dcf6cadSEric Biggers
1864dcf6cadSEric Biggers	  This is useful for evaluating the performance of the cryptographic
1874dcf6cadSEric Biggers	  functions.  However, it will increase the runtime of the KUnit tests.
1884dcf6cadSEric Biggers
1894dcf6cadSEric Biggers	  If you're only interested in correctness testing, leave this disabled.
190