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