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