blob: 70661f58ee41c4ca0d07a02dc966c8f4ef608431 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
Dan Williams685784a2007-07-09 11:56:42 -07003# Generic algorithms support
4#
5config XOR_BLOCKS
6 tristate
7
8#
Dan Williams9bc89cd2007-01-02 11:10:44 -07009# async_tx api: hardware offloaded memory transfer/transform support
10#
11source "crypto/async_tx/Kconfig"
12
13#
Linus Torvalds1da177e2005-04-16 15:20:36 -070014# Cryptographic API Configuration
15#
Jan Engelhardt2e290f42007-05-18 15:11:01 +100016menuconfig CRYPTO
Sebastian Siewiorc3715cb92008-03-30 16:36:09 +080017 tristate "Cryptographic API"
Eric Biggers7033b932022-07-25 11:36:34 -070018 select CRYPTO_LIB_UTILS
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 help
20 This option provides the core Cryptographic API.
21
Herbert Xucce9e062006-08-21 21:08:13 +100022if CRYPTO
23
Robert Elliottf1f142a2022-08-20 13:41:44 -050024menu "Crypto core or helper"
Sebastian Siewior584fffc2008-04-05 21:04:48 +080025
Neil Hormanccb778e2008-08-05 14:13:08 +080026config CRYPTO_FIPS
27 bool "FIPS 200 compliance"
Herbert Xuf2c89a12014-07-04 22:15:08 +080028 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
Alec Ari1f696092016-10-04 19:34:30 -030029 depends on (MODULE_SIG || !MODULES)
Neil Hormanccb778e2008-08-05 14:13:08 +080030 help
Geert Uytterhoevend99324c2019-03-20 11:41:03 +010031 This option enables the fips boot option which is
32 required if you want the system to operate in a FIPS 200
Neil Hormanccb778e2008-08-05 14:13:08 +080033 certification. You should say no unless you know what
Chuck Ebberte84c5482010-09-03 19:17:49 +080034 this is.
Neil Hormanccb778e2008-08-05 14:13:08 +080035
Vladis Dronov5a447492022-07-08 14:33:13 +020036config CRYPTO_FIPS_NAME
37 string "FIPS Module Name"
38 default "Linux Kernel Cryptographic API"
39 depends on CRYPTO_FIPS
40 help
41 This option sets the FIPS Module name reported by the Crypto API via
42 the /proc/sys/crypto/fips_name file.
43
44config CRYPTO_FIPS_CUSTOM_VERSION
45 bool "Use Custom FIPS Module Version"
46 depends on CRYPTO_FIPS
47 default n
48
49config CRYPTO_FIPS_VERSION
50 string "FIPS Module Version"
51 default "(none)"
52 depends on CRYPTO_FIPS_CUSTOM_VERSION
53 help
54 This option provides the ability to override the FIPS Module Version.
55 By default the KERNELRELEASE value is used.
56
Herbert Xucce9e062006-08-21 21:08:13 +100057config CRYPTO_ALGAPI
58 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110059 select CRYPTO_ALGAPI2
Herbert Xucce9e062006-08-21 21:08:13 +100060 help
61 This option provides the API for cryptographic algorithms.
62
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110063config CRYPTO_ALGAPI2
64 tristate
65
Herbert Xu1ae97822007-08-30 15:36:14 +080066config CRYPTO_AEAD
67 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110068 select CRYPTO_AEAD2
Herbert Xu1ae97822007-08-30 15:36:14 +080069 select CRYPTO_ALGAPI
70
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110071config CRYPTO_AEAD2
72 tristate
73 select CRYPTO_ALGAPI2
74
Herbert Xu6cb88152023-06-15 18:28:48 +080075config CRYPTO_SIG
76 tristate
77 select CRYPTO_SIG2
78 select CRYPTO_ALGAPI
79
80config CRYPTO_SIG2
81 tristate
82 select CRYPTO_ALGAPI2
83
Eric Biggersb95bba52019-10-25 12:41:13 -070084config CRYPTO_SKCIPHER
Herbert Xu5cde0af2006-08-22 00:07:53 +100085 tristate
Eric Biggersb95bba52019-10-25 12:41:13 -070086 select CRYPTO_SKCIPHER2
Herbert Xu5cde0af2006-08-22 00:07:53 +100087 select CRYPTO_ALGAPI
Herbert Xu84534682023-10-03 11:31:55 +080088 select CRYPTO_ECB
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110089
Eric Biggersb95bba52019-10-25 12:41:13 -070090config CRYPTO_SKCIPHER2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110091 tristate
92 select CRYPTO_ALGAPI2
Herbert Xu5cde0af2006-08-22 00:07:53 +100093
Herbert Xu055bcee2006-08-19 22:24:23 +100094config CRYPTO_HASH
95 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110096 select CRYPTO_HASH2
Herbert Xu055bcee2006-08-19 22:24:23 +100097 select CRYPTO_ALGAPI
98
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110099config CRYPTO_HASH2
100 tristate
101 select CRYPTO_ALGAPI2
102
Neil Horman17f0f4a2008-08-14 22:15:52 +1000103config CRYPTO_RNG
104 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100105 select CRYPTO_RNG2
Neil Horman17f0f4a2008-08-14 22:15:52 +1000106 select CRYPTO_ALGAPI
107
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100108config CRYPTO_RNG2
109 tristate
110 select CRYPTO_ALGAPI2
111
Herbert Xu401e4232015-06-03 14:49:31 +0800112config CRYPTO_RNG_DEFAULT
113 tristate
114 select CRYPTO_DRBG_MENU
115
Tadeusz Struk3c339ab2015-06-16 10:30:55 -0700116config CRYPTO_AKCIPHER2
117 tristate
118 select CRYPTO_ALGAPI2
119
120config CRYPTO_AKCIPHER
121 tristate
122 select CRYPTO_AKCIPHER2
123 select CRYPTO_ALGAPI
124
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +0100125config CRYPTO_KPP2
126 tristate
127 select CRYPTO_ALGAPI2
128
129config CRYPTO_KPP
130 tristate
131 select CRYPTO_ALGAPI
132 select CRYPTO_KPP2
133
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100134config CRYPTO_ACOMP2
135 tristate
136 select CRYPTO_ALGAPI2
Bart Van Assche8cd579d2018-01-05 08:26:47 -0800137 select SGL_ALLOC
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100138
139config CRYPTO_ACOMP
140 tristate
141 select CRYPTO_ALGAPI
142 select CRYPTO_ACOMP2
143
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000144config CRYPTO_MANAGER
145 tristate "Cryptographic algorithm manager"
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100146 select CRYPTO_MANAGER2
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000147 help
148 Create default cryptographic template instantiations such as
149 cbc(aes).
150
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100151config CRYPTO_MANAGER2
152 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100153 select CRYPTO_ACOMP2
Herbert Xufb28fab2023-06-13 16:49:24 +0800154 select CRYPTO_AEAD2
155 select CRYPTO_AKCIPHER2
Herbert Xu6cb88152023-06-15 18:28:48 +0800156 select CRYPTO_SIG2
Herbert Xufb28fab2023-06-13 16:49:24 +0800157 select CRYPTO_HASH2
158 select CRYPTO_KPP2
159 select CRYPTO_RNG2
160 select CRYPTO_SKCIPHER2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100161
Steffen Klasserta38f7902011-09-27 07:23:50 +0200162config CRYPTO_USER
163 tristate "Userspace cryptographic algorithm configuration"
Herbert Xu5db017a2011-11-01 12:12:43 +1100164 depends on NET
Steffen Klasserta38f7902011-09-27 07:23:50 +0200165 select CRYPTO_MANAGER
166 help
Valdis.Kletnieks@vt.edud19978f2011-11-09 01:29:20 -0500167 Userspace configuration for cryptographic instantiations such as
Steffen Klasserta38f7902011-09-27 07:23:50 +0200168 cbc(aes).
169
Herbert Xu326a6342010-08-06 09:40:28 +0800170config CRYPTO_MANAGER_DISABLE_TESTS
171 bool "Disable run-time self tests"
Herbert Xu00ca28a2010-08-06 10:34:00 +0800172 default y
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000173 help
Herbert Xu326a6342010-08-06 09:40:28 +0800174 Disable run-time self tests that normally take place at
175 algorithm registration.
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000176
Eric Biggers5b2706a2019-01-31 23:51:44 -0800177config CRYPTO_MANAGER_EXTRA_TESTS
178 bool "Enable extra run-time crypto self tests"
Jason A. Donenfeld6569e302020-11-02 14:48:15 +0100179 depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER
Eric Biggers5b2706a2019-01-31 23:51:44 -0800180 help
181 Enable extra run-time self tests of registered crypto algorithms,
182 including randomized fuzz tests.
183
184 This is intended for developer use only, as these tests take much
185 longer to run than the normal self tests.
186
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800187config CRYPTO_NULL
188 tristate "Null algorithms"
Herbert Xu149a3972015-08-13 17:28:58 +0800189 select CRYPTO_NULL2
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800190 help
191 These are 'Null' algorithms, used by IPsec, which do nothing.
192
Herbert Xu149a3972015-08-13 17:28:58 +0800193config CRYPTO_NULL2
Herbert Xudd43c4e2015-08-17 20:39:40 +0800194 tristate
Herbert Xu149a3972015-08-13 17:28:58 +0800195 select CRYPTO_ALGAPI2
Eric Biggersb95bba52019-10-25 12:41:13 -0700196 select CRYPTO_SKCIPHER2
Herbert Xu149a3972015-08-13 17:28:58 +0800197 select CRYPTO_HASH2
198
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100199config CRYPTO_PCRYPT
Kees Cook3b4afaf2012-10-02 11:16:49 -0700200 tristate "Parallel crypto engine"
201 depends on SMP
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100202 select PADATA
203 select CRYPTO_MANAGER
204 select CRYPTO_AEAD
205 help
206 This converts an arbitrary crypto algorithm into a parallel
207 algorithm that executes in kernel threads.
208
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800209config CRYPTO_CRYPTD
210 tristate "Software async crypto daemon"
Eric Biggersb95bba52019-10-25 12:41:13 -0700211 select CRYPTO_SKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +0800212 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +1000213 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000214 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800215 This is a generic software asynchronous crypto daemon that
216 converts an arbitrary synchronous software crypto algorithm
217 into an asynchronous algorithm that executes in a kernel thread.
218
219config CRYPTO_AUTHENC
220 tristate "Authenc support"
221 select CRYPTO_AEAD
Eric Biggersb95bba52019-10-25 12:41:13 -0700222 select CRYPTO_SKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800223 select CRYPTO_MANAGER
224 select CRYPTO_HASH
Herbert Xue94c6a72015-08-04 21:23:14 +0800225 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800226 help
227 Authenc: Combined mode wrapper for IPsec.
Robert Elliottcf514b22022-08-20 13:41:50 -0500228
229 This is required for IPSec ESP (XFRM_ESP).
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800230
231config CRYPTO_TEST
232 tristate "Testing module"
Ard Biesheuvel00ea27f2020-11-20 12:04:32 +0100233 depends on m || EXPERT
Herbert Xuda7f0332008-07-31 17:08:25 +0800234 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800235 help
236 Quick & dirty crypto test module.
237
Herbert Xu266d0512016-11-22 20:08:25 +0800238config CRYPTO_SIMD
239 tristate
240 select CRYPTO_CRYPTD
241
Baolin Wang735d37b2016-01-26 20:25:39 +0800242config CRYPTO_ENGINE
243 tristate
244
Robert Elliottf1f142a2022-08-20 13:41:44 -0500245endmenu
246
247menu "Public-key cryptography"
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300248
249config CRYPTO_RSA
Robert Elliott05b37462022-08-20 13:41:45 -0500250 tristate "RSA (Rivest-Shamir-Adleman)"
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300251 select CRYPTO_AKCIPHER
252 select CRYPTO_MANAGER
253 select MPILIB
254 select ASN1
255 help
Robert Elliott05b37462022-08-20 13:41:45 -0500256 RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017)
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300257
258config CRYPTO_DH
Robert Elliott05b37462022-08-20 13:41:45 -0500259 tristate "DH (Diffie-Hellman)"
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300260 select CRYPTO_KPP
261 select MPILIB
262 help
Robert Elliott05b37462022-08-20 13:41:45 -0500263 DH (Diffie-Hellman) key exchange algorithm
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300264
Nicolai Stange7dce5982022-02-21 13:10:53 +0100265config CRYPTO_DH_RFC7919_GROUPS
Robert Elliott05b37462022-08-20 13:41:45 -0500266 bool "RFC 7919 FFDHE groups"
Nicolai Stange7dce5982022-02-21 13:10:53 +0100267 depends on CRYPTO_DH
Nicolai Stange1e207962022-02-21 13:10:55 +0100268 select CRYPTO_RNG_DEFAULT
Nicolai Stange7dce5982022-02-21 13:10:53 +0100269 help
Robert Elliott05b37462022-08-20 13:41:45 -0500270 FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups
271 defined in RFC7919.
272
273 Support these finite-field groups in DH key exchanges:
274 - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192
275
276 If unsure, say N.
Nicolai Stange7dce5982022-02-21 13:10:53 +0100277
Vitaly Chikunov4a2289d2019-04-11 18:51:19 +0300278config CRYPTO_ECC
279 tristate
Arnd Bergmann38aa1922021-09-20 12:05:35 +0200280 select CRYPTO_RNG_DEFAULT
Vitaly Chikunov4a2289d2019-04-11 18:51:19 +0300281
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300282config CRYPTO_ECDH
Robert Elliott05b37462022-08-20 13:41:45 -0500283 tristate "ECDH (Elliptic Curve Diffie-Hellman)"
Vitaly Chikunov4a2289d2019-04-11 18:51:19 +0300284 select CRYPTO_ECC
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300285 select CRYPTO_KPP
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300286 help
Robert Elliott05b37462022-08-20 13:41:45 -0500287 ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm
288 using curves P-192, P-256, and P-384 (FIPS 186)
Vitaly Chikunov3d6228a52019-04-11 18:51:18 +0300289
Stefan Berger4e660292021-03-16 17:07:32 -0400290config CRYPTO_ECDSA
Robert Elliott05b37462022-08-20 13:41:45 -0500291 tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)"
Stefan Berger4e660292021-03-16 17:07:32 -0400292 select CRYPTO_ECC
293 select CRYPTO_AKCIPHER
294 select ASN1
295 help
Robert Elliott05b37462022-08-20 13:41:45 -0500296 ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186,
297 ISO/IEC 14888-3)
298 using curves P-192, P-256, and P-384
299
300 Only signature verification is implemented.
Stefan Berger4e660292021-03-16 17:07:32 -0400301
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300302config CRYPTO_ECRDSA
Robert Elliott05b37462022-08-20 13:41:45 -0500303 tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)"
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300304 select CRYPTO_ECC
305 select CRYPTO_AKCIPHER
306 select CRYPTO_STREEBOG
Vitaly Chikunov10366332019-04-24 04:32:40 +0300307 select OID_REGISTRY
308 select ASN1
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300309 help
310 Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012,
Robert Elliott05b37462022-08-20 13:41:45 -0500311 RFC 7091, ISO/IEC 14888-3)
312
313 One of the Russian cryptographic standard algorithms (called GOST
314 algorithms). Only signature verification is implemented.
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300315
Tianjia Zhangea7ecb62020-09-21 00:20:57 +0800316config CRYPTO_SM2
Robert Elliott05b37462022-08-20 13:41:45 -0500317 tristate "SM2 (ShangMi 2)"
Jason A. Donenfeldd2825fa2022-03-13 21:11:01 -0600318 select CRYPTO_SM3
Tianjia Zhangea7ecb62020-09-21 00:20:57 +0800319 select CRYPTO_AKCIPHER
320 select CRYPTO_MANAGER
321 select MPILIB
322 select ASN1
323 help
Robert Elliott05b37462022-08-20 13:41:45 -0500324 SM2 (ShangMi 2) public key algorithm
325
326 Published by State Encryption Management Bureau, China,
Tianjia Zhangea7ecb62020-09-21 00:20:57 +0800327 as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012.
328
329 References:
Robert Elliott05b37462022-08-20 13:41:45 -0500330 https://datatracker.ietf.org/doc/draft-shen-sm2-ecdsa/
Tianjia Zhangea7ecb62020-09-21 00:20:57 +0800331 http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml
332 http://www.gmbz.org.cn/main/bzlb.html
333
Ard Biesheuvelee772cb2019-11-08 13:22:34 +0100334config CRYPTO_CURVE25519
Robert Elliott05b37462022-08-20 13:41:45 -0500335 tristate "Curve25519"
Ard Biesheuvelee772cb2019-11-08 13:22:34 +0100336 select CRYPTO_KPP
337 select CRYPTO_LIB_CURVE25519_GENERIC
Robert Elliott05b37462022-08-20 13:41:45 -0500338 help
339 Curve25519 elliptic curve (RFC7748)
Ard Biesheuvelee772cb2019-11-08 13:22:34 +0100340
Robert Elliottf1f142a2022-08-20 13:41:44 -0500341endmenu
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800342
Robert Elliottf1f142a2022-08-20 13:41:44 -0500343menu "Block ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700344
345config CRYPTO_AES
Robert Elliottcf514b22022-08-20 13:41:50 -0500346 tristate "AES (Advanced Encryption Standard)"
Herbert Xucce9e062006-08-21 21:08:13 +1000347 select CRYPTO_ALGAPI
Ard Biesheuvel5bb12d72019-07-02 21:41:33 +0200348 select CRYPTO_LIB_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700349 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500350 AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700351
352 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800353 both hardware and software across a wide range of computing
354 environments regardless of its use in feedback or non-feedback
355 modes. Its key setup time is excellent, and its key agility is
356 good. Rijndael's very low memory requirements make it very well
357 suited for restricted-space environments, in which it also
358 demonstrates excellent performance. Rijndael's operations are
359 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700360
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800361 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700362
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000363config CRYPTO_AES_TI
Robert Elliottcf514b22022-08-20 13:41:50 -0500364 tristate "AES (Advanced Encryption Standard) (fixed time)"
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000365 select CRYPTO_ALGAPI
Ard Biesheuvele59c1c92019-07-02 21:41:22 +0200366 select CRYPTO_LIB_AES
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000367 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500368 AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
369
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000370 This is a generic implementation of AES that attempts to eliminate
371 data dependent latencies as much as possible without affecting
372 performance too much. It is intended for use by the generic CCM
373 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
374 solely on encryption (although decryption is supported as well, but
375 with a more dramatic performance hit)
376
377 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
378 8 for decryption), this implementation only uses just two S-boxes of
379 256 bytes each, and attempts to eliminate data dependent latencies by
380 prefetching the entire table into the cache at the start of each
Eric Biggers0a6a40c2018-10-17 21:37:58 -0700381 block. Interrupts are also disabled to avoid races where cachelines
382 are evicted when the CPU is interrupted to do something else.
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000383
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800384config CRYPTO_ANUBIS
Robert Elliottcf514b22022-08-20 13:41:50 -0500385 tristate "Anubis"
Ard Biesheuvel1674aea2020-09-11 17:11:03 +0300386 depends on CRYPTO_USER_API_ENABLE_OBSOLETE
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800387 select CRYPTO_ALGAPI
388 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500389 Anubis cipher algorithm
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800390
391 Anubis is a variable key length cipher which can use keys from
392 128 bits to 320 bits in length. It was evaluated as a entrant
393 in the NESSIE competition.
394
Robert Elliottcf514b22022-08-20 13:41:50 -0500395 See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html
396 for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800397
Robert Elliottf1f142a2022-08-20 13:41:44 -0500398config CRYPTO_ARIA
Robert Elliottcf514b22022-08-20 13:41:50 -0500399 tristate "ARIA"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500400 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800401 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500402 ARIA cipher algorithm (RFC5794)
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800403
Robert Elliottf1f142a2022-08-20 13:41:44 -0500404 ARIA is a standard encryption algorithm of the Republic of Korea.
405 The ARIA specifies three key sizes and rounds.
406 128-bit: 12 rounds.
407 192-bit: 14 rounds.
408 256-bit: 16 rounds.
409
Robert Elliottcf514b22022-08-20 13:41:50 -0500410 See:
411 https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800412
413config CRYPTO_BLOWFISH
Robert Elliottcf514b22022-08-20 13:41:50 -0500414 tristate "Blowfish"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800415 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +0300416 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800417 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500418 Blowfish cipher algorithm, by Bruce Schneier
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800419
420 This is a variable key length cipher which can use keys from 32
421 bits to 448 bits in length. It's fast, simple and specifically
422 designed for use on "large microprocessors".
423
Robert Elliottcf514b22022-08-20 13:41:50 -0500424 See https://www.schneier.com/blowfish.html for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800425
Jussi Kivilinna52ba8672011-09-02 01:45:07 +0300426config CRYPTO_BLOWFISH_COMMON
427 tristate
428 help
429 Common parts of the Blowfish cipher algorithm shared by the
430 generic c and the assembler implementations.
431
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800432config CRYPTO_CAMELLIA
Robert Elliottcf514b22022-08-20 13:41:50 -0500433 tristate "Camellia"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800434 select CRYPTO_ALGAPI
435 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500436 Camellia cipher algorithms (ISO/IEC 18033-3)
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800437
438 Camellia is a symmetric key block cipher developed jointly
439 at NTT and Mitsubishi Electric Corporation.
440
441 The Camellia specifies three key sizes: 128, 192 and 256 bits.
442
Robert Elliottcf514b22022-08-20 13:41:50 -0500443 See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800444
Jussi Kivilinna044ab522012-11-13 11:43:14 +0200445config CRYPTO_CAST_COMMON
446 tristate
447 help
448 Common parts of the CAST cipher algorithms shared by the
449 generic c and the assembler implementations.
450
Linus Torvalds1da177e2005-04-16 15:20:36 -0700451config CRYPTO_CAST5
Robert Elliottcf514b22022-08-20 13:41:50 -0500452 tristate "CAST5 (CAST-128)"
Herbert Xucce9e062006-08-21 21:08:13 +1000453 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +0200454 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700455 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500456 CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700457
458config CRYPTO_CAST6
Robert Elliottcf514b22022-08-20 13:41:50 -0500459 tristate "CAST6 (CAST-256)"
Herbert Xucce9e062006-08-21 21:08:13 +1000460 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +0200461 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700462 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500463 CAST6 (CAST-256) encryption algorithm (RFC2612)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700464
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800465config CRYPTO_DES
Robert Elliottcf514b22022-08-20 13:41:50 -0500466 tristate "DES and Triple DES EDE"
Herbert Xucce9e062006-08-21 21:08:13 +1000467 select CRYPTO_ALGAPI
Ard Biesheuvel04007b02019-08-15 12:01:09 +0300468 select CRYPTO_LIB_DES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700469 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500470 DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and
471 Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3)
472 cipher algorithms
Linus Torvalds1da177e2005-04-16 15:20:36 -0700473
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800474config CRYPTO_FCRYPT
Robert Elliottcf514b22022-08-20 13:41:50 -0500475 tristate "FCrypt"
Herbert Xucce9e062006-08-21 21:08:13 +1000476 select CRYPTO_ALGAPI
Eric Biggersb95bba52019-10-25 12:41:13 -0700477 select CRYPTO_SKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700478 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500479 FCrypt algorithm used by RxRPC
480
481 See https://ota.polyonymo.us/fcrypt-paper.txt
Linus Torvalds1da177e2005-04-16 15:20:36 -0700482
483config CRYPTO_KHAZAD
Robert Elliottcf514b22022-08-20 13:41:50 -0500484 tristate "Khazad"
Ard Biesheuvel1674aea2020-09-11 17:11:03 +0300485 depends on CRYPTO_USER_API_ENABLE_OBSOLETE
Herbert Xucce9e062006-08-21 21:08:13 +1000486 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700487 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500488 Khazad cipher algorithm
Linus Torvalds1da177e2005-04-16 15:20:36 -0700489
490 Khazad was a finalist in the initial NESSIE competition. It is
491 an algorithm optimized for 64-bit processors with good performance
492 on 32-bit processors. Khazad uses an 128 bit key size.
493
Robert Elliottcf514b22022-08-20 13:41:50 -0500494 See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html
495 for further information.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700496
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800497config CRYPTO_SEED
Robert Elliottcf514b22022-08-20 13:41:50 -0500498 tristate "SEED"
Ard Biesheuvel1674aea2020-09-11 17:11:03 +0300499 depends on CRYPTO_USER_API_ENABLE_OBSOLETE
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800500 select CRYPTO_ALGAPI
501 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500502 SEED cipher algorithm (RFC4269, ISO/IEC 18033-3)
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800503
504 SEED is a 128-bit symmetric key block cipher that has been
505 developed by KISA (Korea Information Security Agency) as a
506 national standard encryption algorithm of the Republic of Korea.
507 It is a 16 round block cipher with the key size of 128 bit.
508
Robert Elliottcf514b22022-08-20 13:41:50 -0500509 See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
510 for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800511
512config CRYPTO_SERPENT
Robert Elliottcf514b22022-08-20 13:41:50 -0500513 tristate "Serpent"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800514 select CRYPTO_ALGAPI
515 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500516 Serpent cipher algorithm, by Anderson, Biham & Knudsen
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800517
518 Keys are allowed to be from 0 to 256 bits in length, in steps
Ard Biesheuvel784506a2021-02-01 19:02:30 +0100519 of 8 bits.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800520
Robert Elliottcf514b22022-08-20 13:41:50 -0500521 See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800522
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +0000523config CRYPTO_SM4
Jason A. Donenfeldd2825fa2022-03-13 21:11:01 -0600524 tristate
525
526config CRYPTO_SM4_GENERIC
Robert Elliottcf514b22022-08-20 13:41:50 -0500527 tristate "SM4 (ShangMi 4)"
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +0000528 select CRYPTO_ALGAPI
Jason A. Donenfeldd2825fa2022-03-13 21:11:01 -0600529 select CRYPTO_SM4
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +0000530 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500531 SM4 cipher algorithms (OSCCA GB/T 32907-2016,
532 ISO/IEC 18033-3:2010/Amd 1:2021)
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +0000533
534 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
535 Organization of State Commercial Administration of China (OSCCA)
536 as an authorized cryptographic algorithms for the use within China.
537
538 SMS4 was originally created for use in protecting wireless
539 networks, and is mandated in the Chinese National Standard for
540 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
541 (GB.15629.11-2003).
542
543 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
544 standardized through TC 260 of the Standardization Administration
545 of the People's Republic of China (SAC).
546
547 The input, output, and key of SMS4 are each 128 bits.
548
Robert Elliottcf514b22022-08-20 13:41:50 -0500549 See https://eprint.iacr.org/2008/329.pdf for further information.
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +0000550
551 If unsure, say N.
552
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800553config CRYPTO_TEA
Robert Elliottcf514b22022-08-20 13:41:50 -0500554 tristate "TEA, XTEA and XETA"
Ard Biesheuvel1674aea2020-09-11 17:11:03 +0300555 depends on CRYPTO_USER_API_ENABLE_OBSOLETE
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800556 select CRYPTO_ALGAPI
557 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500558 TEA (Tiny Encryption Algorithm) cipher algorithms
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800559
560 Tiny Encryption Algorithm is a simple cipher that uses
561 many rounds for security. It is very fast and uses
562 little memory.
563
564 Xtendend Tiny Encryption Algorithm is a modification to
565 the TEA algorithm to address a potential key weakness
566 in the TEA algorithm.
567
568 Xtendend Encryption Tiny Algorithm is a mis-implementation
569 of the XTEA algorithm for compatibility purposes.
570
571config CRYPTO_TWOFISH
Robert Elliottcf514b22022-08-20 13:41:50 -0500572 tristate "Twofish"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800573 select CRYPTO_ALGAPI
574 select CRYPTO_TWOFISH_COMMON
575 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500576 Twofish cipher algorithm
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800577
578 Twofish was submitted as an AES (Advanced Encryption Standard)
579 candidate cipher by researchers at CounterPane Systems. It is a
580 16 round block cipher supporting key sizes of 128, 192, and 256
581 bits.
582
Robert Elliottcf514b22022-08-20 13:41:50 -0500583 See https://www.schneier.com/twofish.html for further information.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800584
585config CRYPTO_TWOFISH_COMMON
586 tristate
587 help
588 Common parts of the Twofish cipher algorithm shared by the
589 generic c and the assembler implementations.
590
Robert Elliottf1f142a2022-08-20 13:41:44 -0500591endmenu
592
593menu "Length-preserving ciphers and modes"
594
595config CRYPTO_ADIANTUM
Robert Elliottcf514b22022-08-20 13:41:50 -0500596 tristate "Adiantum"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500597 select CRYPTO_CHACHA20
598 select CRYPTO_LIB_POLY1305_GENERIC
599 select CRYPTO_NHPOLY1305
600 select CRYPTO_MANAGER
601 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500602 Adiantum tweakable, length-preserving encryption mode
603
604 Designed for fast and secure disk encryption, especially on
Robert Elliottf1f142a2022-08-20 13:41:44 -0500605 CPUs without dedicated crypto instructions. It encrypts
606 each sector using the XChaCha12 stream cipher, two passes of
607 an ε-almost-∆-universal hash function, and an invocation of
608 the AES-256 block cipher on a single 16-byte block. On CPUs
609 without AES instructions, Adiantum is much faster than
610 AES-XTS.
611
612 Adiantum's security is provably reducible to that of its
613 underlying stream and block ciphers, subject to a security
614 bound. Unlike XTS, Adiantum is a true wide-block encryption
615 mode, so it actually provides an even stronger notion of
616 security than XTS, subject to the security bound.
617
618 If unsure, say N.
619
620config CRYPTO_ARC4
Robert Elliottcf514b22022-08-20 13:41:50 -0500621 tristate "ARC4 (Alleged Rivest Cipher 4)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500622 depends on CRYPTO_USER_API_ENABLE_OBSOLETE
623 select CRYPTO_SKCIPHER
624 select CRYPTO_LIB_ARC4
625 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500626 ARC4 cipher algorithm
Robert Elliottf1f142a2022-08-20 13:41:44 -0500627
628 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
629 bits in length. This algorithm is required for driver-based
630 WEP, but it should not be for other purposes because of the
631 weakness of the algorithm.
632
633config CRYPTO_CHACHA20
Robert Elliottcf514b22022-08-20 13:41:50 -0500634 tristate "ChaCha"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500635 select CRYPTO_LIB_CHACHA_GENERIC
636 select CRYPTO_SKCIPHER
637 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500638 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms
Robert Elliottf1f142a2022-08-20 13:41:44 -0500639
640 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
641 Bernstein and further specified in RFC7539 for use in IETF protocols.
Robert Elliottcf514b22022-08-20 13:41:50 -0500642 This is the portable C implementation of ChaCha20. See
643 https://cr.yp.to/chacha/chacha-20080128.pdf for further information.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500644
645 XChaCha20 is the application of the XSalsa20 construction to ChaCha20
646 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
647 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
Robert Elliottcf514b22022-08-20 13:41:50 -0500648 while provably retaining ChaCha20's security. See
649 https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500650
651 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
652 reduced security margin but increased performance. It can be needed
653 in some performance-sensitive scenarios.
654
655config CRYPTO_CBC
Robert Elliottcf514b22022-08-20 13:41:50 -0500656 tristate "CBC (Cipher Block Chaining)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500657 select CRYPTO_SKCIPHER
658 select CRYPTO_MANAGER
659 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500660 CBC (Cipher Block Chaining) mode (NIST SP800-38A)
661
662 This block cipher mode is required for IPSec ESP (XFRM_ESP).
Robert Elliottf1f142a2022-08-20 13:41:44 -0500663
664config CRYPTO_CFB
Robert Elliottcf514b22022-08-20 13:41:50 -0500665 tristate "CFB (Cipher Feedback)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500666 select CRYPTO_SKCIPHER
667 select CRYPTO_MANAGER
668 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500669 CFB (Cipher Feedback) mode (NIST SP800-38A)
670
671 This block cipher mode is required for TPM2 Cryptography.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500672
673config CRYPTO_CTR
Robert Elliottcf514b22022-08-20 13:41:50 -0500674 tristate "CTR (Counter)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500675 select CRYPTO_SKCIPHER
676 select CRYPTO_MANAGER
677 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500678 CTR (Counter) mode (NIST SP800-38A)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500679
680config CRYPTO_CTS
Robert Elliottcf514b22022-08-20 13:41:50 -0500681 tristate "CTS (Cipher Text Stealing)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500682 select CRYPTO_SKCIPHER
683 select CRYPTO_MANAGER
684 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500685 CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST
686 Addendum to SP800-38A (October 2010))
687
Robert Elliottf1f142a2022-08-20 13:41:44 -0500688 This mode is required for Kerberos gss mechanism support
689 for AES encryption.
690
Robert Elliottf1f142a2022-08-20 13:41:44 -0500691config CRYPTO_ECB
Robert Elliottcf514b22022-08-20 13:41:50 -0500692 tristate "ECB (Electronic Codebook)"
Herbert Xu84534682023-10-03 11:31:55 +0800693 select CRYPTO_SKCIPHER2
Robert Elliottf1f142a2022-08-20 13:41:44 -0500694 select CRYPTO_MANAGER
695 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500696 ECB (Electronic Codebook) mode (NIST SP800-38A)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500697
698config CRYPTO_HCTR2
Robert Elliottcf514b22022-08-20 13:41:50 -0500699 tristate "HCTR2"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500700 select CRYPTO_XCTR
701 select CRYPTO_POLYVAL
702 select CRYPTO_MANAGER
703 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500704 HCTR2 length-preserving encryption mode
705
706 A mode for storage encryption that is efficient on processors with
707 instructions to accelerate AES and carryless multiplication, e.g.
708 x86 processors with AES-NI and CLMUL, and ARM processors with the
709 ARMv8 crypto extensions.
710
711 See https://eprint.iacr.org/2021/1441
Robert Elliottf1f142a2022-08-20 13:41:44 -0500712
713config CRYPTO_KEYWRAP
Robert Elliottcf514b22022-08-20 13:41:50 -0500714 tristate "KW (AES Key Wrap)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500715 select CRYPTO_SKCIPHER
716 select CRYPTO_MANAGER
717 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500718 KW (AES Key Wrap) authenticated encryption mode (NIST SP800-38F
719 and RFC3394) without padding.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500720
721config CRYPTO_LRW
Robert Elliottcf514b22022-08-20 13:41:50 -0500722 tristate "LRW (Liskov Rivest Wagner)"
Ard Biesheuvel61c581a2022-11-03 20:22:57 +0100723 select CRYPTO_LIB_GF128MUL
Robert Elliottf1f142a2022-08-20 13:41:44 -0500724 select CRYPTO_SKCIPHER
725 select CRYPTO_MANAGER
Robert Elliottf1f142a2022-08-20 13:41:44 -0500726 select CRYPTO_ECB
727 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500728 LRW (Liskov Rivest Wagner) mode
729
730 A tweakable, non malleable, non movable
Robert Elliottf1f142a2022-08-20 13:41:44 -0500731 narrow block cipher mode for dm-crypt. Use it with cipher
732 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
733 The first 128, 192 or 256 bits in the key are used for AES and the
734 rest is used to tie each cipher block to its logical position.
735
Robert Elliottcf514b22022-08-20 13:41:50 -0500736 See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf
737
Robert Elliottf1f142a2022-08-20 13:41:44 -0500738config CRYPTO_OFB
Robert Elliottcf514b22022-08-20 13:41:50 -0500739 tristate "OFB (Output Feedback)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500740 select CRYPTO_SKCIPHER
741 select CRYPTO_MANAGER
742 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500743 OFB (Output Feedback) mode (NIST SP800-38A)
744
745 This mode makes a block cipher into a synchronous
Robert Elliottf1f142a2022-08-20 13:41:44 -0500746 stream cipher. It generates keystream blocks, which are then XORed
747 with the plaintext blocks to get the ciphertext. Flipping a bit in the
748 ciphertext produces a flipped bit in the plaintext at the same
749 location. This property allows many error correcting codes to function
750 normally even when applied before encryption.
751
752config CRYPTO_PCBC
Robert Elliottcf514b22022-08-20 13:41:50 -0500753 tristate "PCBC (Propagating Cipher Block Chaining)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500754 select CRYPTO_SKCIPHER
755 select CRYPTO_MANAGER
756 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500757 PCBC (Propagating Cipher Block Chaining) mode
758
759 This block cipher mode is required for RxRPC.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500760
761config CRYPTO_XCTR
762 tristate
763 select CRYPTO_SKCIPHER
764 select CRYPTO_MANAGER
765 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500766 XCTR (XOR Counter) mode for HCTR2
767
768 This blockcipher mode is a variant of CTR mode using XORs and little-endian
769 addition rather than big-endian arithmetic.
770
Robert Elliottf1f142a2022-08-20 13:41:44 -0500771 XCTR mode is used to implement HCTR2.
772
773config CRYPTO_XTS
Robert Elliottcf514b22022-08-20 13:41:50 -0500774 tristate "XTS (XOR Encrypt XOR with ciphertext stealing)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500775 select CRYPTO_SKCIPHER
776 select CRYPTO_MANAGER
777 select CRYPTO_ECB
778 help
Robert Elliottcf514b22022-08-20 13:41:50 -0500779 XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
780 and IEEE 1619)
781
782 Use with aes-xts-plain, key size 256, 384 or 512 bits. This
783 implementation currently can't handle a sectorsize which is not a
784 multiple of 16 bytes.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500785
786config CRYPTO_NHPOLY1305
787 tristate
788 select CRYPTO_HASH
789 select CRYPTO_LIB_POLY1305_GENERIC
790
791endmenu
792
793menu "AEAD (authenticated encryption with associated data) ciphers"
794
795config CRYPTO_AEGIS128
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500796 tristate "AEGIS-128"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500797 select CRYPTO_AEAD
798 select CRYPTO_AES # for AES S-box tables
799 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500800 AEGIS-128 AEAD algorithm
Robert Elliottf1f142a2022-08-20 13:41:44 -0500801
802config CRYPTO_AEGIS128_SIMD
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500803 bool "AEGIS-128 (arm NEON, arm64 NEON)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500804 depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
805 default y
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500806 help
807 AEGIS-128 AEAD algorithm
808
809 Architecture: arm or arm64 using:
810 - NEON (Advanced SIMD) extension
Robert Elliottf1f142a2022-08-20 13:41:44 -0500811
812config CRYPTO_CHACHA20POLY1305
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500813 tristate "ChaCha20-Poly1305"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500814 select CRYPTO_CHACHA20
815 select CRYPTO_POLY1305
816 select CRYPTO_AEAD
817 select CRYPTO_MANAGER
818 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500819 ChaCha20 stream cipher and Poly1305 authenticator combined
820 mode (RFC8439)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500821
822config CRYPTO_CCM
Robert Elliottcf514b22022-08-20 13:41:50 -0500823 tristate "CCM (Counter with Cipher Block Chaining-MAC)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500824 select CRYPTO_CTR
825 select CRYPTO_HASH
826 select CRYPTO_AEAD
827 select CRYPTO_MANAGER
828 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500829 CCM (Counter with Cipher Block Chaining-Message Authentication Code)
830 authenticated encryption mode (NIST SP800-38C)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500831
832config CRYPTO_GCM
Robert Elliottcf514b22022-08-20 13:41:50 -0500833 tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500834 select CRYPTO_CTR
835 select CRYPTO_AEAD
836 select CRYPTO_GHASH
837 select CRYPTO_NULL
838 select CRYPTO_MANAGER
839 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500840 GCM (Galois/Counter Mode) authenticated encryption mode and GMAC
841 (GCM Message Authentication Code) (NIST SP800-38D)
842
843 This is required for IPSec ESP (XFRM_ESP).
Robert Elliottf1f142a2022-08-20 13:41:44 -0500844
Herbert Xuba517382023-06-13 17:13:35 +0800845config CRYPTO_GENIV
846 tristate
847 select CRYPTO_AEAD
848 select CRYPTO_NULL
849 select CRYPTO_MANAGER
850 select CRYPTO_RNG_DEFAULT
851
Robert Elliottf1f142a2022-08-20 13:41:44 -0500852config CRYPTO_SEQIV
853 tristate "Sequence Number IV Generator"
Herbert Xuba517382023-06-13 17:13:35 +0800854 select CRYPTO_GENIV
Robert Elliottf1f142a2022-08-20 13:41:44 -0500855 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500856 Sequence Number IV generator
857
Robert Elliottf1f142a2022-08-20 13:41:44 -0500858 This IV generator generates an IV based on a sequence number by
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500859 xoring it with a salt. This algorithm is mainly useful for CTR.
860
861 This is required for IPsec ESP (XFRM_ESP).
Robert Elliottf1f142a2022-08-20 13:41:44 -0500862
863config CRYPTO_ECHAINIV
864 tristate "Encrypted Chain IV Generator"
Herbert Xuba517382023-06-13 17:13:35 +0800865 select CRYPTO_GENIV
Robert Elliottf1f142a2022-08-20 13:41:44 -0500866 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500867 Encrypted Chain IV generator
868
Robert Elliottf1f142a2022-08-20 13:41:44 -0500869 This IV generator generates an IV based on the encryption of
870 a sequence number xored with a salt. This is the default
871 algorithm for CBC.
872
873config CRYPTO_ESSIV
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500874 tristate "Encrypted Salt-Sector IV Generator"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500875 select CRYPTO_AUTHENC
876 help
Robert Elliotte3d2ead2022-08-20 13:41:47 -0500877 Encrypted Salt-Sector IV generator
878
879 This IV generator is used in some cases by fscrypt and/or
Robert Elliottf1f142a2022-08-20 13:41:44 -0500880 dm-crypt. It uses the hash of the block encryption key as the
881 symmetric key for a block encryption pass applied to the input
882 IV, making low entropy IV sources more suitable for block
883 encryption.
884
885 This driver implements a crypto API template that can be
886 instantiated either as an skcipher or as an AEAD (depending on the
887 type of the first template argument), and which defers encryption
888 and decryption requests to the encapsulated cipher after applying
889 ESSIV to the input IV. Note that in the AEAD case, it is assumed
890 that the keys are presented in the same format used by the authenc
891 template, and that the IV appears at the end of the authenticated
892 associated data (AAD) region (which is how dm-crypt uses it.)
893
894 Note that the use of ESSIV is not recommended for new deployments,
895 and so this only needs to be enabled when interoperability with
896 existing encrypted volumes of filesystems is required, or when
897 building for a particular system that requires it (e.g., when
898 the SoC in question has accelerated CBC but not XTS, making CBC
899 combined with ESSIV the only feasible mode for h/w accelerated
900 block encryption)
901
902endmenu
903
904menu "Hashes, digests, and MACs"
905
906config CRYPTO_BLAKE2B
Robert Elliott3f342a22022-08-20 13:41:48 -0500907 tristate "BLAKE2b"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500908 select CRYPTO_HASH
909 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500910 BLAKE2b cryptographic hash function (RFC 7693)
911
912 BLAKE2b is optimized for 64-bit platforms and can produce digests
913 of any size between 1 and 64 bytes. The keyed hash is also implemented.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500914
915 This module provides the following algorithms:
Robert Elliottf1f142a2022-08-20 13:41:44 -0500916 - blake2b-160
917 - blake2b-256
918 - blake2b-384
919 - blake2b-512
920
Robert Elliott3f342a22022-08-20 13:41:48 -0500921 Used by the btrfs filesystem.
922
Robert Elliottf1f142a2022-08-20 13:41:44 -0500923 See https://blake2.net for further information.
924
925config CRYPTO_CMAC
Robert Elliott3f342a22022-08-20 13:41:48 -0500926 tristate "CMAC (Cipher-based MAC)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500927 select CRYPTO_HASH
928 select CRYPTO_MANAGER
929 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500930 CMAC (Cipher-based Message Authentication Code) authentication
931 mode (NIST SP800-38B and IETF RFC4493)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500932
933config CRYPTO_GHASH
Robert Elliott3f342a22022-08-20 13:41:48 -0500934 tristate "GHASH"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500935 select CRYPTO_HASH
Ard Biesheuvel61c581a2022-11-03 20:22:57 +0100936 select CRYPTO_LIB_GF128MUL
Robert Elliottf1f142a2022-08-20 13:41:44 -0500937 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500938 GCM GHASH function (NIST SP800-38D)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500939
940config CRYPTO_HMAC
Robert Elliott3f342a22022-08-20 13:41:48 -0500941 tristate "HMAC (Keyed-Hash MAC)"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500942 select CRYPTO_HASH
943 select CRYPTO_MANAGER
944 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500945 HMAC (Keyed-Hash Message Authentication Code) (FIPS 198 and
946 RFC2104)
947
948 This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
Robert Elliottf1f142a2022-08-20 13:41:44 -0500949
950config CRYPTO_MD4
Robert Elliott3f342a22022-08-20 13:41:48 -0500951 tristate "MD4"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500952 select CRYPTO_HASH
953 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500954 MD4 message digest algorithm (RFC1320)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500955
956config CRYPTO_MD5
Robert Elliott3f342a22022-08-20 13:41:48 -0500957 tristate "MD5"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500958 select CRYPTO_HASH
959 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500960 MD5 message digest algorithm (RFC1321)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500961
962config CRYPTO_MICHAEL_MIC
Robert Elliott3f342a22022-08-20 13:41:48 -0500963 tristate "Michael MIC"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500964 select CRYPTO_HASH
965 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500966 Michael MIC (Message Integrity Code) (IEEE 802.11i)
967
968 Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol),
969 known as WPA (Wif-Fi Protected Access).
970
971 This algorithm is required for TKIP, but it should not be used for
972 other purposes because of the weakness of the algorithm.
Robert Elliottf1f142a2022-08-20 13:41:44 -0500973
974config CRYPTO_POLYVAL
975 tristate
Robert Elliottf1f142a2022-08-20 13:41:44 -0500976 select CRYPTO_HASH
Ard Biesheuvel61c581a2022-11-03 20:22:57 +0100977 select CRYPTO_LIB_GF128MUL
Robert Elliottf1f142a2022-08-20 13:41:44 -0500978 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500979 POLYVAL hash function for HCTR2
980
981 This is used in HCTR2. It is not a general-purpose
Robert Elliottf1f142a2022-08-20 13:41:44 -0500982 cryptographic hash function.
983
984config CRYPTO_POLY1305
Robert Elliott3f342a22022-08-20 13:41:48 -0500985 tristate "Poly1305"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500986 select CRYPTO_HASH
987 select CRYPTO_LIB_POLY1305_GENERIC
988 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500989 Poly1305 authenticator algorithm (RFC7539)
Robert Elliottf1f142a2022-08-20 13:41:44 -0500990
991 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
992 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
993 in IETF protocols. This is the portable C implementation of Poly1305.
994
995config CRYPTO_RMD160
Robert Elliott3f342a22022-08-20 13:41:48 -0500996 tristate "RIPEMD-160"
Robert Elliottf1f142a2022-08-20 13:41:44 -0500997 select CRYPTO_HASH
998 help
Robert Elliott3f342a22022-08-20 13:41:48 -0500999 RIPEMD-160 hash function (ISO/IEC 10118-3)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001000
1001 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
1002 to be used as a secure replacement for the 128-bit hash functions
1003 MD4, MD5 and its predecessor RIPEMD
1004 (not to be confused with RIPEMD-128).
1005
Robert Elliott3f342a22022-08-20 13:41:48 -05001006 Its speed is comparable to SHA-1 and there are no known attacks
Robert Elliottf1f142a2022-08-20 13:41:44 -05001007 against RIPEMD-160.
1008
1009 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Robert Elliott3f342a22022-08-20 13:41:48 -05001010 See https://homes.esat.kuleuven.be/~bosselae/ripemd160.html
1011 for further information.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001012
1013config CRYPTO_SHA1
Robert Elliott3f342a22022-08-20 13:41:48 -05001014 tristate "SHA-1"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001015 select CRYPTO_HASH
1016 select CRYPTO_LIB_SHA1
1017 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001018 SHA-1 secure hash algorithm (FIPS 180, ISO/IEC 10118-3)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001019
1020config CRYPTO_SHA256
Robert Elliott3f342a22022-08-20 13:41:48 -05001021 tristate "SHA-224 and SHA-256"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001022 select CRYPTO_HASH
1023 select CRYPTO_LIB_SHA256
1024 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001025 SHA-224 and SHA-256 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001026
Robert Elliott3f342a22022-08-20 13:41:48 -05001027 This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
1028 Used by the btrfs filesystem, Ceph, NFS, and SMB.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001029
1030config CRYPTO_SHA512
Robert Elliott3f342a22022-08-20 13:41:48 -05001031 tristate "SHA-384 and SHA-512"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001032 select CRYPTO_HASH
1033 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001034 SHA-384 and SHA-512 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001035
1036config CRYPTO_SHA3
Robert Elliott3f342a22022-08-20 13:41:48 -05001037 tristate "SHA-3"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001038 select CRYPTO_HASH
1039 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001040 SHA-3 secure hash algorithms (FIPS 202, ISO/IEC 10118-3)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001041
1042config CRYPTO_SM3
1043 tristate
1044
1045config CRYPTO_SM3_GENERIC
Robert Elliott3f342a22022-08-20 13:41:48 -05001046 tristate "SM3 (ShangMi 3)"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001047 select CRYPTO_HASH
1048 select CRYPTO_SM3
1049 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001050 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012, ISO/IEC 10118-3)
1051
1052 This is part of the Chinese Commercial Cryptography suite.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001053
1054 References:
1055 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
1056 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
1057
1058config CRYPTO_STREEBOG
Robert Elliott3f342a22022-08-20 13:41:48 -05001059 tristate "Streebog"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001060 select CRYPTO_HASH
1061 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001062 Streebog Hash Function (GOST R 34.11-2012, RFC 6986, ISO/IEC 10118-3)
1063
1064 This is one of the Russian cryptographic standard algorithms (called
1065 GOST algorithms). This setting enables two hash algorithms with
1066 256 and 512 bits output.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001067
1068 References:
1069 https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
1070 https://tools.ietf.org/html/rfc6986
1071
1072config CRYPTO_VMAC
Robert Elliott3f342a22022-08-20 13:41:48 -05001073 tristate "VMAC"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001074 select CRYPTO_HASH
1075 select CRYPTO_MANAGER
1076 help
1077 VMAC is a message authentication algorithm designed for
1078 very high speed on 64-bit architectures.
1079
Robert Elliott3f342a22022-08-20 13:41:48 -05001080 See https://fastcrypto.org/vmac for further information.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001081
1082config CRYPTO_WP512
Robert Elliott3f342a22022-08-20 13:41:48 -05001083 tristate "Whirlpool"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001084 select CRYPTO_HASH
1085 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001086 Whirlpool hash function (ISO/IEC 10118-3)
1087
1088 512, 384 and 256-bit hashes.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001089
1090 Whirlpool-512 is part of the NESSIE cryptographic primitives.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001091
Robert Elliott3f342a22022-08-20 13:41:48 -05001092 See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html
1093 for further information.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001094
1095config CRYPTO_XCBC
Robert Elliott3f342a22022-08-20 13:41:48 -05001096 tristate "XCBC-MAC (Extended Cipher Block Chaining MAC)"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001097 select CRYPTO_HASH
1098 select CRYPTO_MANAGER
1099 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001100 XCBC-MAC (Extended Cipher Block Chaining Message Authentication
1101 Code) (RFC3566)
Robert Elliottf1f142a2022-08-20 13:41:44 -05001102
1103config CRYPTO_XXHASH
Robert Elliott3f342a22022-08-20 13:41:48 -05001104 tristate "xxHash"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001105 select CRYPTO_HASH
1106 select XXHASH
1107 help
Robert Elliott3f342a22022-08-20 13:41:48 -05001108 xxHash non-cryptographic hash algorithm
1109
1110 Extremely fast, working at speeds close to RAM limits.
1111
1112 Used by the btrfs filesystem.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001113
1114endmenu
1115
1116menu "CRCs (cyclic redundancy checks)"
1117
1118config CRYPTO_CRC32C
Robert Elliottec843482022-08-20 13:41:46 -05001119 tristate "CRC32c"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001120 select CRYPTO_HASH
1121 select CRC32
1122 help
Robert Elliottec843482022-08-20 13:41:46 -05001123 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
1124
1125 A 32-bit CRC (cyclic redundancy check) with a polynomial defined
1126 by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic
1127 Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions
1128 on Communications, Vol. 41, No. 6, June 1993, selected for use with
1129 iSCSI.
1130
1131 Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001132
1133config CRYPTO_CRC32
Robert Elliottec843482022-08-20 13:41:46 -05001134 tristate "CRC32"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001135 select CRYPTO_HASH
1136 select CRC32
1137 help
Robert Elliottec843482022-08-20 13:41:46 -05001138 CRC32 CRC algorithm (IEEE 802.3)
1139
1140 Used by RoCEv2 and f2fs.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001141
1142config CRYPTO_CRCT10DIF
Robert Elliottec843482022-08-20 13:41:46 -05001143 tristate "CRCT10DIF"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001144 select CRYPTO_HASH
1145 help
Robert Elliottec843482022-08-20 13:41:46 -05001146 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
1147
1148 CRC algorithm used by the SCSI Block Commands standard.
Robert Elliottf1f142a2022-08-20 13:41:44 -05001149
1150config CRYPTO_CRC64_ROCKSOFT
Robert Elliottec843482022-08-20 13:41:46 -05001151 tristate "CRC64 based on Rocksoft Model algorithm"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001152 depends on CRC64
1153 select CRYPTO_HASH
Robert Elliottec843482022-08-20 13:41:46 -05001154 help
1155 CRC64 CRC algorithm based on the Rocksoft Model CRC Algorithm
1156
1157 Used by the NVMe implementation of T10 DIF (BLK_DEV_INTEGRITY)
1158
1159 See https://zlib.net/crc_v3.txt
Robert Elliottf1f142a2022-08-20 13:41:44 -05001160
1161endmenu
1162
1163menu "Compression"
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001164
Linus Torvalds1da177e2005-04-16 15:20:36 -07001165config CRYPTO_DEFLATE
Robert Elliotta9a98d42022-08-20 13:41:51 -05001166 tristate "Deflate"
Herbert Xucce9e062006-08-21 21:08:13 +10001167 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001168 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001169 select ZLIB_INFLATE
1170 select ZLIB_DEFLATE
1171 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001172 Deflate compression algorithm (RFC1951)
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001173
Robert Elliotta9a98d42022-08-20 13:41:51 -05001174 Used by IPSec with the IPCOMP protocol (RFC3173, RFC2394)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001175
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001176config CRYPTO_LZO
Robert Elliotta9a98d42022-08-20 13:41:51 -05001177 tristate "LZO"
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001178 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001179 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001180 select LZO_COMPRESS
1181 select LZO_DECOMPRESS
1182 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001183 LZO compression algorithm
1184
1185 See https://www.oberhumer.com/opensource/lzo/ for further information.
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001186
Seth Jennings35a1fc12012-07-19 09:42:41 -05001187config CRYPTO_842
Robert Elliotta9a98d42022-08-20 13:41:51 -05001188 tristate "842"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001189 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001190 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001191 select 842_COMPRESS
1192 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001193 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001194 842 compression algorithm by IBM
1195
1196 See https://github.com/plauth/lib842 for further information.
Seth Jennings35a1fc12012-07-19 09:42:41 -05001197
Chanho Min0ea85302013-07-08 16:01:51 -07001198config CRYPTO_LZ4
Robert Elliotta9a98d42022-08-20 13:41:51 -05001199 tristate "LZ4"
Chanho Min0ea85302013-07-08 16:01:51 -07001200 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001201 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001202 select LZ4_COMPRESS
1203 select LZ4_DECOMPRESS
1204 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001205 LZ4 compression algorithm
1206
1207 See https://github.com/lz4/lz4 for further information.
Chanho Min0ea85302013-07-08 16:01:51 -07001208
1209config CRYPTO_LZ4HC
Robert Elliotta9a98d42022-08-20 13:41:51 -05001210 tristate "LZ4HC"
Chanho Min0ea85302013-07-08 16:01:51 -07001211 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001212 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001213 select LZ4HC_COMPRESS
1214 select LZ4_DECOMPRESS
1215 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001216 LZ4 high compression mode algorithm
1217
1218 See https://github.com/lz4/lz4 for further information.
Chanho Min0ea85302013-07-08 16:01:51 -07001219
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001220config CRYPTO_ZSTD
Robert Elliotta9a98d42022-08-20 13:41:51 -05001221 tristate "Zstd"
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001222 select CRYPTO_ALGAPI
1223 select CRYPTO_ACOMP2
1224 select ZSTD_COMPRESS
1225 select ZSTD_DECOMPRESS
1226 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001227 zstd compression algorithm
1228
1229 See https://github.com/facebook/zstd for further information.
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001230
Robert Elliottf1f142a2022-08-20 13:41:44 -05001231endmenu
1232
1233menu "Random number generation"
Neil Horman17f0f4a2008-08-14 22:15:52 +10001234
1235config CRYPTO_ANSI_CPRNG
Robert Elliotta9a98d42022-08-20 13:41:51 -05001236 tristate "ANSI PRNG (Pseudo Random Number Generator)"
Neil Horman17f0f4a2008-08-14 22:15:52 +10001237 select CRYPTO_AES
1238 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001239 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001240 Pseudo RNG (random number generator) (ANSI X9.31 Appendix A.2.4)
1241
1242 This uses the AES cipher algorithm.
1243
1244 Note that this option must be enabled if CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001245
Herbert Xuf2c89a12014-07-04 22:15:08 +08001246menuconfig CRYPTO_DRBG_MENU
Robert Elliotta9a98d42022-08-20 13:41:51 -05001247 tristate "NIST SP800-90A DRBG (Deterministic Random Bit Generator)"
Stephan Mueller419090c2014-05-31 17:22:31 +02001248 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001249 DRBG (Deterministic Random Bit Generator) (NIST SP800-90A)
1250
1251 In the following submenu, one or more of the DRBG types must be selected.
Stephan Mueller419090c2014-05-31 17:22:31 +02001252
Herbert Xuf2c89a12014-07-04 22:15:08 +08001253if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001254
1255config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001256 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001257 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001258 select CRYPTO_HMAC
Stephan Mueller5261cdf2021-06-30 12:32:52 +02001259 select CRYPTO_SHA512
Stephan Mueller419090c2014-05-31 17:22:31 +02001260
1261config CRYPTO_DRBG_HASH
Robert Elliotta9a98d42022-08-20 13:41:51 -05001262 bool "Hash_DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001263 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001264 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001265 Hash_DRBG variant as defined in NIST SP800-90A.
1266
1267 This uses the SHA-1, SHA-256, SHA-384, or SHA-512 hash algorithms.
Stephan Mueller419090c2014-05-31 17:22:31 +02001268
1269config CRYPTO_DRBG_CTR
Robert Elliotta9a98d42022-08-20 13:41:51 -05001270 bool "CTR_DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001271 select CRYPTO_AES
Corentin Labbed6fc1a42020-04-24 13:40:47 +00001272 select CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001273 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001274 CTR_DRBG variant as defined in NIST SP800-90A.
1275
1276 This uses the AES cipher algorithm with the counter block mode.
Stephan Mueller419090c2014-05-31 17:22:31 +02001277
Herbert Xuf2c89a12014-07-04 22:15:08 +08001278config CRYPTO_DRBG
1279 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001280 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001281 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001282 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001283
1284endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001285
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001286config CRYPTO_JITTERENTROPY
Robert Elliotta9a98d42022-08-20 13:41:51 -05001287 tristate "CPU Jitter Non-Deterministic RNG (Random Number Generator)"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001288 select CRYPTO_RNG
Stephan Müllerbb897c52023-04-21 08:08:04 +02001289 select CRYPTO_SHA3
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001290 help
Robert Elliotta9a98d42022-08-20 13:41:51 -05001291 CPU Jitter RNG (Random Number Generator) from the Jitterentropy library
1292
1293 A non-physical non-deterministic ("true") RNG (e.g., an entropy source
1294 compliant with NIST SP800-90B) intended to provide a seed to a
1295 deterministic RNG (e.g. per NIST SP800-90C).
1296 This RNG does not perform any cryptographic whitening of the generated
1297
1298 See https://www.chronox.de/jent.html
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001299
Herbert Xue7ed6472023-11-06 18:00:08 +08001300if CRYPTO_JITTERENTROPY
1301if CRYPTO_FIPS && EXPERT
1302
Stephan Müller59bcfd72023-09-21 13:48:33 +02001303choice
1304 prompt "CPU Jitter RNG Memory Size"
1305 default CRYPTO_JITTERENTROPY_MEMSIZE_2
Stephan Müller59bcfd72023-09-21 13:48:33 +02001306 help
1307 The Jitter RNG measures the execution time of memory accesses.
1308 Multiple consecutive memory accesses are performed. If the memory
1309 size fits into a cache (e.g. L1), only the memory access timing
1310 to that cache is measured. The closer the cache is to the CPU
1311 the less variations are measured and thus the less entropy is
1312 obtained. Thus, if the memory size fits into the L1 cache, the
1313 obtained entropy is less than if the memory size fits within
1314 L1 + L2, which in turn is less if the memory fits into
1315 L1 + L2 + L3. Thus, by selecting a different memory size,
1316 the entropy rate produced by the Jitter RNG can be modified.
1317
1318 config CRYPTO_JITTERENTROPY_MEMSIZE_2
1319 bool "2048 Bytes (default)"
1320
1321 config CRYPTO_JITTERENTROPY_MEMSIZE_128
1322 bool "128 kBytes"
1323
1324 config CRYPTO_JITTERENTROPY_MEMSIZE_1024
1325 bool "1024 kBytes"
1326
1327 config CRYPTO_JITTERENTROPY_MEMSIZE_8192
1328 bool "8192 kBytes"
1329endchoice
1330
1331config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS
1332 int
1333 default 64 if CRYPTO_JITTERENTROPY_MEMSIZE_2
1334 default 512 if CRYPTO_JITTERENTROPY_MEMSIZE_128
1335 default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024
1336 default 4096 if CRYPTO_JITTERENTROPY_MEMSIZE_8192
1337
1338config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE
1339 int
1340 default 32 if CRYPTO_JITTERENTROPY_MEMSIZE_2
1341 default 256 if CRYPTO_JITTERENTROPY_MEMSIZE_128
1342 default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024
1343 default 2048 if CRYPTO_JITTERENTROPY_MEMSIZE_8192
1344
Stephan Müller0baa8fab32023-09-21 13:48:59 +02001345config CRYPTO_JITTERENTROPY_OSR
1346 int "CPU Jitter RNG Oversampling Rate"
1347 range 1 15
1348 default 1
Stephan Müller0baa8fab32023-09-21 13:48:59 +02001349 help
1350 The Jitter RNG allows the specification of an oversampling rate (OSR).
1351 The Jitter RNG operation requires a fixed amount of timing
1352 measurements to produce one output block of random numbers. The
1353 OSR value is multiplied with the amount of timing measurements to
1354 generate one output block. Thus, the timing measurement is oversampled
1355 by the OSR factor. The oversampling allows the Jitter RNG to operate
1356 on hardware whose timers deliver limited amount of entropy (e.g.
1357 the timer is coarse) by setting the OSR to a higher value. The
1358 trade-off, however, is that the Jitter RNG now requires more time
1359 to generate random numbers.
1360
Stephan Müller69f1c382023-04-21 08:08:23 +02001361config CRYPTO_JITTERENTROPY_TESTINTERFACE
1362 bool "CPU Jitter RNG Test Interface"
Stephan Müller69f1c382023-04-21 08:08:23 +02001363 help
1364 The test interface allows a privileged process to capture
1365 the raw unconditioned high resolution time stamp noise that
1366 is collected by the Jitter RNG for statistical analysis. As
1367 this data is used at the same time to generate random bits,
1368 the Jitter RNG operates in an insecure mode as long as the
1369 recording is enabled. This interface therefore is only
1370 intended for testing purposes and is not suitable for
1371 production systems.
1372
1373 The raw noise data can be obtained using the jent_raw_hires
1374 debugfs file. Using the option
1375 jitterentropy_testing.boot_raw_hires_test=1 the raw noise of
1376 the first 1000 entropy events since boot can be sampled.
1377
1378 If unsure, select N.
1379
Herbert Xue7ed6472023-11-06 18:00:08 +08001380endif # if CRYPTO_FIPS && EXPERT
1381
1382if !(CRYPTO_FIPS && EXPERT)
1383
1384config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS
1385 int
1386 default 64
1387
1388config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE
1389 int
1390 default 32
1391
1392config CRYPTO_JITTERENTROPY_OSR
1393 int
1394 default 1
1395
1396config CRYPTO_JITTERENTROPY_TESTINTERFACE
1397 bool
1398
1399endif # if !(CRYPTO_FIPS && EXPERT)
1400endif # if CRYPTO_JITTERENTROPY
1401
Stephan Müller026a7332021-11-19 07:55:58 +01001402config CRYPTO_KDF800108_CTR
1403 tristate
Herbert Xua88592c2022-01-18 16:31:29 +11001404 select CRYPTO_HMAC
Stephan Müller304b4ac2021-12-21 20:31:42 +01001405 select CRYPTO_SHA256
Stephan Müller026a7332021-11-19 07:55:58 +01001406
Robert Elliottf1f142a2022-08-20 13:41:44 -05001407endmenu
Robert Elliott9bc51712022-08-20 13:41:49 -05001408menu "Userspace interface"
Robert Elliottf1f142a2022-08-20 13:41:44 -05001409
Herbert Xu03c8efc2010-10-19 21:12:39 +08001410config CRYPTO_USER_API
1411 tristate
1412
Herbert Xufe869cd2010-10-19 21:23:00 +08001413config CRYPTO_USER_API_HASH
Robert Elliott9bc51712022-08-20 13:41:49 -05001414 tristate "Hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001415 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001416 select CRYPTO_HASH
1417 select CRYPTO_USER_API
1418 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001419 Enable the userspace interface for hash algorithms.
1420
1421 See Documentation/crypto/userspace-if.rst and
1422 https://www.chronox.de/libkcapi/html/index.html
Herbert Xufe869cd2010-10-19 21:23:00 +08001423
Herbert Xu8ff59092010-10-19 21:31:55 +08001424config CRYPTO_USER_API_SKCIPHER
Robert Elliott9bc51712022-08-20 13:41:49 -05001425 tristate "Symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001426 depends on NET
Eric Biggersb95bba52019-10-25 12:41:13 -07001427 select CRYPTO_SKCIPHER
Herbert Xu8ff59092010-10-19 21:31:55 +08001428 select CRYPTO_USER_API
1429 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001430 Enable the userspace interface for symmetric key cipher algorithms.
1431
1432 See Documentation/crypto/userspace-if.rst and
1433 https://www.chronox.de/libkcapi/html/index.html
Herbert Xu8ff59092010-10-19 21:31:55 +08001434
Stephan Mueller2f3755382014-12-25 23:00:39 +01001435config CRYPTO_USER_API_RNG
Robert Elliott9bc51712022-08-20 13:41:49 -05001436 tristate "RNG (random number generator) algorithms"
Stephan Mueller2f3755382014-12-25 23:00:39 +01001437 depends on NET
1438 select CRYPTO_RNG
1439 select CRYPTO_USER_API
1440 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001441 Enable the userspace interface for RNG (random number generator)
1442 algorithms.
1443
1444 See Documentation/crypto/userspace-if.rst and
1445 https://www.chronox.de/libkcapi/html/index.html
Stephan Mueller2f3755382014-12-25 23:00:39 +01001446
Elena Petrova77ebdab2020-09-18 16:42:16 +01001447config CRYPTO_USER_API_RNG_CAVP
1448 bool "Enable CAVP testing of DRBG"
1449 depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG
1450 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001451 Enable extra APIs in the userspace interface for NIST CAVP
1452 (Cryptographic Algorithm Validation Program) testing:
1453 - resetting DRBG entropy
1454 - providing Additional Data
1455
Elena Petrova77ebdab2020-09-18 16:42:16 +01001456 This should only be enabled for CAVP testing. You should say
1457 no unless you know what this is.
1458
Herbert Xub64a2d92015-05-28 11:30:35 +08001459config CRYPTO_USER_API_AEAD
Robert Elliott9bc51712022-08-20 13:41:49 -05001460 tristate "AEAD cipher algorithms"
Herbert Xub64a2d92015-05-28 11:30:35 +08001461 depends on NET
1462 select CRYPTO_AEAD
Eric Biggersb95bba52019-10-25 12:41:13 -07001463 select CRYPTO_SKCIPHER
Stephan Mueller72548b02017-07-30 14:32:58 +02001464 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001465 select CRYPTO_USER_API
1466 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001467 Enable the userspace interface for AEAD cipher algorithms.
1468
1469 See Documentation/crypto/userspace-if.rst and
1470 https://www.chronox.de/libkcapi/html/index.html
Herbert Xub64a2d92015-05-28 11:30:35 +08001471
Ard Biesheuvel9ace6772020-08-31 18:16:49 +03001472config CRYPTO_USER_API_ENABLE_OBSOLETE
Robert Elliott9bc51712022-08-20 13:41:49 -05001473 bool "Obsolete cryptographic algorithms"
Ard Biesheuvel9ace6772020-08-31 18:16:49 +03001474 depends on CRYPTO_USER_API
1475 default y
1476 help
1477 Allow obsolete cryptographic algorithms to be selected that have
1478 already been phased out from internal use by the kernel, and are
1479 only useful for userspace clients that still rely on them.
1480
Corentin Labbecac58182018-09-19 10:10:54 +00001481config CRYPTO_STATS
Robert Elliott9bc51712022-08-20 13:41:49 -05001482 bool "Crypto usage statistics"
Corentin Labbea6a31382018-11-29 14:42:17 +00001483 depends on CRYPTO_USER
Corentin Labbecac58182018-09-19 10:10:54 +00001484 help
Robert Elliott9bc51712022-08-20 13:41:49 -05001485 Enable the gathering of crypto stats.
1486
Eric Biggers66dd59b2023-05-20 10:31:05 -07001487 Enabling this option reduces the performance of the crypto API. It
1488 should only be enabled when there is actually a use case for it.
1489
Robert Elliott9bc51712022-08-20 13:41:49 -05001490 This collects data sizes, numbers of requests, and numbers
1491 of errors processed by:
1492 - AEAD ciphers (encrypt, decrypt)
1493 - asymmetric key ciphers (encrypt, decrypt, verify, sign)
1494 - symmetric key ciphers (encrypt, decrypt)
1495 - compression algorithms (compress, decompress)
1496 - hash algorithms (hash)
1497 - key-agreement protocol primitives (setsecret, generate
1498 public key, compute shared secret)
1499 - RNG (generate, seed)
Corentin Labbecac58182018-09-19 10:10:54 +00001500
Robert Elliottf1f142a2022-08-20 13:41:44 -05001501endmenu
1502
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001503config CRYPTO_HASH_INFO
1504 bool
1505
Linus Torvalds27bc50f2022-10-10 17:53:04 -07001506if !KMSAN # avoid false positives from assembly
Robert Elliott4a329fe2022-08-20 13:41:41 -05001507if ARM
1508source "arch/arm/crypto/Kconfig"
1509endif
1510if ARM64
1511source "arch/arm64/crypto/Kconfig"
1512endif
Min Zhou2f164822023-05-01 17:19:43 +08001513if LOONGARCH
1514source "arch/loongarch/crypto/Kconfig"
1515endif
Robert Elliotte45f7102022-08-20 13:41:35 -05001516if MIPS
1517source "arch/mips/crypto/Kconfig"
1518endif
Robert Elliott6a490a42022-08-20 13:41:36 -05001519if PPC
1520source "arch/powerpc/crypto/Kconfig"
1521endif
Robert Elliottc9d24c92022-08-20 13:41:37 -05001522if S390
1523source "arch/s390/crypto/Kconfig"
1524endif
Robert Elliott0e9f9ea62022-08-20 13:41:38 -05001525if SPARC
1526source "arch/sparc/crypto/Kconfig"
1527endif
Robert Elliott28a936e2022-08-20 13:41:39 -05001528if X86
1529source "arch/x86/crypto/Kconfig"
1530endif
Linus Torvalds27bc50f2022-10-10 17:53:04 -07001531endif
Robert Elliotte45f7102022-08-20 13:41:35 -05001532
Linus Torvalds1da177e2005-04-16 15:20:36 -07001533source "drivers/crypto/Kconfig"
Masahiro Yamada8636a1f2018-12-11 20:01:04 +09001534source "crypto/asymmetric_keys/Kconfig"
1535source "certs/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001536
Herbert Xucce9e062006-08-21 21:08:13 +10001537endif # if CRYPTO