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