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