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