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