xref: /linux/lib/crypto/tests/Kconfig (revision 59e6295fac26b8e85c1ea859cdd89fa1e47519d7)
1# SPDX-License-Identifier: GPL-2.0-or-later
2
3config CRYPTO_LIB_AES_CBC_MACS_KUNIT_TEST
4	tristate "KUnit tests for AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC" if !KUNIT_ALL_TESTS
5	depends on KUNIT && CRYPTO_LIB_AES_CBC_MACS
6	default KUNIT_ALL_TESTS
7	select CRYPTO_LIB_BENCHMARK_VISIBLE
8	help
9	  KUnit tests for the AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC message
10	  authentication codes.
11
12config CRYPTO_LIB_AES_CCM_KUNIT_TEST
13	tristate "KUnit tests for AES-CCM" if !KUNIT_ALL_TESTS
14	depends on KUNIT && CRYPTO_LIB_AES_CCM
15	default KUNIT_ALL_TESTS
16	select CRYPTO_LIB_BENCHMARK_VISIBLE
17	# This test uses BLAKE2s, but that's always built-in.
18	help
19	  KUnit tests for the AES-CCM authenticated encryption algorithm.
20
21config CRYPTO_LIB_AES_GCM_KUNIT_TEST
22	tristate "KUnit tests for AES-GCM" if !KUNIT_ALL_TESTS
23	depends on KUNIT && CRYPTO_LIB_AES_GCM
24	default KUNIT_ALL_TESTS
25	select CRYPTO_LIB_BENCHMARK_VISIBLE
26	# This test uses BLAKE2s, but that's always built-in.
27	help
28	  KUnit tests for the AES-GCM authenticated encryption algorithm.
29
30config CRYPTO_LIB_BLAKE2B_KUNIT_TEST
31	tristate "KUnit tests for BLAKE2b" if !KUNIT_ALL_TESTS
32	depends on KUNIT && CRYPTO_LIB_BLAKE2B
33	default KUNIT_ALL_TESTS
34	select CRYPTO_LIB_BENCHMARK_VISIBLE
35	help
36	  KUnit tests for the BLAKE2b cryptographic hash function.
37
38config CRYPTO_LIB_BLAKE2S_KUNIT_TEST
39	tristate "KUnit tests for BLAKE2s" if !KUNIT_ALL_TESTS
40	depends on KUNIT
41	default KUNIT_ALL_TESTS
42	select CRYPTO_LIB_BENCHMARK_VISIBLE
43	# No need to depend on CRYPTO_LIB_BLAKE2S here, as that option doesn't
44	# exist; the BLAKE2s code is always built-in for the /dev/random driver.
45	help
46	  KUnit tests for the BLAKE2s cryptographic hash function.
47
48config CRYPTO_LIB_CHACHA20POLY1305_KUNIT_TEST
49	tristate "KUnit tests for ChaCha20Poly1305" if !KUNIT_ALL_TESTS
50	depends on KUNIT && CRYPTO_LIB_CHACHA20POLY1305
51	default KUNIT_ALL_TESTS
52	select CRYPTO_LIB_BENCHMARK_VISIBLE
53	help
54	  KUnit tests for the ChaCha20Poly1305 authenticated encryption
55	  algorithm.
56
57config CRYPTO_LIB_CURVE25519_KUNIT_TEST
58	tristate "KUnit tests for Curve25519" if !KUNIT_ALL_TESTS
59	depends on KUNIT && CRYPTO_LIB_CURVE25519
60	default KUNIT_ALL_TESTS
61	select CRYPTO_LIB_BENCHMARK_VISIBLE
62	help
63	  KUnit tests for the Curve25519 Diffie-Hellman function.
64
65config CRYPTO_LIB_GHASH_KUNIT_TEST
66	tristate "KUnit tests for GHASH" if !KUNIT_ALL_TESTS
67	depends on KUNIT && CRYPTO_LIB_GF128HASH
68	default KUNIT_ALL_TESTS
69	select CRYPTO_LIB_BENCHMARK_VISIBLE
70	help
71	  KUnit tests for the GHASH library functions.
72
73config CRYPTO_LIB_MD5_KUNIT_TEST
74	tristate "KUnit tests for MD5" if !KUNIT_ALL_TESTS
75	depends on KUNIT && CRYPTO_LIB_MD5
76	default KUNIT_ALL_TESTS
77	select CRYPTO_LIB_BENCHMARK_VISIBLE
78	help
79	  KUnit tests for the MD5 cryptographic hash function and its
80	  corresponding HMAC.
81
82config CRYPTO_LIB_MLDSA_KUNIT_TEST
83	tristate "KUnit tests for ML-DSA" if !KUNIT_ALL_TESTS
84	depends on KUNIT && CRYPTO_LIB_MLDSA
85	default KUNIT_ALL_TESTS
86	select CRYPTO_LIB_BENCHMARK_VISIBLE
87	help
88	  KUnit tests for the ML-DSA digital signature algorithm.
89
90config CRYPTO_LIB_NH_KUNIT_TEST
91	tristate "KUnit tests for NH" if !KUNIT_ALL_TESTS
92	depends on KUNIT && CRYPTO_LIB_NH
93	default KUNIT_ALL_TESTS
94	help
95	  KUnit tests for the NH almost-universal hash function.
96
97config CRYPTO_LIB_POLY1305_KUNIT_TEST
98	tristate "KUnit tests for Poly1305" if !KUNIT_ALL_TESTS
99	depends on KUNIT && CRYPTO_LIB_POLY1305
100	default KUNIT_ALL_TESTS
101	select CRYPTO_LIB_BENCHMARK_VISIBLE
102	help
103	  KUnit tests for the Poly1305 library functions.
104
105config CRYPTO_LIB_POLYVAL_KUNIT_TEST
106	tristate "KUnit tests for POLYVAL" if !KUNIT_ALL_TESTS
107	depends on KUNIT && CRYPTO_LIB_GF128HASH
108	default KUNIT_ALL_TESTS
109	select CRYPTO_LIB_BENCHMARK_VISIBLE
110	help
111	  KUnit tests for the POLYVAL library functions.
112
113config CRYPTO_LIB_SHA1_KUNIT_TEST
114	tristate "KUnit tests for SHA-1" if !KUNIT_ALL_TESTS
115	depends on KUNIT && CRYPTO_LIB_SHA1
116	default KUNIT_ALL_TESTS
117	select CRYPTO_LIB_BENCHMARK_VISIBLE
118	help
119	  KUnit tests for the SHA-1 cryptographic hash function and its
120	  corresponding HMAC.
121
122# Option is named *_SHA256_KUNIT_TEST, though both SHA-224 and SHA-256 tests are
123# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA256).
124config CRYPTO_LIB_SHA256_KUNIT_TEST
125	tristate "KUnit tests for SHA-224 and SHA-256" if !KUNIT_ALL_TESTS
126	depends on KUNIT && CRYPTO_LIB_SHA256
127	default KUNIT_ALL_TESTS
128	select CRYPTO_LIB_BENCHMARK_VISIBLE
129	help
130	  KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions
131	  and their corresponding HMACs.
132
133# Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are
134# included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512).
135config CRYPTO_LIB_SHA512_KUNIT_TEST
136	tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS
137	depends on KUNIT && CRYPTO_LIB_SHA512
138	default KUNIT_ALL_TESTS
139	select CRYPTO_LIB_BENCHMARK_VISIBLE
140	help
141	  KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
142	  and their corresponding HMACs.
143
144config CRYPTO_LIB_SHA3_KUNIT_TEST
145	tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
146	depends on KUNIT && CRYPTO_LIB_SHA3
147	default KUNIT_ALL_TESTS
148	select CRYPTO_LIB_BENCHMARK_VISIBLE
149	help
150	  KUnit tests for the SHA3 cryptographic hash and XOF functions,
151	  including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
152	  SHAKE256.
153
154config CRYPTO_LIB_SM3_KUNIT_TEST
155	tristate "KUnit tests for SM3" if !KUNIT_ALL_TESTS
156	depends on KUNIT && CRYPTO_LIB_SM3
157	default KUNIT_ALL_TESTS
158	select CRYPTO_LIB_BENCHMARK_VISIBLE
159	help
160	  KUnit tests for the SM3 cryptographic hash function.
161
162config CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
163	tristate "Enable all crypto library code for KUnit tests"
164	depends on KUNIT
165	select CRYPTO_LIB_AES_CBC
166	select CRYPTO_LIB_AES_CBC_MACS
167	select CRYPTO_LIB_AES_CCM
168	select CRYPTO_LIB_AES_CTR
169	select CRYPTO_LIB_AES_ECB
170	select CRYPTO_LIB_AES_GCM
171	select CRYPTO_LIB_AES_XTS
172	select CRYPTO_LIB_BLAKE2B
173	select CRYPTO_LIB_CHACHA20POLY1305
174	select CRYPTO_LIB_CURVE25519
175	select CRYPTO_LIB_GF128HASH
176	select CRYPTO_LIB_MD5
177	select CRYPTO_LIB_MLDSA
178	select CRYPTO_LIB_NH
179	select CRYPTO_LIB_POLY1305
180	select CRYPTO_LIB_SHA1
181	select CRYPTO_LIB_SHA256
182	select CRYPTO_LIB_SHA512
183	select CRYPTO_LIB_SHA3
184	select CRYPTO_LIB_SM3
185	help
186	  Enable all the crypto library code that has KUnit tests.
187
188	  Enable this only if you'd like to test all the crypto library code,
189	  even code that wouldn't otherwise need to be built.
190
191	  You'll still need to enable the tests themselves, either individually
192	  or using KUNIT_ALL_TESTS.
193
194config CRYPTO_LIB_BENCHMARK_VISIBLE
195	bool
196
197config CRYPTO_LIB_BENCHMARK
198	bool "Include benchmarks in KUnit tests for cryptographic functions"
199	depends on CRYPTO_LIB_BENCHMARK_VISIBLE
200	help
201	  Include benchmarks in the KUnit tests for cryptographic functions.
202	  The benchmark results are printed to the kernel log when the
203	  corresponding KUnit test suite runs.
204
205	  This is useful for evaluating the performance of the cryptographic
206	  functions.  However, it will increase the runtime of the KUnit tests.
207
208	  If you're only interested in correctness testing, leave this disabled.
209