blob: fdaa0dce0fcc08256475e5cb0e9a12ac0132453e [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"
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 help
19 This option provides the core Cryptographic API.
20
Herbert Xucce9e062006-08-21 21:08:13 +100021if CRYPTO
22
Sebastian Siewior584fffc2008-04-05 21:04:48 +080023comment "Crypto core or helper"
24
Neil Hormanccb778e2008-08-05 14:13:08 +080025config CRYPTO_FIPS
26 bool "FIPS 200 compliance"
Herbert Xuf2c89a12014-07-04 22:15:08 +080027 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
Alec Ari1f696092016-10-04 19:34:30 -030028 depends on (MODULE_SIG || !MODULES)
Neil Hormanccb778e2008-08-05 14:13:08 +080029 help
30 This options enables the fips boot option which is
31 required if you want to system to operate in a FIPS 200
32 certification. You should say no unless you know what
Chuck Ebberte84c5482010-09-03 19:17:49 +080033 this is.
Neil Hormanccb778e2008-08-05 14:13:08 +080034
Herbert Xucce9e062006-08-21 21:08:13 +100035config CRYPTO_ALGAPI
36 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110037 select CRYPTO_ALGAPI2
Herbert Xucce9e062006-08-21 21:08:13 +100038 help
39 This option provides the API for cryptographic algorithms.
40
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110041config CRYPTO_ALGAPI2
42 tristate
43
Herbert Xu1ae97822007-08-30 15:36:14 +080044config CRYPTO_AEAD
45 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110046 select CRYPTO_AEAD2
Herbert Xu1ae97822007-08-30 15:36:14 +080047 select CRYPTO_ALGAPI
48
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110049config CRYPTO_AEAD2
50 tristate
51 select CRYPTO_ALGAPI2
Herbert Xu149a3972015-08-13 17:28:58 +080052 select CRYPTO_NULL2
53 select CRYPTO_RNG2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110054
Herbert Xu5cde0af2006-08-22 00:07:53 +100055config CRYPTO_BLKCIPHER
56 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110057 select CRYPTO_BLKCIPHER2
Herbert Xu5cde0af2006-08-22 00:07:53 +100058 select CRYPTO_ALGAPI
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110059
60config CRYPTO_BLKCIPHER2
61 tristate
62 select CRYPTO_ALGAPI2
63 select CRYPTO_RNG2
Huang Ying0a2e8212009-02-19 14:44:02 +080064 select CRYPTO_WORKQUEUE
Herbert Xu5cde0af2006-08-22 00:07:53 +100065
Herbert Xu055bcee2006-08-19 22:24:23 +100066config CRYPTO_HASH
67 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110068 select CRYPTO_HASH2
Herbert Xu055bcee2006-08-19 22:24:23 +100069 select CRYPTO_ALGAPI
70
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110071config CRYPTO_HASH2
72 tristate
73 select CRYPTO_ALGAPI2
74
Neil Horman17f0f4a2008-08-14 22:15:52 +100075config CRYPTO_RNG
76 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110077 select CRYPTO_RNG2
Neil Horman17f0f4a2008-08-14 22:15:52 +100078 select CRYPTO_ALGAPI
79
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110080config CRYPTO_RNG2
81 tristate
82 select CRYPTO_ALGAPI2
83
Herbert Xu401e4232015-06-03 14:49:31 +080084config CRYPTO_RNG_DEFAULT
85 tristate
86 select CRYPTO_DRBG_MENU
87
Tadeusz Struk3c339ab2015-06-16 10:30:55 -070088config CRYPTO_AKCIPHER2
89 tristate
90 select CRYPTO_ALGAPI2
91
92config CRYPTO_AKCIPHER
93 tristate
94 select CRYPTO_AKCIPHER2
95 select CRYPTO_ALGAPI
96
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +010097config CRYPTO_KPP2
98 tristate
99 select CRYPTO_ALGAPI2
100
101config CRYPTO_KPP
102 tristate
103 select CRYPTO_ALGAPI
104 select CRYPTO_KPP2
105
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100106config CRYPTO_ACOMP2
107 tristate
108 select CRYPTO_ALGAPI2
Bart Van Assche8cd579d2018-01-05 08:26:47 -0800109 select SGL_ALLOC
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100110
111config CRYPTO_ACOMP
112 tristate
113 select CRYPTO_ALGAPI
114 select CRYPTO_ACOMP2
115
Tadeusz Strukcfc2bb32015-06-16 10:31:01 -0700116config CRYPTO_RSA
117 tristate "RSA algorithm"
Tadeusz Struk425e0172015-06-19 10:27:39 -0700118 select CRYPTO_AKCIPHER
Tadeusz Struk58446fe2016-05-04 06:38:46 -0700119 select CRYPTO_MANAGER
Tadeusz Strukcfc2bb32015-06-16 10:31:01 -0700120 select MPILIB
121 select ASN1
122 help
123 Generic implementation of the RSA public key algorithm.
124
Salvatore Benedetto802c7f12016-06-22 17:49:14 +0100125config CRYPTO_DH
126 tristate "Diffie-Hellman algorithm"
127 select CRYPTO_KPP
128 select MPILIB
129 help
130 Generic implementation of the Diffie-Hellman algorithm.
131
Salvatore Benedetto3c4b2392016-06-22 17:49:15 +0100132config CRYPTO_ECDH
133 tristate "ECDH algorithm"
Hauke Mehrtensb5b90072017-11-26 00:16:46 +0100134 select CRYPTO_KPP
Tudor-Dan Ambarus6755fd22017-05-30 17:52:48 +0300135 select CRYPTO_RNG_DEFAULT
Salvatore Benedetto3c4b2392016-06-22 17:49:15 +0100136 help
137 Generic implementation of the ECDH algorithm
Salvatore Benedetto802c7f12016-06-22 17:49:14 +0100138
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000139config CRYPTO_MANAGER
140 tristate "Cryptographic algorithm manager"
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100141 select CRYPTO_MANAGER2
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000142 help
143 Create default cryptographic template instantiations such as
144 cbc(aes).
145
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100146config CRYPTO_MANAGER2
147 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
148 select CRYPTO_AEAD2
149 select CRYPTO_HASH2
150 select CRYPTO_BLKCIPHER2
Tadeusz Struk946cc462015-06-16 10:31:06 -0700151 select CRYPTO_AKCIPHER2
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +0100152 select CRYPTO_KPP2
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100153 select CRYPTO_ACOMP2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100154
Steffen Klasserta38f7902011-09-27 07:23:50 +0200155config CRYPTO_USER
156 tristate "Userspace cryptographic algorithm configuration"
Herbert Xu5db017a2011-11-01 12:12:43 +1100157 depends on NET
Steffen Klasserta38f7902011-09-27 07:23:50 +0200158 select CRYPTO_MANAGER
159 help
Valdis.Kletnieks@vt.edud19978f2011-11-09 01:29:20 -0500160 Userspace configuration for cryptographic instantiations such as
Steffen Klasserta38f7902011-09-27 07:23:50 +0200161 cbc(aes).
162
Herbert Xu326a6342010-08-06 09:40:28 +0800163config CRYPTO_MANAGER_DISABLE_TESTS
164 bool "Disable run-time self tests"
Herbert Xu00ca28a2010-08-06 10:34:00 +0800165 default y
166 depends on CRYPTO_MANAGER2
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000167 help
Herbert Xu326a6342010-08-06 09:40:28 +0800168 Disable run-time self tests that normally take place at
169 algorithm registration.
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000170
Rik Snelc494e072006-11-29 18:59:44 +1100171config CRYPTO_GF128MUL
Jussi Kivilinna08c70fc2011-12-13 12:53:22 +0200172 tristate "GF(2^128) multiplication functions"
Rik Snelc494e072006-11-29 18:59:44 +1100173 help
174 Efficient table driven implementation of multiplications in the
175 field GF(2^128). This is needed by some cypher modes. This
176 option will be selected automatically if you select such a
177 cipher mode. Only select this option by hand if you expect to load
178 an external module that requires these functions.
179
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800180config CRYPTO_NULL
181 tristate "Null algorithms"
Herbert Xu149a3972015-08-13 17:28:58 +0800182 select CRYPTO_NULL2
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800183 help
184 These are 'Null' algorithms, used by IPsec, which do nothing.
185
Herbert Xu149a3972015-08-13 17:28:58 +0800186config CRYPTO_NULL2
Herbert Xudd43c4e2015-08-17 20:39:40 +0800187 tristate
Herbert Xu149a3972015-08-13 17:28:58 +0800188 select CRYPTO_ALGAPI2
189 select CRYPTO_BLKCIPHER2
190 select CRYPTO_HASH2
191
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100192config CRYPTO_PCRYPT
Kees Cook3b4afaf2012-10-02 11:16:49 -0700193 tristate "Parallel crypto engine"
194 depends on SMP
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100195 select PADATA
196 select CRYPTO_MANAGER
197 select CRYPTO_AEAD
198 help
199 This converts an arbitrary crypto algorithm into a parallel
200 algorithm that executes in kernel threads.
201
Huang Ying25c38d32009-02-19 14:33:40 +0800202config CRYPTO_WORKQUEUE
203 tristate
204
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800205config CRYPTO_CRYPTD
206 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +1000207 select CRYPTO_BLKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +0800208 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +1000209 select CRYPTO_MANAGER
Huang Ying254eff72009-02-19 14:42:19 +0800210 select CRYPTO_WORKQUEUE
Herbert Xudb131ef2006-09-21 11:44:08 +1000211 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800212 This is a generic software asynchronous crypto daemon that
213 converts an arbitrary synchronous software crypto algorithm
214 into an asynchronous algorithm that executes in a kernel thread.
215
Tim Chen1e65b812014-07-31 10:29:51 -0700216config CRYPTO_MCRYPTD
217 tristate "Software async multi-buffer crypto daemon"
218 select CRYPTO_BLKCIPHER
219 select CRYPTO_HASH
220 select CRYPTO_MANAGER
221 select CRYPTO_WORKQUEUE
222 help
223 This is a generic software asynchronous crypto daemon that
224 provides the kernel thread to assist multi-buffer crypto
225 algorithms for submitting jobs and flushing jobs in multi-buffer
226 crypto algorithms. Multi-buffer crypto algorithms are executed
227 in the context of this kernel thread and drivers can post
Ted Percival0e566732014-09-04 15:18:21 +0800228 their crypto request asynchronously to be processed by this daemon.
Tim Chen1e65b812014-07-31 10:29:51 -0700229
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800230config CRYPTO_AUTHENC
231 tristate "Authenc support"
232 select CRYPTO_AEAD
233 select CRYPTO_BLKCIPHER
234 select CRYPTO_MANAGER
235 select CRYPTO_HASH
Herbert Xue94c6a72015-08-04 21:23:14 +0800236 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800237 help
238 Authenc: Combined mode wrapper for IPsec.
239 This is required for IPSec.
240
241config CRYPTO_TEST
242 tristate "Testing module"
243 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +0800244 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800245 help
246 Quick & dirty crypto test module.
247
Herbert Xu266d0512016-11-22 20:08:25 +0800248config CRYPTO_SIMD
249 tristate
250 select CRYPTO_CRYPTD
251
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300252config CRYPTO_GLUE_HELPER_X86
253 tristate
254 depends on X86
Herbert Xu065ce322016-11-22 20:08:29 +0800255 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300256
Baolin Wang735d37b2016-01-26 20:25:39 +0800257config CRYPTO_ENGINE
258 tristate
259
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800260comment "Authenticated Encryption with Associated Data"
261
262config CRYPTO_CCM
263 tristate "CCM support"
264 select CRYPTO_CTR
Ard Biesheuvelf15f05b2017-02-03 14:49:36 +0000265 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800266 select CRYPTO_AEAD
267 help
268 Support for Counter with CBC MAC. Required for IPsec.
269
270config CRYPTO_GCM
271 tristate "GCM/GMAC support"
272 select CRYPTO_CTR
273 select CRYPTO_AEAD
Huang Ying9382d972009-08-06 15:34:26 +1000274 select CRYPTO_GHASH
Jussi Kivilinna9489667d2013-04-07 16:43:41 +0300275 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800276 help
277 Support for Galois/Counter Mode (GCM) and Galois Message
278 Authentication Code (GMAC). Required for IPSec.
279
Martin Willi71ebc4d2015-06-01 13:44:00 +0200280config CRYPTO_CHACHA20POLY1305
281 tristate "ChaCha20-Poly1305 AEAD support"
282 select CRYPTO_CHACHA20
283 select CRYPTO_POLY1305
284 select CRYPTO_AEAD
285 help
286 ChaCha20-Poly1305 AEAD support, RFC7539.
287
288 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
289 with the Poly1305 authenticator. It is defined in RFC7539 for use in
290 IETF protocols.
291
Ondrej Mosnacekf606a882018-05-11 14:12:49 +0200292config CRYPTO_AEGIS128
293 tristate "AEGIS-128 AEAD algorithm"
294 select CRYPTO_AEAD
295 select CRYPTO_AES # for AES S-box tables
296 help
297 Support for the AEGIS-128 dedicated AEAD algorithm.
298
299config CRYPTO_AEGIS128L
300 tristate "AEGIS-128L AEAD algorithm"
301 select CRYPTO_AEAD
302 select CRYPTO_AES # for AES S-box tables
303 help
304 Support for the AEGIS-128L dedicated AEAD algorithm.
305
306config CRYPTO_AEGIS256
307 tristate "AEGIS-256 AEAD algorithm"
308 select CRYPTO_AEAD
309 select CRYPTO_AES # for AES S-box tables
310 help
311 Support for the AEGIS-256 dedicated AEAD algorithm.
312
Ondrej Mosnacek1d373d42018-05-11 14:12:51 +0200313config CRYPTO_AEGIS128_AESNI_SSE2
314 tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
315 depends on X86 && 64BIT
316 select CRYPTO_AEAD
317 select CRYPTO_CRYPTD
318 help
319 AESNI+SSE2 implementation of the AEGSI-128 dedicated AEAD algorithm.
320
321config CRYPTO_AEGIS128L_AESNI_SSE2
322 tristate "AEGIS-128L AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
323 depends on X86 && 64BIT
324 select CRYPTO_AEAD
325 select CRYPTO_CRYPTD
326 help
327 AESNI+SSE2 implementation of the AEGSI-128L dedicated AEAD algorithm.
328
329config CRYPTO_AEGIS256_AESNI_SSE2
330 tristate "AEGIS-256 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
331 depends on X86 && 64BIT
332 select CRYPTO_AEAD
333 select CRYPTO_CRYPTD
334 help
335 AESNI+SSE2 implementation of the AEGSI-256 dedicated AEAD algorithm.
336
Ondrej Mosnacek396be412018-05-11 14:19:09 +0200337config CRYPTO_MORUS640
338 tristate "MORUS-640 AEAD algorithm"
339 select CRYPTO_AEAD
340 help
341 Support for the MORUS-640 dedicated AEAD algorithm.
342
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200343config CRYPTO_MORUS640_GLUE
Ondrej Mosnacek2808f172018-05-21 21:41:51 +0200344 tristate
345 depends on X86
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200346 select CRYPTO_AEAD
347 select CRYPTO_CRYPTD
348 help
349 Common glue for SIMD optimizations of the MORUS-640 dedicated AEAD
350 algorithm.
351
Ondrej Mosnacek6ecc9d92018-05-11 14:19:12 +0200352config CRYPTO_MORUS640_SSE2
353 tristate "MORUS-640 AEAD algorithm (x86_64 SSE2 implementation)"
354 depends on X86 && 64BIT
355 select CRYPTO_AEAD
356 select CRYPTO_MORUS640_GLUE
357 help
358 SSE2 implementation of the MORUS-640 dedicated AEAD algorithm.
359
Ondrej Mosnacek396be412018-05-11 14:19:09 +0200360config CRYPTO_MORUS1280
361 tristate "MORUS-1280 AEAD algorithm"
362 select CRYPTO_AEAD
363 help
364 Support for the MORUS-1280 dedicated AEAD algorithm.
365
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200366config CRYPTO_MORUS1280_GLUE
Ondrej Mosnacek2808f172018-05-21 21:41:51 +0200367 tristate
368 depends on X86
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200369 select CRYPTO_AEAD
370 select CRYPTO_CRYPTD
371 help
372 Common glue for SIMD optimizations of the MORUS-1280 dedicated AEAD
373 algorithm.
374
Ondrej Mosnacek6ecc9d92018-05-11 14:19:12 +0200375config CRYPTO_MORUS1280_SSE2
376 tristate "MORUS-1280 AEAD algorithm (x86_64 SSE2 implementation)"
377 depends on X86 && 64BIT
378 select CRYPTO_AEAD
379 select CRYPTO_MORUS1280_GLUE
380 help
381 SSE2 optimizedimplementation of the MORUS-1280 dedicated AEAD
382 algorithm.
383
384config CRYPTO_MORUS1280_AVX2
385 tristate "MORUS-1280 AEAD algorithm (x86_64 AVX2 implementation)"
386 depends on X86 && 64BIT
387 select CRYPTO_AEAD
388 select CRYPTO_MORUS1280_GLUE
389 help
390 AVX2 optimized implementation of the MORUS-1280 dedicated AEAD
391 algorithm.
392
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800393config CRYPTO_SEQIV
394 tristate "Sequence Number IV Generator"
395 select CRYPTO_AEAD
396 select CRYPTO_BLKCIPHER
Herbert Xu856e3f402015-05-21 15:11:13 +0800397 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800398 select CRYPTO_RNG_DEFAULT
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800399 help
400 This IV generator generates an IV based on a sequence number by
401 xoring it with a salt. This algorithm is mainly useful for CTR
402
Herbert Xua10f5542015-05-21 15:11:15 +0800403config CRYPTO_ECHAINIV
404 tristate "Encrypted Chain IV Generator"
405 select CRYPTO_AEAD
406 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800407 select CRYPTO_RNG_DEFAULT
Herbert Xu34912442015-06-03 14:49:29 +0800408 default m
Herbert Xua10f5542015-05-21 15:11:15 +0800409 help
410 This IV generator generates an IV based on the encryption of
411 a sequence number xored with a salt. This is the default
412 algorithm for CBC.
413
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800414comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000415
416config CRYPTO_CBC
417 tristate "CBC support"
418 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000419 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000420 help
421 CBC: Cipher Block Chaining mode
422 This block cipher algorithm is required for IPSec.
423
James Bottomleya7d85e02018-03-01 14:36:17 -0800424config CRYPTO_CFB
425 tristate "CFB support"
426 select CRYPTO_BLKCIPHER
427 select CRYPTO_MANAGER
428 help
429 CFB: Cipher FeedBack mode
430 This block cipher algorithm is required for TPM2 Cryptography.
431
Joy Latten23e353c2007-10-23 08:50:32 +0800432config CRYPTO_CTR
433 tristate "CTR support"
434 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100435 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800436 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800437 help
438 CTR: Counter mode
439 This block cipher algorithm is required for IPSec.
440
Kevin Coffman76cb9522008-03-24 21:26:16 +0800441config CRYPTO_CTS
442 tristate "CTS support"
443 select CRYPTO_BLKCIPHER
444 help
445 CTS: Cipher Text Stealing
446 This is the Cipher Text Stealing mode as described by
447 Section 8 of rfc2040 and referenced by rfc3962.
448 (rfc3962 includes errata information in its Appendix A)
449 This mode is required for Kerberos gss mechanism support
450 for AES encryption.
451
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800452config CRYPTO_ECB
453 tristate "ECB support"
Herbert Xu653ebd92007-11-27 19:48:27 +0800454 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000455 select CRYPTO_MANAGER
456 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800457 ECB: Electronic CodeBook mode
458 This is the simplest block cipher algorithm. It simply encrypts
459 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000460
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800461config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200462 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100463 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800464 select CRYPTO_MANAGER
465 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100466 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800467 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
468 narrow block cipher mode for dm-crypt. Use it with cipher
469 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
470 The first 128, 192 or 256 bits in the key are used for AES and the
471 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100472
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800473config CRYPTO_PCBC
474 tristate "PCBC support"
475 select CRYPTO_BLKCIPHER
476 select CRYPTO_MANAGER
477 help
478 PCBC: Propagating Cipher Block Chaining mode
479 This block cipher algorithm is required for RxRPC.
480
481config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200482 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800483 select CRYPTO_BLKCIPHER
484 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100485 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800486 help
487 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
488 key size 256, 384 or 512 bits. This implementation currently
489 can't handle a sectorsize which is not a multiple of 16 bytes.
490
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200491config CRYPTO_KEYWRAP
492 tristate "Key wrapping support"
493 select CRYPTO_BLKCIPHER
494 help
495 Support for key wrapping (NIST SP800-38F / RFC3394) without
496 padding.
497
Eric Biggers79ef30f2018-11-16 17:26:29 -0800498config CRYPTO_NHPOLY1305
499 tristate
500 select CRYPTO_HASH
501 select CRYPTO_POLY1305
502
Eric Biggersf467c4a2018-11-16 17:26:31 -0800503config CRYPTO_ADIANTUM
504 tristate "Adiantum support"
505 select CRYPTO_CHACHA20
506 select CRYPTO_POLY1305
507 select CRYPTO_NHPOLY1305
508 help
509 Adiantum is a tweakable, length-preserving encryption mode
510 designed for fast and secure disk encryption, especially on
511 CPUs without dedicated crypto instructions. It encrypts
512 each sector using the XChaCha12 stream cipher, two passes of
513 an ε-almost-∆-universal hash function, and an invocation of
514 the AES-256 block cipher on a single 16-byte block. On CPUs
515 without AES instructions, Adiantum is much faster than
516 AES-XTS.
517
518 Adiantum's security is provably reducible to that of its
519 underlying stream and block ciphers, subject to a security
520 bound. Unlike XTS, Adiantum is a true wide-block encryption
521 mode, so it actually provides an even stronger notion of
522 security than XTS, subject to the security bound.
523
524 If unsure, say N.
525
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800526comment "Hash modes"
527
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300528config CRYPTO_CMAC
529 tristate "CMAC support"
530 select CRYPTO_HASH
531 select CRYPTO_MANAGER
532 help
533 Cipher-based Message Authentication Code (CMAC) specified by
534 The National Institute of Standards and Technology (NIST).
535
536 https://tools.ietf.org/html/rfc4493
537 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
538
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800539config CRYPTO_HMAC
540 tristate "HMAC support"
541 select CRYPTO_HASH
542 select CRYPTO_MANAGER
543 help
544 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
545 This is required for IPSec.
546
547config CRYPTO_XCBC
548 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800549 select CRYPTO_HASH
550 select CRYPTO_MANAGER
551 help
552 XCBC: Keyed-Hashing with encryption algorithm
553 http://www.ietf.org/rfc/rfc3566.txt
554 http://csrc.nist.gov/encryption/modes/proposedmodes/
555 xcbc-mac/xcbc-mac-spec.pdf
556
Shane Wangf1939f72009-09-02 20:05:22 +1000557config CRYPTO_VMAC
558 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000559 select CRYPTO_HASH
560 select CRYPTO_MANAGER
561 help
562 VMAC is a message authentication algorithm designed for
563 very high speed on 64-bit architectures.
564
565 See also:
566 <http://fastcrypto.org/vmac>
567
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800568comment "Digest"
569
570config CRYPTO_CRC32C
571 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800572 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700573 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800574 help
575 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
576 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800577 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800578
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800579config CRYPTO_CRC32C_INTEL
580 tristate "CRC32c INTEL hardware acceleration"
581 depends on X86
582 select CRYPTO_HASH
583 help
584 In Intel processor with SSE4.2 supported, the processor will
585 support CRC32C implementation using hardware accelerated CRC32
586 instruction. This option will create 'crc32c-intel' module,
587 which will enable any routine to use the CRC32 instruction to
588 gain performance compared with software implementation.
589 Module will be crc32c-intel.
590
Jean Delvare7cf31862016-11-22 10:32:44 +0100591config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000592 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000593 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000594 select CRYPTO_HASH
595 select CRC32
596 help
597 CRC32c algorithm implemented using vector polynomial multiply-sum
598 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
599 and newer processors for improved performance.
600
601
David S. Miller442a7c42012-08-22 20:47:36 -0700602config CRYPTO_CRC32C_SPARC64
603 tristate "CRC32c CRC algorithm (SPARC64)"
604 depends on SPARC64
605 select CRYPTO_HASH
606 select CRC32
607 help
608 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
609 when available.
610
Alexander Boyko78c37d12013-01-10 18:54:59 +0400611config CRYPTO_CRC32
612 tristate "CRC32 CRC algorithm"
613 select CRYPTO_HASH
614 select CRC32
615 help
616 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
617 Shash crypto api wrappers to crc32_le function.
618
619config CRYPTO_CRC32_PCLMUL
620 tristate "CRC32 PCLMULQDQ hardware acceleration"
621 depends on X86
622 select CRYPTO_HASH
623 select CRC32
624 help
625 From Intel Westmere and AMD Bulldozer processor with SSE4.2
626 and PCLMULQDQ supported, the processor will support
627 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
628 instruction. This option will create 'crc32-plcmul' module,
629 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
630 and gain better performance as compared with the table implementation.
631
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +0000632config CRYPTO_CRC32_MIPS
633 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
634 depends on MIPS_CRC_SUPPORT
635 select CRYPTO_HASH
636 help
637 CRC32c and CRC32 CRC algorithms implemented using mips crypto
638 instructions, when available.
639
640
Herbert Xu684115212013-09-07 12:56:26 +1000641config CRYPTO_CRCT10DIF
642 tristate "CRCT10DIF algorithm"
643 select CRYPTO_HASH
644 help
645 CRC T10 Data Integrity Field computation is being cast as
646 a crypto transform. This allows for faster crc t10 diff
647 transforms to be used if they are available.
648
649config CRYPTO_CRCT10DIF_PCLMUL
650 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
651 depends on X86 && 64BIT && CRC_T10DIF
652 select CRYPTO_HASH
653 help
654 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
655 CRC T10 DIF PCLMULQDQ computation can be hardware
656 accelerated PCLMULQDQ instruction. This option will create
657 'crct10dif-plcmul' module, which is faster when computing the
658 crct10dif checksum as compared with the generic table implementation.
659
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100660config CRYPTO_CRCT10DIF_VPMSUM
661 tristate "CRC32T10DIF powerpc64 hardware acceleration"
662 depends on PPC64 && ALTIVEC && CRC_T10DIF
663 select CRYPTO_HASH
664 help
665 CRC10T10DIF algorithm implemented using vector polynomial
666 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
667 POWER8 and newer processors for improved performance.
668
Daniel Axtens146c8682017-03-15 23:37:37 +1100669config CRYPTO_VPMSUM_TESTER
670 tristate "Powerpc64 vpmsum hardware acceleration tester"
671 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
672 help
673 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
674 POWER8 vpmsum instructions.
675 Unless you are testing these algorithms, you don't need this.
676
Huang Ying2cdc6892009-08-06 15:32:38 +1000677config CRYPTO_GHASH
678 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000679 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100680 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000681 help
682 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
683
Martin Willif979e012015-06-01 13:43:58 +0200684config CRYPTO_POLY1305
685 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100686 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200687 help
688 Poly1305 authenticator algorithm, RFC7539.
689
690 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
691 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
692 in IETF protocols. This is the portable C implementation of Poly1305.
693
Martin Willic70f4ab2015-07-16 19:14:06 +0200694config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200695 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200696 depends on X86 && 64BIT
697 select CRYPTO_POLY1305
698 help
699 Poly1305 authenticator algorithm, RFC7539.
700
701 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
702 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
703 in IETF protocols. This is the x86_64 assembler implementation using SIMD
704 instructions.
705
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800706config CRYPTO_MD4
707 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800708 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700709 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800710 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700711
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800712config CRYPTO_MD5
713 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800714 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700715 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800716 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700717
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200718config CRYPTO_MD5_OCTEON
719 tristate "MD5 digest algorithm (OCTEON)"
720 depends on CPU_CAVIUM_OCTEON
721 select CRYPTO_MD5
722 select CRYPTO_HASH
723 help
724 MD5 message digest algorithm (RFC1321) implemented
725 using OCTEON crypto instructions, when available.
726
Markus Stockhausene8e59952015-03-01 19:30:46 +0100727config CRYPTO_MD5_PPC
728 tristate "MD5 digest algorithm (PPC)"
729 depends on PPC
730 select CRYPTO_HASH
731 help
732 MD5 message digest algorithm (RFC1321) implemented
733 in PPC assembler.
734
David S. Millerfa4dfed2012-08-19 21:51:26 -0700735config CRYPTO_MD5_SPARC64
736 tristate "MD5 digest algorithm (SPARC64)"
737 depends on SPARC64
738 select CRYPTO_MD5
739 select CRYPTO_HASH
740 help
741 MD5 message digest algorithm (RFC1321) implemented
742 using sparc64 crypto instructions, when available.
743
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800744config CRYPTO_MICHAEL_MIC
745 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800746 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800747 help
748 Michael MIC is used for message integrity protection in TKIP
749 (IEEE 802.11i). This algorithm is required for TKIP, but it
750 should not be used for other purposes because of the weakness
751 of the algorithm.
752
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800753config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800754 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800755 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800756 help
757 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800758
Adrian Bunkb6d44342008-07-16 19:28:00 +0800759 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000760 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800761 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800762
Adrian Bunkb6d44342008-07-16 19:28:00 +0800763 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800764 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800765
766config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800767 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800768 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800769 help
770 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800771
Adrian Bunkb6d44342008-07-16 19:28:00 +0800772 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
773 to be used as a secure replacement for the 128-bit hash functions
774 MD4, MD5 and it's predecessor RIPEMD
775 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800776
Adrian Bunkb6d44342008-07-16 19:28:00 +0800777 It's speed is comparable to SHA1 and there are no known attacks
778 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800779
Adrian Bunkb6d44342008-07-16 19:28:00 +0800780 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800781 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800782
783config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800784 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800785 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800786 help
787 RIPEMD-256 is an optional extension of RIPEMD-128 with a
788 256 bit hash. It is intended for applications that require
789 longer hash-results, without needing a larger security level
790 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800791
Adrian Bunkb6d44342008-07-16 19:28:00 +0800792 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800793 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800794
795config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800796 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800797 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800798 help
799 RIPEMD-320 is an optional extension of RIPEMD-160 with a
800 320 bit hash. It is intended for applications that require
801 longer hash-results, without needing a larger security level
802 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800803
Adrian Bunkb6d44342008-07-16 19:28:00 +0800804 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800805 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800806
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800807config CRYPTO_SHA1
808 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800809 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800810 help
811 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
812
Mathias Krause66be8952011-08-04 20:19:25 +0200813config CRYPTO_SHA1_SSSE3
time38b6b72015-09-10 15:27:26 -0700814 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200815 depends on X86 && 64BIT
816 select CRYPTO_SHA1
817 select CRYPTO_HASH
818 help
819 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
820 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b72015-09-10 15:27:26 -0700821 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
822 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200823
Tim Chen8275d1a2013-03-26 13:59:17 -0700824config CRYPTO_SHA256_SSSE3
time38b6b72015-09-10 15:27:26 -0700825 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700826 depends on X86 && 64BIT
827 select CRYPTO_SHA256
828 select CRYPTO_HASH
829 help
830 SHA-256 secure hash standard (DFIPS 180-2) implemented
831 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
832 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b72015-09-10 15:27:26 -0700833 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
834 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700835
Tim Chen87de4572013-03-26 14:00:02 -0700836config CRYPTO_SHA512_SSSE3
837 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
838 depends on X86 && 64BIT
839 select CRYPTO_SHA512
840 select CRYPTO_HASH
841 help
842 SHA-512 secure hash standard (DFIPS 180-2) implemented
843 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
844 Extensions version 1 (AVX1), or Advanced Vector Extensions
845 version 2 (AVX2) instructions, when available.
846
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200847config CRYPTO_SHA1_OCTEON
848 tristate "SHA1 digest algorithm (OCTEON)"
849 depends on CPU_CAVIUM_OCTEON
850 select CRYPTO_SHA1
851 select CRYPTO_HASH
852 help
853 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
854 using OCTEON crypto instructions, when available.
855
David S. Miller4ff28d42012-08-19 15:41:53 -0700856config CRYPTO_SHA1_SPARC64
857 tristate "SHA1 digest algorithm (SPARC64)"
858 depends on SPARC64
859 select CRYPTO_SHA1
860 select CRYPTO_HASH
861 help
862 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
863 using sparc64 crypto instructions, when available.
864
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000865config CRYPTO_SHA1_PPC
866 tristate "SHA1 digest algorithm (powerpc)"
867 depends on PPC
868 help
869 This is the powerpc hardware accelerated implementation of the
870 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
871
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100872config CRYPTO_SHA1_PPC_SPE
873 tristate "SHA1 digest algorithm (PPC SPE)"
874 depends on PPC && SPE
875 help
876 SHA-1 secure hash standard (DFIPS 180-4) implemented
877 using powerpc SPE SIMD instruction set.
878
Tim Chen1e65b812014-07-31 10:29:51 -0700879config CRYPTO_SHA1_MB
880 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
881 depends on X86 && 64BIT
882 select CRYPTO_SHA1
883 select CRYPTO_HASH
884 select CRYPTO_MCRYPTD
885 help
886 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
887 using multi-buffer technique. This algorithm computes on
888 multiple data lanes concurrently with SIMD instructions for
889 better throughput. It should not be enabled by default but
890 used when there is significant amount of work to keep the keep
891 the data lanes filled to get performance benefit. If the data
892 lanes remain unfilled, a flush operation will be initiated to
893 process the crypto jobs, adding a slight latency.
894
Megha Dey9be7e242016-06-23 18:40:43 -0700895config CRYPTO_SHA256_MB
896 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
897 depends on X86 && 64BIT
898 select CRYPTO_SHA256
899 select CRYPTO_HASH
900 select CRYPTO_MCRYPTD
901 help
902 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
903 using multi-buffer technique. This algorithm computes on
904 multiple data lanes concurrently with SIMD instructions for
905 better throughput. It should not be enabled by default but
906 used when there is significant amount of work to keep the keep
907 the data lanes filled to get performance benefit. If the data
908 lanes remain unfilled, a flush operation will be initiated to
909 process the crypto jobs, adding a slight latency.
910
Megha Dey026bb8a2016-06-27 10:20:05 -0700911config CRYPTO_SHA512_MB
912 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
913 depends on X86 && 64BIT
914 select CRYPTO_SHA512
915 select CRYPTO_HASH
916 select CRYPTO_MCRYPTD
917 help
918 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
919 using multi-buffer technique. This algorithm computes on
920 multiple data lanes concurrently with SIMD instructions for
921 better throughput. It should not be enabled by default but
922 used when there is significant amount of work to keep the keep
923 the data lanes filled to get performance benefit. If the data
924 lanes remain unfilled, a flush operation will be initiated to
925 process the crypto jobs, adding a slight latency.
926
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800927config CRYPTO_SHA256
928 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800929 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800930 help
931 SHA256 secure hash standard (DFIPS 180-2).
932
933 This version of SHA implements a 256 bit hash with 128 bits of
934 security against collision attacks.
935
Adrian Bunkb6d44342008-07-16 19:28:00 +0800936 This code also includes SHA-224, a 224 bit hash with 112 bits
937 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800938
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100939config CRYPTO_SHA256_PPC_SPE
940 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
941 depends on PPC && SPE
942 select CRYPTO_SHA256
943 select CRYPTO_HASH
944 help
945 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
946 implemented using powerpc SPE SIMD instruction set.
947
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200948config CRYPTO_SHA256_OCTEON
949 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
950 depends on CPU_CAVIUM_OCTEON
951 select CRYPTO_SHA256
952 select CRYPTO_HASH
953 help
954 SHA-256 secure hash standard (DFIPS 180-2) implemented
955 using OCTEON crypto instructions, when available.
956
David S. Miller86c93b22012-08-19 17:11:37 -0700957config CRYPTO_SHA256_SPARC64
958 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
959 depends on SPARC64
960 select CRYPTO_SHA256
961 select CRYPTO_HASH
962 help
963 SHA-256 secure hash standard (DFIPS 180-2) implemented
964 using sparc64 crypto instructions, when available.
965
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800966config CRYPTO_SHA512
967 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100968 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800969 help
970 SHA512 secure hash standard (DFIPS 180-2).
971
972 This version of SHA implements a 512 bit hash with 256 bits of
973 security against collision attacks.
974
975 This code also includes SHA-384, a 384 bit hash with 192 bits
976 of security against collision attacks.
977
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200978config CRYPTO_SHA512_OCTEON
979 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
980 depends on CPU_CAVIUM_OCTEON
981 select CRYPTO_SHA512
982 select CRYPTO_HASH
983 help
984 SHA-512 secure hash standard (DFIPS 180-2) implemented
985 using OCTEON crypto instructions, when available.
986
David S. Miller775e0c62012-08-19 17:37:56 -0700987config CRYPTO_SHA512_SPARC64
988 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
989 depends on SPARC64
990 select CRYPTO_SHA512
991 select CRYPTO_HASH
992 help
993 SHA-512 secure hash standard (DFIPS 180-2) implemented
994 using sparc64 crypto instructions, when available.
995
Jeff Garzik53964b92016-06-17 10:30:35 +0530996config CRYPTO_SHA3
997 tristate "SHA3 digest algorithm"
998 select CRYPTO_HASH
999 help
1000 SHA-3 secure hash standard (DFIPS 202). It's based on
1001 cryptographic sponge function family called Keccak.
1002
1003 References:
1004 http://keccak.noekeon.org/
1005
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +03001006config CRYPTO_SM3
1007 tristate "SM3 digest algorithm"
1008 select CRYPTO_HASH
1009 help
1010 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
1011 It is part of the Chinese Commercial Cryptography suite.
1012
1013 References:
1014 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
1015 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
1016
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001017config CRYPTO_TGR192
1018 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +08001019 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001020 help
1021 Tiger hash algorithm 192, 160 and 128-bit hashes
1022
1023 Tiger is a hash function optimized for 64-bit processors while
1024 still having decent performance on 32-bit processors.
1025 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001026
1027 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001028 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1029
1030config CRYPTO_WP512
1031 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +08001032 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001033 help
1034 Whirlpool hash algorithm 512, 384 and 256-bit hashes
1035
1036 Whirlpool-512 is part of the NESSIE cryptographic primitives.
1037 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1038
1039 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001040 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001041
Huang Ying0e1227d2009-10-19 11:53:06 +09001042config CRYPTO_GHASH_CLMUL_NI_INTEL
1043 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001044 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +09001045 select CRYPTO_CRYPTD
1046 help
1047 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
1048 The implementation is accelerated by CLMUL-NI of Intel.
1049
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001050comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001051
1052config CRYPTO_AES
1053 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001054 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001055 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001056 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -07001057 algorithm.
1058
1059 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001060 both hardware and software across a wide range of computing
1061 environments regardless of its use in feedback or non-feedback
1062 modes. Its key setup time is excellent, and its key agility is
1063 good. Rijndael's very low memory requirements make it very well
1064 suited for restricted-space environments, in which it also
1065 demonstrates excellent performance. Rijndael's operations are
1066 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001067
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001068 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001069
1070 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
1071
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001072config CRYPTO_AES_TI
1073 tristate "Fixed time AES cipher"
1074 select CRYPTO_ALGAPI
1075 help
1076 This is a generic implementation of AES that attempts to eliminate
1077 data dependent latencies as much as possible without affecting
1078 performance too much. It is intended for use by the generic CCM
1079 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
1080 solely on encryption (although decryption is supported as well, but
1081 with a more dramatic performance hit)
1082
1083 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
1084 8 for decryption), this implementation only uses just two S-boxes of
1085 256 bytes each, and attempts to eliminate data dependent latencies by
1086 prefetching the entire table into the cache at the start of each
Eric Biggers99eed8a2018-10-17 21:37:58 -07001087 block. Interrupts are also disabled to avoid races where cachelines
1088 are evicted when the CPU is interrupted to do something else.
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001089
Linus Torvalds1da177e2005-04-16 15:20:36 -07001090config CRYPTO_AES_586
1091 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +10001092 depends on (X86 || UML_X86) && !64BIT
1093 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +08001094 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001095 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001096 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -07001097 algorithm.
1098
1099 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001100 both hardware and software across a wide range of computing
1101 environments regardless of its use in feedback or non-feedback
1102 modes. Its key setup time is excellent, and its key agility is
1103 good. Rijndael's very low memory requirements make it very well
1104 suited for restricted-space environments, in which it also
1105 demonstrates excellent performance. Rijndael's operations are
1106 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001107
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001108 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001109
1110 See <http://csrc.nist.gov/encryption/aes/> for more information.
1111
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001112config CRYPTO_AES_X86_64
1113 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +10001114 depends on (X86 || UML_X86) && 64BIT
1115 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +08001116 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001117 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001118 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001119 algorithm.
1120
1121 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001122 both hardware and software across a wide range of computing
1123 environments regardless of its use in feedback or non-feedback
1124 modes. Its key setup time is excellent, and its key agility is
1125 good. Rijndael's very low memory requirements make it very well
1126 suited for restricted-space environments, in which it also
1127 demonstrates excellent performance. Rijndael's operations are
1128 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001129
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001130 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001131
1132 See <http://csrc.nist.gov/encryption/aes/> for more information.
1133
Huang Ying54b6a1b2009-01-18 16:28:34 +11001134config CRYPTO_AES_NI_INTEL
1135 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001136 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +08001137 select CRYPTO_AEAD
Mathias Krause0d258ef2010-11-27 16:34:46 +08001138 select CRYPTO_AES_X86_64 if 64BIT
1139 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +11001140 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +08001141 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +03001142 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +08001143 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +11001144 help
1145 Use Intel AES-NI instructions for AES algorithm.
1146
1147 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1148 algorithm.
1149
1150 Rijndael appears to be consistently a very good performer in
1151 both hardware and software across a wide range of computing
1152 environments regardless of its use in feedback or non-feedback
1153 modes. Its key setup time is excellent, and its key agility is
1154 good. Rijndael's very low memory requirements make it very well
1155 suited for restricted-space environments, in which it also
1156 demonstrates excellent performance. Rijndael's operations are
1157 among the easiest to defend against power and timing attacks.
1158
1159 The AES specifies three key sizes: 128, 192 and 256 bits
1160
1161 See <http://csrc.nist.gov/encryption/aes/> for more information.
1162
Mathias Krause0d258ef2010-11-27 16:34:46 +08001163 In addition to AES cipher algorithm support, the acceleration
1164 for some popular block cipher mode is supported too, including
1165 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
1166 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001167
David S. Miller9bf48522012-08-21 03:58:13 -07001168config CRYPTO_AES_SPARC64
1169 tristate "AES cipher algorithms (SPARC64)"
1170 depends on SPARC64
1171 select CRYPTO_CRYPTD
1172 select CRYPTO_ALGAPI
1173 help
1174 Use SPARC64 crypto opcodes for AES algorithm.
1175
1176 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1177 algorithm.
1178
1179 Rijndael appears to be consistently a very good performer in
1180 both hardware and software across a wide range of computing
1181 environments regardless of its use in feedback or non-feedback
1182 modes. Its key setup time is excellent, and its key agility is
1183 good. Rijndael's very low memory requirements make it very well
1184 suited for restricted-space environments, in which it also
1185 demonstrates excellent performance. Rijndael's operations are
1186 among the easiest to defend against power and timing attacks.
1187
1188 The AES specifies three key sizes: 128, 192 and 256 bits
1189
1190 See <http://csrc.nist.gov/encryption/aes/> for more information.
1191
1192 In addition to AES cipher algorithm support, the acceleration
1193 for some popular block cipher mode is supported too, including
1194 ECB and CBC.
1195
Markus Stockhausen504c6142015-02-22 10:00:10 +01001196config CRYPTO_AES_PPC_SPE
1197 tristate "AES cipher algorithms (PPC SPE)"
1198 depends on PPC && SPE
1199 help
1200 AES cipher algorithms (FIPS-197). Additionally the acceleration
1201 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1202 This module should only be used for low power (router) devices
1203 without hardware AES acceleration (e.g. caam crypto). It reduces the
1204 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1205 timining attacks. Nevertheless it might be not as secure as other
1206 architecture specific assembler implementations that work on 1KB
1207 tables or 256 bytes S-boxes.
1208
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001209config CRYPTO_ANUBIS
1210 tristate "Anubis cipher algorithm"
1211 select CRYPTO_ALGAPI
1212 help
1213 Anubis cipher algorithm.
1214
1215 Anubis is a variable key length cipher which can use keys from
1216 128 bits to 320 bits in length. It was evaluated as a entrant
1217 in the NESSIE competition.
1218
1219 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001220 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1221 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001222
1223config CRYPTO_ARC4
1224 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001225 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001226 help
1227 ARC4 cipher algorithm.
1228
1229 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1230 bits in length. This algorithm is required for driver-based
1231 WEP, but it should not be for other purposes because of the
1232 weakness of the algorithm.
1233
1234config CRYPTO_BLOWFISH
1235 tristate "Blowfish cipher algorithm"
1236 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001237 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001238 help
1239 Blowfish cipher algorithm, by Bruce Schneier.
1240
1241 This is a variable key length cipher which can use keys from 32
1242 bits to 448 bits in length. It's fast, simple and specifically
1243 designed for use on "large microprocessors".
1244
1245 See also:
1246 <http://www.schneier.com/blowfish.html>
1247
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001248config CRYPTO_BLOWFISH_COMMON
1249 tristate
1250 help
1251 Common parts of the Blowfish cipher algorithm shared by the
1252 generic c and the assembler implementations.
1253
1254 See also:
1255 <http://www.schneier.com/blowfish.html>
1256
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001257config CRYPTO_BLOWFISH_X86_64
1258 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001259 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001260 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001261 select CRYPTO_BLOWFISH_COMMON
1262 help
1263 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1264
1265 This is a variable key length cipher which can use keys from 32
1266 bits to 448 bits in length. It's fast, simple and specifically
1267 designed for use on "large microprocessors".
1268
1269 See also:
1270 <http://www.schneier.com/blowfish.html>
1271
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001272config CRYPTO_CAMELLIA
1273 tristate "Camellia cipher algorithms"
1274 depends on CRYPTO
1275 select CRYPTO_ALGAPI
1276 help
1277 Camellia cipher algorithms module.
1278
1279 Camellia is a symmetric key block cipher developed jointly
1280 at NTT and Mitsubishi Electric Corporation.
1281
1282 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1283
1284 See also:
1285 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1286
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001287config CRYPTO_CAMELLIA_X86_64
1288 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001289 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001290 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001291 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001292 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001293 help
1294 Camellia cipher algorithm module (x86_64).
1295
1296 Camellia is a symmetric key block cipher developed jointly
1297 at NTT and Mitsubishi Electric Corporation.
1298
1299 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1300
1301 See also:
1302 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1303
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001304config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1305 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1306 depends on X86 && 64BIT
1307 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001308 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001309 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001310 select CRYPTO_GLUE_HELPER_X86
1311 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001312 select CRYPTO_XTS
1313 help
1314 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1315
1316 Camellia is a symmetric key block cipher developed jointly
1317 at NTT and Mitsubishi Electric Corporation.
1318
1319 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1320
1321 See also:
1322 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1323
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001324config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1325 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1326 depends on X86 && 64BIT
1327 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001328 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001329 help
1330 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1331
1332 Camellia is a symmetric key block cipher developed jointly
1333 at NTT and Mitsubishi Electric Corporation.
1334
1335 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1336
1337 See also:
1338 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1339
David S. Miller81658ad2012-08-28 12:05:54 -07001340config CRYPTO_CAMELLIA_SPARC64
1341 tristate "Camellia cipher algorithm (SPARC64)"
1342 depends on SPARC64
1343 depends on CRYPTO
1344 select CRYPTO_ALGAPI
1345 help
1346 Camellia cipher algorithm module (SPARC64).
1347
1348 Camellia is a symmetric key block cipher developed jointly
1349 at NTT and Mitsubishi Electric Corporation.
1350
1351 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1352
1353 See also:
1354 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1355
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001356config CRYPTO_CAST_COMMON
1357 tristate
1358 help
1359 Common parts of the CAST cipher algorithms shared by the
1360 generic c and the assembler implementations.
1361
Linus Torvalds1da177e2005-04-16 15:20:36 -07001362config CRYPTO_CAST5
1363 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001364 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001365 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001366 help
1367 The CAST5 encryption algorithm (synonymous with CAST-128) is
1368 described in RFC2144.
1369
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001370config CRYPTO_CAST5_AVX_X86_64
1371 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1372 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001373 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001374 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001375 select CRYPTO_CAST_COMMON
1376 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001377 help
1378 The CAST5 encryption algorithm (synonymous with CAST-128) is
1379 described in RFC2144.
1380
1381 This module provides the Cast5 cipher algorithm that processes
1382 sixteen blocks parallel using the AVX instruction set.
1383
Linus Torvalds1da177e2005-04-16 15:20:36 -07001384config CRYPTO_CAST6
1385 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001386 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001387 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001388 help
1389 The CAST6 encryption algorithm (synonymous with CAST-256) is
1390 described in RFC2612.
1391
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001392config CRYPTO_CAST6_AVX_X86_64
1393 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1394 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001395 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001396 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001397 select CRYPTO_CAST_COMMON
1398 select CRYPTO_GLUE_HELPER_X86
1399 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001400 select CRYPTO_XTS
1401 help
1402 The CAST6 encryption algorithm (synonymous with CAST-256) is
1403 described in RFC2612.
1404
1405 This module provides the Cast6 cipher algorithm that processes
1406 eight blocks parallel using the AVX instruction set.
1407
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001408config CRYPTO_DES
1409 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001410 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001411 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001412 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001413
David S. Millerc5aac2d2012-08-25 22:37:23 -07001414config CRYPTO_DES_SPARC64
1415 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001416 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001417 select CRYPTO_ALGAPI
1418 select CRYPTO_DES
1419 help
1420 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1421 optimized using SPARC64 crypto opcodes.
1422
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001423config CRYPTO_DES3_EDE_X86_64
1424 tristate "Triple DES EDE cipher algorithm (x86-64)"
1425 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001426 select CRYPTO_BLKCIPHER
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001427 select CRYPTO_DES
1428 help
1429 Triple DES EDE (FIPS 46-3) algorithm.
1430
1431 This module provides implementation of the Triple DES EDE cipher
1432 algorithm that is optimized for x86-64 processors. Two versions of
1433 algorithm are provided; regular processing one input block and
1434 one that processes three blocks parallel.
1435
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001436config CRYPTO_FCRYPT
1437 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001438 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001439 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001440 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001441 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001442
1443config CRYPTO_KHAZAD
1444 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001445 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001446 help
1447 Khazad cipher algorithm.
1448
1449 Khazad was a finalist in the initial NESSIE competition. It is
1450 an algorithm optimized for 64-bit processors with good performance
1451 on 32-bit processors. Khazad uses an 128 bit key size.
1452
1453 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001454 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001455
Tan Swee Heng2407d602007-11-23 19:45:00 +08001456config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001457 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001458 select CRYPTO_BLKCIPHER
1459 help
1460 Salsa20 stream cipher algorithm.
1461
1462 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1463 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1464
1465 The Salsa20 stream cipher algorithm is designed by Daniel J.
1466 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001467
Martin Willic08d0e62015-06-01 13:43:56 +02001468config CRYPTO_CHACHA20
Eric Biggers8eee8e52018-11-16 17:26:22 -08001469 tristate "ChaCha stream cipher algorithms"
Martin Willic08d0e62015-06-01 13:43:56 +02001470 select CRYPTO_BLKCIPHER
1471 help
Eric Biggers8eee8e52018-11-16 17:26:22 -08001472 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms.
Martin Willic08d0e62015-06-01 13:43:56 +02001473
1474 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1475 Bernstein and further specified in RFC7539 for use in IETF protocols.
Eric Biggers74fd3f72018-11-16 17:26:20 -08001476 This is the portable C implementation of ChaCha20. See also:
Martin Willic08d0e62015-06-01 13:43:56 +02001477 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1478
Eric Biggers74fd3f72018-11-16 17:26:20 -08001479 XChaCha20 is the application of the XSalsa20 construction to ChaCha20
1480 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
1481 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
1482 while provably retaining ChaCha20's security. See also:
1483 <https://cr.yp.to/snuffle/xsalsa-20081128.pdf>
1484
Eric Biggers8eee8e52018-11-16 17:26:22 -08001485 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
1486 reduced security margin but increased performance. It can be needed
1487 in some performance-sensitive scenarios.
1488
Martin Willic9320b62015-07-16 19:14:01 +02001489config CRYPTO_CHACHA20_X86_64
Martin Willi3d1e93c2015-07-16 19:14:03 +02001490 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
Martin Willic9320b62015-07-16 19:14:01 +02001491 depends on X86 && 64BIT
1492 select CRYPTO_BLKCIPHER
1493 select CRYPTO_CHACHA20
1494 help
1495 ChaCha20 cipher algorithm, RFC7539.
1496
1497 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1498 Bernstein and further specified in RFC7539 for use in IETF protocols.
1499 This is the x86_64 assembler implementation using SIMD instructions.
1500
1501 See also:
1502 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1503
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001504config CRYPTO_SEED
1505 tristate "SEED cipher algorithm"
1506 select CRYPTO_ALGAPI
1507 help
1508 SEED cipher algorithm (RFC4269).
1509
1510 SEED is a 128-bit symmetric key block cipher that has been
1511 developed by KISA (Korea Information Security Agency) as a
1512 national standard encryption algorithm of the Republic of Korea.
1513 It is a 16 round block cipher with the key size of 128 bit.
1514
1515 See also:
1516 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1517
1518config CRYPTO_SERPENT
1519 tristate "Serpent cipher algorithm"
1520 select CRYPTO_ALGAPI
1521 help
1522 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1523
1524 Keys are allowed to be from 0 to 256 bits in length, in steps
1525 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1526 variant of Serpent for compatibility with old kerneli.org code.
1527
1528 See also:
1529 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1530
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001531config CRYPTO_SERPENT_SSE2_X86_64
1532 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1533 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001534 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001535 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001536 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001537 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001538 help
1539 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1540
1541 Keys are allowed to be from 0 to 256 bits in length, in steps
1542 of 8 bits.
1543
Masanari Iida1e6232f2015-04-04 00:20:30 +09001544 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001545 blocks parallel using SSE2 instruction set.
1546
1547 See also:
1548 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1549
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001550config CRYPTO_SERPENT_SSE2_586
1551 tristate "Serpent cipher algorithm (i586/SSE2)"
1552 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001553 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001554 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001555 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001556 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001557 help
1558 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1559
1560 Keys are allowed to be from 0 to 256 bits in length, in steps
1561 of 8 bits.
1562
1563 This module provides Serpent cipher algorithm that processes four
1564 blocks parallel using SSE2 instruction set.
1565
1566 See also:
1567 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1568
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001569config CRYPTO_SERPENT_AVX_X86_64
1570 tristate "Serpent cipher algorithm (x86_64/AVX)"
1571 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001572 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001573 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001574 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001575 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001576 select CRYPTO_XTS
1577 help
1578 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1579
1580 Keys are allowed to be from 0 to 256 bits in length, in steps
1581 of 8 bits.
1582
1583 This module provides the Serpent cipher algorithm that processes
1584 eight blocks parallel using the AVX instruction set.
1585
1586 See also:
1587 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1588
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001589config CRYPTO_SERPENT_AVX2_X86_64
1590 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1591 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001592 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001593 help
1594 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1595
1596 Keys are allowed to be from 0 to 256 bits in length, in steps
1597 of 8 bits.
1598
1599 This module provides Serpent cipher algorithm that processes 16
1600 blocks parallel using AVX2 instruction set.
1601
1602 See also:
1603 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1604
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +00001605config CRYPTO_SM4
1606 tristate "SM4 cipher algorithm"
1607 select CRYPTO_ALGAPI
1608 help
1609 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1610
1611 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1612 Organization of State Commercial Administration of China (OSCCA)
1613 as an authorized cryptographic algorithms for the use within China.
1614
1615 SMS4 was originally created for use in protecting wireless
1616 networks, and is mandated in the Chinese National Standard for
1617 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1618 (GB.15629.11-2003).
1619
1620 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1621 standardized through TC 260 of the Standardization Administration
1622 of the People's Republic of China (SAC).
1623
1624 The input, output, and key of SMS4 are each 128 bits.
1625
1626 See also: <https://eprint.iacr.org/2008/329.pdf>
1627
1628 If unsure, say N.
1629
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001630config CRYPTO_TEA
1631 tristate "TEA, XTEA and XETA cipher algorithms"
1632 select CRYPTO_ALGAPI
1633 help
1634 TEA cipher algorithm.
1635
1636 Tiny Encryption Algorithm is a simple cipher that uses
1637 many rounds for security. It is very fast and uses
1638 little memory.
1639
1640 Xtendend Tiny Encryption Algorithm is a modification to
1641 the TEA algorithm to address a potential key weakness
1642 in the TEA algorithm.
1643
1644 Xtendend Encryption Tiny Algorithm is a mis-implementation
1645 of the XTEA algorithm for compatibility purposes.
1646
1647config CRYPTO_TWOFISH
1648 tristate "Twofish cipher algorithm"
1649 select CRYPTO_ALGAPI
1650 select CRYPTO_TWOFISH_COMMON
1651 help
1652 Twofish cipher algorithm.
1653
1654 Twofish was submitted as an AES (Advanced Encryption Standard)
1655 candidate cipher by researchers at CounterPane Systems. It is a
1656 16 round block cipher supporting key sizes of 128, 192, and 256
1657 bits.
1658
1659 See also:
1660 <http://www.schneier.com/twofish.html>
1661
1662config CRYPTO_TWOFISH_COMMON
1663 tristate
1664 help
1665 Common parts of the Twofish cipher algorithm shared by the
1666 generic c and the assembler implementations.
1667
1668config CRYPTO_TWOFISH_586
1669 tristate "Twofish cipher algorithms (i586)"
1670 depends on (X86 || UML_X86) && !64BIT
1671 select CRYPTO_ALGAPI
1672 select CRYPTO_TWOFISH_COMMON
1673 help
1674 Twofish cipher algorithm.
1675
1676 Twofish was submitted as an AES (Advanced Encryption Standard)
1677 candidate cipher by researchers at CounterPane Systems. It is a
1678 16 round block cipher supporting key sizes of 128, 192, and 256
1679 bits.
1680
1681 See also:
1682 <http://www.schneier.com/twofish.html>
1683
1684config CRYPTO_TWOFISH_X86_64
1685 tristate "Twofish cipher algorithm (x86_64)"
1686 depends on (X86 || UML_X86) && 64BIT
1687 select CRYPTO_ALGAPI
1688 select CRYPTO_TWOFISH_COMMON
1689 help
1690 Twofish cipher algorithm (x86_64).
1691
1692 Twofish was submitted as an AES (Advanced Encryption Standard)
1693 candidate cipher by researchers at CounterPane Systems. It is a
1694 16 round block cipher supporting key sizes of 128, 192, and 256
1695 bits.
1696
1697 See also:
1698 <http://www.schneier.com/twofish.html>
1699
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001700config CRYPTO_TWOFISH_X86_64_3WAY
1701 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001702 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001703 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001704 select CRYPTO_TWOFISH_COMMON
1705 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001706 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001707 help
1708 Twofish cipher algorithm (x86_64, 3-way parallel).
1709
1710 Twofish was submitted as an AES (Advanced Encryption Standard)
1711 candidate cipher by researchers at CounterPane Systems. It is a
1712 16 round block cipher supporting key sizes of 128, 192, and 256
1713 bits.
1714
1715 This module provides Twofish cipher algorithm that processes three
1716 blocks parallel, utilizing resources of out-of-order CPUs better.
1717
1718 See also:
1719 <http://www.schneier.com/twofish.html>
1720
Johannes Goetzfried107778b2012-05-28 15:54:24 +02001721config CRYPTO_TWOFISH_AVX_X86_64
1722 tristate "Twofish cipher algorithm (x86_64/AVX)"
1723 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001724 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001725 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001726 select CRYPTO_SIMD
Johannes Goetzfried107778b2012-05-28 15:54:24 +02001727 select CRYPTO_TWOFISH_COMMON
1728 select CRYPTO_TWOFISH_X86_64
1729 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b2012-05-28 15:54:24 +02001730 help
1731 Twofish cipher algorithm (x86_64/AVX).
1732
1733 Twofish was submitted as an AES (Advanced Encryption Standard)
1734 candidate cipher by researchers at CounterPane Systems. It is a
1735 16 round block cipher supporting key sizes of 128, 192, and 256
1736 bits.
1737
1738 This module provides the Twofish cipher algorithm that processes
1739 eight blocks parallel using the AVX Instruction Set.
1740
1741 See also:
1742 <http://www.schneier.com/twofish.html>
1743
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001744comment "Compression"
1745
Linus Torvalds1da177e2005-04-16 15:20:36 -07001746config CRYPTO_DEFLATE
1747 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001748 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001749 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001750 select ZLIB_INFLATE
1751 select ZLIB_DEFLATE
1752 help
1753 This is the Deflate algorithm (RFC1951), specified for use in
1754 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001755
Linus Torvalds1da177e2005-04-16 15:20:36 -07001756 You will most probably want this if using IPSec.
1757
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001758config CRYPTO_LZO
1759 tristate "LZO compression algorithm"
1760 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001761 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001762 select LZO_COMPRESS
1763 select LZO_DECOMPRESS
1764 help
1765 This is the LZO algorithm.
1766
Seth Jennings35a1fc12012-07-19 09:42:41 -05001767config CRYPTO_842
1768 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001769 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001770 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001771 select 842_COMPRESS
1772 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001773 help
1774 This is the 842 algorithm.
1775
Chanho Min0ea85302013-07-08 16:01:51 -07001776config CRYPTO_LZ4
1777 tristate "LZ4 compression algorithm"
1778 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001779 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001780 select LZ4_COMPRESS
1781 select LZ4_DECOMPRESS
1782 help
1783 This is the LZ4 algorithm.
1784
1785config CRYPTO_LZ4HC
1786 tristate "LZ4HC compression algorithm"
1787 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001788 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001789 select LZ4HC_COMPRESS
1790 select LZ4_DECOMPRESS
1791 help
1792 This is the LZ4 high compression mode algorithm.
1793
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001794config CRYPTO_ZSTD
1795 tristate "Zstd compression algorithm"
1796 select CRYPTO_ALGAPI
1797 select CRYPTO_ACOMP2
1798 select ZSTD_COMPRESS
1799 select ZSTD_DECOMPRESS
1800 help
1801 This is the zstd algorithm.
1802
Neil Horman17f0f4a2008-08-14 22:15:52 +10001803comment "Random Number Generation"
1804
1805config CRYPTO_ANSI_CPRNG
1806 tristate "Pseudo Random Number Generation for Cryptographic modules"
1807 select CRYPTO_AES
1808 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001809 help
1810 This option enables the generic pseudo random number generator
1811 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001812 ANSI X9.31 A.2.4. Note that this option must be enabled if
1813 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001814
Herbert Xuf2c89a12014-07-04 22:15:08 +08001815menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001816 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001817 help
1818 NIST SP800-90A compliant DRBG. In the following submenu, one or
1819 more of the DRBG types must be selected.
1820
Herbert Xuf2c89a12014-07-04 22:15:08 +08001821if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001822
1823config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001824 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001825 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001826 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001827 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001828
1829config CRYPTO_DRBG_HASH
1830 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001831 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001832 help
1833 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1834
1835config CRYPTO_DRBG_CTR
1836 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001837 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001838 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001839 help
1840 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1841
Herbert Xuf2c89a12014-07-04 22:15:08 +08001842config CRYPTO_DRBG
1843 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001844 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001845 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001846 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001847
1848endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001849
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001850config CRYPTO_JITTERENTROPY
1851 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001852 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001853 help
1854 The Jitterentropy RNG is a noise that is intended
1855 to provide seed to another RNG. The RNG does not
1856 perform any cryptographic whitening of the generated
1857 random numbers. This Jitterentropy RNG registers with
1858 the kernel crypto API and can be used by any caller.
1859
Herbert Xu03c8efc2010-10-19 21:12:39 +08001860config CRYPTO_USER_API
1861 tristate
1862
Herbert Xufe869cd2010-10-19 21:23:00 +08001863config CRYPTO_USER_API_HASH
1864 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001865 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001866 select CRYPTO_HASH
1867 select CRYPTO_USER_API
1868 help
1869 This option enables the user-spaces interface for hash
1870 algorithms.
1871
Herbert Xu8ff59092010-10-19 21:31:55 +08001872config CRYPTO_USER_API_SKCIPHER
1873 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001874 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001875 select CRYPTO_BLKCIPHER
1876 select CRYPTO_USER_API
1877 help
1878 This option enables the user-spaces interface for symmetric
1879 key cipher algorithms.
1880
Stephan Mueller2f3755382014-12-25 23:00:39 +01001881config CRYPTO_USER_API_RNG
1882 tristate "User-space interface for random number generator algorithms"
1883 depends on NET
1884 select CRYPTO_RNG
1885 select CRYPTO_USER_API
1886 help
1887 This option enables the user-spaces interface for random
1888 number generator algorithms.
1889
Herbert Xub64a2d92015-05-28 11:30:35 +08001890config CRYPTO_USER_API_AEAD
1891 tristate "User-space interface for AEAD cipher algorithms"
1892 depends on NET
1893 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001894 select CRYPTO_BLKCIPHER
1895 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001896 select CRYPTO_USER_API
1897 help
1898 This option enables the user-spaces interface for AEAD
1899 cipher algorithms.
1900
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001901config CRYPTO_HASH_INFO
1902 bool
1903
Linus Torvalds1da177e2005-04-16 15:20:36 -07001904source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001905source crypto/asymmetric_keys/Kconfig
David Howellscfc411e2015-08-14 15:20:41 +01001906source certs/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001907
Herbert Xucce9e062006-08-21 21:08:13 +10001908endif # if CRYPTO