1
2
3
4config XOR_BLOCKS
5 tristate
6
7
8
9
10source "crypto/async_tx/Kconfig"
11
12
13
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 || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
27 depends on MODULE_SIG
28 help
29 This options enables the fips boot option which is
30 required if you want to system to operate in a FIPS 200
31 certification. You should say no unless you know what
32 this is.
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_AKCIPHER2
91 tristate
92 select CRYPTO_ALGAPI2
93
94config CRYPTO_AKCIPHER
95 tristate
96 select CRYPTO_AKCIPHER2
97 select CRYPTO_ALGAPI
98
99config CRYPTO_KPP2
100 tristate
101 select CRYPTO_ALGAPI2
102
103config CRYPTO_KPP
104 tristate
105 select CRYPTO_ALGAPI
106 select CRYPTO_KPP2
107
108config CRYPTO_ACOMP2
109 tristate
110 select CRYPTO_ALGAPI2
111
112config CRYPTO_ACOMP
113 tristate
114 select CRYPTO_ALGAPI
115 select CRYPTO_ACOMP2
116
117config CRYPTO_RSA
118 tristate "RSA algorithm"
119 select AKCIPHER
120 select MPILIB
121 select ASN1
122 help
123 Generic implementation of the RSA public key algorithm.
124
125config CRYPTO_DH
126 tristate "Diffie-Hellman algorithm"
127 select CRYPTO_KPP
128 select MPILIB
129 help
130 Generic implementation of the Diffie-Hellman algorithm.
131
132config CRYPTO_ECDH
133 tristate "ECDH algorithm"
134 select CRYTPO_KPP
135 help
136 Generic implementation of the ECDH algorithm
137
138config CRYPTO_MANAGER
139 tristate "Cryptographic algorithm manager"
140 select CRYPTO_MANAGER2
141 help
142 Create default cryptographic template instantiations such as
143 cbc(aes).
144
145config CRYPTO_MANAGER2
146 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
147 select CRYPTO_AEAD2
148 select CRYPTO_HASH2
149 select CRYPTO_BLKCIPHER2
150 select CRYPTO_PCOMP2
151 select CRYPTO_AKCIPHER2
152 select CRYPTO_KPP2
153 select CRYPTO_ACOMP2
154
155config CRYPTO_USER
156 tristate "Userspace cryptographic algorithm configuration"
157 depends on NET
158 select CRYPTO_MANAGER
159 help
160 Userspace configuration for cryptographic instantiations such as
161 cbc(aes).
162
163config CRYPTO_MANAGER_DISABLE_TESTS
164 bool "Disable run-time self tests"
165 default y
166 depends on CRYPTO_MANAGER2
167 help
168 Disable run-time self tests that normally take place at
169 algorithm registration.
170
171config CRYPTO_GF128MUL
172 tristate "GF(2^128) multiplication functions"
173 help
174 Efficient table driven implementation of multiplications in the
175 field GF(2^128). This is needed by some cypher modes. This
176 option will be selected automatically if you select such a
177 cipher mode. Only select this option by hand if you expect to load
178 an external module that requires these functions.
179
180config CRYPTO_NULL
181 tristate "Null algorithms"
182 select CRYPTO_ALGAPI
183 select CRYPTO_BLKCIPHER
184 select CRYPTO_HASH
185 help
186 These are 'Null' algorithms, used by IPsec, which do nothing.
187
188config CRYPTO_PCRYPT
189 tristate "Parallel crypto engine"
190 depends on SMP
191 select PADATA
192 select CRYPTO_MANAGER
193 select CRYPTO_AEAD
194 help
195 This converts an arbitrary crypto algorithm into a parallel
196 algorithm that executes in kernel threads.
197
198config CRYPTO_WORKQUEUE
199 tristate
200
201config CRYPTO_CRYPTD
202 tristate "Software async crypto daemon"
203 select CRYPTO_BLKCIPHER
204 select CRYPTO_HASH
205 select CRYPTO_MANAGER
206 select CRYPTO_WORKQUEUE
207 help
208 This is a generic software asynchronous crypto daemon that
209 converts an arbitrary synchronous software crypto algorithm
210 into an asynchronous algorithm that executes in a kernel thread.
211
212config CRYPTO_MCRYPTD
213 tristate "Software async multi-buffer crypto daemon"
214 select CRYPTO_BLKCIPHER
215 select CRYPTO_HASH
216 select CRYPTO_MANAGER
217 select CRYPTO_WORKQUEUE
218 help
219 This is a generic software asynchronous crypto daemon that
220 provides the kernel thread to assist multi-buffer crypto
221 algorithms for submitting jobs and flushing jobs in multi-buffer
222 crypto algorithms. Multi-buffer crypto algorithms are executed
223 in the context of this kernel thread and drivers can post
224 their crypto request asyncrhously and process by this daemon.
225
226config CRYPTO_AUTHENC
227 tristate "Authenc support"
228 select CRYPTO_AEAD
229 select CRYPTO_BLKCIPHER
230 select CRYPTO_MANAGER
231 select CRYPTO_HASH
232 help
233 Authenc: Combined mode wrapper for IPsec.
234 This is required for IPSec.
235
236config CRYPTO_TEST
237 tristate "Testing module"
238 depends on m
239 select CRYPTO_MANAGER
240 help
241 Quick & dirty crypto test module.
242
243config CRYPTO_ABLK_HELPER_X86
244 tristate
245 depends on X86
246 select CRYPTO_CRYPTD
247
248config CRYPTO_GLUE_HELPER_X86
249 tristate
250 depends on X86
251 select CRYPTO_ALGAPI
252
253comment "Authenticated Encryption with Associated Data"
254
255config CRYPTO_CCM
256 tristate "CCM support"
257 select CRYPTO_CTR
258 select CRYPTO_AEAD
259 help
260 Support for Counter with CBC MAC. Required for IPsec.
261
262config CRYPTO_GCM
263 tristate "GCM/GMAC support"
264 select CRYPTO_CTR
265 select CRYPTO_AEAD
266 select CRYPTO_GHASH
267 select CRYPTO_NULL
268 help
269 Support for Galois/Counter Mode (GCM) and Galois Message
270 Authentication Code (GMAC). Required for IPSec.
271
272config CRYPTO_SEQIV
273 tristate "Sequence Number IV Generator"
274 select CRYPTO_AEAD
275 select CRYPTO_BLKCIPHER
276 select CRYPTO_RNG
277 help
278 This IV generator generates an IV based on a sequence number by
279 xoring it with a salt. This algorithm is mainly useful for CTR
280
281comment "Block modes"
282
283config CRYPTO_CBC
284 tristate "CBC support"
285 select CRYPTO_BLKCIPHER
286 select CRYPTO_MANAGER
287 help
288 CBC: Cipher Block Chaining mode
289 This block cipher algorithm is required for IPSec.
290
291config CRYPTO_CTR
292 tristate "CTR support"
293 select CRYPTO_BLKCIPHER
294 select CRYPTO_SEQIV
295 select CRYPTO_MANAGER
296 help
297 CTR: Counter mode
298 This block cipher algorithm is required for IPSec.
299
300config CRYPTO_CTS
301 tristate "CTS support"
302 select CRYPTO_BLKCIPHER
303 help
304 CTS: Cipher Text Stealing
305 This is the Cipher Text Stealing mode as described by
306 Section 8 of rfc2040 and referenced by rfc3962.
307 (rfc3962 includes errata information in its Appendix A)
308 This mode is required for Kerberos gss mechanism support
309 for AES encryption.
310
311config CRYPTO_ECB
312 tristate "ECB support"
313 select CRYPTO_BLKCIPHER
314 select CRYPTO_MANAGER
315 help
316 ECB: Electronic CodeBook mode
317 This is the simplest block cipher algorithm. It simply encrypts
318 the input block by block.
319
320config CRYPTO_LRW
321 tristate "LRW support"
322 select CRYPTO_BLKCIPHER
323 select CRYPTO_MANAGER
324 select CRYPTO_GF128MUL
325 help
326 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
327 narrow block cipher mode for dm-crypt. Use it with cipher
328 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
329 The first 128, 192 or 256 bits in the key are used for AES and the
330 rest is used to tie each cipher block to its logical position.
331
332config CRYPTO_PCBC
333 tristate "PCBC support"
334 select CRYPTO_BLKCIPHER
335 select CRYPTO_MANAGER
336 help
337 PCBC: Propagating Cipher Block Chaining mode
338 This block cipher algorithm is required for RxRPC.
339
340config CRYPTO_XTS
341 tristate "XTS support"
342 select CRYPTO_BLKCIPHER
343 select CRYPTO_MANAGER
344 select CRYPTO_GF128MUL
345 help
346 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
347 key size 256, 384 or 512 bits. This implementation currently
348 can't handle a sectorsize which is not a multiple of 16 bytes.
349
350comment "Hash modes"
351
352config CRYPTO_CMAC
353 tristate "CMAC support"
354 select CRYPTO_HASH
355 select CRYPTO_MANAGER
356 help
357 Cipher-based Message Authentication Code (CMAC) specified by
358 The National Institute of Standards and Technology (NIST).
359
360 https://tools.ietf.org/html/rfc4493
361 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
362
363config CRYPTO_HMAC
364 tristate "HMAC support"
365 select CRYPTO_HASH
366 select CRYPTO_MANAGER
367 help
368 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
369 This is required for IPSec.
370
371config CRYPTO_XCBC
372 tristate "XCBC support"
373 select CRYPTO_HASH
374 select CRYPTO_MANAGER
375 help
376 XCBC: Keyed-Hashing with encryption algorithm
377 http://www.ietf.org/rfc/rfc3566.txt
378 http://csrc.nist.gov/encryption/modes/proposedmodes/
379 xcbc-mac/xcbc-mac-spec.pdf
380
381config CRYPTO_VMAC
382 tristate "VMAC support"
383 select CRYPTO_HASH
384 select CRYPTO_MANAGER
385 help
386 VMAC is a message authentication algorithm designed for
387 very high speed on 64-bit architectures.
388
389 See also:
390 <http://fastcrypto.org/vmac>
391
392comment "Digest"
393
394config CRYPTO_CRC32C
395 tristate "CRC32c CRC algorithm"
396 select CRYPTO_HASH
397 select CRC32
398 help
399 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
400 by iSCSI for header and data digests and by others.
401 See Castagnoli93. Module will be crc32c.
402
403config CRYPTO_CRC32C_INTEL
404 tristate "CRC32c INTEL hardware acceleration"
405 depends on X86
406 select CRYPTO_HASH
407 help
408 In Intel processor with SSE4.2 supported, the processor will
409 support CRC32C implementation using hardware accelerated CRC32
410 instruction. This option will create 'crc32c-intel' module,
411 which will enable any routine to use the CRC32 instruction to
412 gain performance compared with software implementation.
413 Module will be crc32c-intel.
414
415config CRYPTO_CRC32C_SPARC64
416 tristate "CRC32c CRC algorithm (SPARC64)"
417 depends on SPARC64
418 select CRYPTO_HASH
419 select CRC32
420 help
421 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
422 when available.
423
424config CRYPTO_CRC32
425 tristate "CRC32 CRC algorithm"
426 select CRYPTO_HASH
427 select CRC32
428 help
429 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
430 Shash crypto api wrappers to crc32_le function.
431
432config CRYPTO_CRC32_PCLMUL
433 tristate "CRC32 PCLMULQDQ hardware acceleration"
434 depends on X86
435 select CRYPTO_HASH
436 select CRC32
437 help
438 From Intel Westmere and AMD Bulldozer processor with SSE4.2
439 and PCLMULQDQ supported, the processor will support
440 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
441 instruction. This option will create 'crc32-plcmul' module,
442 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
443 and gain better performance as compared with the table implementation.
444
445config CRYPTO_CRCT10DIF
446 tristate "CRCT10DIF algorithm"
447 select CRYPTO_HASH
448 help
449 CRC T10 Data Integrity Field computation is being cast as
450 a crypto transform. This allows for faster crc t10 diff
451 transforms to be used if they are available.
452
453config CRYPTO_CRCT10DIF_PCLMUL
454 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
455 depends on X86 && 64BIT && CRC_T10DIF
456 select CRYPTO_HASH
457 help
458 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
459 CRC T10 DIF PCLMULQDQ computation can be hardware
460 accelerated PCLMULQDQ instruction. This option will create
461 'crct10dif-plcmul' module, which is faster when computing the
462 crct10dif checksum as compared with the generic table implementation.
463
464config CRYPTO_GHASH
465 tristate "GHASH digest algorithm"
466 select CRYPTO_GF128MUL
467 help
468 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
469
470config CRYPTO_MD4
471 tristate "MD4 digest algorithm"
472 select CRYPTO_HASH
473 help
474 MD4 message digest algorithm (RFC1320).
475
476config CRYPTO_MD5
477 tristate "MD5 digest algorithm"
478 select CRYPTO_HASH
479 help
480 MD5 message digest algorithm (RFC1321).
481
482config CRYPTO_MD5_SPARC64
483 tristate "MD5 digest algorithm (SPARC64)"
484 depends on SPARC64
485 select CRYPTO_MD5
486 select CRYPTO_HASH
487 help
488 MD5 message digest algorithm (RFC1321) implemented
489 using sparc64 crypto instructions, when available.
490
491config CRYPTO_MICHAEL_MIC
492 tristate "Michael MIC keyed digest algorithm"
493 select CRYPTO_HASH
494 help
495 Michael MIC is used for message integrity protection in TKIP
496 (IEEE 802.11i). This algorithm is required for TKIP, but it
497 should not be used for other purposes because of the weakness
498 of the algorithm.
499
500config CRYPTO_RMD128
501 tristate "RIPEMD-128 digest algorithm"
502 select CRYPTO_HASH
503 help
504 RIPEMD-128 (ISO/IEC 10118-3:2004).
505
506 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
507 be used as a secure replacement for RIPEMD. For other use cases,
508 RIPEMD-160 should be used.
509
510 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
511 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
512
513config CRYPTO_RMD160
514 tristate "RIPEMD-160 digest algorithm"
515 select CRYPTO_HASH
516 help
517 RIPEMD-160 (ISO/IEC 10118-3:2004).
518
519 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
520 to be used as a secure replacement for the 128-bit hash functions
521 MD4, MD5 and it's predecessor RIPEMD
522 (not to be confused with RIPEMD-128).
523
524 It's speed is comparable to SHA1 and there are no known attacks
525 against RIPEMD-160.
526
527 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
528 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
529
530config CRYPTO_RMD256
531 tristate "RIPEMD-256 digest algorithm"
532 select CRYPTO_HASH
533 help
534 RIPEMD-256 is an optional extension of RIPEMD-128 with a
535 256 bit hash. It is intended for applications that require
536 longer hash-results, without needing a larger security level
537 (than RIPEMD-128).
538
539 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
540 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
541
542config CRYPTO_RMD320
543 tristate "RIPEMD-320 digest algorithm"
544 select CRYPTO_HASH
545 help
546 RIPEMD-320 is an optional extension of RIPEMD-160 with a
547 320 bit hash. It is intended for applications that require
548 longer hash-results, without needing a larger security level
549 (than RIPEMD-160).
550
551 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
552 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
553
554config CRYPTO_SHA1
555 tristate "SHA1 digest algorithm"
556 select CRYPTO_HASH
557 help
558 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
559
560config CRYPTO_SHA1_SSSE3
561 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
562 depends on X86 && 64BIT
563 select CRYPTO_SHA1
564 select CRYPTO_HASH
565 help
566 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
567 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
568 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
569 when available.
570
571config CRYPTO_SHA256_SSSE3
572 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
573 depends on X86 && 64BIT
574 select CRYPTO_SHA256
575 select CRYPTO_HASH
576 help
577 SHA-256 secure hash standard (DFIPS 180-2) implemented
578 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
579 Extensions version 1 (AVX1), or Advanced Vector Extensions
580 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
581 Instructions) when available.
582
583config CRYPTO_SHA512_SSSE3
584 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
585 depends on X86 && 64BIT
586 select CRYPTO_SHA512
587 select CRYPTO_HASH
588 help
589 SHA-512 secure hash standard (DFIPS 180-2) implemented
590 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
591 Extensions version 1 (AVX1), or Advanced Vector Extensions
592 version 2 (AVX2) instructions, when available.
593
594config CRYPTO_SHA1_SPARC64
595 tristate "SHA1 digest algorithm (SPARC64)"
596 depends on SPARC64
597 select CRYPTO_SHA1
598 select CRYPTO_HASH
599 help
600 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
601 using sparc64 crypto instructions, when available.
602
603config CRYPTO_SHA1_ARM
604 tristate "SHA1 digest algorithm (ARM-asm)"
605 depends on ARM
606 select CRYPTO_SHA1
607 select CRYPTO_HASH
608 help
609 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
610 using optimized ARM assembler.
611
612config CRYPTO_SHA1_PPC
613 tristate "SHA1 digest algorithm (powerpc)"
614 depends on PPC
615 help
616 This is the powerpc hardware accelerated implementation of the
617 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
618
619config CRYPTO_SHA1_MB
620 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
621 depends on X86 && 64BIT
622 select CRYPTO_SHA1
623 select CRYPTO_HASH
624 select CRYPTO_MCRYPTD
625 help
626 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
627 using multi-buffer technique. This algorithm computes on
628 multiple data lanes concurrently with SIMD instructions for
629 better throughput. It should not be enabled by default but
630 used when there is significant amount of work to keep the keep
631 the data lanes filled to get performance benefit. If the data
632 lanes remain unfilled, a flush operation will be initiated to
633 process the crypto jobs, adding a slight latency.
634
635config CRYPTO_SHA256_MB
636 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
637 depends on X86 && 64BIT
638 select CRYPTO_SHA256
639 select CRYPTO_HASH
640 select CRYPTO_MCRYPTD
641 help
642 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
643 using multi-buffer technique. This algorithm computes on
644 multiple data lanes concurrently with SIMD instructions for
645 better throughput. It should not be enabled by default but
646 used when there is significant amount of work to keep the keep
647 the data lanes filled to get performance benefit. If the data
648 lanes remain unfilled, a flush operation will be initiated to
649 process the crypto jobs, adding a slight latency.
650
651config CRYPTO_SHA512_MB
652 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
653 depends on X86 && 64BIT
654 select CRYPTO_SHA512
655 select CRYPTO_HASH
656 select CRYPTO_MCRYPTD
657 help
658 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
659 using multi-buffer technique. This algorithm computes on
660 multiple data lanes concurrently with SIMD instructions for
661 better throughput. It should not be enabled by default but
662 used when there is significant amount of work to keep the keep
663 the data lanes filled to get performance benefit. If the data
664 lanes remain unfilled, a flush operation will be initiated to
665 process the crypto jobs, adding a slight latency.
666
667config CRYPTO_SHA256
668 tristate "SHA224 and SHA256 digest algorithm"
669 select CRYPTO_HASH
670 help
671 SHA256 secure hash standard (DFIPS 180-2).
672
673 This version of SHA implements a 256 bit hash with 128 bits of
674 security against collision attacks.
675
676 This code also includes SHA-224, a 224 bit hash with 112 bits
677 of security against collision attacks.
678
679config CRYPTO_SHA256_SPARC64
680 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
681 depends on SPARC64
682 select CRYPTO_SHA256
683 select CRYPTO_HASH
684 help
685 SHA-256 secure hash standard (DFIPS 180-2) implemented
686 using sparc64 crypto instructions, when available.
687
688config CRYPTO_SHA512
689 tristate "SHA384 and SHA512 digest algorithms"
690 select CRYPTO_HASH
691 help
692 SHA512 secure hash standard (DFIPS 180-2).
693
694 This version of SHA implements a 512 bit hash with 256 bits of
695 security against collision attacks.
696
697 This code also includes SHA-384, a 384 bit hash with 192 bits
698 of security against collision attacks.
699
700config CRYPTO_SHA512_SPARC64
701 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
702 depends on SPARC64
703 select CRYPTO_SHA512
704 select CRYPTO_HASH
705 help
706 SHA-512 secure hash standard (DFIPS 180-2) implemented
707 using sparc64 crypto instructions, when available.
708
709config CRYPTO_TGR192
710 tristate "Tiger digest algorithms"
711 select CRYPTO_HASH
712 help
713 Tiger hash algorithm 192, 160 and 128-bit hashes
714
715 Tiger is a hash function optimized for 64-bit processors while
716 still having decent performance on 32-bit processors.
717 Tiger was developed by Ross Anderson and Eli Biham.
718
719 See also:
720 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
721
722config CRYPTO_WP512
723 tristate "Whirlpool digest algorithms"
724 select CRYPTO_HASH
725 help
726 Whirlpool hash algorithm 512, 384 and 256-bit hashes
727
728 Whirlpool-512 is part of the NESSIE cryptographic primitives.
729 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
730
731 See also:
732 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
733
734config CRYPTO_GHASH_CLMUL_NI_INTEL
735 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
736 depends on X86 && 64BIT
737 select CRYPTO_CRYPTD
738 help
739 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
740 The implementation is accelerated by CLMUL-NI of Intel.
741
742comment "Ciphers"
743
744config CRYPTO_AES
745 tristate "AES cipher algorithms"
746 select CRYPTO_ALGAPI
747 help
748 AES cipher algorithms (FIPS-197). AES uses the Rijndael
749 algorithm.
750
751 Rijndael appears to be consistently a very good performer in
752 both hardware and software across a wide range of computing
753 environments regardless of its use in feedback or non-feedback
754 modes. Its key setup time is excellent, and its key agility is
755 good. Rijndael's very low memory requirements make it very well
756 suited for restricted-space environments, in which it also
757 demonstrates excellent performance. Rijndael's operations are
758 among the easiest to defend against power and timing attacks.
759
760 The AES specifies three key sizes: 128, 192 and 256 bits
761
762 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
763
764config CRYPTO_AES_586
765 tristate "AES cipher algorithms (i586)"
766 depends on (X86 || UML_X86) && !64BIT
767 select CRYPTO_ALGAPI
768 select CRYPTO_AES
769 help
770 AES cipher algorithms (FIPS-197). AES uses the Rijndael
771 algorithm.
772
773 Rijndael appears to be consistently a very good performer in
774 both hardware and software across a wide range of computing
775 environments regardless of its use in feedback or non-feedback
776 modes. Its key setup time is excellent, and its key agility is
777 good. Rijndael's very low memory requirements make it very well
778 suited for restricted-space environments, in which it also
779 demonstrates excellent performance. Rijndael's operations are
780 among the easiest to defend against power and timing attacks.
781
782 The AES specifies three key sizes: 128, 192 and 256 bits
783
784 See <http://csrc.nist.gov/encryption/aes/> for more information.
785
786config CRYPTO_AES_X86_64
787 tristate "AES cipher algorithms (x86_64)"
788 depends on (X86 || UML_X86) && 64BIT
789 select CRYPTO_ALGAPI
790 select CRYPTO_AES
791 help
792 AES cipher algorithms (FIPS-197). AES uses the Rijndael
793 algorithm.
794
795 Rijndael appears to be consistently a very good performer in
796 both hardware and software across a wide range of computing
797 environments regardless of its use in feedback or non-feedback
798 modes. Its key setup time is excellent, and its key agility is
799 good. Rijndael's very low memory requirements make it very well
800 suited for restricted-space environments, in which it also
801 demonstrates excellent performance. Rijndael's operations are
802 among the easiest to defend against power and timing attacks.
803
804 The AES specifies three key sizes: 128, 192 and 256 bits
805
806 See <http://csrc.nist.gov/encryption/aes/> for more information.
807
808config CRYPTO_AES_NI_INTEL
809 tristate "AES cipher algorithms (AES-NI)"
810 depends on X86
811 select CRYPTO_AES_X86_64 if 64BIT
812 select CRYPTO_AES_586 if !64BIT
813 select CRYPTO_CRYPTD
814 select CRYPTO_ABLK_HELPER_X86
815 select CRYPTO_ALGAPI
816 select CRYPTO_GLUE_HELPER_X86 if 64BIT
817 select CRYPTO_LRW
818 select CRYPTO_XTS
819 help
820 Use Intel AES-NI instructions for AES algorithm.
821
822 AES cipher algorithms (FIPS-197). AES uses the Rijndael
823 algorithm.
824
825 Rijndael appears to be consistently a very good performer in
826 both hardware and software across a wide range of computing
827 environments regardless of its use in feedback or non-feedback
828 modes. Its key setup time is excellent, and its key agility is
829 good. Rijndael's very low memory requirements make it very well
830 suited for restricted-space environments, in which it also
831 demonstrates excellent performance. Rijndael's operations are
832 among the easiest to defend against power and timing attacks.
833
834 The AES specifies three key sizes: 128, 192 and 256 bits
835
836 See <http://csrc.nist.gov/encryption/aes/> for more information.
837
838 In addition to AES cipher algorithm support, the acceleration
839 for some popular block cipher mode is supported too, including
840 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
841 acceleration for CTR.
842
843config CRYPTO_AES_SPARC64
844 tristate "AES cipher algorithms (SPARC64)"
845 depends on SPARC64
846 select CRYPTO_CRYPTD
847 select CRYPTO_ALGAPI
848 help
849 Use SPARC64 crypto opcodes for AES algorithm.
850
851 AES cipher algorithms (FIPS-197). AES uses the Rijndael
852 algorithm.
853
854 Rijndael appears to be consistently a very good performer in
855 both hardware and software across a wide range of computing
856 environments regardless of its use in feedback or non-feedback
857 modes. Its key setup time is excellent, and its key agility is
858 good. Rijndael's very low memory requirements make it very well
859 suited for restricted-space environments, in which it also
860 demonstrates excellent performance. Rijndael's operations are
861 among the easiest to defend against power and timing attacks.
862
863 The AES specifies three key sizes: 128, 192 and 256 bits
864
865 See <http://csrc.nist.gov/encryption/aes/> for more information.
866
867 In addition to AES cipher algorithm support, the acceleration
868 for some popular block cipher mode is supported too, including
869 ECB and CBC.
870
871config CRYPTO_AES_ARM
872 tristate "AES cipher algorithms (ARM-asm)"
873 depends on ARM
874 select CRYPTO_ALGAPI
875 select CRYPTO_AES
876 help
877 Use optimized AES assembler routines for ARM platforms.
878
879 AES cipher algorithms (FIPS-197). AES uses the Rijndael
880 algorithm.
881
882 Rijndael appears to be consistently a very good performer in
883 both hardware and software across a wide range of computing
884 environments regardless of its use in feedback or non-feedback
885 modes. Its key setup time is excellent, and its key agility is
886 good. Rijndael's very low memory requirements make it very well
887 suited for restricted-space environments, in which it also
888 demonstrates excellent performance. Rijndael's operations are
889 among the easiest to defend against power and timing attacks.
890
891 The AES specifies three key sizes: 128, 192 and 256 bits
892
893 See <http://csrc.nist.gov/encryption/aes/> for more information.
894
895config CRYPTO_ANUBIS
896 tristate "Anubis cipher algorithm"
897 select CRYPTO_ALGAPI
898 help
899 Anubis cipher algorithm.
900
901 Anubis is a variable key length cipher which can use keys from
902 128 bits to 320 bits in length. It was evaluated as a entrant
903 in the NESSIE competition.
904
905 See also:
906 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
907 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
908
909config CRYPTO_ARC4
910 tristate "ARC4 cipher algorithm"
911 select CRYPTO_BLKCIPHER
912 help
913 ARC4 cipher algorithm.
914
915 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
916 bits in length. This algorithm is required for driver-based
917 WEP, but it should not be for other purposes because of the
918 weakness of the algorithm.
919
920config CRYPTO_BLOWFISH
921 tristate "Blowfish cipher algorithm"
922 select CRYPTO_ALGAPI
923 select CRYPTO_BLOWFISH_COMMON
924 help
925 Blowfish cipher algorithm, by Bruce Schneier.
926
927 This is a variable key length cipher which can use keys from 32
928 bits to 448 bits in length. It's fast, simple and specifically
929 designed for use on "large microprocessors".
930
931 See also:
932 <http://www.schneier.com/blowfish.html>
933
934config CRYPTO_BLOWFISH_COMMON
935 tristate
936 help
937 Common parts of the Blowfish cipher algorithm shared by the
938 generic c and the assembler implementations.
939
940 See also:
941 <http://www.schneier.com/blowfish.html>
942
943config CRYPTO_BLOWFISH_X86_64
944 tristate "Blowfish cipher algorithm (x86_64)"
945 depends on X86 && 64BIT
946 select CRYPTO_ALGAPI
947 select CRYPTO_BLOWFISH_COMMON
948 help
949 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
950
951 This is a variable key length cipher which can use keys from 32
952 bits to 448 bits in length. It's fast, simple and specifically
953 designed for use on "large microprocessors".
954
955 See also:
956 <http://www.schneier.com/blowfish.html>
957
958config CRYPTO_BLOWFISH_AVX2_X86_64
959 tristate "Blowfish cipher algorithm (x86_64/AVX2)"
960 depends on X86 && 64BIT
961 depends on BROKEN
962 select CRYPTO_ALGAPI
963 select CRYPTO_CRYPTD
964 select CRYPTO_ABLK_HELPER_X86
965 select CRYPTO_BLOWFISH_COMMON
966 select CRYPTO_BLOWFISH_X86_64
967 help
968 Blowfish cipher algorithm (x86_64/AVX2), by Bruce Schneier.
969
970 This is a variable key length cipher which can use keys from 32
971 bits to 448 bits in length. It's fast, simple and specifically
972 designed for use on "large microprocessors".
973
974 See also:
975 <http://www.schneier.com/blowfish.html>
976
977config CRYPTO_CAMELLIA
978 tristate "Camellia cipher algorithms"
979 depends on CRYPTO
980 select CRYPTO_ALGAPI
981 help
982 Camellia cipher algorithms module.
983
984 Camellia is a symmetric key block cipher developed jointly
985 at NTT and Mitsubishi Electric Corporation.
986
987 The Camellia specifies three key sizes: 128, 192 and 256 bits.
988
989 See also:
990 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
991
992config CRYPTO_CAMELLIA_X86_64
993 tristate "Camellia cipher algorithm (x86_64)"
994 depends on X86 && 64BIT
995 depends on CRYPTO
996 select CRYPTO_ALGAPI
997 select CRYPTO_GLUE_HELPER_X86
998 select CRYPTO_LRW
999 select CRYPTO_XTS
1000 help
1001 Camellia cipher algorithm module (x86_64).
1002
1003 Camellia is a symmetric key block cipher developed jointly
1004 at NTT and Mitsubishi Electric Corporation.
1005
1006 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1007
1008 See also:
1009 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1010
1011config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1012 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1013 depends on X86 && 64BIT
1014 depends on CRYPTO
1015 select CRYPTO_ALGAPI
1016 select CRYPTO_CRYPTD
1017 select CRYPTO_ABLK_HELPER_X86
1018 select CRYPTO_GLUE_HELPER_X86
1019 select CRYPTO_CAMELLIA_X86_64
1020 select CRYPTO_LRW
1021 select CRYPTO_XTS
1022 help
1023 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1024
1025 Camellia is a symmetric key block cipher developed jointly
1026 at NTT and Mitsubishi Electric Corporation.
1027
1028 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1029
1030 See also:
1031 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1032
1033config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1034 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1035 depends on X86 && 64BIT
1036 depends on CRYPTO
1037 select CRYPTO_ALGAPI
1038 select CRYPTO_CRYPTD
1039 select CRYPTO_ABLK_HELPER_X86
1040 select CRYPTO_GLUE_HELPER_X86
1041 select CRYPTO_CAMELLIA_X86_64
1042 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1043 select CRYPTO_LRW
1044 select CRYPTO_XTS
1045 help
1046 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1047
1048 Camellia is a symmetric key block cipher developed jointly
1049 at NTT and Mitsubishi Electric Corporation.
1050
1051 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1052
1053 See also:
1054 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1055
1056config CRYPTO_CAMELLIA_SPARC64
1057 tristate "Camellia cipher algorithm (SPARC64)"
1058 depends on SPARC64
1059 depends on CRYPTO
1060 select CRYPTO_ALGAPI
1061 help
1062 Camellia cipher algorithm module (SPARC64).
1063
1064 Camellia is a symmetric key block cipher developed jointly
1065 at NTT and Mitsubishi Electric Corporation.
1066
1067 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1068
1069 See also:
1070 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1071
1072config CRYPTO_CAST_COMMON
1073 tristate
1074 help
1075 Common parts of the CAST cipher algorithms shared by the
1076 generic c and the assembler implementations.
1077
1078config CRYPTO_CAST5
1079 tristate "CAST5 (CAST-128) cipher algorithm"
1080 select CRYPTO_ALGAPI
1081 select CRYPTO_CAST_COMMON
1082 help
1083 The CAST5 encryption algorithm (synonymous with CAST-128) is
1084 described in RFC2144.
1085
1086config CRYPTO_CAST5_AVX_X86_64
1087 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1088 depends on X86 && 64BIT
1089 select CRYPTO_ALGAPI
1090 select CRYPTO_CRYPTD
1091 select CRYPTO_ABLK_HELPER_X86
1092 select CRYPTO_CAST_COMMON
1093 select CRYPTO_CAST5
1094 help
1095 The CAST5 encryption algorithm (synonymous with CAST-128) is
1096 described in RFC2144.
1097
1098 This module provides the Cast5 cipher algorithm that processes
1099 sixteen blocks parallel using the AVX instruction set.
1100
1101config CRYPTO_CAST6
1102 tristate "CAST6 (CAST-256) cipher algorithm"
1103 select CRYPTO_ALGAPI
1104 select CRYPTO_CAST_COMMON
1105 help
1106 The CAST6 encryption algorithm (synonymous with CAST-256) is
1107 described in RFC2612.
1108
1109config CRYPTO_CAST6_AVX_X86_64
1110 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1111 depends on X86 && 64BIT
1112 select CRYPTO_ALGAPI
1113 select CRYPTO_CRYPTD
1114 select CRYPTO_ABLK_HELPER_X86
1115 select CRYPTO_GLUE_HELPER_X86
1116 select CRYPTO_CAST_COMMON
1117 select CRYPTO_CAST6
1118 select CRYPTO_LRW
1119 select CRYPTO_XTS
1120 help
1121 The CAST6 encryption algorithm (synonymous with CAST-256) is
1122 described in RFC2612.
1123
1124 This module provides the Cast6 cipher algorithm that processes
1125 eight blocks parallel using the AVX instruction set.
1126
1127config CRYPTO_DES
1128 tristate "DES and Triple DES EDE cipher algorithms"
1129 select CRYPTO_ALGAPI
1130 help
1131 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1132
1133config CRYPTO_DES_SPARC64
1134 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
1135 depends on SPARC64
1136 select CRYPTO_ALGAPI
1137 select CRYPTO_DES
1138 help
1139 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1140 optimized using SPARC64 crypto opcodes.
1141
1142config CRYPTO_FCRYPT
1143 tristate "FCrypt cipher algorithm"
1144 select CRYPTO_ALGAPI
1145 select CRYPTO_BLKCIPHER
1146 help
1147 FCrypt algorithm used by RxRPC.
1148
1149config CRYPTO_KHAZAD
1150 tristate "Khazad cipher algorithm"
1151 select CRYPTO_ALGAPI
1152 help
1153 Khazad cipher algorithm.
1154
1155 Khazad was a finalist in the initial NESSIE competition. It is
1156 an algorithm optimized for 64-bit processors with good performance
1157 on 32-bit processors. Khazad uses an 128 bit key size.
1158
1159 See also:
1160 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1161
1162config CRYPTO_SALSA20
1163 tristate "Salsa20 stream cipher algorithm"
1164 select CRYPTO_BLKCIPHER
1165 help
1166 Salsa20 stream cipher algorithm.
1167
1168 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1169 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1170
1171 The Salsa20 stream cipher algorithm is designed by Daniel J.
1172 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1173
1174config CRYPTO_SALSA20_586
1175 tristate "Salsa20 stream cipher algorithm (i586)"
1176 depends on (X86 || UML_X86) && !64BIT
1177 select CRYPTO_BLKCIPHER
1178 help
1179 Salsa20 stream cipher algorithm.
1180
1181 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1182 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1183
1184 The Salsa20 stream cipher algorithm is designed by Daniel J.
1185 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1186
1187config CRYPTO_SALSA20_X86_64
1188 tristate "Salsa20 stream cipher algorithm (x86_64)"
1189 depends on (X86 || UML_X86) && 64BIT
1190 select CRYPTO_BLKCIPHER
1191 help
1192 Salsa20 stream cipher algorithm.
1193
1194 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1195 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1196
1197 The Salsa20 stream cipher algorithm is designed by Daniel J.
1198 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1199
1200config CRYPTO_SEED
1201 tristate "SEED cipher algorithm"
1202 select CRYPTO_ALGAPI
1203 help
1204 SEED cipher algorithm (RFC4269).
1205
1206 SEED is a 128-bit symmetric key block cipher that has been
1207 developed by KISA (Korea Information Security Agency) as a
1208 national standard encryption algorithm of the Republic of Korea.
1209 It is a 16 round block cipher with the key size of 128 bit.
1210
1211 See also:
1212 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1213
1214config CRYPTO_SERPENT
1215 tristate "Serpent cipher algorithm"
1216 select CRYPTO_ALGAPI
1217 help
1218 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1219
1220 Keys are allowed to be from 0 to 256 bits in length, in steps
1221 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1222 variant of Serpent for compatibility with old kerneli.org code.
1223
1224 See also:
1225 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1226
1227config CRYPTO_SERPENT_SSE2_X86_64
1228 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1229 depends on X86 && 64BIT
1230 select CRYPTO_ALGAPI
1231 select CRYPTO_CRYPTD
1232 select CRYPTO_ABLK_HELPER_X86
1233 select CRYPTO_GLUE_HELPER_X86
1234 select CRYPTO_SERPENT
1235 select CRYPTO_LRW
1236 select CRYPTO_XTS
1237 help
1238 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1239
1240 Keys are allowed to be from 0 to 256 bits in length, in steps
1241 of 8 bits.
1242
1243 This module provides Serpent cipher algorithm that processes eigth
1244 blocks parallel using SSE2 instruction set.
1245
1246 See also:
1247 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1248
1249config CRYPTO_SERPENT_SSE2_586
1250 tristate "Serpent cipher algorithm (i586/SSE2)"
1251 depends on X86 && !64BIT
1252 select CRYPTO_ALGAPI
1253 select CRYPTO_CRYPTD
1254 select CRYPTO_ABLK_HELPER_X86
1255 select CRYPTO_GLUE_HELPER_X86
1256 select CRYPTO_SERPENT
1257 select CRYPTO_LRW
1258 select CRYPTO_XTS
1259 help
1260 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1261
1262 Keys are allowed to be from 0 to 256 bits in length, in steps
1263 of 8 bits.
1264
1265 This module provides Serpent cipher algorithm that processes four
1266 blocks parallel using SSE2 instruction set.
1267
1268 See also:
1269 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1270
1271config CRYPTO_SERPENT_AVX_X86_64
1272 tristate "Serpent cipher algorithm (x86_64/AVX)"
1273 depends on X86 && 64BIT
1274 select CRYPTO_ALGAPI
1275 select CRYPTO_CRYPTD
1276 select CRYPTO_ABLK_HELPER_X86
1277 select CRYPTO_GLUE_HELPER_X86
1278 select CRYPTO_SERPENT
1279 select CRYPTO_LRW
1280 select CRYPTO_XTS
1281 help
1282 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1283
1284 Keys are allowed to be from 0 to 256 bits in length, in steps
1285 of 8 bits.
1286
1287 This module provides the Serpent cipher algorithm that processes
1288 eight blocks parallel using the AVX instruction set.
1289
1290 See also:
1291 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1292
1293config CRYPTO_SERPENT_AVX2_X86_64
1294 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1295 depends on X86 && 64BIT
1296 select CRYPTO_ALGAPI
1297 select CRYPTO_CRYPTD
1298 select CRYPTO_ABLK_HELPER_X86
1299 select CRYPTO_GLUE_HELPER_X86
1300 select CRYPTO_SERPENT
1301 select CRYPTO_SERPENT_AVX_X86_64
1302 select CRYPTO_LRW
1303 select CRYPTO_XTS
1304 help
1305 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1306
1307 Keys are allowed to be from 0 to 256 bits in length, in steps
1308 of 8 bits.
1309
1310 This module provides Serpent cipher algorithm that processes 16
1311 blocks parallel using AVX2 instruction set.
1312
1313 See also:
1314 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1315
1316config CRYPTO_TEA
1317 tristate "TEA, XTEA and XETA cipher algorithms"
1318 select CRYPTO_ALGAPI
1319 help
1320 TEA cipher algorithm.
1321
1322 Tiny Encryption Algorithm is a simple cipher that uses
1323 many rounds for security. It is very fast and uses
1324 little memory.
1325
1326 Xtendend Tiny Encryption Algorithm is a modification to
1327 the TEA algorithm to address a potential key weakness
1328 in the TEA algorithm.
1329
1330 Xtendend Encryption Tiny Algorithm is a mis-implementation
1331 of the XTEA algorithm for compatibility purposes.
1332
1333config CRYPTO_TWOFISH
1334 tristate "Twofish cipher algorithm"
1335 select CRYPTO_ALGAPI
1336 select CRYPTO_TWOFISH_COMMON
1337 help
1338 Twofish cipher algorithm.
1339
1340 Twofish was submitted as an AES (Advanced Encryption Standard)
1341 candidate cipher by researchers at CounterPane Systems. It is a
1342 16 round block cipher supporting key sizes of 128, 192, and 256
1343 bits.
1344
1345 See also:
1346 <http://www.schneier.com/twofish.html>
1347
1348config CRYPTO_TWOFISH_COMMON
1349 tristate
1350 help
1351 Common parts of the Twofish cipher algorithm shared by the
1352 generic c and the assembler implementations.
1353
1354config CRYPTO_TWOFISH_586
1355 tristate "Twofish cipher algorithms (i586)"
1356 depends on (X86 || UML_X86) && !64BIT
1357 select CRYPTO_ALGAPI
1358 select CRYPTO_TWOFISH_COMMON
1359 help
1360 Twofish cipher algorithm.
1361
1362 Twofish was submitted as an AES (Advanced Encryption Standard)
1363 candidate cipher by researchers at CounterPane Systems. It is a
1364 16 round block cipher supporting key sizes of 128, 192, and 256
1365 bits.
1366
1367 See also:
1368 <http://www.schneier.com/twofish.html>
1369
1370config CRYPTO_TWOFISH_X86_64
1371 tristate "Twofish cipher algorithm (x86_64)"
1372 depends on (X86 || UML_X86) && 64BIT
1373 select CRYPTO_ALGAPI
1374 select CRYPTO_TWOFISH_COMMON
1375 help
1376 Twofish cipher algorithm (x86_64).
1377
1378 Twofish was submitted as an AES (Advanced Encryption Standard)
1379 candidate cipher by researchers at CounterPane Systems. It is a
1380 16 round block cipher supporting key sizes of 128, 192, and 256
1381 bits.
1382
1383 See also:
1384 <http://www.schneier.com/twofish.html>
1385
1386config CRYPTO_TWOFISH_X86_64_3WAY
1387 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
1388 depends on X86 && 64BIT
1389 select CRYPTO_ALGAPI
1390 select CRYPTO_TWOFISH_COMMON
1391 select CRYPTO_TWOFISH_X86_64
1392 select CRYPTO_GLUE_HELPER_X86
1393 select CRYPTO_LRW
1394 select CRYPTO_XTS
1395 help
1396 Twofish cipher algorithm (x86_64, 3-way parallel).
1397
1398 Twofish was submitted as an AES (Advanced Encryption Standard)
1399 candidate cipher by researchers at CounterPane Systems. It is a
1400 16 round block cipher supporting key sizes of 128, 192, and 256
1401 bits.
1402
1403 This module provides Twofish cipher algorithm that processes three
1404 blocks parallel, utilizing resources of out-of-order CPUs better.
1405
1406 See also:
1407 <http://www.schneier.com/twofish.html>
1408
1409config CRYPTO_TWOFISH_AVX_X86_64
1410 tristate "Twofish cipher algorithm (x86_64/AVX)"
1411 depends on X86 && 64BIT
1412 select CRYPTO_ALGAPI
1413 select CRYPTO_CRYPTD
1414 select CRYPTO_ABLK_HELPER_X86
1415 select CRYPTO_GLUE_HELPER_X86
1416 select CRYPTO_TWOFISH_COMMON
1417 select CRYPTO_TWOFISH_X86_64
1418 select CRYPTO_TWOFISH_X86_64_3WAY
1419 select CRYPTO_LRW
1420 select CRYPTO_XTS
1421 help
1422 Twofish cipher algorithm (x86_64/AVX).
1423
1424 Twofish was submitted as an AES (Advanced Encryption Standard)
1425 candidate cipher by researchers at CounterPane Systems. It is a
1426 16 round block cipher supporting key sizes of 128, 192, and 256
1427 bits.
1428
1429 This module provides the Twofish cipher algorithm that processes
1430 eight blocks parallel using the AVX Instruction Set.
1431
1432 See also:
1433 <http://www.schneier.com/twofish.html>
1434
1435config CRYPTO_TWOFISH_AVX2_X86_64
1436 tristate "Twofish cipher algorithm (x86_64/AVX2)"
1437 depends on X86 && 64BIT
1438 depends on BROKEN
1439 select CRYPTO_ALGAPI
1440 select CRYPTO_CRYPTD
1441 select CRYPTO_ABLK_HELPER_X86
1442 select CRYPTO_GLUE_HELPER_X86
1443 select CRYPTO_TWOFISH_COMMON
1444 select CRYPTO_TWOFISH_X86_64
1445 select CRYPTO_TWOFISH_X86_64_3WAY
1446 select CRYPTO_TWOFISH_AVX_X86_64
1447 select CRYPTO_LRW
1448 select CRYPTO_XTS
1449 help
1450 Twofish cipher algorithm (x86_64/AVX2).
1451
1452 Twofish was submitted as an AES (Advanced Encryption Standard)
1453 candidate cipher by researchers at CounterPane Systems. It is a
1454 16 round block cipher supporting key sizes of 128, 192, and 256
1455 bits.
1456
1457 See also:
1458 <http://www.schneier.com/twofish.html>
1459
1460comment "Compression"
1461
1462config CRYPTO_DEFLATE
1463 tristate "Deflate compression algorithm"
1464 select CRYPTO_ALGAPI
1465 select CRYPTO_ACOMP2
1466 select ZLIB_INFLATE
1467 select ZLIB_DEFLATE
1468 help
1469 This is the Deflate algorithm (RFC1951), specified for use in
1470 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1471
1472 You will most probably want this if using IPSec.
1473
1474config CRYPTO_ZLIB
1475 tristate "Zlib compression algorithm"
1476 select CRYPTO_PCOMP
1477 select ZLIB_INFLATE
1478 select ZLIB_DEFLATE
1479 select NLATTR
1480 help
1481 This is the zlib algorithm.
1482
1483config CRYPTO_LZO
1484 tristate "LZO compression algorithm"
1485 select CRYPTO_ALGAPI
1486 select LZO_COMPRESS
1487 select LZO_DECOMPRESS
1488 help
1489 This is the LZO algorithm.
1490
1491config CRYPTO_842
1492 tristate "842 compression algorithm"
1493 select CRYPTO_ALGAPI
1494 select 842_COMPRESS
1495 select 842_DECOMPRESS
1496 help
1497 This is the 842 algorithm.
1498
1499comment "Random Number Generation"
1500
1501config CRYPTO_ANSI_CPRNG
1502 tristate "Pseudo Random Number Generation for Cryptographic modules"
1503 default m
1504 select CRYPTO_AES
1505 select CRYPTO_RNG
1506 help
1507 This option enables the generic pseudo random number generator
1508 for cryptographic modules. Uses the Algorithm specified in
1509 ANSI X9.31 A.2.4. Note that this option must be enabled if
1510 CRYPTO_FIPS is selected
1511
1512menuconfig CRYPTO_DRBG_MENU
1513 tristate "NIST SP800-90A DRBG"
1514 help
1515 NIST SP800-90A compliant DRBG. In the following submenu, one or
1516 more of the DRBG types must be selected.
1517
1518if CRYPTO_DRBG_MENU
1519
1520config CRYPTO_DRBG_HMAC
1521 bool "Enable HMAC DRBG"
1522 default y
1523 select CRYPTO_HMAC
1524 help
1525 Enable the HMAC DRBG variant as defined in NIST SP800-90A.
1526
1527config CRYPTO_DRBG_HASH
1528 bool "Enable Hash DRBG"
1529 select CRYPTO_HASH
1530 help
1531 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1532
1533config CRYPTO_DRBG_CTR
1534 bool "Enable CTR DRBG"
1535 select CRYPTO_AES
1536 help
1537 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1538
1539config CRYPTO_DRBG
1540 tristate
1541 default CRYPTO_DRBG_MENU if (CRYPTO_DRBG_HMAC || CRYPTO_DRBG_HASH || CRYPTO_DRBG_CTR)
1542 select CRYPTO_RNG
1543 select CRYPTO_JITTERENTROPY
1544
1545endif
1546
1547config CRYPTO_JITTERENTROPY
1548 tristate "Jitterentropy Non-Deterministic Random Number Generator"
1549 help
1550 The Jitterentropy RNG is a noise that is intended
1551 to provide seed to another RNG. The RNG does not
1552 perform any cryptographic whitening of the generated
1553 random numbers. This Jitterentropy RNG registers with
1554 the kernel crypto API and can be used by any caller.
1555
1556config CRYPTO_USER_API
1557 tristate
1558
1559config CRYPTO_USER_API_HASH
1560 tristate "User-space interface for hash algorithms"
1561 depends on NET
1562 select CRYPTO_HASH
1563 select CRYPTO_USER_API
1564 help
1565 This option enables the user-spaces interface for hash
1566 algorithms.
1567
1568config CRYPTO_USER_API_SKCIPHER
1569 tristate "User-space interface for symmetric key cipher algorithms"
1570 depends on NET
1571 select CRYPTO_BLKCIPHER
1572 select CRYPTO_USER_API
1573 help
1574 This option enables the user-spaces interface for symmetric
1575 key cipher algorithms.
1576
1577config CRYPTO_USER_API_RNG
1578 tristate "User-space interface for random number generator algorithms"
1579 depends on NET
1580 select CRYPTO_RNG
1581 select CRYPTO_USER_API
1582 help
1583 This option enables the user-spaces interface for random
1584 number generator algorithms.
1585
1586config CRYPTO_HASH_INFO
1587 bool
1588
1589source "drivers/crypto/Kconfig"
1590source crypto/asymmetric_keys/Kconfig
1591
1592endif
1593