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