crypto: af_alg - User-space interface for Crypto API
[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) && 64BIT
543         select CRYPTO_AES_X86_64
544         select CRYPTO_CRYPTD
545         select CRYPTO_ALGAPI
546         select CRYPTO_FPU
547         help
548           Use Intel AES-NI instructions for AES algorithm.
549
550           AES cipher algorithms (FIPS-197). AES uses the Rijndael
551           algorithm.
552
553           Rijndael appears to be consistently a very good performer in
554           both hardware and software across a wide range of computing
555           environments regardless of its use in feedback or non-feedback
556           modes. Its key setup time is excellent, and its key agility is
557           good. Rijndael's very low memory requirements make it very well
558           suited for restricted-space environments, in which it also
559           demonstrates excellent performance. Rijndael's operations are
560           among the easiest to defend against power and timing attacks.
561
562           The AES specifies three key sizes: 128, 192 and 256 bits
563
564           See <http://csrc.nist.gov/encryption/aes/> for more information.
565
566           In addition to AES cipher algorithm support, the
567           acceleration for some popular block cipher mode is supported
568           too, including ECB, CBC, CTR, LRW, PCBC, XTS.
569
570 config CRYPTO_ANUBIS
571         tristate "Anubis cipher algorithm"
572         select CRYPTO_ALGAPI
573         help
574           Anubis cipher algorithm.
575
576           Anubis is a variable key length cipher which can use keys from
577           128 bits to 320 bits in length.  It was evaluated as a entrant
578           in the NESSIE competition.
579
580           See also:
581           <https://www.cosic.esat.kuleuven.be/nessie/reports/>
582           <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
583
584 config CRYPTO_ARC4
585         tristate "ARC4 cipher algorithm"
586         select CRYPTO_ALGAPI
587         help
588           ARC4 cipher algorithm.
589
590           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
591           bits in length.  This algorithm is required for driver-based
592           WEP, but it should not be for other purposes because of the
593           weakness of the algorithm.
594
595 config CRYPTO_BLOWFISH
596         tristate "Blowfish cipher algorithm"
597         select CRYPTO_ALGAPI
598         help
599           Blowfish cipher algorithm, by Bruce Schneier.
600
601           This is a variable key length cipher which can use keys from 32
602           bits to 448 bits in length.  It's fast, simple and specifically
603           designed for use on "large microprocessors".
604
605           See also:
606           <http://www.schneier.com/blowfish.html>
607
608 config CRYPTO_CAMELLIA
609         tristate "Camellia cipher algorithms"
610         depends on CRYPTO
611         select CRYPTO_ALGAPI
612         help
613           Camellia cipher algorithms module.
614
615           Camellia is a symmetric key block cipher developed jointly
616           at NTT and Mitsubishi Electric Corporation.
617
618           The Camellia specifies three key sizes: 128, 192 and 256 bits.
619
620           See also:
621           <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
622
623 config CRYPTO_CAST5
624         tristate "CAST5 (CAST-128) cipher algorithm"
625         select CRYPTO_ALGAPI
626         help
627           The CAST5 encryption algorithm (synonymous with CAST-128) is
628           described in RFC2144.
629
630 config CRYPTO_CAST6
631         tristate "CAST6 (CAST-256) cipher algorithm"
632         select CRYPTO_ALGAPI
633         help
634           The CAST6 encryption algorithm (synonymous with CAST-256) is
635           described in RFC2612.
636
637 config CRYPTO_DES
638         tristate "DES and Triple DES EDE cipher algorithms"
639         select CRYPTO_ALGAPI
640         help
641           DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
642
643 config CRYPTO_FCRYPT
644         tristate "FCrypt cipher algorithm"
645         select CRYPTO_ALGAPI
646         select CRYPTO_BLKCIPHER
647         help
648           FCrypt algorithm used by RxRPC.
649
650 config CRYPTO_KHAZAD
651         tristate "Khazad cipher algorithm"
652         select CRYPTO_ALGAPI
653         help
654           Khazad cipher algorithm.
655
656           Khazad was a finalist in the initial NESSIE competition.  It is
657           an algorithm optimized for 64-bit processors with good performance
658           on 32-bit processors.  Khazad uses an 128 bit key size.
659
660           See also:
661           <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
662
663 config CRYPTO_SALSA20
664         tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
665         depends on EXPERIMENTAL
666         select CRYPTO_BLKCIPHER
667         help
668           Salsa20 stream cipher algorithm.
669
670           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
671           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
672
673           The Salsa20 stream cipher algorithm is designed by Daniel J.
674           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
675
676 config CRYPTO_SALSA20_586
677         tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
678         depends on (X86 || UML_X86) && !64BIT
679         depends on EXPERIMENTAL
680         select CRYPTO_BLKCIPHER
681         help
682           Salsa20 stream cipher algorithm.
683
684           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
685           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
686
687           The Salsa20 stream cipher algorithm is designed by Daniel J.
688           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
689
690 config CRYPTO_SALSA20_X86_64
691         tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
692         depends on (X86 || UML_X86) && 64BIT
693         depends on EXPERIMENTAL
694         select CRYPTO_BLKCIPHER
695         help
696           Salsa20 stream cipher algorithm.
697
698           Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
699           Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
700
701           The Salsa20 stream cipher algorithm is designed by Daniel J.
702           Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
703
704 config CRYPTO_SEED
705         tristate "SEED cipher algorithm"
706         select CRYPTO_ALGAPI
707         help
708           SEED cipher algorithm (RFC4269).
709
710           SEED is a 128-bit symmetric key block cipher that has been
711           developed by KISA (Korea Information Security Agency) as a
712           national standard encryption algorithm of the Republic of Korea.
713           It is a 16 round block cipher with the key size of 128 bit.
714
715           See also:
716           <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
717
718 config CRYPTO_SERPENT
719         tristate "Serpent cipher algorithm"
720         select CRYPTO_ALGAPI
721         help
722           Serpent cipher algorithm, by Anderson, Biham & Knudsen.
723
724           Keys are allowed to be from 0 to 256 bits in length, in steps
725           of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
726           variant of Serpent for compatibility with old kerneli.org code.
727
728           See also:
729           <http://www.cl.cam.ac.uk/~rja14/serpent.html>
730
731 config CRYPTO_TEA
732         tristate "TEA, XTEA and XETA cipher algorithms"
733         select CRYPTO_ALGAPI
734         help
735           TEA cipher algorithm.
736
737           Tiny Encryption Algorithm is a simple cipher that uses
738           many rounds for security.  It is very fast and uses
739           little memory.
740
741           Xtendend Tiny Encryption Algorithm is a modification to
742           the TEA algorithm to address a potential key weakness
743           in the TEA algorithm.
744
745           Xtendend Encryption Tiny Algorithm is a mis-implementation
746           of the XTEA algorithm for compatibility purposes.
747
748 config CRYPTO_TWOFISH
749         tristate "Twofish cipher algorithm"
750         select CRYPTO_ALGAPI
751         select CRYPTO_TWOFISH_COMMON
752         help
753           Twofish cipher algorithm.
754
755           Twofish was submitted as an AES (Advanced Encryption Standard)
756           candidate cipher by researchers at CounterPane Systems.  It is a
757           16 round block cipher supporting key sizes of 128, 192, and 256
758           bits.
759
760           See also:
761           <http://www.schneier.com/twofish.html>
762
763 config CRYPTO_TWOFISH_COMMON
764         tristate
765         help
766           Common parts of the Twofish cipher algorithm shared by the
767           generic c and the assembler implementations.
768
769 config CRYPTO_TWOFISH_586
770         tristate "Twofish cipher algorithms (i586)"
771         depends on (X86 || UML_X86) && !64BIT
772         select CRYPTO_ALGAPI
773         select CRYPTO_TWOFISH_COMMON
774         help
775           Twofish cipher algorithm.
776
777           Twofish was submitted as an AES (Advanced Encryption Standard)
778           candidate cipher by researchers at CounterPane Systems.  It is a
779           16 round block cipher supporting key sizes of 128, 192, and 256
780           bits.
781
782           See also:
783           <http://www.schneier.com/twofish.html>
784
785 config CRYPTO_TWOFISH_X86_64
786         tristate "Twofish cipher algorithm (x86_64)"
787         depends on (X86 || UML_X86) && 64BIT
788         select CRYPTO_ALGAPI
789         select CRYPTO_TWOFISH_COMMON
790         help
791           Twofish cipher algorithm (x86_64).
792
793           Twofish was submitted as an AES (Advanced Encryption Standard)
794           candidate cipher by researchers at CounterPane Systems.  It is a
795           16 round block cipher supporting key sizes of 128, 192, and 256
796           bits.
797
798           See also:
799           <http://www.schneier.com/twofish.html>
800
801 comment "Compression"
802
803 config CRYPTO_DEFLATE
804         tristate "Deflate compression algorithm"
805         select CRYPTO_ALGAPI
806         select ZLIB_INFLATE
807         select ZLIB_DEFLATE
808         help
809           This is the Deflate algorithm (RFC1951), specified for use in
810           IPSec with the IPCOMP protocol (RFC3173, RFC2394).
811
812           You will most probably want this if using IPSec.
813
814 config CRYPTO_ZLIB
815         tristate "Zlib compression algorithm"
816         select CRYPTO_PCOMP
817         select ZLIB_INFLATE
818         select ZLIB_DEFLATE
819         select NLATTR
820         help
821           This is the zlib algorithm.
822
823 config CRYPTO_LZO
824         tristate "LZO compression algorithm"
825         select CRYPTO_ALGAPI
826         select LZO_COMPRESS
827         select LZO_DECOMPRESS
828         help
829           This is the LZO algorithm.
830
831 comment "Random Number Generation"
832
833 config CRYPTO_ANSI_CPRNG
834         tristate "Pseudo Random Number Generation for Cryptographic modules"
835         default m
836         select CRYPTO_AES
837         select CRYPTO_RNG
838         help
839           This option enables the generic pseudo random number generator
840           for cryptographic modules.  Uses the Algorithm specified in
841           ANSI X9.31 A.2.4. Note that this option must be enabled if
842           CRYPTO_FIPS is selected
843
844 config CRYPTO_USER_API
845         tristate
846
847 source "drivers/crypto/Kconfig"
848
849 endif   # if CRYPTO