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