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