blob: eaeb8a986b7dad2ff6c2e74c5860a2f582438acd [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
216config CRYPTO_AUTHENC
217 tristate "Authenc support"
218 select CRYPTO_AEAD
219 select CRYPTO_BLKCIPHER
220 select CRYPTO_MANAGER
221 select CRYPTO_HASH
Herbert Xue94c6a72015-08-04 21:23:14 +0800222 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800223 help
224 Authenc: Combined mode wrapper for IPsec.
225 This is required for IPSec.
226
227config CRYPTO_TEST
228 tristate "Testing module"
229 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +0800230 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800231 help
232 Quick & dirty crypto test module.
233
Herbert Xu266d0512016-11-22 20:08:25 +0800234config CRYPTO_SIMD
235 tristate
236 select CRYPTO_CRYPTD
237
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300238config CRYPTO_GLUE_HELPER_X86
239 tristate
240 depends on X86
Herbert Xu065ce322016-11-22 20:08:29 +0800241 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300242
Baolin Wang735d37b2016-01-26 20:25:39 +0800243config CRYPTO_ENGINE
244 tristate
245
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800246comment "Authenticated Encryption with Associated Data"
247
248config CRYPTO_CCM
249 tristate "CCM support"
250 select CRYPTO_CTR
Ard Biesheuvelf15f05b2017-02-03 14:49:36 +0000251 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800252 select CRYPTO_AEAD
253 help
254 Support for Counter with CBC MAC. Required for IPsec.
255
256config CRYPTO_GCM
257 tristate "GCM/GMAC support"
258 select CRYPTO_CTR
259 select CRYPTO_AEAD
Huang Ying9382d972009-08-06 15:34:26 +1000260 select CRYPTO_GHASH
Jussi Kivilinna9489667d2013-04-07 16:43:41 +0300261 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800262 help
263 Support for Galois/Counter Mode (GCM) and Galois Message
264 Authentication Code (GMAC). Required for IPSec.
265
Martin Willi71ebc4d2015-06-01 13:44:00 +0200266config CRYPTO_CHACHA20POLY1305
267 tristate "ChaCha20-Poly1305 AEAD support"
268 select CRYPTO_CHACHA20
269 select CRYPTO_POLY1305
270 select CRYPTO_AEAD
271 help
272 ChaCha20-Poly1305 AEAD support, RFC7539.
273
274 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
275 with the Poly1305 authenticator. It is defined in RFC7539 for use in
276 IETF protocols.
277
Ondrej Mosnacekf606a882018-05-11 14:12:49 +0200278config CRYPTO_AEGIS128
279 tristate "AEGIS-128 AEAD algorithm"
280 select CRYPTO_AEAD
281 select CRYPTO_AES # for AES S-box tables
282 help
283 Support for the AEGIS-128 dedicated AEAD algorithm.
284
285config CRYPTO_AEGIS128L
286 tristate "AEGIS-128L AEAD algorithm"
287 select CRYPTO_AEAD
288 select CRYPTO_AES # for AES S-box tables
289 help
290 Support for the AEGIS-128L dedicated AEAD algorithm.
291
292config CRYPTO_AEGIS256
293 tristate "AEGIS-256 AEAD algorithm"
294 select CRYPTO_AEAD
295 select CRYPTO_AES # for AES S-box tables
296 help
297 Support for the AEGIS-256 dedicated AEAD algorithm.
298
Ondrej Mosnacek1d373d42018-05-11 14:12:51 +0200299config CRYPTO_AEGIS128_AESNI_SSE2
300 tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
301 depends on X86 && 64BIT
302 select CRYPTO_AEAD
303 select CRYPTO_CRYPTD
304 help
305 AESNI+SSE2 implementation of the AEGSI-128 dedicated AEAD algorithm.
306
307config CRYPTO_AEGIS128L_AESNI_SSE2
308 tristate "AEGIS-128L AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
309 depends on X86 && 64BIT
310 select CRYPTO_AEAD
311 select CRYPTO_CRYPTD
312 help
313 AESNI+SSE2 implementation of the AEGSI-128L dedicated AEAD algorithm.
314
315config CRYPTO_AEGIS256_AESNI_SSE2
316 tristate "AEGIS-256 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
317 depends on X86 && 64BIT
318 select CRYPTO_AEAD
319 select CRYPTO_CRYPTD
320 help
321 AESNI+SSE2 implementation of the AEGSI-256 dedicated AEAD algorithm.
322
Ondrej Mosnacek396be412018-05-11 14:19:09 +0200323config CRYPTO_MORUS640
324 tristate "MORUS-640 AEAD algorithm"
325 select CRYPTO_AEAD
326 help
327 Support for the MORUS-640 dedicated AEAD algorithm.
328
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200329config CRYPTO_MORUS640_GLUE
Ondrej Mosnacek2808f172018-05-21 21:41:51 +0200330 tristate
331 depends on X86
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200332 select CRYPTO_AEAD
333 select CRYPTO_CRYPTD
334 help
335 Common glue for SIMD optimizations of the MORUS-640 dedicated AEAD
336 algorithm.
337
Ondrej Mosnacek6ecc9d92018-05-11 14:19:12 +0200338config CRYPTO_MORUS640_SSE2
339 tristate "MORUS-640 AEAD algorithm (x86_64 SSE2 implementation)"
340 depends on X86 && 64BIT
341 select CRYPTO_AEAD
342 select CRYPTO_MORUS640_GLUE
343 help
344 SSE2 implementation of the MORUS-640 dedicated AEAD algorithm.
345
Ondrej Mosnacek396be412018-05-11 14:19:09 +0200346config CRYPTO_MORUS1280
347 tristate "MORUS-1280 AEAD algorithm"
348 select CRYPTO_AEAD
349 help
350 Support for the MORUS-1280 dedicated AEAD algorithm.
351
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200352config CRYPTO_MORUS1280_GLUE
Ondrej Mosnacek2808f172018-05-21 21:41:51 +0200353 tristate
354 depends on X86
Ondrej Mosnacek56e8e572018-05-11 14:19:11 +0200355 select CRYPTO_AEAD
356 select CRYPTO_CRYPTD
357 help
358 Common glue for SIMD optimizations of the MORUS-1280 dedicated AEAD
359 algorithm.
360
Ondrej Mosnacek6ecc9d92018-05-11 14:19:12 +0200361config CRYPTO_MORUS1280_SSE2
362 tristate "MORUS-1280 AEAD algorithm (x86_64 SSE2 implementation)"
363 depends on X86 && 64BIT
364 select CRYPTO_AEAD
365 select CRYPTO_MORUS1280_GLUE
366 help
367 SSE2 optimizedimplementation of the MORUS-1280 dedicated AEAD
368 algorithm.
369
370config CRYPTO_MORUS1280_AVX2
371 tristate "MORUS-1280 AEAD algorithm (x86_64 AVX2 implementation)"
372 depends on X86 && 64BIT
373 select CRYPTO_AEAD
374 select CRYPTO_MORUS1280_GLUE
375 help
376 AVX2 optimized implementation of the MORUS-1280 dedicated AEAD
377 algorithm.
378
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800379config CRYPTO_SEQIV
380 tristate "Sequence Number IV Generator"
381 select CRYPTO_AEAD
382 select CRYPTO_BLKCIPHER
Herbert Xu856e3f402015-05-21 15:11:13 +0800383 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800384 select CRYPTO_RNG_DEFAULT
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800385 help
386 This IV generator generates an IV based on a sequence number by
387 xoring it with a salt. This algorithm is mainly useful for CTR
388
Herbert Xua10f5542015-05-21 15:11:15 +0800389config CRYPTO_ECHAINIV
390 tristate "Encrypted Chain IV Generator"
391 select CRYPTO_AEAD
392 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800393 select CRYPTO_RNG_DEFAULT
Herbert Xu34912442015-06-03 14:49:29 +0800394 default m
Herbert Xua10f5542015-05-21 15:11:15 +0800395 help
396 This IV generator generates an IV based on the encryption of
397 a sequence number xored with a salt. This is the default
398 algorithm for CBC.
399
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800400comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000401
402config CRYPTO_CBC
403 tristate "CBC support"
404 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000405 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000406 help
407 CBC: Cipher Block Chaining mode
408 This block cipher algorithm is required for IPSec.
409
James Bottomleya7d85e02018-03-01 14:36:17 -0800410config CRYPTO_CFB
411 tristate "CFB support"
412 select CRYPTO_BLKCIPHER
413 select CRYPTO_MANAGER
414 help
415 CFB: Cipher FeedBack mode
416 This block cipher algorithm is required for TPM2 Cryptography.
417
Joy Latten23e353c2007-10-23 08:50:32 +0800418config CRYPTO_CTR
419 tristate "CTR support"
420 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100421 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800422 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800423 help
424 CTR: Counter mode
425 This block cipher algorithm is required for IPSec.
426
Kevin Coffman76cb9522008-03-24 21:26:16 +0800427config CRYPTO_CTS
428 tristate "CTS support"
429 select CRYPTO_BLKCIPHER
430 help
431 CTS: Cipher Text Stealing
432 This is the Cipher Text Stealing mode as described by
Gilad Ben-Yossefecd6d5c2018-11-05 12:05:01 +0000433 Section 8 of rfc2040 and referenced by rfc3962
434 (rfc3962 includes errata information in its Appendix A) or
435 CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010.
Kevin Coffman76cb9522008-03-24 21:26:16 +0800436 This mode is required for Kerberos gss mechanism support
437 for AES encryption.
438
Gilad Ben-Yossefecd6d5c2018-11-05 12:05:01 +0000439 See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final
440
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800441config CRYPTO_ECB
442 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800443 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000444 select CRYPTO_MANAGER
445 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800446 ECB: Electronic CodeBook mode
447 This is the simplest block cipher algorithm. It simply encrypts
448 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000449
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800450config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200451 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100452 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800453 select CRYPTO_MANAGER
454 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100455 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800456 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
457 narrow block cipher mode for dm-crypt. Use it with cipher
458 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
459 The first 128, 192 or 256 bits in the key are used for AES and the
460 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100461
Gilad Ben-Yossefe497c512018-09-20 14:18:39 +0100462config CRYPTO_OFB
463 tristate "OFB support"
464 select CRYPTO_BLKCIPHER
465 select CRYPTO_MANAGER
466 help
467 OFB: the Output Feedback mode makes a block cipher into a synchronous
468 stream cipher. It generates keystream blocks, which are then XORed
469 with the plaintext blocks to get the ciphertext. Flipping a bit in the
470 ciphertext produces a flipped bit in the plaintext at the same
471 location. This property allows many error correcting codes to function
472 normally even when applied before encryption.
473
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800474config CRYPTO_PCBC
475 tristate "PCBC support"
476 select CRYPTO_BLKCIPHER
477 select CRYPTO_MANAGER
478 help
479 PCBC: Propagating Cipher Block Chaining mode
480 This block cipher algorithm is required for RxRPC.
481
482config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200483 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800484 select CRYPTO_BLKCIPHER
485 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100486 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800487 help
488 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
489 key size 256, 384 or 512 bits. This implementation currently
490 can't handle a sectorsize which is not a multiple of 16 bytes.
491
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200492config CRYPTO_KEYWRAP
493 tristate "Key wrapping support"
494 select CRYPTO_BLKCIPHER
495 help
496 Support for key wrapping (NIST SP800-38F / RFC3394) without
497 padding.
498
Eric Biggers26609a22018-11-16 17:26:29 -0800499config CRYPTO_NHPOLY1305
500 tristate
501 select CRYPTO_HASH
502 select CRYPTO_POLY1305
503
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800504comment "Hash modes"
505
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300506config CRYPTO_CMAC
507 tristate "CMAC support"
508 select CRYPTO_HASH
509 select CRYPTO_MANAGER
510 help
511 Cipher-based Message Authentication Code (CMAC) specified by
512 The National Institute of Standards and Technology (NIST).
513
514 https://tools.ietf.org/html/rfc4493
515 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
516
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800517config CRYPTO_HMAC
518 tristate "HMAC support"
519 select CRYPTO_HASH
520 select CRYPTO_MANAGER
521 help
522 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
523 This is required for IPSec.
524
525config CRYPTO_XCBC
526 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800527 select CRYPTO_HASH
528 select CRYPTO_MANAGER
529 help
530 XCBC: Keyed-Hashing with encryption algorithm
531 http://www.ietf.org/rfc/rfc3566.txt
532 http://csrc.nist.gov/encryption/modes/proposedmodes/
533 xcbc-mac/xcbc-mac-spec.pdf
534
Shane Wangf1939f72009-09-02 20:05:22 +1000535config CRYPTO_VMAC
536 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000537 select CRYPTO_HASH
538 select CRYPTO_MANAGER
539 help
540 VMAC is a message authentication algorithm designed for
541 very high speed on 64-bit architectures.
542
543 See also:
544 <http://fastcrypto.org/vmac>
545
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800546comment "Digest"
547
548config CRYPTO_CRC32C
549 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800550 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700551 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800552 help
553 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
554 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800555 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800556
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800557config CRYPTO_CRC32C_INTEL
558 tristate "CRC32c INTEL hardware acceleration"
559 depends on X86
560 select CRYPTO_HASH
561 help
562 In Intel processor with SSE4.2 supported, the processor will
563 support CRC32C implementation using hardware accelerated CRC32
564 instruction. This option will create 'crc32c-intel' module,
565 which will enable any routine to use the CRC32 instruction to
566 gain performance compared with software implementation.
567 Module will be crc32c-intel.
568
Jean Delvare7cf31862016-11-22 10:32:44 +0100569config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000570 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000571 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000572 select CRYPTO_HASH
573 select CRC32
574 help
575 CRC32c algorithm implemented using vector polynomial multiply-sum
576 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
577 and newer processors for improved performance.
578
579
David S. Miller442a7c42012-08-22 20:47:36 -0700580config CRYPTO_CRC32C_SPARC64
581 tristate "CRC32c CRC algorithm (SPARC64)"
582 depends on SPARC64
583 select CRYPTO_HASH
584 select CRC32
585 help
586 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
587 when available.
588
Alexander Boyko78c37d12013-01-10 18:54:59 +0400589config CRYPTO_CRC32
590 tristate "CRC32 CRC algorithm"
591 select CRYPTO_HASH
592 select CRC32
593 help
594 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
595 Shash crypto api wrappers to crc32_le function.
596
597config CRYPTO_CRC32_PCLMUL
598 tristate "CRC32 PCLMULQDQ hardware acceleration"
599 depends on X86
600 select CRYPTO_HASH
601 select CRC32
602 help
603 From Intel Westmere and AMD Bulldozer processor with SSE4.2
604 and PCLMULQDQ supported, the processor will support
605 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
606 instruction. This option will create 'crc32-plcmul' module,
607 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
608 and gain better performance as compared with the table implementation.
609
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +0000610config CRYPTO_CRC32_MIPS
611 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
612 depends on MIPS_CRC_SUPPORT
613 select CRYPTO_HASH
614 help
615 CRC32c and CRC32 CRC algorithms implemented using mips crypto
616 instructions, when available.
617
618
Herbert Xu684115212013-09-07 12:56:26 +1000619config CRYPTO_CRCT10DIF
620 tristate "CRCT10DIF algorithm"
621 select CRYPTO_HASH
622 help
623 CRC T10 Data Integrity Field computation is being cast as
624 a crypto transform. This allows for faster crc t10 diff
625 transforms to be used if they are available.
626
627config CRYPTO_CRCT10DIF_PCLMUL
628 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
629 depends on X86 && 64BIT && CRC_T10DIF
630 select CRYPTO_HASH
631 help
632 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
633 CRC T10 DIF PCLMULQDQ computation can be hardware
634 accelerated PCLMULQDQ instruction. This option will create
635 'crct10dif-plcmul' module, which is faster when computing the
636 crct10dif checksum as compared with the generic table implementation.
637
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100638config CRYPTO_CRCT10DIF_VPMSUM
639 tristate "CRC32T10DIF powerpc64 hardware acceleration"
640 depends on PPC64 && ALTIVEC && CRC_T10DIF
641 select CRYPTO_HASH
642 help
643 CRC10T10DIF algorithm implemented using vector polynomial
644 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
645 POWER8 and newer processors for improved performance.
646
Daniel Axtens146c8682017-03-15 23:37:37 +1100647config CRYPTO_VPMSUM_TESTER
648 tristate "Powerpc64 vpmsum hardware acceleration tester"
649 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
650 help
651 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
652 POWER8 vpmsum instructions.
653 Unless you are testing these algorithms, you don't need this.
654
Huang Ying2cdc6892009-08-06 15:32:38 +1000655config CRYPTO_GHASH
656 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000657 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100658 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000659 help
660 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
661
Martin Willif979e012015-06-01 13:43:58 +0200662config CRYPTO_POLY1305
663 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100664 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200665 help
666 Poly1305 authenticator algorithm, RFC7539.
667
668 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
669 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
670 in IETF protocols. This is the portable C implementation of Poly1305.
671
Martin Willic70f4ab2015-07-16 19:14:06 +0200672config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200673 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200674 depends on X86 && 64BIT
675 select CRYPTO_POLY1305
676 help
677 Poly1305 authenticator algorithm, RFC7539.
678
679 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
680 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
681 in IETF protocols. This is the x86_64 assembler implementation using SIMD
682 instructions.
683
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800684config CRYPTO_MD4
685 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800686 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700687 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800688 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700689
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800690config CRYPTO_MD5
691 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800692 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700693 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800694 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700695
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200696config CRYPTO_MD5_OCTEON
697 tristate "MD5 digest algorithm (OCTEON)"
698 depends on CPU_CAVIUM_OCTEON
699 select CRYPTO_MD5
700 select CRYPTO_HASH
701 help
702 MD5 message digest algorithm (RFC1321) implemented
703 using OCTEON crypto instructions, when available.
704
Markus Stockhausene8e59952015-03-01 19:30:46 +0100705config CRYPTO_MD5_PPC
706 tristate "MD5 digest algorithm (PPC)"
707 depends on PPC
708 select CRYPTO_HASH
709 help
710 MD5 message digest algorithm (RFC1321) implemented
711 in PPC assembler.
712
David S. Millerfa4dfed2012-08-19 21:51:26 -0700713config CRYPTO_MD5_SPARC64
714 tristate "MD5 digest algorithm (SPARC64)"
715 depends on SPARC64
716 select CRYPTO_MD5
717 select CRYPTO_HASH
718 help
719 MD5 message digest algorithm (RFC1321) implemented
720 using sparc64 crypto instructions, when available.
721
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800722config CRYPTO_MICHAEL_MIC
723 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800724 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800725 help
726 Michael MIC is used for message integrity protection in TKIP
727 (IEEE 802.11i). This algorithm is required for TKIP, but it
728 should not be used for other purposes because of the weakness
729 of the algorithm.
730
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800731config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800732 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800733 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800734 help
735 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800736
Adrian Bunkb6d44342008-07-16 19:28:00 +0800737 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000738 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800739 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800740
Adrian Bunkb6d44342008-07-16 19:28:00 +0800741 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800742 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800743
744config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800745 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800746 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800747 help
748 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800749
Adrian Bunkb6d44342008-07-16 19:28:00 +0800750 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
751 to be used as a secure replacement for the 128-bit hash functions
752 MD4, MD5 and it's predecessor RIPEMD
753 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800754
Adrian Bunkb6d44342008-07-16 19:28:00 +0800755 It's speed is comparable to SHA1 and there are no known attacks
756 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800757
Adrian Bunkb6d44342008-07-16 19:28:00 +0800758 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800759 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800760
761config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800762 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800763 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800764 help
765 RIPEMD-256 is an optional extension of RIPEMD-128 with a
766 256 bit hash. It is intended for applications that require
767 longer hash-results, without needing a larger security level
768 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800769
Adrian Bunkb6d44342008-07-16 19:28:00 +0800770 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800771 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800772
773config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800774 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800775 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800776 help
777 RIPEMD-320 is an optional extension of RIPEMD-160 with a
778 320 bit hash. It is intended for applications that require
779 longer hash-results, without needing a larger security level
780 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800781
Adrian Bunkb6d44342008-07-16 19:28:00 +0800782 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800783 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800784
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800785config CRYPTO_SHA1
786 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800787 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800788 help
789 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
790
Mathias Krause66be8952011-08-04 20:19:25 +0200791config CRYPTO_SHA1_SSSE3
time38b6b7f2015-09-10 15:27:26 -0700792 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200793 depends on X86 && 64BIT
794 select CRYPTO_SHA1
795 select CRYPTO_HASH
796 help
797 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
798 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b7f2015-09-10 15:27:26 -0700799 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
800 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200801
Tim Chen8275d1a2013-03-26 13:59:17 -0700802config CRYPTO_SHA256_SSSE3
time38b6b7f2015-09-10 15:27:26 -0700803 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700804 depends on X86 && 64BIT
805 select CRYPTO_SHA256
806 select CRYPTO_HASH
807 help
808 SHA-256 secure hash standard (DFIPS 180-2) implemented
809 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
810 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b7f2015-09-10 15:27:26 -0700811 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
812 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700813
Tim Chen87de4572013-03-26 14:00:02 -0700814config CRYPTO_SHA512_SSSE3
815 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
816 depends on X86 && 64BIT
817 select CRYPTO_SHA512
818 select CRYPTO_HASH
819 help
820 SHA-512 secure hash standard (DFIPS 180-2) implemented
821 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
822 Extensions version 1 (AVX1), or Advanced Vector Extensions
823 version 2 (AVX2) instructions, when available.
824
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200825config CRYPTO_SHA1_OCTEON
826 tristate "SHA1 digest algorithm (OCTEON)"
827 depends on CPU_CAVIUM_OCTEON
828 select CRYPTO_SHA1
829 select CRYPTO_HASH
830 help
831 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
832 using OCTEON crypto instructions, when available.
833
David S. Miller4ff28d42012-08-19 15:41:53 -0700834config CRYPTO_SHA1_SPARC64
835 tristate "SHA1 digest algorithm (SPARC64)"
836 depends on SPARC64
837 select CRYPTO_SHA1
838 select CRYPTO_HASH
839 help
840 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
841 using sparc64 crypto instructions, when available.
842
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000843config CRYPTO_SHA1_PPC
844 tristate "SHA1 digest algorithm (powerpc)"
845 depends on PPC
846 help
847 This is the powerpc hardware accelerated implementation of the
848 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
849
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100850config CRYPTO_SHA1_PPC_SPE
851 tristate "SHA1 digest algorithm (PPC SPE)"
852 depends on PPC && SPE
853 help
854 SHA-1 secure hash standard (DFIPS 180-4) implemented
855 using powerpc SPE SIMD instruction set.
856
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800857config CRYPTO_SHA256
858 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800859 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800860 help
861 SHA256 secure hash standard (DFIPS 180-2).
862
863 This version of SHA implements a 256 bit hash with 128 bits of
864 security against collision attacks.
865
Adrian Bunkb6d44342008-07-16 19:28:00 +0800866 This code also includes SHA-224, a 224 bit hash with 112 bits
867 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800868
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100869config CRYPTO_SHA256_PPC_SPE
870 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
871 depends on PPC && SPE
872 select CRYPTO_SHA256
873 select CRYPTO_HASH
874 help
875 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
876 implemented using powerpc SPE SIMD instruction set.
877
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200878config CRYPTO_SHA256_OCTEON
879 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
880 depends on CPU_CAVIUM_OCTEON
881 select CRYPTO_SHA256
882 select CRYPTO_HASH
883 help
884 SHA-256 secure hash standard (DFIPS 180-2) implemented
885 using OCTEON crypto instructions, when available.
886
David S. Miller86c93b22012-08-19 17:11:37 -0700887config CRYPTO_SHA256_SPARC64
888 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
889 depends on SPARC64
890 select CRYPTO_SHA256
891 select CRYPTO_HASH
892 help
893 SHA-256 secure hash standard (DFIPS 180-2) implemented
894 using sparc64 crypto instructions, when available.
895
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800896config CRYPTO_SHA512
897 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100898 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800899 help
900 SHA512 secure hash standard (DFIPS 180-2).
901
902 This version of SHA implements a 512 bit hash with 256 bits of
903 security against collision attacks.
904
905 This code also includes SHA-384, a 384 bit hash with 192 bits
906 of security against collision attacks.
907
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200908config CRYPTO_SHA512_OCTEON
909 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
910 depends on CPU_CAVIUM_OCTEON
911 select CRYPTO_SHA512
912 select CRYPTO_HASH
913 help
914 SHA-512 secure hash standard (DFIPS 180-2) implemented
915 using OCTEON crypto instructions, when available.
916
David S. Miller775e0c62012-08-19 17:37:56 -0700917config CRYPTO_SHA512_SPARC64
918 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
919 depends on SPARC64
920 select CRYPTO_SHA512
921 select CRYPTO_HASH
922 help
923 SHA-512 secure hash standard (DFIPS 180-2) implemented
924 using sparc64 crypto instructions, when available.
925
Jeff Garzik53964b92016-06-17 10:30:35 +0530926config CRYPTO_SHA3
927 tristate "SHA3 digest algorithm"
928 select CRYPTO_HASH
929 help
930 SHA-3 secure hash standard (DFIPS 202). It's based on
931 cryptographic sponge function family called Keccak.
932
933 References:
934 http://keccak.noekeon.org/
935
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +0300936config CRYPTO_SM3
937 tristate "SM3 digest algorithm"
938 select CRYPTO_HASH
939 help
940 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
941 It is part of the Chinese Commercial Cryptography suite.
942
943 References:
944 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
945 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
946
Vitaly Chikunovfe189572018-11-07 00:00:01 +0300947config CRYPTO_STREEBOG
948 tristate "Streebog Hash Function"
949 select CRYPTO_HASH
950 help
951 Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian
952 cryptographic standard algorithms (called GOST algorithms).
953 This setting enables two hash algorithms with 256 and 512 bits output.
954
955 References:
956 https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
957 https://tools.ietf.org/html/rfc6986
958
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800959config CRYPTO_TGR192
960 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800961 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800962 help
963 Tiger hash algorithm 192, 160 and 128-bit hashes
964
965 Tiger is a hash function optimized for 64-bit processors while
966 still having decent performance on 32-bit processors.
967 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700968
969 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800970 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
971
972config CRYPTO_WP512
973 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800974 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800975 help
976 Whirlpool hash algorithm 512, 384 and 256-bit hashes
977
978 Whirlpool-512 is part of the NESSIE cryptographic primitives.
979 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
980
981 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800982 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800983
Huang Ying0e1227d2009-10-19 11:53:06 +0900984config CRYPTO_GHASH_CLMUL_NI_INTEL
985 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800986 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900987 select CRYPTO_CRYPTD
988 help
989 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
990 The implementation is accelerated by CLMUL-NI of Intel.
991
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800992comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700993
994config CRYPTO_AES
995 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000996 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700997 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800998 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700999 algorithm.
1000
1001 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001002 both hardware and software across a wide range of computing
1003 environments regardless of its use in feedback or non-feedback
1004 modes. Its key setup time is excellent, and its key agility is
1005 good. Rijndael's very low memory requirements make it very well
1006 suited for restricted-space environments, in which it also
1007 demonstrates excellent performance. Rijndael's operations are
1008 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001009
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001010 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001011
1012 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
1013
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001014config CRYPTO_AES_TI
1015 tristate "Fixed time AES cipher"
1016 select CRYPTO_ALGAPI
1017 help
1018 This is a generic implementation of AES that attempts to eliminate
1019 data dependent latencies as much as possible without affecting
1020 performance too much. It is intended for use by the generic CCM
1021 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
1022 solely on encryption (although decryption is supported as well, but
1023 with a more dramatic performance hit)
1024
1025 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
1026 8 for decryption), this implementation only uses just two S-boxes of
1027 256 bytes each, and attempts to eliminate data dependent latencies by
1028 prefetching the entire table into the cache at the start of each
Eric Biggers0a6a40c2018-10-17 21:37:58 -07001029 block. Interrupts are also disabled to avoid races where cachelines
1030 are evicted when the CPU is interrupted to do something else.
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001031
Linus Torvalds1da177e2005-04-16 15:20:36 -07001032config CRYPTO_AES_586
1033 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +10001034 depends on (X86 || UML_X86) && !64BIT
1035 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +08001036 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001037 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001038 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -07001039 algorithm.
1040
1041 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001042 both hardware and software across a wide range of computing
1043 environments regardless of its use in feedback or non-feedback
1044 modes. Its key setup time is excellent, and its key agility is
1045 good. Rijndael's very low memory requirements make it very well
1046 suited for restricted-space environments, in which it also
1047 demonstrates excellent performance. Rijndael's operations are
1048 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001049
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001050 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001051
1052 See <http://csrc.nist.gov/encryption/aes/> for more information.
1053
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001054config CRYPTO_AES_X86_64
1055 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +10001056 depends on (X86 || UML_X86) && 64BIT
1057 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +08001058 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001059 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001060 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001061 algorithm.
1062
1063 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001064 both hardware and software across a wide range of computing
1065 environments regardless of its use in feedback or non-feedback
1066 modes. Its key setup time is excellent, and its key agility is
1067 good. Rijndael's very low memory requirements make it very well
1068 suited for restricted-space environments, in which it also
1069 demonstrates excellent performance. Rijndael's operations are
1070 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001071
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001072 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001073
1074 See <http://csrc.nist.gov/encryption/aes/> for more information.
1075
Huang Ying54b6a1b2009-01-18 16:28:34 +11001076config CRYPTO_AES_NI_INTEL
1077 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001078 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +08001079 select CRYPTO_AEAD
Mathias Krause0d258ef2010-11-27 16:34:46 +08001080 select CRYPTO_AES_X86_64 if 64BIT
1081 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +11001082 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +08001083 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +03001084 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +08001085 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +11001086 help
1087 Use Intel AES-NI instructions for AES algorithm.
1088
1089 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1090 algorithm.
1091
1092 Rijndael appears to be consistently a very good performer in
1093 both hardware and software across a wide range of computing
1094 environments regardless of its use in feedback or non-feedback
1095 modes. Its key setup time is excellent, and its key agility is
1096 good. Rijndael's very low memory requirements make it very well
1097 suited for restricted-space environments, in which it also
1098 demonstrates excellent performance. Rijndael's operations are
1099 among the easiest to defend against power and timing attacks.
1100
1101 The AES specifies three key sizes: 128, 192 and 256 bits
1102
1103 See <http://csrc.nist.gov/encryption/aes/> for more information.
1104
Mathias Krause0d258ef2010-11-27 16:34:46 +08001105 In addition to AES cipher algorithm support, the acceleration
1106 for some popular block cipher mode is supported too, including
Ard Biesheuvel944585a2018-09-24 14:48:16 +02001107 ECB, CBC, LRW, XTS. The 64 bit version has additional
Mathias Krause0d258ef2010-11-27 16:34:46 +08001108 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001109
David S. Miller9bf48522012-08-21 03:58:13 -07001110config CRYPTO_AES_SPARC64
1111 tristate "AES cipher algorithms (SPARC64)"
1112 depends on SPARC64
1113 select CRYPTO_CRYPTD
1114 select CRYPTO_ALGAPI
1115 help
1116 Use SPARC64 crypto opcodes for AES algorithm.
1117
1118 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1119 algorithm.
1120
1121 Rijndael appears to be consistently a very good performer in
1122 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.
1129
1130 The AES specifies three key sizes: 128, 192 and 256 bits
1131
1132 See <http://csrc.nist.gov/encryption/aes/> for more information.
1133
1134 In addition to AES cipher algorithm support, the acceleration
1135 for some popular block cipher mode is supported too, including
1136 ECB and CBC.
1137
Markus Stockhausen504c6142015-02-22 10:00:10 +01001138config CRYPTO_AES_PPC_SPE
1139 tristate "AES cipher algorithms (PPC SPE)"
1140 depends on PPC && SPE
1141 help
1142 AES cipher algorithms (FIPS-197). Additionally the acceleration
1143 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1144 This module should only be used for low power (router) devices
1145 without hardware AES acceleration (e.g. caam crypto). It reduces the
1146 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1147 timining attacks. Nevertheless it might be not as secure as other
1148 architecture specific assembler implementations that work on 1KB
1149 tables or 256 bytes S-boxes.
1150
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001151config CRYPTO_ANUBIS
1152 tristate "Anubis cipher algorithm"
1153 select CRYPTO_ALGAPI
1154 help
1155 Anubis cipher algorithm.
1156
1157 Anubis is a variable key length cipher which can use keys from
1158 128 bits to 320 bits in length. It was evaluated as a entrant
1159 in the NESSIE competition.
1160
1161 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001162 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1163 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001164
1165config CRYPTO_ARC4
1166 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001167 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001168 help
1169 ARC4 cipher algorithm.
1170
1171 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1172 bits in length. This algorithm is required for driver-based
1173 WEP, but it should not be for other purposes because of the
1174 weakness of the algorithm.
1175
1176config CRYPTO_BLOWFISH
1177 tristate "Blowfish cipher algorithm"
1178 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001179 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001180 help
1181 Blowfish cipher algorithm, by Bruce Schneier.
1182
1183 This is a variable key length cipher which can use keys from 32
1184 bits to 448 bits in length. It's fast, simple and specifically
1185 designed for use on "large microprocessors".
1186
1187 See also:
1188 <http://www.schneier.com/blowfish.html>
1189
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001190config CRYPTO_BLOWFISH_COMMON
1191 tristate
1192 help
1193 Common parts of the Blowfish cipher algorithm shared by the
1194 generic c and the assembler implementations.
1195
1196 See also:
1197 <http://www.schneier.com/blowfish.html>
1198
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001199config CRYPTO_BLOWFISH_X86_64
1200 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001201 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001202 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001203 select CRYPTO_BLOWFISH_COMMON
1204 help
1205 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1206
1207 This is a variable key length cipher which can use keys from 32
1208 bits to 448 bits in length. It's fast, simple and specifically
1209 designed for use on "large microprocessors".
1210
1211 See also:
1212 <http://www.schneier.com/blowfish.html>
1213
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001214config CRYPTO_CAMELLIA
1215 tristate "Camellia cipher algorithms"
1216 depends on CRYPTO
1217 select CRYPTO_ALGAPI
1218 help
1219 Camellia cipher algorithms module.
1220
1221 Camellia is a symmetric key block cipher developed jointly
1222 at NTT and Mitsubishi Electric Corporation.
1223
1224 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1225
1226 See also:
1227 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1228
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001229config CRYPTO_CAMELLIA_X86_64
1230 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001231 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001232 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001233 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001234 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001235 help
1236 Camellia cipher algorithm module (x86_64).
1237
1238 Camellia is a symmetric key block cipher developed jointly
1239 at NTT and Mitsubishi Electric Corporation.
1240
1241 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1242
1243 See also:
1244 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1245
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001246config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1247 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1248 depends on X86 && 64BIT
1249 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001250 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001251 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001252 select CRYPTO_GLUE_HELPER_X86
1253 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001254 select CRYPTO_XTS
1255 help
1256 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1257
1258 Camellia is a symmetric key block cipher developed jointly
1259 at NTT and Mitsubishi Electric Corporation.
1260
1261 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1262
1263 See also:
1264 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1265
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001266config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1267 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1268 depends on X86 && 64BIT
1269 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001270 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001271 help
1272 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1273
1274 Camellia is a symmetric key block cipher developed jointly
1275 at NTT and Mitsubishi Electric Corporation.
1276
1277 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1278
1279 See also:
1280 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1281
David S. Miller81658ad2012-08-28 12:05:54 -07001282config CRYPTO_CAMELLIA_SPARC64
1283 tristate "Camellia cipher algorithm (SPARC64)"
1284 depends on SPARC64
1285 depends on CRYPTO
1286 select CRYPTO_ALGAPI
1287 help
1288 Camellia cipher algorithm module (SPARC64).
1289
1290 Camellia is a symmetric key block cipher developed jointly
1291 at NTT and Mitsubishi Electric Corporation.
1292
1293 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1294
1295 See also:
1296 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1297
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001298config CRYPTO_CAST_COMMON
1299 tristate
1300 help
1301 Common parts of the CAST cipher algorithms shared by the
1302 generic c and the assembler implementations.
1303
Linus Torvalds1da177e2005-04-16 15:20:36 -07001304config CRYPTO_CAST5
1305 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001306 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001307 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001308 help
1309 The CAST5 encryption algorithm (synonymous with CAST-128) is
1310 described in RFC2144.
1311
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001312config CRYPTO_CAST5_AVX_X86_64
1313 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1314 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001315 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001316 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001317 select CRYPTO_CAST_COMMON
1318 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001319 help
1320 The CAST5 encryption algorithm (synonymous with CAST-128) is
1321 described in RFC2144.
1322
1323 This module provides the Cast5 cipher algorithm that processes
1324 sixteen blocks parallel using the AVX instruction set.
1325
Linus Torvalds1da177e2005-04-16 15:20:36 -07001326config CRYPTO_CAST6
1327 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001328 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001329 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001330 help
1331 The CAST6 encryption algorithm (synonymous with CAST-256) is
1332 described in RFC2612.
1333
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001334config CRYPTO_CAST6_AVX_X86_64
1335 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1336 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001337 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001338 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001339 select CRYPTO_CAST_COMMON
1340 select CRYPTO_GLUE_HELPER_X86
1341 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001342 select CRYPTO_XTS
1343 help
1344 The CAST6 encryption algorithm (synonymous with CAST-256) is
1345 described in RFC2612.
1346
1347 This module provides the Cast6 cipher algorithm that processes
1348 eight blocks parallel using the AVX instruction set.
1349
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001350config CRYPTO_DES
1351 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001352 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001353 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001354 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001355
David S. Millerc5aac2d2012-08-25 22:37:23 -07001356config CRYPTO_DES_SPARC64
1357 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001358 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001359 select CRYPTO_ALGAPI
1360 select CRYPTO_DES
1361 help
1362 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1363 optimized using SPARC64 crypto opcodes.
1364
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001365config CRYPTO_DES3_EDE_X86_64
1366 tristate "Triple DES EDE cipher algorithm (x86-64)"
1367 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001368 select CRYPTO_BLKCIPHER
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001369 select CRYPTO_DES
1370 help
1371 Triple DES EDE (FIPS 46-3) algorithm.
1372
1373 This module provides implementation of the Triple DES EDE cipher
1374 algorithm that is optimized for x86-64 processors. Two versions of
1375 algorithm are provided; regular processing one input block and
1376 one that processes three blocks parallel.
1377
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001378config CRYPTO_FCRYPT
1379 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001380 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001381 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001382 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001383 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001384
1385config CRYPTO_KHAZAD
1386 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001387 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001388 help
1389 Khazad cipher algorithm.
1390
1391 Khazad was a finalist in the initial NESSIE competition. It is
1392 an algorithm optimized for 64-bit processors with good performance
1393 on 32-bit processors. Khazad uses an 128 bit key size.
1394
1395 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001396 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001397
Tan Swee Heng2407d602007-11-23 19:45:00 +08001398config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001399 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001400 select CRYPTO_BLKCIPHER
1401 help
1402 Salsa20 stream cipher algorithm.
1403
1404 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1405 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1406
1407 The Salsa20 stream cipher algorithm is designed by Daniel J.
1408 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001409
Martin Willic08d0e62015-06-01 13:43:56 +02001410config CRYPTO_CHACHA20
Eric Biggersaa762402018-11-16 17:26:22 -08001411 tristate "ChaCha stream cipher algorithms"
Martin Willic08d0e62015-06-01 13:43:56 +02001412 select CRYPTO_BLKCIPHER
1413 help
Eric Biggersaa762402018-11-16 17:26:22 -08001414 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms.
Martin Willic08d0e62015-06-01 13:43:56 +02001415
1416 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1417 Bernstein and further specified in RFC7539 for use in IETF protocols.
Eric Biggersde61d7a2018-11-16 17:26:20 -08001418 This is the portable C implementation of ChaCha20. See also:
Martin Willic08d0e62015-06-01 13:43:56 +02001419 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1420
Eric Biggersde61d7a2018-11-16 17:26:20 -08001421 XChaCha20 is the application of the XSalsa20 construction to ChaCha20
1422 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
1423 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
1424 while provably retaining ChaCha20's security. See also:
1425 <https://cr.yp.to/snuffle/xsalsa-20081128.pdf>
1426
Eric Biggersaa762402018-11-16 17:26:22 -08001427 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
1428 reduced security margin but increased performance. It can be needed
1429 in some performance-sensitive scenarios.
1430
Martin Willic9320b62015-07-16 19:14:01 +02001431config CRYPTO_CHACHA20_X86_64
Martin Willi3d1e93c2015-07-16 19:14:03 +02001432 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
Martin Willic9320b62015-07-16 19:14:01 +02001433 depends on X86 && 64BIT
1434 select CRYPTO_BLKCIPHER
1435 select CRYPTO_CHACHA20
1436 help
1437 ChaCha20 cipher algorithm, RFC7539.
1438
1439 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1440 Bernstein and further specified in RFC7539 for use in IETF protocols.
1441 This is the x86_64 assembler implementation using SIMD instructions.
1442
1443 See also:
1444 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1445
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001446config CRYPTO_SEED
1447 tristate "SEED cipher algorithm"
1448 select CRYPTO_ALGAPI
1449 help
1450 SEED cipher algorithm (RFC4269).
1451
1452 SEED is a 128-bit symmetric key block cipher that has been
1453 developed by KISA (Korea Information Security Agency) as a
1454 national standard encryption algorithm of the Republic of Korea.
1455 It is a 16 round block cipher with the key size of 128 bit.
1456
1457 See also:
1458 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1459
1460config CRYPTO_SERPENT
1461 tristate "Serpent cipher algorithm"
1462 select CRYPTO_ALGAPI
1463 help
1464 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1465
1466 Keys are allowed to be from 0 to 256 bits in length, in steps
1467 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1468 variant of Serpent for compatibility with old kerneli.org code.
1469
1470 See also:
1471 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1472
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001473config CRYPTO_SERPENT_SSE2_X86_64
1474 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1475 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001476 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001477 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001478 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001479 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001480 help
1481 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1482
1483 Keys are allowed to be from 0 to 256 bits in length, in steps
1484 of 8 bits.
1485
Masanari Iida1e6232f2015-04-04 00:20:30 +09001486 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001487 blocks parallel using SSE2 instruction set.
1488
1489 See also:
1490 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1491
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001492config CRYPTO_SERPENT_SSE2_586
1493 tristate "Serpent cipher algorithm (i586/SSE2)"
1494 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001495 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001496 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001497 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001498 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001499 help
1500 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1501
1502 Keys are allowed to be from 0 to 256 bits in length, in steps
1503 of 8 bits.
1504
1505 This module provides Serpent cipher algorithm that processes four
1506 blocks parallel using SSE2 instruction set.
1507
1508 See also:
1509 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1510
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001511config CRYPTO_SERPENT_AVX_X86_64
1512 tristate "Serpent cipher algorithm (x86_64/AVX)"
1513 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001514 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001515 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001516 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001517 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001518 select CRYPTO_XTS
1519 help
1520 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1521
1522 Keys are allowed to be from 0 to 256 bits in length, in steps
1523 of 8 bits.
1524
1525 This module provides the Serpent cipher algorithm that processes
1526 eight blocks parallel using the AVX instruction set.
1527
1528 See also:
1529 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1530
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001531config CRYPTO_SERPENT_AVX2_X86_64
1532 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1533 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001534 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001535 help
1536 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1537
1538 Keys are allowed to be from 0 to 256 bits in length, in steps
1539 of 8 bits.
1540
1541 This module provides Serpent cipher algorithm that processes 16
1542 blocks parallel using AVX2 instruction set.
1543
1544 See also:
1545 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1546
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +00001547config CRYPTO_SM4
1548 tristate "SM4 cipher algorithm"
1549 select CRYPTO_ALGAPI
1550 help
1551 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1552
1553 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1554 Organization of State Commercial Administration of China (OSCCA)
1555 as an authorized cryptographic algorithms for the use within China.
1556
1557 SMS4 was originally created for use in protecting wireless
1558 networks, and is mandated in the Chinese National Standard for
1559 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1560 (GB.15629.11-2003).
1561
1562 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1563 standardized through TC 260 of the Standardization Administration
1564 of the People's Republic of China (SAC).
1565
1566 The input, output, and key of SMS4 are each 128 bits.
1567
1568 See also: <https://eprint.iacr.org/2008/329.pdf>
1569
1570 If unsure, say N.
1571
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001572config CRYPTO_TEA
1573 tristate "TEA, XTEA and XETA cipher algorithms"
1574 select CRYPTO_ALGAPI
1575 help
1576 TEA cipher algorithm.
1577
1578 Tiny Encryption Algorithm is a simple cipher that uses
1579 many rounds for security. It is very fast and uses
1580 little memory.
1581
1582 Xtendend Tiny Encryption Algorithm is a modification to
1583 the TEA algorithm to address a potential key weakness
1584 in the TEA algorithm.
1585
1586 Xtendend Encryption Tiny Algorithm is a mis-implementation
1587 of the XTEA algorithm for compatibility purposes.
1588
1589config CRYPTO_TWOFISH
1590 tristate "Twofish cipher algorithm"
1591 select CRYPTO_ALGAPI
1592 select CRYPTO_TWOFISH_COMMON
1593 help
1594 Twofish cipher algorithm.
1595
1596 Twofish was submitted as an AES (Advanced Encryption Standard)
1597 candidate cipher by researchers at CounterPane Systems. It is a
1598 16 round block cipher supporting key sizes of 128, 192, and 256
1599 bits.
1600
1601 See also:
1602 <http://www.schneier.com/twofish.html>
1603
1604config CRYPTO_TWOFISH_COMMON
1605 tristate
1606 help
1607 Common parts of the Twofish cipher algorithm shared by the
1608 generic c and the assembler implementations.
1609
1610config CRYPTO_TWOFISH_586
1611 tristate "Twofish cipher algorithms (i586)"
1612 depends on (X86 || UML_X86) && !64BIT
1613 select CRYPTO_ALGAPI
1614 select CRYPTO_TWOFISH_COMMON
1615 help
1616 Twofish cipher algorithm.
1617
1618 Twofish was submitted as an AES (Advanced Encryption Standard)
1619 candidate cipher by researchers at CounterPane Systems. It is a
1620 16 round block cipher supporting key sizes of 128, 192, and 256
1621 bits.
1622
1623 See also:
1624 <http://www.schneier.com/twofish.html>
1625
1626config CRYPTO_TWOFISH_X86_64
1627 tristate "Twofish cipher algorithm (x86_64)"
1628 depends on (X86 || UML_X86) && 64BIT
1629 select CRYPTO_ALGAPI
1630 select CRYPTO_TWOFISH_COMMON
1631 help
1632 Twofish cipher algorithm (x86_64).
1633
1634 Twofish was submitted as an AES (Advanced Encryption Standard)
1635 candidate cipher by researchers at CounterPane Systems. It is a
1636 16 round block cipher supporting key sizes of 128, 192, and 256
1637 bits.
1638
1639 See also:
1640 <http://www.schneier.com/twofish.html>
1641
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001642config CRYPTO_TWOFISH_X86_64_3WAY
1643 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001644 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001645 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001646 select CRYPTO_TWOFISH_COMMON
1647 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001648 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001649 help
1650 Twofish cipher algorithm (x86_64, 3-way parallel).
1651
1652 Twofish was submitted as an AES (Advanced Encryption Standard)
1653 candidate cipher by researchers at CounterPane Systems. It is a
1654 16 round block cipher supporting key sizes of 128, 192, and 256
1655 bits.
1656
1657 This module provides Twofish cipher algorithm that processes three
1658 blocks parallel, utilizing resources of out-of-order CPUs better.
1659
1660 See also:
1661 <http://www.schneier.com/twofish.html>
1662
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001663config CRYPTO_TWOFISH_AVX_X86_64
1664 tristate "Twofish cipher algorithm (x86_64/AVX)"
1665 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001666 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001667 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001668 select CRYPTO_SIMD
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001669 select CRYPTO_TWOFISH_COMMON
1670 select CRYPTO_TWOFISH_X86_64
1671 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001672 help
1673 Twofish cipher algorithm (x86_64/AVX).
1674
1675 Twofish was submitted as an AES (Advanced Encryption Standard)
1676 candidate cipher by researchers at CounterPane Systems. It is a
1677 16 round block cipher supporting key sizes of 128, 192, and 256
1678 bits.
1679
1680 This module provides the Twofish cipher algorithm that processes
1681 eight blocks parallel using the AVX Instruction Set.
1682
1683 See also:
1684 <http://www.schneier.com/twofish.html>
1685
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001686comment "Compression"
1687
Linus Torvalds1da177e2005-04-16 15:20:36 -07001688config CRYPTO_DEFLATE
1689 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001690 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001691 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001692 select ZLIB_INFLATE
1693 select ZLIB_DEFLATE
1694 help
1695 This is the Deflate algorithm (RFC1951), specified for use in
1696 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001697
Linus Torvalds1da177e2005-04-16 15:20:36 -07001698 You will most probably want this if using IPSec.
1699
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001700config CRYPTO_LZO
1701 tristate "LZO compression algorithm"
1702 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001703 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001704 select LZO_COMPRESS
1705 select LZO_DECOMPRESS
1706 help
1707 This is the LZO algorithm.
1708
Seth Jennings35a1fc12012-07-19 09:42:41 -05001709config CRYPTO_842
1710 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001711 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001712 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001713 select 842_COMPRESS
1714 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001715 help
1716 This is the 842 algorithm.
1717
Chanho Min0ea85302013-07-08 16:01:51 -07001718config CRYPTO_LZ4
1719 tristate "LZ4 compression algorithm"
1720 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001721 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001722 select LZ4_COMPRESS
1723 select LZ4_DECOMPRESS
1724 help
1725 This is the LZ4 algorithm.
1726
1727config CRYPTO_LZ4HC
1728 tristate "LZ4HC compression algorithm"
1729 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001730 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001731 select LZ4HC_COMPRESS
1732 select LZ4_DECOMPRESS
1733 help
1734 This is the LZ4 high compression mode algorithm.
1735
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001736config CRYPTO_ZSTD
1737 tristate "Zstd compression algorithm"
1738 select CRYPTO_ALGAPI
1739 select CRYPTO_ACOMP2
1740 select ZSTD_COMPRESS
1741 select ZSTD_DECOMPRESS
1742 help
1743 This is the zstd algorithm.
1744
Neil Horman17f0f4a2008-08-14 22:15:52 +10001745comment "Random Number Generation"
1746
1747config CRYPTO_ANSI_CPRNG
1748 tristate "Pseudo Random Number Generation for Cryptographic modules"
1749 select CRYPTO_AES
1750 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001751 help
1752 This option enables the generic pseudo random number generator
1753 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001754 ANSI X9.31 A.2.4. Note that this option must be enabled if
1755 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001756
Herbert Xuf2c89a12014-07-04 22:15:08 +08001757menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001758 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001759 help
1760 NIST SP800-90A compliant DRBG. In the following submenu, one or
1761 more of the DRBG types must be selected.
1762
Herbert Xuf2c89a12014-07-04 22:15:08 +08001763if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001764
1765config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001766 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001767 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001768 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001769 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001770
1771config CRYPTO_DRBG_HASH
1772 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001773 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001774 help
1775 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1776
1777config CRYPTO_DRBG_CTR
1778 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001779 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001780 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001781 help
1782 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1783
Herbert Xuf2c89a12014-07-04 22:15:08 +08001784config CRYPTO_DRBG
1785 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001786 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001787 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001788 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001789
1790endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001791
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001792config CRYPTO_JITTERENTROPY
1793 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001794 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001795 help
1796 The Jitterentropy RNG is a noise that is intended
1797 to provide seed to another RNG. The RNG does not
1798 perform any cryptographic whitening of the generated
1799 random numbers. This Jitterentropy RNG registers with
1800 the kernel crypto API and can be used by any caller.
1801
Herbert Xu03c8efc2010-10-19 21:12:39 +08001802config CRYPTO_USER_API
1803 tristate
1804
Herbert Xufe869cd2010-10-19 21:23:00 +08001805config CRYPTO_USER_API_HASH
1806 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001807 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001808 select CRYPTO_HASH
1809 select CRYPTO_USER_API
1810 help
1811 This option enables the user-spaces interface for hash
1812 algorithms.
1813
Herbert Xu8ff59092010-10-19 21:31:55 +08001814config CRYPTO_USER_API_SKCIPHER
1815 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001816 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001817 select CRYPTO_BLKCIPHER
1818 select CRYPTO_USER_API
1819 help
1820 This option enables the user-spaces interface for symmetric
1821 key cipher algorithms.
1822
Stephan Mueller2f3755382014-12-25 23:00:39 +01001823config CRYPTO_USER_API_RNG
1824 tristate "User-space interface for random number generator algorithms"
1825 depends on NET
1826 select CRYPTO_RNG
1827 select CRYPTO_USER_API
1828 help
1829 This option enables the user-spaces interface for random
1830 number generator algorithms.
1831
Herbert Xub64a2d92015-05-28 11:30:35 +08001832config CRYPTO_USER_API_AEAD
1833 tristate "User-space interface for AEAD cipher algorithms"
1834 depends on NET
1835 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001836 select CRYPTO_BLKCIPHER
1837 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001838 select CRYPTO_USER_API
1839 help
1840 This option enables the user-spaces interface for AEAD
1841 cipher algorithms.
1842
Corentin Labbecac58182018-09-19 10:10:54 +00001843config CRYPTO_STATS
1844 bool "Crypto usage statistics for User-space"
1845 help
1846 This option enables the gathering of crypto stats.
1847 This will collect:
1848 - encrypt/decrypt size and numbers of symmeric operations
1849 - compress/decompress size and numbers of compress operations
1850 - size and numbers of hash operations
1851 - encrypt/decrypt/sign/verify numbers for asymmetric operations
1852 - generate/seed numbers for rng operations
1853
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001854config CRYPTO_HASH_INFO
1855 bool
1856
Linus Torvalds1da177e2005-04-16 15:20:36 -07001857source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001858source crypto/asymmetric_keys/Kconfig
David Howellscfc411e2015-08-14 15:20:41 +01001859source certs/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001860
Herbert Xucce9e062006-08-21 21:08:13 +10001861endif # if CRYPTO