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