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