[CRYPTO] api: Make the crypto subsystem fully modular
[deliverable/linux.git] / crypto / Kconfig
1 #
2 # Generic algorithms support
3 #
4 config XOR_BLOCKS
5 tristate
6
7 #
8 # async_tx api: hardware offloaded memory transfer/transform support
9 #
10 source "crypto/async_tx/Kconfig"
11
12 #
13 # Cryptographic API Configuration
14 #
15 menuconfig CRYPTO
16 tristate "Cryptographic API"
17 help
18 This option provides the core Cryptographic API.
19
20 if CRYPTO
21
22 config CRYPTO_ALGAPI
23 tristate
24 help
25 This option provides the API for cryptographic algorithms.
26
27 config CRYPTO_AEAD
28 tristate
29 select CRYPTO_ALGAPI
30
31 config CRYPTO_BLKCIPHER
32 tristate
33 select CRYPTO_ALGAPI
34
35 config CRYPTO_SEQIV
36 tristate "Sequence Number IV Generator"
37 select CRYPTO_AEAD
38 select CRYPTO_BLKCIPHER
39 help
40 This IV generator generates an IV based on a sequence number by
41 xoring it with a salt. This algorithm is mainly useful for CTR
42 and similar modes.
43
44 config CRYPTO_HASH
45 tristate
46 select CRYPTO_ALGAPI
47
48 config CRYPTO_MANAGER
49 tristate "Cryptographic algorithm manager"
50 select CRYPTO_ALGAPI
51 help
52 Create default cryptographic template instantiations such as
53 cbc(aes).
54
55 config CRYPTO_HMAC
56 tristate "HMAC support"
57 select CRYPTO_HASH
58 select CRYPTO_MANAGER
59 help
60 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
61 This is required for IPSec.
62
63 config CRYPTO_XCBC
64 tristate "XCBC support"
65 depends on EXPERIMENTAL
66 select CRYPTO_HASH
67 select CRYPTO_MANAGER
68 help
69 XCBC: Keyed-Hashing with encryption algorithm
70 http://www.ietf.org/rfc/rfc3566.txt
71 http://csrc.nist.gov/encryption/modes/proposedmodes/
72 xcbc-mac/xcbc-mac-spec.pdf
73
74 config CRYPTO_NULL
75 tristate "Null algorithms"
76 select CRYPTO_ALGAPI
77 select CRYPTO_BLKCIPHER
78 help
79 These are 'Null' algorithms, used by IPsec, which do nothing.
80
81 config CRYPTO_MD4
82 tristate "MD4 digest algorithm"
83 select CRYPTO_ALGAPI
84 help
85 MD4 message digest algorithm (RFC1320).
86
87 config CRYPTO_MD5
88 tristate "MD5 digest algorithm"
89 select CRYPTO_ALGAPI
90 help
91 MD5 message digest algorithm (RFC1321).
92
93 config CRYPTO_SHA1
94 tristate "SHA1 digest algorithm"
95 select CRYPTO_ALGAPI
96 help
97 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
98
99 config CRYPTO_SHA256
100 tristate "SHA224 and SHA256 digest algorithm"
101 select CRYPTO_ALGAPI
102 help
103 SHA256 secure hash standard (DFIPS 180-2).
104
105 This version of SHA implements a 256 bit hash with 128 bits of
106 security against collision attacks.
107
108 This code also includes SHA-224, a 224 bit hash with 112 bits
109 of security against collision attacks.
110
111 config CRYPTO_SHA512
112 tristate "SHA384 and SHA512 digest algorithms"
113 select CRYPTO_ALGAPI
114 help
115 SHA512 secure hash standard (DFIPS 180-2).
116
117 This version of SHA implements a 512 bit hash with 256 bits of
118 security against collision attacks.
119
120 This code also includes SHA-384, a 384 bit hash with 192 bits
121 of security against collision attacks.
122
123 config CRYPTO_WP512
124 tristate "Whirlpool digest algorithms"
125 select CRYPTO_ALGAPI
126 help
127 Whirlpool hash algorithm 512, 384 and 256-bit hashes
128
129 Whirlpool-512 is part of the NESSIE cryptographic primitives.
130 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
131
132 See also:
133 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
134
135 config CRYPTO_TGR192
136 tristate "Tiger digest algorithms"
137 select CRYPTO_ALGAPI
138 help
139 Tiger hash algorithm 192, 160 and 128-bit hashes
140
141 Tiger is a hash function optimized for 64-bit processors while
142 still having decent performance on 32-bit processors.
143 Tiger was developed by Ross Anderson and Eli Biham.
144
145 See also:
146 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
147
148 config CRYPTO_GF128MUL
149 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
150 depends on EXPERIMENTAL
151 help
152 Efficient table driven implementation of multiplications in the
153 field GF(2^128). This is needed by some cypher modes. This
154 option will be selected automatically if you select such a
155 cipher mode. Only select this option by hand if you expect to load
156 an external module that requires these functions.
157
158 config CRYPTO_ECB
159 tristate "ECB support"
160 select CRYPTO_BLKCIPHER
161 select CRYPTO_MANAGER
162 help
163 ECB: Electronic CodeBook mode
164 This is the simplest block cipher algorithm. It simply encrypts
165 the input block by block.
166
167 config CRYPTO_CBC
168 tristate "CBC support"
169 select CRYPTO_BLKCIPHER
170 select CRYPTO_MANAGER
171 help
172 CBC: Cipher Block Chaining mode
173 This block cipher algorithm is required for IPSec.
174
175 config CRYPTO_PCBC
176 tristate "PCBC support"
177 select CRYPTO_BLKCIPHER
178 select CRYPTO_MANAGER
179 help
180 PCBC: Propagating Cipher Block Chaining mode
181 This block cipher algorithm is required for RxRPC.
182
183 config CRYPTO_LRW
184 tristate "LRW support (EXPERIMENTAL)"
185 depends on EXPERIMENTAL
186 select CRYPTO_BLKCIPHER
187 select CRYPTO_MANAGER
188 select CRYPTO_GF128MUL
189 help
190 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
191 narrow block cipher mode for dm-crypt. Use it with cipher
192 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
193 The first 128, 192 or 256 bits in the key are used for AES and the
194 rest is used to tie each cipher block to its logical position.
195
196 config CRYPTO_XTS
197 tristate "XTS support (EXPERIMENTAL)"
198 depends on EXPERIMENTAL
199 select CRYPTO_BLKCIPHER
200 select CRYPTO_MANAGER
201 select CRYPTO_GF128MUL
202 help
203 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
204 key size 256, 384 or 512 bits. This implementation currently
205 can't handle a sectorsize which is not a multiple of 16 bytes.
206
207 config CRYPTO_CTR
208 tristate "CTR support"
209 select CRYPTO_BLKCIPHER
210 select CRYPTO_SEQIV
211 select CRYPTO_MANAGER
212 help
213 CTR: Counter mode
214 This block cipher algorithm is required for IPSec.
215
216 config CRYPTO_CTS
217 tristate "CTS support"
218 select CRYPTO_BLKCIPHER
219 help
220 CTS: Cipher Text Stealing
221 This is the Cipher Text Stealing mode as described by
222 Section 8 of rfc2040 and referenced by rfc3962.
223 (rfc3962 includes errata information in its Appendix A)
224 This mode is required for Kerberos gss mechanism support
225 for AES encryption.
226
227 config CRYPTO_GCM
228 tristate "GCM/GMAC support"
229 select CRYPTO_CTR
230 select CRYPTO_AEAD
231 select CRYPTO_GF128MUL
232 help
233 Support for Galois/Counter Mode (GCM) and Galois Message
234 Authentication Code (GMAC). Required for IPSec.
235
236 config CRYPTO_CCM
237 tristate "CCM support"
238 select CRYPTO_CTR
239 select CRYPTO_AEAD
240 help
241 Support for Counter with CBC MAC. Required for IPsec.
242
243 config CRYPTO_CRYPTD
244 tristate "Software async crypto daemon"
245 select CRYPTO_BLKCIPHER
246 select CRYPTO_MANAGER
247 help
248 This is a generic software asynchronous crypto daemon that
249 converts an arbitrary synchronous software crypto algorithm
250 into an asynchronous algorithm that executes in a kernel thread.
251
252 config CRYPTO_DES
253 tristate "DES and Triple DES EDE cipher algorithms"
254 select CRYPTO_ALGAPI
255 help
256 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
257
258 config CRYPTO_FCRYPT
259 tristate "FCrypt cipher algorithm"
260 select CRYPTO_ALGAPI
261 select CRYPTO_BLKCIPHER
262 help
263 FCrypt algorithm used by RxRPC.
264
265 config CRYPTO_BLOWFISH
266 tristate "Blowfish cipher algorithm"
267 select CRYPTO_ALGAPI
268 help
269 Blowfish cipher algorithm, by Bruce Schneier.
270
271 This is a variable key length cipher which can use keys from 32
272 bits to 448 bits in length. It's fast, simple and specifically
273 designed for use on "large microprocessors".
274
275 See also:
276 <http://www.schneier.com/blowfish.html>
277
278 config CRYPTO_TWOFISH
279 tristate "Twofish cipher algorithm"
280 select CRYPTO_ALGAPI
281 select CRYPTO_TWOFISH_COMMON
282 help
283 Twofish cipher algorithm.
284
285 Twofish was submitted as an AES (Advanced Encryption Standard)
286 candidate cipher by researchers at CounterPane Systems. It is a
287 16 round block cipher supporting key sizes of 128, 192, and 256
288 bits.
289
290 See also:
291 <http://www.schneier.com/twofish.html>
292
293 config CRYPTO_TWOFISH_COMMON
294 tristate
295 help
296 Common parts of the Twofish cipher algorithm shared by the
297 generic c and the assembler implementations.
298
299 config CRYPTO_TWOFISH_586
300 tristate "Twofish cipher algorithms (i586)"
301 depends on (X86 || UML_X86) && !64BIT
302 select CRYPTO_ALGAPI
303 select CRYPTO_TWOFISH_COMMON
304 help
305 Twofish cipher algorithm.
306
307 Twofish was submitted as an AES (Advanced Encryption Standard)
308 candidate cipher by researchers at CounterPane Systems. It is a
309 16 round block cipher supporting key sizes of 128, 192, and 256
310 bits.
311
312 See also:
313 <http://www.schneier.com/twofish.html>
314
315 config CRYPTO_TWOFISH_X86_64
316 tristate "Twofish cipher algorithm (x86_64)"
317 depends on (X86 || UML_X86) && 64BIT
318 select CRYPTO_ALGAPI
319 select CRYPTO_TWOFISH_COMMON
320 help
321 Twofish cipher algorithm (x86_64).
322
323 Twofish was submitted as an AES (Advanced Encryption Standard)
324 candidate cipher by researchers at CounterPane Systems. It is a
325 16 round block cipher supporting key sizes of 128, 192, and 256
326 bits.
327
328 See also:
329 <http://www.schneier.com/twofish.html>
330
331 config CRYPTO_SERPENT
332 tristate "Serpent cipher algorithm"
333 select CRYPTO_ALGAPI
334 help
335 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
336
337 Keys are allowed to be from 0 to 256 bits in length, in steps
338 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
339 variant of Serpent for compatibility with old kerneli.org code.
340
341 See also:
342 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
343
344 config CRYPTO_AES
345 tristate "AES cipher algorithms"
346 select CRYPTO_ALGAPI
347 help
348 AES cipher algorithms (FIPS-197). AES uses the Rijndael
349 algorithm.
350
351 Rijndael appears to be consistently a very good performer in
352 both hardware and software across a wide range of computing
353 environments regardless of its use in feedback or non-feedback
354 modes. Its key setup time is excellent, and its key agility is
355 good. Rijndael's very low memory requirements make it very well
356 suited for restricted-space environments, in which it also
357 demonstrates excellent performance. Rijndael's operations are
358 among the easiest to defend against power and timing attacks.
359
360 The AES specifies three key sizes: 128, 192 and 256 bits
361
362 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
363
364 config CRYPTO_AES_586
365 tristate "AES cipher algorithms (i586)"
366 depends on (X86 || UML_X86) && !64BIT
367 select CRYPTO_ALGAPI
368 select CRYPTO_AES
369 help
370 AES cipher algorithms (FIPS-197). AES uses the Rijndael
371 algorithm.
372
373 Rijndael appears to be consistently a very good performer in
374 both hardware and software across a wide range of computing
375 environments regardless of its use in feedback or non-feedback
376 modes. Its key setup time is excellent, and its key agility is
377 good. Rijndael's very low memory requirements make it very well
378 suited for restricted-space environments, in which it also
379 demonstrates excellent performance. Rijndael's operations are
380 among the easiest to defend against power and timing attacks.
381
382 The AES specifies three key sizes: 128, 192 and 256 bits
383
384 See <http://csrc.nist.gov/encryption/aes/> for more information.
385
386 config CRYPTO_AES_X86_64
387 tristate "AES cipher algorithms (x86_64)"
388 depends on (X86 || UML_X86) && 64BIT
389 select CRYPTO_ALGAPI
390 select CRYPTO_AES
391 help
392 AES cipher algorithms (FIPS-197). AES uses the Rijndael
393 algorithm.
394
395 Rijndael appears to be consistently a very good performer in
396 both hardware and software across a wide range of computing
397 environments regardless of its use in feedback or non-feedback
398 modes. Its key setup time is excellent, and its key agility is
399 good. Rijndael's very low memory requirements make it very well
400 suited for restricted-space environments, in which it also
401 demonstrates excellent performance. Rijndael's operations are
402 among the easiest to defend against power and timing attacks.
403
404 The AES specifies three key sizes: 128, 192 and 256 bits
405
406 See <http://csrc.nist.gov/encryption/aes/> for more information.
407
408 config CRYPTO_CAST5
409 tristate "CAST5 (CAST-128) cipher algorithm"
410 select CRYPTO_ALGAPI
411 help
412 The CAST5 encryption algorithm (synonymous with CAST-128) is
413 described in RFC2144.
414
415 config CRYPTO_CAST6
416 tristate "CAST6 (CAST-256) cipher algorithm"
417 select CRYPTO_ALGAPI
418 help
419 The CAST6 encryption algorithm (synonymous with CAST-256) is
420 described in RFC2612.
421
422 config CRYPTO_TEA
423 tristate "TEA, XTEA and XETA cipher algorithms"
424 select CRYPTO_ALGAPI
425 help
426 TEA cipher algorithm.
427
428 Tiny Encryption Algorithm is a simple cipher that uses
429 many rounds for security. It is very fast and uses
430 little memory.
431
432 Xtendend Tiny Encryption Algorithm is a modification to
433 the TEA algorithm to address a potential key weakness
434 in the TEA algorithm.
435
436 Xtendend Encryption Tiny Algorithm is a mis-implementation
437 of the XTEA algorithm for compatibility purposes.
438
439 config CRYPTO_ARC4
440 tristate "ARC4 cipher algorithm"
441 select CRYPTO_ALGAPI
442 help
443 ARC4 cipher algorithm.
444
445 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
446 bits in length. This algorithm is required for driver-based
447 WEP, but it should not be for other purposes because of the
448 weakness of the algorithm.
449
450 config CRYPTO_KHAZAD
451 tristate "Khazad cipher algorithm"
452 select CRYPTO_ALGAPI
453 help
454 Khazad cipher algorithm.
455
456 Khazad was a finalist in the initial NESSIE competition. It is
457 an algorithm optimized for 64-bit processors with good performance
458 on 32-bit processors. Khazad uses an 128 bit key size.
459
460 See also:
461 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
462
463 config CRYPTO_ANUBIS
464 tristate "Anubis cipher algorithm"
465 select CRYPTO_ALGAPI
466 help
467 Anubis cipher algorithm.
468
469 Anubis is a variable key length cipher which can use keys from
470 128 bits to 320 bits in length. It was evaluated as a entrant
471 in the NESSIE competition.
472
473 See also:
474 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
475 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
476
477 config CRYPTO_SEED
478 tristate "SEED cipher algorithm"
479 select CRYPTO_ALGAPI
480 help
481 SEED cipher algorithm (RFC4269).
482
483 SEED is a 128-bit symmetric key block cipher that has been
484 developed by KISA (Korea Information Security Agency) as a
485 national standard encryption algorithm of the Republic of Korea.
486 It is a 16 round block cipher with the key size of 128 bit.
487
488 See also:
489 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
490
491 config CRYPTO_SALSA20
492 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
493 depends on EXPERIMENTAL
494 select CRYPTO_BLKCIPHER
495 help
496 Salsa20 stream cipher algorithm.
497
498 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
499 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
500
501 The Salsa20 stream cipher algorithm is designed by Daniel J.
502 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
503
504 config CRYPTO_SALSA20_586
505 tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
506 depends on (X86 || UML_X86) && !64BIT
507 depends on EXPERIMENTAL
508 select CRYPTO_BLKCIPHER
509 help
510 Salsa20 stream cipher algorithm.
511
512 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
513 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
514
515 The Salsa20 stream cipher algorithm is designed by Daniel J.
516 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
517
518 config CRYPTO_SALSA20_X86_64
519 tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
520 depends on (X86 || UML_X86) && 64BIT
521 depends on EXPERIMENTAL
522 select CRYPTO_BLKCIPHER
523 help
524 Salsa20 stream cipher algorithm.
525
526 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
527 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
528
529 The Salsa20 stream cipher algorithm is designed by Daniel J.
530 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
531
532 config CRYPTO_DEFLATE
533 tristate "Deflate compression algorithm"
534 select CRYPTO_ALGAPI
535 select ZLIB_INFLATE
536 select ZLIB_DEFLATE
537 help
538 This is the Deflate algorithm (RFC1951), specified for use in
539 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
540
541 You will most probably want this if using IPSec.
542
543 config CRYPTO_MICHAEL_MIC
544 tristate "Michael MIC keyed digest algorithm"
545 select CRYPTO_ALGAPI
546 help
547 Michael MIC is used for message integrity protection in TKIP
548 (IEEE 802.11i). This algorithm is required for TKIP, but it
549 should not be used for other purposes because of the weakness
550 of the algorithm.
551
552 config CRYPTO_CRC32C
553 tristate "CRC32c CRC algorithm"
554 select CRYPTO_ALGAPI
555 select LIBCRC32C
556 help
557 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
558 by iSCSI for header and data digests and by others.
559 See Castagnoli93. This implementation uses lib/libcrc32c.
560 Module will be crc32c.
561
562 config CRYPTO_CAMELLIA
563 tristate "Camellia cipher algorithms"
564 depends on CRYPTO
565 select CRYPTO_ALGAPI
566 help
567 Camellia cipher algorithms module.
568
569 Camellia is a symmetric key block cipher developed jointly
570 at NTT and Mitsubishi Electric Corporation.
571
572 The Camellia specifies three key sizes: 128, 192 and 256 bits.
573
574 See also:
575 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
576
577 config CRYPTO_TEST
578 tristate "Testing module"
579 depends on m
580 select CRYPTO_ALGAPI
581 select CRYPTO_AEAD
582 select CRYPTO_BLKCIPHER
583 help
584 Quick & dirty crypto test module.
585
586 config CRYPTO_AUTHENC
587 tristate "Authenc support"
588 select CRYPTO_AEAD
589 select CRYPTO_BLKCIPHER
590 select CRYPTO_MANAGER
591 select CRYPTO_HASH
592 help
593 Authenc: Combined mode wrapper for IPsec.
594 This is required for IPSec.
595
596 config CRYPTO_LZO
597 tristate "LZO compression algorithm"
598 select CRYPTO_ALGAPI
599 select LZO_COMPRESS
600 select LZO_DECOMPRESS
601 help
602 This is the LZO algorithm.
603
604 source "drivers/crypto/Kconfig"
605
606 endif # if CRYPTO
This page took 0.043347 seconds and 6 git commands to generate.