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