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