crypto: fips - Select CPRNG
[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_MD4
294         tristate "MD4 digest algorithm"
295         select CRYPTO_HASH
296         help
297           MD4 message digest algorithm (RFC1320).
298
299 config CRYPTO_MD5
300         tristate "MD5 digest algorithm"
301         select CRYPTO_HASH
302         help
303           MD5 message digest algorithm (RFC1321).
304
305 config CRYPTO_MICHAEL_MIC
306         tristate "Michael MIC keyed digest algorithm"
307         select CRYPTO_HASH
308         help
309           Michael MIC is used for message integrity protection in TKIP
310           (IEEE 802.11i). This algorithm is required for TKIP, but it
311           should not be used for other purposes because of the weakness
312           of the algorithm.
313
314 config CRYPTO_RMD128
315         tristate "RIPEMD-128 digest algorithm"
316         select CRYPTO_HASH
317         help
318           RIPEMD-128 (ISO/IEC 10118-3:2004).
319
320           RIPEMD-128 is a 128-bit cryptographic hash function. It should only
321           to be used as a secure replacement for RIPEMD. For other use cases
322           RIPEMD-160 should be used.
323
324           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
325           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
326
327 config CRYPTO_RMD160
328         tristate "RIPEMD-160 digest algorithm"
329         select CRYPTO_HASH
330         help
331           RIPEMD-160 (ISO/IEC 10118-3:2004).
332
333           RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
334           to be used as a secure replacement for the 128-bit hash functions
335           MD4, MD5 and it's predecessor RIPEMD
336           (not to be confused with RIPEMD-128).
337
338           It's speed is comparable to SHA1 and there are no known attacks
339           against RIPEMD-160.
340
341           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
342           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
343
344 config CRYPTO_RMD256
345         tristate "RIPEMD-256 digest algorithm"
346         select CRYPTO_HASH
347         help
348           RIPEMD-256 is an optional extension of RIPEMD-128 with a
349           256 bit hash. It is intended for applications that require
350           longer hash-results, without needing a larger security level
351           (than RIPEMD-128).
352
353           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
354           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
355
356 config CRYPTO_RMD320
357         tristate "RIPEMD-320 digest algorithm"
358         select CRYPTO_HASH
359         help
360           RIPEMD-320 is an optional extension of RIPEMD-160 with a
361           320 bit hash. It is intended for applications that require
362           longer hash-results, without needing a larger security level
363           (than RIPEMD-160).
364
365           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
366           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
367
368 config CRYPTO_SHA1
369         tristate "SHA1 digest algorithm"
370         select CRYPTO_HASH
371         help
372           SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
373
374 config CRYPTO_SHA256
375         tristate "SHA224 and SHA256 digest algorithm"
376         select CRYPTO_HASH
377         help
378           SHA256 secure hash standard (DFIPS 180-2).
379
380           This version of SHA implements a 256 bit hash with 128 bits of
381           security against collision attacks.
382
383           This code also includes SHA-224, a 224 bit hash with 112 bits
384           of security against collision attacks.
385
386 config CRYPTO_SHA512
387         tristate "SHA384 and SHA512 digest algorithms"
388         select CRYPTO_HASH
389         help
390           SHA512 secure hash standard (DFIPS 180-2).
391
392           This version of SHA implements a 512 bit hash with 256 bits of
393           security against collision attacks.
394
395           This code also includes SHA-384, a 384 bit hash with 192 bits
396           of security against collision attacks.
397
398 config CRYPTO_TGR192
399         tristate "Tiger digest algorithms"
400         select CRYPTO_HASH
401         help
402           Tiger hash algorithm 192, 160 and 128-bit hashes
403
404           Tiger is a hash function optimized for 64-bit processors while
405           still having decent performance on 32-bit processors.
406           Tiger was developed by Ross Anderson and Eli Biham.
407
408           See also:
409           <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
410
411 config CRYPTO_WP512
412         tristate "Whirlpool digest algorithms"
413         select CRYPTO_HASH
414         help
415           Whirlpool hash algorithm 512, 384 and 256-bit hashes
416
417           Whirlpool-512 is part of the NESSIE cryptographic primitives.
418           Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
419
420           See also:
421           <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
422
423 comment "Ciphers"
424
425 config CRYPTO_AES
426         tristate "AES cipher algorithms"
427         select CRYPTO_ALGAPI
428         help
429           AES cipher algorithms (FIPS-197). AES uses the Rijndael
430           algorithm.
431
432           Rijndael appears to be consistently a very good performer in
433           both hardware and software across a wide range of computing
434           environments regardless of its use in feedback or non-feedback
435           modes. Its key setup time is excellent, and its key agility is
436           good. Rijndael's very low memory requirements make it very well
437           suited for restricted-space environments, in which it also
438           demonstrates excellent performance. Rijndael's operations are
439           among the easiest to defend against power and timing attacks.
440
441           The AES specifies three key sizes: 128, 192 and 256 bits
442
443           See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
444
445 config CRYPTO_AES_586
446         tristate "AES cipher algorithms (i586)"
447         depends on (X86 || UML_X86) && !64BIT
448         select CRYPTO_ALGAPI
449         select CRYPTO_AES
450         help
451           AES cipher algorithms (FIPS-197). AES uses the Rijndael
452           algorithm.
453
454           Rijndael appears to be consistently a very good performer in
455           both hardware and software across a wide range of computing
456           environments regardless of its use in feedback or non-feedback
457           modes. Its key setup time is excellent, and its key agility is
458           good. Rijndael's very low memory requirements make it very well
459           suited for restricted-space environments, in which it also
460           demonstrates excellent performance. Rijndael's operations are
461           among the easiest to defend against power and timing attacks.
462
463           The AES specifies three key sizes: 128, 192 and 256 bits
464
465           See <http://csrc.nist.gov/encryption/aes/> for more information.
466
467 config CRYPTO_AES_X86_64
468         tristate "AES cipher algorithms (x86_64)"
469         depends on (X86 || UML_X86) && 64BIT
470         select CRYPTO_ALGAPI
471         select CRYPTO_AES
472         help
473           AES cipher algorithms (FIPS-197). AES uses the Rijndael
474           algorithm.
475
476           Rijndael appears to be consistently a very good performer in
477           both hardware and software across a wide range of computing
478           environments regardless of its use in feedback or non-feedback
479           modes. Its key setup time is excellent, and its key agility is
480           good. Rijndael's very low memory requirements make it very well
481           suited for restricted-space environments, in which it also
482           demonstrates excellent performance. Rijndael's operations are
483           among the easiest to defend against power and timing attacks.
484
485           The AES specifies three key sizes: 128, 192 and 256 bits
486
487           See <http://csrc.nist.gov/encryption/aes/> for more information.
488
489 config CRYPTO_AES_NI_INTEL
490         tristate "AES cipher algorithms (AES-NI)"
491         depends on (X86 || UML_X86) && 64BIT
492         select CRYPTO_AES_X86_64
493         select CRYPTO_CRYPTD
494         select CRYPTO_ALGAPI
495         select CRYPTO_FPU
496         help
497           Use Intel AES-NI instructions for AES algorithm.
498
499           AES cipher algorithms (FIPS-197). AES uses the Rijndael
500           algorithm.
501
502           Rijndael appears to be consistently a very good performer in
503           both hardware and software across a wide range of computing
504           environments regardless of its use in feedback or non-feedback
505           modes. Its key setup time is excellent, and its key agility is
506           good. Rijndael's very low memory requirements make it very well
507           suited for restricted-space environments, in which it also
508           demonstrates excellent performance. Rijndael's operations are
509           among the easiest to defend against power and timing attacks.
510
511           The AES specifies three key sizes: 128, 192 and 256 bits
512
513           See <http://csrc.nist.gov/encryption/aes/> for more information.
514
515           In addition to AES cipher algorithm support, the
516           acceleration for some popular block cipher mode is supported
517           too, including ECB, CBC, CTR, LRW, PCBC, XTS.
518
519 config CRYPTO_ANUBIS
520         tristate "Anubis cipher algorithm"
521         select CRYPTO_ALGAPI
522         help
523           Anubis cipher algorithm.
524
525           Anubis is a variable key length cipher which can use keys from
526           128 bits to 320 bits in length.  It was evaluated as a entrant
527           in the NESSIE competition.
528
529           See also:
530           <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
531           <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
532
533 config CRYPTO_ARC4
534         tristate "ARC4 cipher algorithm"
535         select CRYPTO_ALGAPI
536         help
537           ARC4 cipher algorithm.
538
539           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
540           bits in length.  This algorithm is required for driver-based
541           WEP, but it should not be for other purposes because of the
542           weakness of the algorithm.
543
544 config CRYPTO_BLOWFISH
545         tristate "Blowfish cipher algorithm"
546         select CRYPTO_ALGAPI
547         help
548           Blowfish cipher algorithm, by Bruce Schneier.
549
550           This is a variable key length cipher which can use keys from 32
551           bits to 448 bits in length.  It's fast, simple and specifically
552           designed for use on "large microprocessors".
553
554           See also:
555           <http://www.schneier.com/blowfish.html>
556
557 config CRYPTO_CAMELLIA
558         tristate "Camellia cipher algorithms"
559         depends on CRYPTO
560         select CRYPTO_ALGAPI
561         help
562           Camellia cipher algorithms module.
563
564           Camellia is a symmetric key block cipher developed jointly
565           at NTT and Mitsubishi Electric Corporation.
566
567           The Camellia specifies three key sizes: 128, 192 and 256 bits.
568
569           See also:
570           <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
571
572 config CRYPTO_CAST5
573         tristate "CAST5 (CAST-128) cipher algorithm"
574         select CRYPTO_ALGAPI
575         help
576           The CAST5 encryption algorithm (synonymous with CAST-128) is
577           described in RFC2144.
578
579 config CRYPTO_CAST6
580         tristate "CAST6 (CAST-256) cipher algorithm"
581         select CRYPTO_ALGAPI
582         help
583           The CAST6 encryption algorithm (synonymous with CAST-256) is
584           described in RFC2612.
585
586 config CRYPTO_DES
587         tristate "DES and Triple DES EDE cipher algorithms"
588         select CRYPTO_ALGAPI
589         help
590           DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
591
592 config CRYPTO_FCRYPT
593         tristate "FCrypt cipher algorithm"
594         select CRYPTO_ALGAPI
595         select CRYPTO_BLKCIPHER
596         help
597           FCrypt algorithm used by RxRPC.
598
599 config CRYPTO_KHAZAD
600         tristate "Khazad cipher algorithm"
601         select CRYPTO_ALGAPI
602         help
603           Khazad cipher algorithm.
604
605           Khazad was a finalist in the initial NESSIE competition.  It is
606           an algorithm optimized for 64-bit processors with good performance
607           on 32-bit processors.  Khazad uses an 128 bit key size.
608
609           See also:
610           <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
611
612 config CRYPTO_SALSA20
613         tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
614         depends on EXPERIMENTAL
615         select CRYPTO_BLKCIPHER
616         help
617           Salsa20 stream cipher algorithm.
618
619           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
620           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
621
622           The Salsa20 stream cipher algorithm is designed by Daniel J.
623           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
624
625 config CRYPTO_SALSA20_586
626         tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
627         depends on (X86 || UML_X86) && !64BIT
628         depends on EXPERIMENTAL
629         select CRYPTO_BLKCIPHER
630         help
631           Salsa20 stream cipher algorithm.
632
633           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
634           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
635
636           The Salsa20 stream cipher algorithm is designed by Daniel J.
637           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
638
639 config CRYPTO_SALSA20_X86_64
640         tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
641         depends on (X86 || UML_X86) && 64BIT
642         depends on EXPERIMENTAL
643         select CRYPTO_BLKCIPHER
644         help
645           Salsa20 stream cipher algorithm.
646
647           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
648           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
649
650           The Salsa20 stream cipher algorithm is designed by Daniel J.
651           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
652
653 config CRYPTO_SEED
654         tristate "SEED cipher algorithm"
655         select CRYPTO_ALGAPI
656         help
657           SEED cipher algorithm (RFC4269).
658
659           SEED is a 128-bit symmetric key block cipher that has been
660           developed by KISA (Korea Information Security Agency) as a
661           national standard encryption algorithm of the Republic of Korea.
662           It is a 16 round block cipher with the key size of 128 bit.
663
664           See also:
665           <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
666
667 config CRYPTO_SERPENT
668         tristate "Serpent cipher algorithm"
669         select CRYPTO_ALGAPI
670         help
671           Serpent cipher algorithm, by Anderson, Biham & Knudsen.
672
673           Keys are allowed to be from 0 to 256 bits in length, in steps
674           of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
675           variant of Serpent for compatibility with old kerneli.org code.
676
677           See also:
678           <http://www.cl.cam.ac.uk/~rja14/serpent.html>
679
680 config CRYPTO_TEA
681         tristate "TEA, XTEA and XETA cipher algorithms"
682         select CRYPTO_ALGAPI
683         help
684           TEA cipher algorithm.
685
686           Tiny Encryption Algorithm is a simple cipher that uses
687           many rounds for security.  It is very fast and uses
688           little memory.
689
690           Xtendend Tiny Encryption Algorithm is a modification to
691           the TEA algorithm to address a potential key weakness
692           in the TEA algorithm.
693
694           Xtendend Encryption Tiny Algorithm is a mis-implementation
695           of the XTEA algorithm for compatibility purposes.
696
697 config CRYPTO_TWOFISH
698         tristate "Twofish cipher algorithm"
699         select CRYPTO_ALGAPI
700         select CRYPTO_TWOFISH_COMMON
701         help
702           Twofish cipher algorithm.
703
704           Twofish was submitted as an AES (Advanced Encryption Standard)
705           candidate cipher by researchers at CounterPane Systems.  It is a
706           16 round block cipher supporting key sizes of 128, 192, and 256
707           bits.
708
709           See also:
710           <http://www.schneier.com/twofish.html>
711
712 config CRYPTO_TWOFISH_COMMON
713         tristate
714         help
715           Common parts of the Twofish cipher algorithm shared by the
716           generic c and the assembler implementations.
717
718 config CRYPTO_TWOFISH_586
719         tristate "Twofish cipher algorithms (i586)"
720         depends on (X86 || UML_X86) && !64BIT
721         select CRYPTO_ALGAPI
722         select CRYPTO_TWOFISH_COMMON
723         help
724           Twofish cipher algorithm.
725
726           Twofish was submitted as an AES (Advanced Encryption Standard)
727           candidate cipher by researchers at CounterPane Systems.  It is a
728           16 round block cipher supporting key sizes of 128, 192, and 256
729           bits.
730
731           See also:
732           <http://www.schneier.com/twofish.html>
733
734 config CRYPTO_TWOFISH_X86_64
735         tristate "Twofish cipher algorithm (x86_64)"
736         depends on (X86 || UML_X86) && 64BIT
737         select CRYPTO_ALGAPI
738         select CRYPTO_TWOFISH_COMMON
739         help
740           Twofish cipher algorithm (x86_64).
741
742           Twofish was submitted as an AES (Advanced Encryption Standard)
743           candidate cipher by researchers at CounterPane Systems.  It is a
744           16 round block cipher supporting key sizes of 128, 192, and 256
745           bits.
746
747           See also:
748           <http://www.schneier.com/twofish.html>
749
750 comment "Compression"
751
752 config CRYPTO_DEFLATE
753         tristate "Deflate compression algorithm"
754         select CRYPTO_ALGAPI
755         select ZLIB_INFLATE
756         select ZLIB_DEFLATE
757         help
758           This is the Deflate algorithm (RFC1951), specified for use in
759           IPSec with the IPCOMP protocol (RFC3173, RFC2394).
760
761           You will most probably want this if using IPSec.
762
763 config CRYPTO_ZLIB
764         tristate "Zlib compression algorithm"
765         select CRYPTO_PCOMP
766         select ZLIB_INFLATE
767         select ZLIB_DEFLATE
768         select NLATTR
769         help
770           This is the zlib algorithm.
771
772 config CRYPTO_LZO
773         tristate "LZO compression algorithm"
774         select CRYPTO_ALGAPI
775         select LZO_COMPRESS
776         select LZO_DECOMPRESS
777         help
778           This is the LZO algorithm.
779
780 comment "Random Number Generation"
781
782 config CRYPTO_ANSI_CPRNG
783         tristate "Pseudo Random Number Generation for Cryptographic modules"
784         select CRYPTO_AES
785         select CRYPTO_RNG
786         help
787           This option enables the generic pseudo random number generator
788           for cryptographic modules.  Uses the Algorithm specified in
789           ANSI X9.31 A.2.4
790
791 source "drivers/crypto/Kconfig"
792
793 endif   # if CRYPTO