percpu: make accessors check for percpu pointer in sparse
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / crypto / Kconfig
blob26b5dd0cb564728403f1aa4ea82bd5576155d32a
2 # Generic algorithms support
4 config XOR_BLOCKS
5         tristate
8 # async_tx api: hardware offloaded memory transfer/transform support
10 source "crypto/async_tx/Kconfig"
13 # Cryptographic API Configuration
15 menuconfig CRYPTO
16         tristate "Cryptographic API"
17         help
18           This option provides the core Cryptographic API.
20 if CRYPTO
22 comment "Crypto core or helper"
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
34 config CRYPTO_ALGAPI
35         tristate
36         select CRYPTO_ALGAPI2
37         help
38           This option provides the API for cryptographic algorithms.
40 config CRYPTO_ALGAPI2
41         tristate
43 config CRYPTO_AEAD
44         tristate
45         select CRYPTO_AEAD2
46         select CRYPTO_ALGAPI
48 config CRYPTO_AEAD2
49         tristate
50         select CRYPTO_ALGAPI2
52 config CRYPTO_BLKCIPHER
53         tristate
54         select CRYPTO_BLKCIPHER2
55         select CRYPTO_ALGAPI
57 config CRYPTO_BLKCIPHER2
58         tristate
59         select CRYPTO_ALGAPI2
60         select CRYPTO_RNG2
61         select CRYPTO_WORKQUEUE
63 config CRYPTO_HASH
64         tristate
65         select CRYPTO_HASH2
66         select CRYPTO_ALGAPI
68 config CRYPTO_HASH2
69         tristate
70         select CRYPTO_ALGAPI2
72 config CRYPTO_RNG
73         tristate
74         select CRYPTO_RNG2
75         select CRYPTO_ALGAPI
77 config CRYPTO_RNG2
78         tristate
79         select CRYPTO_ALGAPI2
81 config CRYPTO_PCOMP
82         tristate
83         select CRYPTO_ALGAPI2
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).
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
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.
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.
117 config CRYPTO_WORKQUEUE
118        tristate
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.
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.
141 config CRYPTO_TEST
142         tristate "Testing module"
143         depends on m
144         select CRYPTO_MANAGER
145         help
146           Quick & dirty crypto test module.
148 comment "Authenticated Encryption with Associated Data"
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.
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.
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
175 comment "Block modes"
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.
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.
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.
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.
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.
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.
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.
246 config CRYPTO_FPU
247         tristate
248         select CRYPTO_BLKCIPHER
249         select CRYPTO_MANAGER
251 comment "Hash modes"
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.
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
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.
281           See also:
282           <http://fastcrypto.org/vmac>
284 comment "Digest"
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.
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.
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).
313 config CRYPTO_MD4
314         tristate "MD4 digest algorithm"
315         select CRYPTO_HASH
316         help
317           MD4 message digest algorithm (RFC1320).
319 config CRYPTO_MD5
320         tristate "MD5 digest algorithm"
321         select CRYPTO_HASH
322         help
323           MD5 message digest algorithm (RFC1321).
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.
334 config CRYPTO_RMD128
335         tristate "RIPEMD-128 digest algorithm"
336         select CRYPTO_HASH
337         help
338           RIPEMD-128 (ISO/IEC 10118-3:2004).
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.
344           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
345           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
347 config CRYPTO_RMD160
348         tristate "RIPEMD-160 digest algorithm"
349         select CRYPTO_HASH
350         help
351           RIPEMD-160 (ISO/IEC 10118-3:2004).
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).
358           It's speed is comparable to SHA1 and there are no known attacks
359           against RIPEMD-160.
361           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
362           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
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).
373           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
374           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
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).
385           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
386           See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
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).
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).
400           This version of SHA implements a 256 bit hash with 128 bits of
401           security against collision attacks.
403           This code also includes SHA-224, a 224 bit hash with 112 bits
404           of security against collision attacks.
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).
412           This version of SHA implements a 512 bit hash with 256 bits of
413           security against collision attacks.
415           This code also includes SHA-384, a 384 bit hash with 192 bits
416           of security against collision attacks.
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
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.
428           See also:
429           <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
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
437           Whirlpool-512 is part of the NESSIE cryptographic primitives.
438           Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
440           See also:
441           <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
443 comment "Ciphers"
445 config CRYPTO_AES
446         tristate "AES cipher algorithms"
447         select CRYPTO_ALGAPI
448         help
449           AES cipher algorithms (FIPS-197). AES uses the Rijndael
450           algorithm.
452           Rijndael appears to be consistently a very good performer in
453           both hardware and software across a wide range of computing
454           environments regardless of its use in feedback or non-feedback
455           modes. Its key setup time is excellent, and its key agility is
456           good. Rijndael's very low memory requirements make it very well
457           suited for restricted-space environments, in which it also
458           demonstrates excellent performance. Rijndael's operations are
459           among the easiest to defend against power and timing attacks.
461           The AES specifies three key sizes: 128, 192 and 256 bits
463           See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
465 config CRYPTO_AES_586
466         tristate "AES cipher algorithms (i586)"
467         depends on (X86 || UML_X86) && !64BIT
468         select CRYPTO_ALGAPI
469         select CRYPTO_AES
470         help
471           AES cipher algorithms (FIPS-197). AES uses the Rijndael
472           algorithm.
474           Rijndael appears to be consistently a very good performer in
475           both hardware and software across a wide range of computing
476           environments regardless of its use in feedback or non-feedback
477           modes. Its key setup time is excellent, and its key agility is
478           good. Rijndael's very low memory requirements make it very well
479           suited for restricted-space environments, in which it also
480           demonstrates excellent performance. Rijndael's operations are
481           among the easiest to defend against power and timing attacks.
483           The AES specifies three key sizes: 128, 192 and 256 bits
485           See <http://csrc.nist.gov/encryption/aes/> for more information.
487 config CRYPTO_AES_X86_64
488         tristate "AES cipher algorithms (x86_64)"
489         depends on (X86 || UML_X86) && 64BIT
490         select CRYPTO_ALGAPI
491         select CRYPTO_AES
492         help
493           AES cipher algorithms (FIPS-197). AES uses the Rijndael
494           algorithm.
496           Rijndael appears to be consistently a very good performer in
497           both hardware and software across a wide range of computing
498           environments regardless of its use in feedback or non-feedback
499           modes. Its key setup time is excellent, and its key agility is
500           good. Rijndael's very low memory requirements make it very well
501           suited for restricted-space environments, in which it also
502           demonstrates excellent performance. Rijndael's operations are
503           among the easiest to defend against power and timing attacks.
505           The AES specifies three key sizes: 128, 192 and 256 bits
507           See <http://csrc.nist.gov/encryption/aes/> for more information.
509 config CRYPTO_AES_NI_INTEL
510         tristate "AES cipher algorithms (AES-NI)"
511         depends on (X86 || UML_X86) && 64BIT
512         select CRYPTO_AES_X86_64
513         select CRYPTO_CRYPTD
514         select CRYPTO_ALGAPI
515         select CRYPTO_FPU
516         help
517           Use Intel AES-NI instructions for AES algorithm.
519           AES cipher algorithms (FIPS-197). AES uses the Rijndael
520           algorithm.
522           Rijndael appears to be consistently a very good performer in
523           both hardware and software across a wide range of computing
524           environments regardless of its use in feedback or non-feedback
525           modes. Its key setup time is excellent, and its key agility is
526           good. Rijndael's very low memory requirements make it very well
527           suited for restricted-space environments, in which it also
528           demonstrates excellent performance. Rijndael's operations are
529           among the easiest to defend against power and timing attacks.
531           The AES specifies three key sizes: 128, 192 and 256 bits
533           See <http://csrc.nist.gov/encryption/aes/> for more information.
535           In addition to AES cipher algorithm support, the
536           acceleration for some popular block cipher mode is supported
537           too, including ECB, CBC, CTR, LRW, PCBC, XTS.
539 config CRYPTO_ANUBIS
540         tristate "Anubis cipher algorithm"
541         select CRYPTO_ALGAPI
542         help
543           Anubis cipher algorithm.
545           Anubis is a variable key length cipher which can use keys from
546           128 bits to 320 bits in length.  It was evaluated as a entrant
547           in the NESSIE competition.
549           See also:
550           <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
551           <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
553 config CRYPTO_ARC4
554         tristate "ARC4 cipher algorithm"
555         select CRYPTO_ALGAPI
556         help
557           ARC4 cipher algorithm.
559           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
560           bits in length.  This algorithm is required for driver-based
561           WEP, but it should not be for other purposes because of the
562           weakness of the algorithm.
564 config CRYPTO_BLOWFISH
565         tristate "Blowfish cipher algorithm"
566         select CRYPTO_ALGAPI
567         help
568           Blowfish cipher algorithm, by Bruce Schneier.
570           This is a variable key length cipher which can use keys from 32
571           bits to 448 bits in length.  It's fast, simple and specifically
572           designed for use on "large microprocessors".
574           See also:
575           <http://www.schneier.com/blowfish.html>
577 config CRYPTO_CAMELLIA
578         tristate "Camellia cipher algorithms"
579         depends on CRYPTO
580         select CRYPTO_ALGAPI
581         help
582           Camellia cipher algorithms module.
584           Camellia is a symmetric key block cipher developed jointly
585           at NTT and Mitsubishi Electric Corporation.
587           The Camellia specifies three key sizes: 128, 192 and 256 bits.
589           See also:
590           <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
592 config CRYPTO_CAST5
593         tristate "CAST5 (CAST-128) cipher algorithm"
594         select CRYPTO_ALGAPI
595         help
596           The CAST5 encryption algorithm (synonymous with CAST-128) is
597           described in RFC2144.
599 config CRYPTO_CAST6
600         tristate "CAST6 (CAST-256) cipher algorithm"
601         select CRYPTO_ALGAPI
602         help
603           The CAST6 encryption algorithm (synonymous with CAST-256) is
604           described in RFC2612.
606 config CRYPTO_DES
607         tristate "DES and Triple DES EDE cipher algorithms"
608         select CRYPTO_ALGAPI
609         help
610           DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
612 config CRYPTO_FCRYPT
613         tristate "FCrypt cipher algorithm"
614         select CRYPTO_ALGAPI
615         select CRYPTO_BLKCIPHER
616         help
617           FCrypt algorithm used by RxRPC.
619 config CRYPTO_KHAZAD
620         tristate "Khazad cipher algorithm"
621         select CRYPTO_ALGAPI
622         help
623           Khazad cipher algorithm.
625           Khazad was a finalist in the initial NESSIE competition.  It is
626           an algorithm optimized for 64-bit processors with good performance
627           on 32-bit processors.  Khazad uses an 128 bit key size.
629           See also:
630           <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
632 config CRYPTO_SALSA20
633         tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
634         depends on EXPERIMENTAL
635         select CRYPTO_BLKCIPHER
636         help
637           Salsa20 stream cipher algorithm.
639           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
640           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
642           The Salsa20 stream cipher algorithm is designed by Daniel J.
643           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
645 config CRYPTO_SALSA20_586
646         tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
647         depends on (X86 || UML_X86) && !64BIT
648         depends on EXPERIMENTAL
649         select CRYPTO_BLKCIPHER
650         help
651           Salsa20 stream cipher algorithm.
653           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
654           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
656           The Salsa20 stream cipher algorithm is designed by Daniel J.
657           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
659 config CRYPTO_SALSA20_X86_64
660         tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
661         depends on (X86 || UML_X86) && 64BIT
662         depends on EXPERIMENTAL
663         select CRYPTO_BLKCIPHER
664         help
665           Salsa20 stream cipher algorithm.
667           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
668           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
670           The Salsa20 stream cipher algorithm is designed by Daniel J.
671           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
673 config CRYPTO_SEED
674         tristate "SEED cipher algorithm"
675         select CRYPTO_ALGAPI
676         help
677           SEED cipher algorithm (RFC4269).
679           SEED is a 128-bit symmetric key block cipher that has been
680           developed by KISA (Korea Information Security Agency) as a
681           national standard encryption algorithm of the Republic of Korea.
682           It is a 16 round block cipher with the key size of 128 bit.
684           See also:
685           <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
687 config CRYPTO_SERPENT
688         tristate "Serpent cipher algorithm"
689         select CRYPTO_ALGAPI
690         help
691           Serpent cipher algorithm, by Anderson, Biham & Knudsen.
693           Keys are allowed to be from 0 to 256 bits in length, in steps
694           of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
695           variant of Serpent for compatibility with old kerneli.org code.
697           See also:
698           <http://www.cl.cam.ac.uk/~rja14/serpent.html>
700 config CRYPTO_TEA
701         tristate "TEA, XTEA and XETA cipher algorithms"
702         select CRYPTO_ALGAPI
703         help
704           TEA cipher algorithm.
706           Tiny Encryption Algorithm is a simple cipher that uses
707           many rounds for security.  It is very fast and uses
708           little memory.
710           Xtendend Tiny Encryption Algorithm is a modification to
711           the TEA algorithm to address a potential key weakness
712           in the TEA algorithm.
714           Xtendend Encryption Tiny Algorithm is a mis-implementation
715           of the XTEA algorithm for compatibility purposes.
717 config CRYPTO_TWOFISH
718         tristate "Twofish cipher algorithm"
719         select CRYPTO_ALGAPI
720         select CRYPTO_TWOFISH_COMMON
721         help
722           Twofish cipher algorithm.
724           Twofish was submitted as an AES (Advanced Encryption Standard)
725           candidate cipher by researchers at CounterPane Systems.  It is a
726           16 round block cipher supporting key sizes of 128, 192, and 256
727           bits.
729           See also:
730           <http://www.schneier.com/twofish.html>
732 config CRYPTO_TWOFISH_COMMON
733         tristate
734         help
735           Common parts of the Twofish cipher algorithm shared by the
736           generic c and the assembler implementations.
738 config CRYPTO_TWOFISH_586
739         tristate "Twofish cipher algorithms (i586)"
740         depends on (X86 || UML_X86) && !64BIT
741         select CRYPTO_ALGAPI
742         select CRYPTO_TWOFISH_COMMON
743         help
744           Twofish cipher algorithm.
746           Twofish was submitted as an AES (Advanced Encryption Standard)
747           candidate cipher by researchers at CounterPane Systems.  It is a
748           16 round block cipher supporting key sizes of 128, 192, and 256
749           bits.
751           See also:
752           <http://www.schneier.com/twofish.html>
754 config CRYPTO_TWOFISH_X86_64
755         tristate "Twofish cipher algorithm (x86_64)"
756         depends on (X86 || UML_X86) && 64BIT
757         select CRYPTO_ALGAPI
758         select CRYPTO_TWOFISH_COMMON
759         help
760           Twofish cipher algorithm (x86_64).
762           Twofish was submitted as an AES (Advanced Encryption Standard)
763           candidate cipher by researchers at CounterPane Systems.  It is a
764           16 round block cipher supporting key sizes of 128, 192, and 256
765           bits.
767           See also:
768           <http://www.schneier.com/twofish.html>
770 comment "Compression"
772 config CRYPTO_DEFLATE
773         tristate "Deflate compression algorithm"
774         select CRYPTO_ALGAPI
775         select ZLIB_INFLATE
776         select ZLIB_DEFLATE
777         help
778           This is the Deflate algorithm (RFC1951), specified for use in
779           IPSec with the IPCOMP protocol (RFC3173, RFC2394).
781           You will most probably want this if using IPSec.
783 config CRYPTO_ZLIB
784         tristate "Zlib compression algorithm"
785         select CRYPTO_PCOMP
786         select ZLIB_INFLATE
787         select ZLIB_DEFLATE
788         select NLATTR
789         help
790           This is the zlib algorithm.
792 config CRYPTO_LZO
793         tristate "LZO compression algorithm"
794         select CRYPTO_ALGAPI
795         select LZO_COMPRESS
796         select LZO_DECOMPRESS
797         help
798           This is the LZO algorithm.
800 comment "Random Number Generation"
802 config CRYPTO_ANSI_CPRNG
803         tristate "Pseudo Random Number Generation for Cryptographic modules"
804         default m
805         select CRYPTO_AES
806         select CRYPTO_RNG
807         help
808           This option enables the generic pseudo random number generator
809           for cryptographic modules.  Uses the Algorithm specified in
810           ANSI X9.31 A.2.4. Not this option must be enabled if CRYPTO_FIPS 
811           is selected
813 source "drivers/crypto/Kconfig"
815 endif   # if CRYPTO