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