1# SPDX-License-Identifier: GPL-2.0 2# 3# Generic algorithms support 4# 5config XOR_BLOCKS 6 tristate 7 8# 9# async_tx api: hardware offloaded memory transfer/transform support 10# 11source "crypto/async_tx/Kconfig" 12 13# 14# Cryptographic API Configuration 15# 16menuconfig CRYPTO 17 tristate "Cryptographic API" 18 select LIB_MEMNEQ 19 help 20 This option provides the core Cryptographic API. 21 22if CRYPTO 23 24comment "Crypto core or helper" 25 26config CRYPTO_FIPS 27 bool "FIPS 200 compliance" 28 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS 29 depends on (MODULE_SIG || !MODULES) 30 help 31 This option enables the fips boot option which is 32 required if you want the system to operate in a FIPS 200 33 certification. You should say no unless you know what 34 this is. 35 36config CRYPTO_ALGAPI 37 tristate 38 select CRYPTO_ALGAPI2 39 help 40 This option provides the API for cryptographic algorithms. 41 42config CRYPTO_ALGAPI2 43 tristate 44 45config CRYPTO_AEAD 46 tristate 47 select CRYPTO_AEAD2 48 select CRYPTO_ALGAPI 49 50config CRYPTO_AEAD2 51 tristate 52 select CRYPTO_ALGAPI2 53 select CRYPTO_NULL2 54 select CRYPTO_RNG2 55 56config CRYPTO_SKCIPHER 57 tristate 58 select CRYPTO_SKCIPHER2 59 select CRYPTO_ALGAPI 60 61config CRYPTO_SKCIPHER2 62 tristate 63 select CRYPTO_ALGAPI2 64 select CRYPTO_RNG2 65 66config CRYPTO_HASH 67 tristate 68 select CRYPTO_HASH2 69 select CRYPTO_ALGAPI 70 71config CRYPTO_HASH2 72 tristate 73 select CRYPTO_ALGAPI2 74 75config CRYPTO_RNG 76 tristate 77 select CRYPTO_RNG2 78 select CRYPTO_ALGAPI 79 80config CRYPTO_RNG2 81 tristate 82 select CRYPTO_ALGAPI2 83 84config CRYPTO_RNG_DEFAULT 85 tristate 86 select CRYPTO_DRBG_MENU 87 88config CRYPTO_AKCIPHER2 89 tristate 90 select CRYPTO_ALGAPI2 91 92config CRYPTO_AKCIPHER 93 tristate 94 select CRYPTO_AKCIPHER2 95 select CRYPTO_ALGAPI 96 97config CRYPTO_KPP2 98 tristate 99 select CRYPTO_ALGAPI2 100 101config CRYPTO_KPP 102 tristate 103 select CRYPTO_ALGAPI 104 select CRYPTO_KPP2 105 106config CRYPTO_ACOMP2 107 tristate 108 select CRYPTO_ALGAPI2 109 select SGL_ALLOC 110 111config CRYPTO_ACOMP 112 tristate 113 select CRYPTO_ALGAPI 114 select CRYPTO_ACOMP2 115 116config CRYPTO_MANAGER 117 tristate "Cryptographic algorithm manager" 118 select CRYPTO_MANAGER2 119 help 120 Create default cryptographic template instantiations such as 121 cbc(aes). 122 123config CRYPTO_MANAGER2 124 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) 125 select CRYPTO_AEAD2 126 select CRYPTO_HASH2 127 select CRYPTO_SKCIPHER2 128 select CRYPTO_AKCIPHER2 129 select CRYPTO_KPP2 130 select CRYPTO_ACOMP2 131 132config CRYPTO_USER 133 tristate "Userspace cryptographic algorithm configuration" 134 depends on NET 135 select CRYPTO_MANAGER 136 help 137 Userspace configuration for cryptographic instantiations such as 138 cbc(aes). 139 140config CRYPTO_MANAGER_DISABLE_TESTS 141 bool "Disable run-time self tests" 142 default y 143 help 144 Disable run-time self tests that normally take place at 145 algorithm registration. 146 147config CRYPTO_MANAGER_EXTRA_TESTS 148 bool "Enable extra run-time crypto self tests" 149 depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER 150 help 151 Enable extra run-time self tests of registered crypto algorithms, 152 including randomized fuzz tests. 153 154 This is intended for developer use only, as these tests take much 155 longer to run than the normal self tests. 156 157config CRYPTO_GF128MUL 158 tristate 159 160config CRYPTO_NULL 161 tristate "Null algorithms" 162 select CRYPTO_NULL2 163 help 164 These are 'Null' algorithms, used by IPsec, which do nothing. 165 166config CRYPTO_NULL2 167 tristate 168 select CRYPTO_ALGAPI2 169 select CRYPTO_SKCIPHER2 170 select CRYPTO_HASH2 171 172config CRYPTO_PCRYPT 173 tristate "Parallel crypto engine" 174 depends on SMP 175 select PADATA 176 select CRYPTO_MANAGER 177 select CRYPTO_AEAD 178 help 179 This converts an arbitrary crypto algorithm into a parallel 180 algorithm that executes in kernel threads. 181 182config CRYPTO_CRYPTD 183 tristate "Software async crypto daemon" 184 select CRYPTO_SKCIPHER 185 select CRYPTO_HASH 186 select CRYPTO_MANAGER 187 help 188 This is a generic software asynchronous crypto daemon that 189 converts an arbitrary synchronous software crypto algorithm 190 into an asynchronous algorithm that executes in a kernel thread. 191 192config CRYPTO_AUTHENC 193 tristate "Authenc support" 194 select CRYPTO_AEAD 195 select CRYPTO_SKCIPHER 196 select CRYPTO_MANAGER 197 select CRYPTO_HASH 198 select CRYPTO_NULL 199 help 200 Authenc: Combined mode wrapper for IPsec. 201 This is required for IPSec. 202 203config CRYPTO_TEST 204 tristate "Testing module" 205 depends on m 206 select CRYPTO_MANAGER 207 help 208 Quick & dirty crypto test module. 209 210config CRYPTO_SIMD 211 tristate 212 select CRYPTO_CRYPTD 213 214config CRYPTO_GLUE_HELPER_X86 215 tristate 216 depends on X86 217 select CRYPTO_SKCIPHER 218 219config CRYPTO_ENGINE 220 tristate 221 222comment "Public-key cryptography" 223 224config CRYPTO_RSA 225 tristate "RSA algorithm" 226 select CRYPTO_AKCIPHER 227 select CRYPTO_MANAGER 228 select MPILIB 229 select ASN1 230 help 231 Generic implementation of the RSA public key algorithm. 232 233config CRYPTO_DH 234 tristate "Diffie-Hellman algorithm" 235 select CRYPTO_KPP 236 select MPILIB 237 help 238 Generic implementation of the Diffie-Hellman algorithm. 239 240config CRYPTO_ECC 241 tristate 242 select CRYPTO_RNG_DEFAULT 243 244config CRYPTO_ECDH 245 tristate "ECDH algorithm" 246 select CRYPTO_ECC 247 select CRYPTO_KPP 248 help 249 Generic implementation of the ECDH algorithm 250 251config CRYPTO_ECDSA 252 tristate "ECDSA (NIST P192, P256 etc.) algorithm" 253 select CRYPTO_ECC 254 select CRYPTO_AKCIPHER 255 select ASN1 256 help 257 Elliptic Curve Digital Signature Algorithm (NIST P192, P256 etc.) 258 is A NIST cryptographic standard algorithm. Only signature verification 259 is implemented. 260 261config CRYPTO_ECRDSA 262 tristate "EC-RDSA (GOST 34.10) algorithm" 263 select CRYPTO_ECC 264 select CRYPTO_AKCIPHER 265 select CRYPTO_STREEBOG 266 select OID_REGISTRY 267 select ASN1 268 help 269 Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, 270 RFC 7091, ISO/IEC 14888-3:2018) is one of the Russian cryptographic 271 standard algorithms (called GOST algorithms). Only signature verification 272 is implemented. 273 274config CRYPTO_SM2 275 tristate "SM2 algorithm" 276 select CRYPTO_SM3 277 select CRYPTO_AKCIPHER 278 select CRYPTO_MANAGER 279 select MPILIB 280 select ASN1 281 help 282 Generic implementation of the SM2 public key algorithm. It was 283 published by State Encryption Management Bureau, China. 284 as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012. 285 286 References: 287 https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02 288 http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml 289 http://www.gmbz.org.cn/main/bzlb.html 290 291config CRYPTO_CURVE25519 292 tristate "Curve25519 algorithm" 293 select CRYPTO_KPP 294 select CRYPTO_LIB_CURVE25519_GENERIC 295 296config CRYPTO_CURVE25519_X86 297 tristate "x86_64 accelerated Curve25519 scalar multiplication library" 298 depends on X86 && 64BIT 299 select CRYPTO_LIB_CURVE25519_GENERIC 300 select CRYPTO_ARCH_HAVE_LIB_CURVE25519 301 302comment "Authenticated Encryption with Associated Data" 303 304config CRYPTO_CCM 305 tristate "CCM support" 306 select CRYPTO_CTR 307 select CRYPTO_HASH 308 select CRYPTO_AEAD 309 select CRYPTO_MANAGER 310 help 311 Support for Counter with CBC MAC. Required for IPsec. 312 313config CRYPTO_GCM 314 tristate "GCM/GMAC support" 315 select CRYPTO_CTR 316 select CRYPTO_AEAD 317 select CRYPTO_GHASH 318 select CRYPTO_NULL 319 select CRYPTO_MANAGER 320 help 321 Support for Galois/Counter Mode (GCM) and Galois Message 322 Authentication Code (GMAC). Required for IPSec. 323 324config CRYPTO_CHACHA20POLY1305 325 tristate "ChaCha20-Poly1305 AEAD support" 326 select CRYPTO_CHACHA20 327 select CRYPTO_POLY1305 328 select CRYPTO_AEAD 329 select CRYPTO_MANAGER 330 help 331 ChaCha20-Poly1305 AEAD support, RFC7539. 332 333 Support for the AEAD wrapper using the ChaCha20 stream cipher combined 334 with the Poly1305 authenticator. It is defined in RFC7539 for use in 335 IETF protocols. 336 337config CRYPTO_AEGIS128 338 tristate "AEGIS-128 AEAD algorithm" 339 select CRYPTO_AEAD 340 select CRYPTO_AES # for AES S-box tables 341 help 342 Support for the AEGIS-128 dedicated AEAD algorithm. 343 344config CRYPTO_AEGIS128_SIMD 345 bool "Support SIMD acceleration for AEGIS-128" 346 depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) 347 default y 348 349config CRYPTO_AEGIS128_AESNI_SSE2 350 tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)" 351 depends on X86 && 64BIT 352 select CRYPTO_AEAD 353 select CRYPTO_SIMD 354 help 355 AESNI+SSE2 implementation of the AEGIS-128 dedicated AEAD algorithm. 356 357config CRYPTO_SEQIV 358 tristate "Sequence Number IV Generator" 359 select CRYPTO_AEAD 360 select CRYPTO_SKCIPHER 361 select CRYPTO_NULL 362 select CRYPTO_RNG_DEFAULT 363 select CRYPTO_MANAGER 364 help 365 This IV generator generates an IV based on a sequence number by 366 xoring it with a salt. This algorithm is mainly useful for CTR 367 368config CRYPTO_ECHAINIV 369 tristate "Encrypted Chain IV Generator" 370 select CRYPTO_AEAD 371 select CRYPTO_NULL 372 select CRYPTO_RNG_DEFAULT 373 select CRYPTO_MANAGER 374 help 375 This IV generator generates an IV based on the encryption of 376 a sequence number xored with a salt. This is the default 377 algorithm for CBC. 378 379comment "Block modes" 380 381config CRYPTO_CBC 382 tristate "CBC support" 383 select CRYPTO_SKCIPHER 384 select CRYPTO_MANAGER 385 help 386 CBC: Cipher Block Chaining mode 387 This block cipher algorithm is required for IPSec. 388 389config CRYPTO_CFB 390 tristate "CFB support" 391 select CRYPTO_SKCIPHER 392 select CRYPTO_MANAGER 393 help 394 CFB: Cipher FeedBack mode 395 This block cipher algorithm is required for TPM2 Cryptography. 396 397config CRYPTO_CTR 398 tristate "CTR support" 399 select CRYPTO_SKCIPHER 400 select CRYPTO_MANAGER 401 help 402 CTR: Counter mode 403 This block cipher algorithm is required for IPSec. 404 405config CRYPTO_CTS 406 tristate "CTS support" 407 select CRYPTO_SKCIPHER 408 select CRYPTO_MANAGER 409 help 410 CTS: Cipher Text Stealing 411 This is the Cipher Text Stealing mode as described by 412 Section 8 of rfc2040 and referenced by rfc3962 413 (rfc3962 includes errata information in its Appendix A) or 414 CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010. 415 This mode is required for Kerberos gss mechanism support 416 for AES encryption. 417 418 See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final 419 420config CRYPTO_ECB 421 tristate "ECB support" 422 select CRYPTO_SKCIPHER 423 select CRYPTO_MANAGER 424 help 425 ECB: Electronic CodeBook mode 426 This is the simplest block cipher algorithm. It simply encrypts 427 the input block by block. 428 429config CRYPTO_LRW 430 tristate "LRW support" 431 select CRYPTO_SKCIPHER 432 select CRYPTO_MANAGER 433 select CRYPTO_GF128MUL 434 help 435 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 436 narrow block cipher mode for dm-crypt. Use it with cipher 437 specification string aes-lrw-benbi, the key must be 256, 320 or 384. 438 The first 128, 192 or 256 bits in the key are used for AES and the 439 rest is used to tie each cipher block to its logical position. 440 441config CRYPTO_OFB 442 tristate "OFB support" 443 select CRYPTO_SKCIPHER 444 select CRYPTO_MANAGER 445 help 446 OFB: the Output Feedback mode makes a block cipher into a synchronous 447 stream cipher. It generates keystream blocks, which are then XORed 448 with the plaintext blocks to get the ciphertext. Flipping a bit in the 449 ciphertext produces a flipped bit in the plaintext at the same 450 location. This property allows many error correcting codes to function 451 normally even when applied before encryption. 452 453config CRYPTO_PCBC 454 tristate "PCBC support" 455 select CRYPTO_SKCIPHER 456 select CRYPTO_MANAGER 457 help 458 PCBC: Propagating Cipher Block Chaining mode 459 This block cipher algorithm is required for RxRPC. 460 461config CRYPTO_XTS 462 tristate "XTS support" 463 select CRYPTO_SKCIPHER 464 select CRYPTO_MANAGER 465 select CRYPTO_ECB 466 help 467 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 468 key size 256, 384 or 512 bits. This implementation currently 469 can't handle a sectorsize which is not a multiple of 16 bytes. 470 471config CRYPTO_KEYWRAP 472 tristate "Key wrapping support" 473 select CRYPTO_SKCIPHER 474 select CRYPTO_MANAGER 475 help 476 Support for key wrapping (NIST SP800-38F / RFC3394) without 477 padding. 478 479config CRYPTO_NHPOLY1305 480 tristate 481 select CRYPTO_HASH 482 select CRYPTO_LIB_POLY1305_GENERIC 483 484config CRYPTO_NHPOLY1305_SSE2 485 tristate "NHPoly1305 hash function (x86_64 SSE2 implementation)" 486 depends on X86 && 64BIT 487 select CRYPTO_NHPOLY1305 488 help 489 SSE2 optimized implementation of the hash function used by the 490 Adiantum encryption mode. 491 492config CRYPTO_NHPOLY1305_AVX2 493 tristate "NHPoly1305 hash function (x86_64 AVX2 implementation)" 494 depends on X86 && 64BIT 495 select CRYPTO_NHPOLY1305 496 help 497 AVX2 optimized implementation of the hash function used by the 498 Adiantum encryption mode. 499 500config CRYPTO_ADIANTUM 501 tristate "Adiantum support" 502 select CRYPTO_CHACHA20 503 select CRYPTO_LIB_POLY1305_GENERIC 504 select CRYPTO_NHPOLY1305 505 select CRYPTO_MANAGER 506 help 507 Adiantum is a tweakable, length-preserving encryption mode 508 designed for fast and secure disk encryption, especially on 509 CPUs without dedicated crypto instructions. It encrypts 510 each sector using the XChaCha12 stream cipher, two passes of 511 an ε-almost-∆-universal hash function, and an invocation of 512 the AES-256 block cipher on a single 16-byte block. On CPUs 513 without AES instructions, Adiantum is much faster than 514 AES-XTS. 515 516 Adiantum's security is provably reducible to that of its 517 underlying stream and block ciphers, subject to a security 518 bound. Unlike XTS, Adiantum is a true wide-block encryption 519 mode, so it actually provides an even stronger notion of 520 security than XTS, subject to the security bound. 521 522 If unsure, say N. 523 524config CRYPTO_ESSIV 525 tristate "ESSIV support for block encryption" 526 select CRYPTO_AUTHENC 527 help 528 Encrypted salt-sector initialization vector (ESSIV) is an IV 529 generation method that is used in some cases by fscrypt and/or 530 dm-crypt. It uses the hash of the block encryption key as the 531 symmetric key for a block encryption pass applied to the input 532 IV, making low entropy IV sources more suitable for block 533 encryption. 534 535 This driver implements a crypto API template that can be 536 instantiated either as an skcipher or as an AEAD (depending on the 537 type of the first template argument), and which defers encryption 538 and decryption requests to the encapsulated cipher after applying 539 ESSIV to the input IV. Note that in the AEAD case, it is assumed 540 that the keys are presented in the same format used by the authenc 541 template, and that the IV appears at the end of the authenticated 542 associated data (AAD) region (which is how dm-crypt uses it.) 543 544 Note that the use of ESSIV is not recommended for new deployments, 545 and so this only needs to be enabled when interoperability with 546 existing encrypted volumes of filesystems is required, or when 547 building for a particular system that requires it (e.g., when 548 the SoC in question has accelerated CBC but not XTS, making CBC 549 combined with ESSIV the only feasible mode for h/w accelerated 550 block encryption) 551 552comment "Hash modes" 553 554config CRYPTO_CMAC 555 tristate "CMAC support" 556 select CRYPTO_HASH 557 select CRYPTO_MANAGER 558 help 559 Cipher-based Message Authentication Code (CMAC) specified by 560 The National Institute of Standards and Technology (NIST). 561 562 https://tools.ietf.org/html/rfc4493 563 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf 564 565config CRYPTO_HMAC 566 tristate "HMAC support" 567 select CRYPTO_HASH 568 select CRYPTO_MANAGER 569 help 570 HMAC: Keyed-Hashing for Message Authentication (RFC2104). 571 This is required for IPSec. 572 573config CRYPTO_XCBC 574 tristate "XCBC support" 575 select CRYPTO_HASH 576 select CRYPTO_MANAGER 577 help 578 XCBC: Keyed-Hashing with encryption algorithm 579 https://www.ietf.org/rfc/rfc3566.txt 580 http://csrc.nist.gov/encryption/modes/proposedmodes/ 581 xcbc-mac/xcbc-mac-spec.pdf 582 583config CRYPTO_VMAC 584 tristate "VMAC support" 585 select CRYPTO_HASH 586 select CRYPTO_MANAGER 587 help 588 VMAC is a message authentication algorithm designed for 589 very high speed on 64-bit architectures. 590 591 See also: 592 <https://fastcrypto.org/vmac> 593 594comment "Digest" 595 596config CRYPTO_CRC32C 597 tristate "CRC32c CRC algorithm" 598 select CRYPTO_HASH 599 select CRC32 600 help 601 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 602 by iSCSI for header and data digests and by others. 603 See Castagnoli93. Module will be crc32c. 604 605config CRYPTO_CRC32C_INTEL 606 tristate "CRC32c INTEL hardware acceleration" 607 depends on X86 608 select CRYPTO_HASH 609 help 610 In Intel processor with SSE4.2 supported, the processor will 611 support CRC32C implementation using hardware accelerated CRC32 612 instruction. This option will create 'crc32c-intel' module, 613 which will enable any routine to use the CRC32 instruction to 614 gain performance compared with software implementation. 615 Module will be crc32c-intel. 616 617config CRYPTO_CRC32C_VPMSUM 618 tristate "CRC32c CRC algorithm (powerpc64)" 619 depends on PPC64 && ALTIVEC 620 select CRYPTO_HASH 621 select CRC32 622 help 623 CRC32c algorithm implemented using vector polynomial multiply-sum 624 (vpmsum) instructions, introduced in POWER8. Enable on POWER8 625 and newer processors for improved performance. 626 627 628config CRYPTO_CRC32C_SPARC64 629 tristate "CRC32c CRC algorithm (SPARC64)" 630 depends on SPARC64 631 select CRYPTO_HASH 632 select CRC32 633 help 634 CRC32c CRC algorithm implemented using sparc64 crypto instructions, 635 when available. 636 637config CRYPTO_CRC32 638 tristate "CRC32 CRC algorithm" 639 select CRYPTO_HASH 640 select CRC32 641 help 642 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm. 643 Shash crypto api wrappers to crc32_le function. 644 645config CRYPTO_CRC32_PCLMUL 646 tristate "CRC32 PCLMULQDQ hardware acceleration" 647 depends on X86 648 select CRYPTO_HASH 649 select CRC32 650 help 651 From Intel Westmere and AMD Bulldozer processor with SSE4.2 652 and PCLMULQDQ supported, the processor will support 653 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ 654 instruction. This option will create 'crc32-pclmul' module, 655 which will enable any routine to use the CRC-32-IEEE 802.3 checksum 656 and gain better performance as compared with the table implementation. 657 658config CRYPTO_CRC32_MIPS 659 tristate "CRC32c and CRC32 CRC algorithm (MIPS)" 660 depends on MIPS_CRC_SUPPORT 661 select CRYPTO_HASH 662 help 663 CRC32c and CRC32 CRC algorithms implemented using mips crypto 664 instructions, when available. 665 666config CRYPTO_CRC32_LOONGARCH 667 tristate "CRC32c and CRC32 CRC algorithm (LoongArch)" 668 depends on LOONGARCH 669 select CRC32 670 select CRYPTO_HASH 671 help 672 CRC32c and CRC32 CRC algorithms implemented using LoongArch 673 CRC32 instructions, when available. 674 675config CRYPTO_XXHASH 676 tristate "xxHash hash algorithm" 677 select CRYPTO_HASH 678 select XXHASH 679 help 680 xxHash non-cryptographic hash algorithm. Extremely fast, working at 681 speeds close to RAM limits. 682 683config CRYPTO_BLAKE2B 684 tristate "BLAKE2b digest algorithm" 685 select CRYPTO_HASH 686 help 687 Implementation of cryptographic hash function BLAKE2b (or just BLAKE2), 688 optimized for 64bit platforms and can produce digests of any size 689 between 1 to 64. The keyed hash is also implemented. 690 691 This module provides the following algorithms: 692 693 - blake2b-160 694 - blake2b-256 695 - blake2b-384 696 - blake2b-512 697 698 See https://blake2.net for further information. 699 700config CRYPTO_BLAKE2S 701 tristate "BLAKE2s digest algorithm" 702 select CRYPTO_LIB_BLAKE2S_GENERIC 703 select CRYPTO_HASH 704 help 705 Implementation of cryptographic hash function BLAKE2s 706 optimized for 8-32bit platforms and can produce digests of any size 707 between 1 to 32. The keyed hash is also implemented. 708 709 This module provides the following algorithms: 710 711 - blake2s-128 712 - blake2s-160 713 - blake2s-224 714 - blake2s-256 715 716 See https://blake2.net for further information. 717 718config CRYPTO_BLAKE2S_X86 719 tristate "BLAKE2s digest algorithm (x86 accelerated version)" 720 depends on X86 && 64BIT 721 select CRYPTO_LIB_BLAKE2S_GENERIC 722 select CRYPTO_ARCH_HAVE_LIB_BLAKE2S 723 724config CRYPTO_CRCT10DIF 725 tristate "CRCT10DIF algorithm" 726 select CRYPTO_HASH 727 help 728 CRC T10 Data Integrity Field computation is being cast as 729 a crypto transform. This allows for faster crc t10 diff 730 transforms to be used if they are available. 731 732config CRYPTO_CRCT10DIF_PCLMUL 733 tristate "CRCT10DIF PCLMULQDQ hardware acceleration" 734 depends on X86 && 64BIT && CRC_T10DIF 735 select CRYPTO_HASH 736 help 737 For x86_64 processors with SSE4.2 and PCLMULQDQ supported, 738 CRC T10 DIF PCLMULQDQ computation can be hardware 739 accelerated PCLMULQDQ instruction. This option will create 740 'crct10dif-pclmul' module, which is faster when computing the 741 crct10dif checksum as compared with the generic table implementation. 742 743config CRYPTO_CRCT10DIF_VPMSUM 744 tristate "CRC32T10DIF powerpc64 hardware acceleration" 745 depends on PPC64 && ALTIVEC && CRC_T10DIF 746 select CRYPTO_HASH 747 help 748 CRC10T10DIF algorithm implemented using vector polynomial 749 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on 750 POWER8 and newer processors for improved performance. 751 752config CRYPTO_VPMSUM_TESTER 753 tristate "Powerpc64 vpmsum hardware acceleration tester" 754 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM 755 help 756 Stress test for CRC32c and CRC-T10DIF algorithms implemented with 757 POWER8 vpmsum instructions. 758 Unless you are testing these algorithms, you don't need this. 759 760config CRYPTO_GHASH 761 tristate "GHASH hash function" 762 select CRYPTO_GF128MUL 763 select CRYPTO_HASH 764 help 765 GHASH is the hash function used in GCM (Galois/Counter Mode). 766 It is not a general-purpose cryptographic hash function. 767 768config CRYPTO_POLY1305 769 tristate "Poly1305 authenticator algorithm" 770 select CRYPTO_HASH 771 select CRYPTO_LIB_POLY1305_GENERIC 772 help 773 Poly1305 authenticator algorithm, RFC7539. 774 775 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. 776 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use 777 in IETF protocols. This is the portable C implementation of Poly1305. 778 779config CRYPTO_POLY1305_X86_64 780 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)" 781 depends on X86 && 64BIT 782 select CRYPTO_LIB_POLY1305_GENERIC 783 select CRYPTO_ARCH_HAVE_LIB_POLY1305 784 help 785 Poly1305 authenticator algorithm, RFC7539. 786 787 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. 788 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use 789 in IETF protocols. This is the x86_64 assembler implementation using SIMD 790 instructions. 791 792config CRYPTO_POLY1305_MIPS 793 tristate "Poly1305 authenticator algorithm (MIPS optimized)" 794 depends on MIPS 795 select CRYPTO_ARCH_HAVE_LIB_POLY1305 796 797config CRYPTO_MD4 798 tristate "MD4 digest algorithm" 799 select CRYPTO_HASH 800 help 801 MD4 message digest algorithm (RFC1320). 802 803config CRYPTO_MD5 804 tristate "MD5 digest algorithm" 805 select CRYPTO_HASH 806 help 807 MD5 message digest algorithm (RFC1321). 808 809config CRYPTO_MD5_OCTEON 810 tristate "MD5 digest algorithm (OCTEON)" 811 depends on CPU_CAVIUM_OCTEON 812 select CRYPTO_MD5 813 select CRYPTO_HASH 814 help 815 MD5 message digest algorithm (RFC1321) implemented 816 using OCTEON crypto instructions, when available. 817 818config CRYPTO_MD5_PPC 819 tristate "MD5 digest algorithm (PPC)" 820 depends on PPC 821 select CRYPTO_HASH 822 help 823 MD5 message digest algorithm (RFC1321) implemented 824 in PPC assembler. 825 826config CRYPTO_MD5_SPARC64 827 tristate "MD5 digest algorithm (SPARC64)" 828 depends on SPARC64 829 select CRYPTO_MD5 830 select CRYPTO_HASH 831 help 832 MD5 message digest algorithm (RFC1321) implemented 833 using sparc64 crypto instructions, when available. 834 835config CRYPTO_MICHAEL_MIC 836 tristate "Michael MIC keyed digest algorithm" 837 select CRYPTO_HASH 838 help 839 Michael MIC is used for message integrity protection in TKIP 840 (IEEE 802.11i). This algorithm is required for TKIP, but it 841 should not be used for other purposes because of the weakness 842 of the algorithm. 843 844config CRYPTO_RMD128 845 tristate "RIPEMD-128 digest algorithm" 846 select CRYPTO_HASH 847 help 848 RIPEMD-128 (ISO/IEC 10118-3:2004). 849 850 RIPEMD-128 is a 128-bit cryptographic hash function. It should only 851 be used as a secure replacement for RIPEMD. For other use cases, 852 RIPEMD-160 should be used. 853 854 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 855 See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 856 857config CRYPTO_RMD160 858 tristate "RIPEMD-160 digest algorithm" 859 select CRYPTO_HASH 860 help 861 RIPEMD-160 (ISO/IEC 10118-3:2004). 862 863 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended 864 to be used as a secure replacement for the 128-bit hash functions 865 MD4, MD5 and it's predecessor RIPEMD 866 (not to be confused with RIPEMD-128). 867 868 It's speed is comparable to SHA1 and there are no known attacks 869 against RIPEMD-160. 870 871 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 872 See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 873 874config CRYPTO_RMD256 875 tristate "RIPEMD-256 digest algorithm" 876 select CRYPTO_HASH 877 help 878 RIPEMD-256 is an optional extension of RIPEMD-128 with a 879 256 bit hash. It is intended for applications that require 880 longer hash-results, without needing a larger security level 881 (than RIPEMD-128). 882 883 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 884 See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 885 886config CRYPTO_RMD320 887 tristate "RIPEMD-320 digest algorithm" 888 select CRYPTO_HASH 889 help 890 RIPEMD-320 is an optional extension of RIPEMD-160 with a 891 320 bit hash. It is intended for applications that require 892 longer hash-results, without needing a larger security level 893 (than RIPEMD-160). 894 895 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 896 See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 897 898config CRYPTO_SHA1 899 tristate "SHA1 digest algorithm" 900 select CRYPTO_HASH 901 help 902 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 903 904config CRYPTO_SHA1_SSSE3 905 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" 906 depends on X86 && 64BIT 907 select CRYPTO_SHA1 908 select CRYPTO_HASH 909 help 910 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 911 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector 912 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions), 913 when available. 914 915config CRYPTO_SHA256_SSSE3 916 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" 917 depends on X86 && 64BIT 918 select CRYPTO_SHA256 919 select CRYPTO_HASH 920 help 921 SHA-256 secure hash standard (DFIPS 180-2) implemented 922 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector 923 Extensions version 1 (AVX1), or Advanced Vector Extensions 924 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New 925 Instructions) when available. 926 927config CRYPTO_SHA512_SSSE3 928 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)" 929 depends on X86 && 64BIT 930 select CRYPTO_SHA512 931 select CRYPTO_HASH 932 help 933 SHA-512 secure hash standard (DFIPS 180-2) implemented 934 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector 935 Extensions version 1 (AVX1), or Advanced Vector Extensions 936 version 2 (AVX2) instructions, when available. 937 938config CRYPTO_SHA1_OCTEON 939 tristate "SHA1 digest algorithm (OCTEON)" 940 depends on CPU_CAVIUM_OCTEON 941 select CRYPTO_SHA1 942 select CRYPTO_HASH 943 help 944 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 945 using OCTEON crypto instructions, when available. 946 947config CRYPTO_SHA1_SPARC64 948 tristate "SHA1 digest algorithm (SPARC64)" 949 depends on SPARC64 950 select CRYPTO_SHA1 951 select CRYPTO_HASH 952 help 953 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 954 using sparc64 crypto instructions, when available. 955 956config CRYPTO_SHA1_PPC 957 tristate "SHA1 digest algorithm (powerpc)" 958 depends on PPC 959 help 960 This is the powerpc hardware accelerated implementation of the 961 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 962 963config CRYPTO_SHA1_PPC_SPE 964 tristate "SHA1 digest algorithm (PPC SPE)" 965 depends on PPC && SPE 966 help 967 SHA-1 secure hash standard (DFIPS 180-4) implemented 968 using powerpc SPE SIMD instruction set. 969 970config CRYPTO_SHA256 971 tristate "SHA224 and SHA256 digest algorithm" 972 select CRYPTO_HASH 973 select CRYPTO_LIB_SHA256 974 help 975 SHA256 secure hash standard (DFIPS 180-2). 976 977 This version of SHA implements a 256 bit hash with 128 bits of 978 security against collision attacks. 979 980 This code also includes SHA-224, a 224 bit hash with 112 bits 981 of security against collision attacks. 982 983config CRYPTO_SHA256_PPC_SPE 984 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)" 985 depends on PPC && SPE 986 select CRYPTO_SHA256 987 select CRYPTO_HASH 988 help 989 SHA224 and SHA256 secure hash standard (DFIPS 180-2) 990 implemented using powerpc SPE SIMD instruction set. 991 992config CRYPTO_SHA256_OCTEON 993 tristate "SHA224 and SHA256 digest algorithm (OCTEON)" 994 depends on CPU_CAVIUM_OCTEON 995 select CRYPTO_SHA256 996 select CRYPTO_HASH 997 help 998 SHA-256 secure hash standard (DFIPS 180-2) implemented 999 using OCTEON crypto instructions, when available. 1000 1001config CRYPTO_SHA256_SPARC64 1002 tristate "SHA224 and SHA256 digest algorithm (SPARC64)" 1003 depends on SPARC64 1004 select CRYPTO_SHA256 1005 select CRYPTO_HASH 1006 help 1007 SHA-256 secure hash standard (DFIPS 180-2) implemented 1008 using sparc64 crypto instructions, when available. 1009 1010config CRYPTO_SHA512 1011 tristate "SHA384 and SHA512 digest algorithms" 1012 select CRYPTO_HASH 1013 help 1014 SHA512 secure hash standard (DFIPS 180-2). 1015 1016 This version of SHA implements a 512 bit hash with 256 bits of 1017 security against collision attacks. 1018 1019 This code also includes SHA-384, a 384 bit hash with 192 bits 1020 of security against collision attacks. 1021 1022config CRYPTO_SHA512_OCTEON 1023 tristate "SHA384 and SHA512 digest algorithms (OCTEON)" 1024 depends on CPU_CAVIUM_OCTEON 1025 select CRYPTO_SHA512 1026 select CRYPTO_HASH 1027 help 1028 SHA-512 secure hash standard (DFIPS 180-2) implemented 1029 using OCTEON crypto instructions, when available. 1030 1031config CRYPTO_SHA512_SPARC64 1032 tristate "SHA384 and SHA512 digest algorithm (SPARC64)" 1033 depends on SPARC64 1034 select CRYPTO_SHA512 1035 select CRYPTO_HASH 1036 help 1037 SHA-512 secure hash standard (DFIPS 180-2) implemented 1038 using sparc64 crypto instructions, when available. 1039 1040config CRYPTO_SHA3 1041 tristate "SHA3 digest algorithm" 1042 select CRYPTO_HASH 1043 help 1044 SHA-3 secure hash standard (DFIPS 202). It's based on 1045 cryptographic sponge function family called Keccak. 1046 1047 References: 1048 http://keccak.noekeon.org/ 1049 1050config CRYPTO_SM3 1051 tristate "SM3 digest algorithm" 1052 select CRYPTO_HASH 1053 help 1054 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3). 1055 It is part of the Chinese Commercial Cryptography suite. 1056 1057 References: 1058 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf 1059 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash 1060 1061config CRYPTO_STREEBOG 1062 tristate "Streebog Hash Function" 1063 select CRYPTO_HASH 1064 help 1065 Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian 1066 cryptographic standard algorithms (called GOST algorithms). 1067 This setting enables two hash algorithms with 256 and 512 bits output. 1068 1069 References: 1070 https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf 1071 https://tools.ietf.org/html/rfc6986 1072 1073config CRYPTO_TGR192 1074 tristate "Tiger digest algorithms" 1075 select CRYPTO_HASH 1076 help 1077 Tiger hash algorithm 192, 160 and 128-bit hashes 1078 1079 Tiger is a hash function optimized for 64-bit processors while 1080 still having decent performance on 32-bit processors. 1081 Tiger was developed by Ross Anderson and Eli Biham. 1082 1083 See also: 1084 <https://www.cs.technion.ac.il/~biham/Reports/Tiger/>. 1085 1086config CRYPTO_WP512 1087 tristate "Whirlpool digest algorithms" 1088 select CRYPTO_HASH 1089 help 1090 Whirlpool hash algorithm 512, 384 and 256-bit hashes 1091 1092 Whirlpool-512 is part of the NESSIE cryptographic primitives. 1093 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 1094 1095 See also: 1096 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html> 1097 1098config CRYPTO_GHASH_CLMUL_NI_INTEL 1099 tristate "GHASH hash function (CLMUL-NI accelerated)" 1100 depends on X86 && 64BIT 1101 select CRYPTO_CRYPTD 1102 help 1103 This is the x86_64 CLMUL-NI accelerated implementation of 1104 GHASH, the hash function used in GCM (Galois/Counter mode). 1105 1106comment "Ciphers" 1107 1108config CRYPTO_AES 1109 tristate "AES cipher algorithms" 1110 select CRYPTO_ALGAPI 1111 select CRYPTO_LIB_AES 1112 help 1113 AES cipher algorithms (FIPS-197). AES uses the Rijndael 1114 algorithm. 1115 1116 Rijndael appears to be consistently a very good performer in 1117 both hardware and software across a wide range of computing 1118 environments regardless of its use in feedback or non-feedback 1119 modes. Its key setup time is excellent, and its key agility is 1120 good. Rijndael's very low memory requirements make it very well 1121 suited for restricted-space environments, in which it also 1122 demonstrates excellent performance. Rijndael's operations are 1123 among the easiest to defend against power and timing attacks. 1124 1125 The AES specifies three key sizes: 128, 192 and 256 bits 1126 1127 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 1128 1129config CRYPTO_AES_TI 1130 tristate "Fixed time AES cipher" 1131 select CRYPTO_ALGAPI 1132 select CRYPTO_LIB_AES 1133 help 1134 This is a generic implementation of AES that attempts to eliminate 1135 data dependent latencies as much as possible without affecting 1136 performance too much. It is intended for use by the generic CCM 1137 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely 1138 solely on encryption (although decryption is supported as well, but 1139 with a more dramatic performance hit) 1140 1141 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and 1142 8 for decryption), this implementation only uses just two S-boxes of 1143 256 bytes each, and attempts to eliminate data dependent latencies by 1144 prefetching the entire table into the cache at the start of each 1145 block. Interrupts are also disabled to avoid races where cachelines 1146 are evicted when the CPU is interrupted to do something else. 1147 1148config CRYPTO_AES_NI_INTEL 1149 tristate "AES cipher algorithms (AES-NI)" 1150 depends on X86 1151 select CRYPTO_AEAD 1152 select CRYPTO_LIB_AES 1153 select CRYPTO_ALGAPI 1154 select CRYPTO_SKCIPHER 1155 select CRYPTO_GLUE_HELPER_X86 if 64BIT 1156 select CRYPTO_SIMD 1157 help 1158 Use Intel AES-NI instructions for AES algorithm. 1159 1160 AES cipher algorithms (FIPS-197). AES uses the Rijndael 1161 algorithm. 1162 1163 Rijndael appears to be consistently a very good performer in 1164 both hardware and software across a wide range of computing 1165 environments regardless of its use in feedback or non-feedback 1166 modes. Its key setup time is excellent, and its key agility is 1167 good. Rijndael's very low memory requirements make it very well 1168 suited for restricted-space environments, in which it also 1169 demonstrates excellent performance. Rijndael's operations are 1170 among the easiest to defend against power and timing attacks. 1171 1172 The AES specifies three key sizes: 128, 192 and 256 bits 1173 1174 See <http://csrc.nist.gov/encryption/aes/> for more information. 1175 1176 In addition to AES cipher algorithm support, the acceleration 1177 for some popular block cipher mode is supported too, including 1178 ECB, CBC, LRW, XTS. The 64 bit version has additional 1179 acceleration for CTR. 1180 1181config CRYPTO_AES_SPARC64 1182 tristate "AES cipher algorithms (SPARC64)" 1183 depends on SPARC64 1184 select CRYPTO_SKCIPHER 1185 help 1186 Use SPARC64 crypto opcodes for AES algorithm. 1187 1188 AES cipher algorithms (FIPS-197). AES uses the Rijndael 1189 algorithm. 1190 1191 Rijndael appears to be consistently a very good performer in 1192 both hardware and software across a wide range of computing 1193 environments regardless of its use in feedback or non-feedback 1194 modes. Its key setup time is excellent, and its key agility is 1195 good. Rijndael's very low memory requirements make it very well 1196 suited for restricted-space environments, in which it also 1197 demonstrates excellent performance. Rijndael's operations are 1198 among the easiest to defend against power and timing attacks. 1199 1200 The AES specifies three key sizes: 128, 192 and 256 bits 1201 1202 See <http://csrc.nist.gov/encryption/aes/> for more information. 1203 1204 In addition to AES cipher algorithm support, the acceleration 1205 for some popular block cipher mode is supported too, including 1206 ECB and CBC. 1207 1208config CRYPTO_AES_PPC_SPE 1209 tristate "AES cipher algorithms (PPC SPE)" 1210 depends on PPC && SPE 1211 select CRYPTO_SKCIPHER 1212 help 1213 AES cipher algorithms (FIPS-197). Additionally the acceleration 1214 for popular block cipher modes ECB, CBC, CTR and XTS is supported. 1215 This module should only be used for low power (router) devices 1216 without hardware AES acceleration (e.g. caam crypto). It reduces the 1217 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates 1218 timining attacks. Nevertheless it might be not as secure as other 1219 architecture specific assembler implementations that work on 1KB 1220 tables or 256 bytes S-boxes. 1221 1222config CRYPTO_ANUBIS 1223 tristate "Anubis cipher algorithm" 1224 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1225 select CRYPTO_ALGAPI 1226 help 1227 Anubis cipher algorithm. 1228 1229 Anubis is a variable key length cipher which can use keys from 1230 128 bits to 320 bits in length. It was evaluated as a entrant 1231 in the NESSIE competition. 1232 1233 See also: 1234 <https://www.cosic.esat.kuleuven.be/nessie/reports/> 1235 <http://www.larc.usp.br/~pbarreto/AnubisPage.html> 1236 1237config CRYPTO_ARC4 1238 tristate "ARC4 cipher algorithm" 1239 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1240 select CRYPTO_SKCIPHER 1241 select CRYPTO_LIB_ARC4 1242 help 1243 ARC4 cipher algorithm. 1244 1245 ARC4 is a stream cipher using keys ranging from 8 bits to 2048 1246 bits in length. This algorithm is required for driver-based 1247 WEP, but it should not be for other purposes because of the 1248 weakness of the algorithm. 1249 1250config CRYPTO_BLOWFISH 1251 tristate "Blowfish cipher algorithm" 1252 select CRYPTO_ALGAPI 1253 select CRYPTO_BLOWFISH_COMMON 1254 help 1255 Blowfish cipher algorithm, by Bruce Schneier. 1256 1257 This is a variable key length cipher which can use keys from 32 1258 bits to 448 bits in length. It's fast, simple and specifically 1259 designed for use on "large microprocessors". 1260 1261 See also: 1262 <https://www.schneier.com/blowfish.html> 1263 1264config CRYPTO_BLOWFISH_COMMON 1265 tristate 1266 help 1267 Common parts of the Blowfish cipher algorithm shared by the 1268 generic c and the assembler implementations. 1269 1270 See also: 1271 <https://www.schneier.com/blowfish.html> 1272 1273config CRYPTO_BLOWFISH_X86_64 1274 tristate "Blowfish cipher algorithm (x86_64)" 1275 depends on X86 && 64BIT 1276 select CRYPTO_SKCIPHER 1277 select CRYPTO_BLOWFISH_COMMON 1278 help 1279 Blowfish cipher algorithm (x86_64), by Bruce Schneier. 1280 1281 This is a variable key length cipher which can use keys from 32 1282 bits to 448 bits in length. It's fast, simple and specifically 1283 designed for use on "large microprocessors". 1284 1285 See also: 1286 <https://www.schneier.com/blowfish.html> 1287 1288config CRYPTO_CAMELLIA 1289 tristate "Camellia cipher algorithms" 1290 depends on CRYPTO 1291 select CRYPTO_ALGAPI 1292 help 1293 Camellia cipher algorithms module. 1294 1295 Camellia is a symmetric key block cipher developed jointly 1296 at NTT and Mitsubishi Electric Corporation. 1297 1298 The Camellia specifies three key sizes: 128, 192 and 256 bits. 1299 1300 See also: 1301 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1302 1303config CRYPTO_CAMELLIA_X86_64 1304 tristate "Camellia cipher algorithm (x86_64)" 1305 depends on X86 && 64BIT 1306 depends on CRYPTO 1307 select CRYPTO_SKCIPHER 1308 select CRYPTO_GLUE_HELPER_X86 1309 help 1310 Camellia cipher algorithm module (x86_64). 1311 1312 Camellia is a symmetric key block cipher developed jointly 1313 at NTT and Mitsubishi Electric Corporation. 1314 1315 The Camellia specifies three key sizes: 128, 192 and 256 bits. 1316 1317 See also: 1318 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1319 1320config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 1321 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" 1322 depends on X86 && 64BIT 1323 depends on CRYPTO 1324 select CRYPTO_SKCIPHER 1325 select CRYPTO_CAMELLIA_X86_64 1326 select CRYPTO_GLUE_HELPER_X86 1327 select CRYPTO_SIMD 1328 select CRYPTO_XTS 1329 help 1330 Camellia cipher algorithm module (x86_64/AES-NI/AVX). 1331 1332 Camellia is a symmetric key block cipher developed jointly 1333 at NTT and Mitsubishi Electric Corporation. 1334 1335 The Camellia specifies three key sizes: 128, 192 and 256 bits. 1336 1337 See also: 1338 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1339 1340config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 1341 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" 1342 depends on X86 && 64BIT 1343 depends on CRYPTO 1344 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 1345 help 1346 Camellia cipher algorithm module (x86_64/AES-NI/AVX2). 1347 1348 Camellia is a symmetric key block cipher developed jointly 1349 at NTT and Mitsubishi Electric Corporation. 1350 1351 The Camellia specifies three key sizes: 128, 192 and 256 bits. 1352 1353 See also: 1354 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1355 1356config CRYPTO_CAMELLIA_SPARC64 1357 tristate "Camellia cipher algorithm (SPARC64)" 1358 depends on SPARC64 1359 depends on CRYPTO 1360 select CRYPTO_ALGAPI 1361 select CRYPTO_SKCIPHER 1362 help 1363 Camellia cipher algorithm module (SPARC64). 1364 1365 Camellia is a symmetric key block cipher developed jointly 1366 at NTT and Mitsubishi Electric Corporation. 1367 1368 The Camellia specifies three key sizes: 128, 192 and 256 bits. 1369 1370 See also: 1371 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1372 1373config CRYPTO_CAST_COMMON 1374 tristate 1375 help 1376 Common parts of the CAST cipher algorithms shared by the 1377 generic c and the assembler implementations. 1378 1379config CRYPTO_CAST5 1380 tristate "CAST5 (CAST-128) cipher algorithm" 1381 select CRYPTO_ALGAPI 1382 select CRYPTO_CAST_COMMON 1383 help 1384 The CAST5 encryption algorithm (synonymous with CAST-128) is 1385 described in RFC2144. 1386 1387config CRYPTO_CAST5_AVX_X86_64 1388 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)" 1389 depends on X86 && 64BIT 1390 select CRYPTO_SKCIPHER 1391 select CRYPTO_CAST5 1392 select CRYPTO_CAST_COMMON 1393 select CRYPTO_SIMD 1394 help 1395 The CAST5 encryption algorithm (synonymous with CAST-128) is 1396 described in RFC2144. 1397 1398 This module provides the Cast5 cipher algorithm that processes 1399 sixteen blocks parallel using the AVX instruction set. 1400 1401config CRYPTO_CAST6 1402 tristate "CAST6 (CAST-256) cipher algorithm" 1403 select CRYPTO_ALGAPI 1404 select CRYPTO_CAST_COMMON 1405 help 1406 The CAST6 encryption algorithm (synonymous with CAST-256) is 1407 described in RFC2612. 1408 1409config CRYPTO_CAST6_AVX_X86_64 1410 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)" 1411 depends on X86 && 64BIT 1412 select CRYPTO_SKCIPHER 1413 select CRYPTO_CAST6 1414 select CRYPTO_CAST_COMMON 1415 select CRYPTO_GLUE_HELPER_X86 1416 select CRYPTO_SIMD 1417 select CRYPTO_XTS 1418 help 1419 The CAST6 encryption algorithm (synonymous with CAST-256) is 1420 described in RFC2612. 1421 1422 This module provides the Cast6 cipher algorithm that processes 1423 eight blocks parallel using the AVX instruction set. 1424 1425config CRYPTO_DES 1426 tristate "DES and Triple DES EDE cipher algorithms" 1427 select CRYPTO_ALGAPI 1428 select CRYPTO_LIB_DES 1429 help 1430 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 1431 1432config CRYPTO_DES_SPARC64 1433 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)" 1434 depends on SPARC64 1435 select CRYPTO_ALGAPI 1436 select CRYPTO_LIB_DES 1437 select CRYPTO_SKCIPHER 1438 help 1439 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3), 1440 optimized using SPARC64 crypto opcodes. 1441 1442config CRYPTO_DES3_EDE_X86_64 1443 tristate "Triple DES EDE cipher algorithm (x86-64)" 1444 depends on X86 && 64BIT 1445 select CRYPTO_SKCIPHER 1446 select CRYPTO_LIB_DES 1447 help 1448 Triple DES EDE (FIPS 46-3) algorithm. 1449 1450 This module provides implementation of the Triple DES EDE cipher 1451 algorithm that is optimized for x86-64 processors. Two versions of 1452 algorithm are provided; regular processing one input block and 1453 one that processes three blocks parallel. 1454 1455config CRYPTO_FCRYPT 1456 tristate "FCrypt cipher algorithm" 1457 select CRYPTO_ALGAPI 1458 select CRYPTO_SKCIPHER 1459 help 1460 FCrypt algorithm used by RxRPC. 1461 1462config CRYPTO_KHAZAD 1463 tristate "Khazad cipher algorithm" 1464 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1465 select CRYPTO_ALGAPI 1466 help 1467 Khazad cipher algorithm. 1468 1469 Khazad was a finalist in the initial NESSIE competition. It is 1470 an algorithm optimized for 64-bit processors with good performance 1471 on 32-bit processors. Khazad uses an 128 bit key size. 1472 1473 See also: 1474 <http://www.larc.usp.br/~pbarreto/KhazadPage.html> 1475 1476config CRYPTO_SALSA20 1477 tristate "Salsa20 stream cipher algorithm" 1478 select CRYPTO_SKCIPHER 1479 help 1480 Salsa20 stream cipher algorithm. 1481 1482 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT 1483 Stream Cipher Project. See <https://www.ecrypt.eu.org/stream/> 1484 1485 The Salsa20 stream cipher algorithm is designed by Daniel J. 1486 Bernstein <djb@cr.yp.to>. See <https://cr.yp.to/snuffle.html> 1487 1488config CRYPTO_CHACHA20 1489 tristate "ChaCha stream cipher algorithms" 1490 select CRYPTO_LIB_CHACHA_GENERIC 1491 select CRYPTO_SKCIPHER 1492 help 1493 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms. 1494 1495 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. 1496 Bernstein and further specified in RFC7539 for use in IETF protocols. 1497 This is the portable C implementation of ChaCha20. See also: 1498 <https://cr.yp.to/chacha/chacha-20080128.pdf> 1499 1500 XChaCha20 is the application of the XSalsa20 construction to ChaCha20 1501 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length 1502 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits, 1503 while provably retaining ChaCha20's security. See also: 1504 <https://cr.yp.to/snuffle/xsalsa-20081128.pdf> 1505 1506 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly 1507 reduced security margin but increased performance. It can be needed 1508 in some performance-sensitive scenarios. 1509 1510config CRYPTO_CHACHA20_X86_64 1511 tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)" 1512 depends on X86 && 64BIT 1513 select CRYPTO_SKCIPHER 1514 select CRYPTO_LIB_CHACHA_GENERIC 1515 select CRYPTO_ARCH_HAVE_LIB_CHACHA 1516 help 1517 SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20, 1518 XChaCha20, and XChaCha12 stream ciphers. 1519 1520config CRYPTO_CHACHA_MIPS 1521 tristate "ChaCha stream cipher algorithms (MIPS 32r2 optimized)" 1522 depends on CPU_MIPS32_R2 1523 select CRYPTO_SKCIPHER 1524 select CRYPTO_ARCH_HAVE_LIB_CHACHA 1525 1526config CRYPTO_SEED 1527 tristate "SEED cipher algorithm" 1528 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1529 select CRYPTO_ALGAPI 1530 help 1531 SEED cipher algorithm (RFC4269). 1532 1533 SEED is a 128-bit symmetric key block cipher that has been 1534 developed by KISA (Korea Information Security Agency) as a 1535 national standard encryption algorithm of the Republic of Korea. 1536 It is a 16 round block cipher with the key size of 128 bit. 1537 1538 See also: 1539 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 1540 1541config CRYPTO_SERPENT 1542 tristate "Serpent cipher algorithm" 1543 select CRYPTO_ALGAPI 1544 help 1545 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1546 1547 Keys are allowed to be from 0 to 256 bits in length, in steps 1548 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 1549 variant of Serpent for compatibility with old kerneli.org code. 1550 1551 See also: 1552 <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1553 1554config CRYPTO_SERPENT_SSE2_X86_64 1555 tristate "Serpent cipher algorithm (x86_64/SSE2)" 1556 depends on X86 && 64BIT 1557 select CRYPTO_SKCIPHER 1558 select CRYPTO_GLUE_HELPER_X86 1559 select CRYPTO_SERPENT 1560 select CRYPTO_SIMD 1561 help 1562 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1563 1564 Keys are allowed to be from 0 to 256 bits in length, in steps 1565 of 8 bits. 1566 1567 This module provides Serpent cipher algorithm that processes eight 1568 blocks parallel using SSE2 instruction set. 1569 1570 See also: 1571 <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1572 1573config CRYPTO_SERPENT_SSE2_586 1574 tristate "Serpent cipher algorithm (i586/SSE2)" 1575 depends on X86 && !64BIT 1576 select CRYPTO_SKCIPHER 1577 select CRYPTO_GLUE_HELPER_X86 1578 select CRYPTO_SERPENT 1579 select CRYPTO_SIMD 1580 help 1581 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1582 1583 Keys are allowed to be from 0 to 256 bits in length, in steps 1584 of 8 bits. 1585 1586 This module provides Serpent cipher algorithm that processes four 1587 blocks parallel using SSE2 instruction set. 1588 1589 See also: 1590 <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1591 1592config CRYPTO_SERPENT_AVX_X86_64 1593 tristate "Serpent cipher algorithm (x86_64/AVX)" 1594 depends on X86 && 64BIT 1595 select CRYPTO_SKCIPHER 1596 select CRYPTO_GLUE_HELPER_X86 1597 select CRYPTO_SERPENT 1598 select CRYPTO_SIMD 1599 select CRYPTO_XTS 1600 help 1601 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1602 1603 Keys are allowed to be from 0 to 256 bits in length, in steps 1604 of 8 bits. 1605 1606 This module provides the Serpent cipher algorithm that processes 1607 eight blocks parallel using the AVX instruction set. 1608 1609 See also: 1610 <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1611 1612config CRYPTO_SERPENT_AVX2_X86_64 1613 tristate "Serpent cipher algorithm (x86_64/AVX2)" 1614 depends on X86 && 64BIT 1615 select CRYPTO_SERPENT_AVX_X86_64 1616 help 1617 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1618 1619 Keys are allowed to be from 0 to 256 bits in length, in steps 1620 of 8 bits. 1621 1622 This module provides Serpent cipher algorithm that processes 16 1623 blocks parallel using AVX2 instruction set. 1624 1625 See also: 1626 <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1627 1628config CRYPTO_SM4 1629 tristate "SM4 cipher algorithm" 1630 select CRYPTO_ALGAPI 1631 help 1632 SM4 cipher algorithms (OSCCA GB/T 32907-2016). 1633 1634 SM4 (GBT.32907-2016) is a cryptographic standard issued by the 1635 Organization of State Commercial Administration of China (OSCCA) 1636 as an authorized cryptographic algorithms for the use within China. 1637 1638 SMS4 was originally created for use in protecting wireless 1639 networks, and is mandated in the Chinese National Standard for 1640 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure) 1641 (GB.15629.11-2003). 1642 1643 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and 1644 standardized through TC 260 of the Standardization Administration 1645 of the People's Republic of China (SAC). 1646 1647 The input, output, and key of SMS4 are each 128 bits. 1648 1649 See also: <https://eprint.iacr.org/2008/329.pdf> 1650 1651 If unsure, say N. 1652 1653config CRYPTO_TEA 1654 tristate "TEA, XTEA and XETA cipher algorithms" 1655 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1656 select CRYPTO_ALGAPI 1657 help 1658 TEA cipher algorithm. 1659 1660 Tiny Encryption Algorithm is a simple cipher that uses 1661 many rounds for security. It is very fast and uses 1662 little memory. 1663 1664 Xtendend Tiny Encryption Algorithm is a modification to 1665 the TEA algorithm to address a potential key weakness 1666 in the TEA algorithm. 1667 1668 Xtendend Encryption Tiny Algorithm is a mis-implementation 1669 of the XTEA algorithm for compatibility purposes. 1670 1671config CRYPTO_TWOFISH 1672 tristate "Twofish cipher algorithm" 1673 select CRYPTO_ALGAPI 1674 select CRYPTO_TWOFISH_COMMON 1675 help 1676 Twofish cipher algorithm. 1677 1678 Twofish was submitted as an AES (Advanced Encryption Standard) 1679 candidate cipher by researchers at CounterPane Systems. It is a 1680 16 round block cipher supporting key sizes of 128, 192, and 256 1681 bits. 1682 1683 See also: 1684 <https://www.schneier.com/twofish.html> 1685 1686config CRYPTO_TWOFISH_COMMON 1687 tristate 1688 help 1689 Common parts of the Twofish cipher algorithm shared by the 1690 generic c and the assembler implementations. 1691 1692config CRYPTO_TWOFISH_586 1693 tristate "Twofish cipher algorithms (i586)" 1694 depends on (X86 || UML_X86) && !64BIT 1695 select CRYPTO_ALGAPI 1696 select CRYPTO_TWOFISH_COMMON 1697 help 1698 Twofish cipher algorithm. 1699 1700 Twofish was submitted as an AES (Advanced Encryption Standard) 1701 candidate cipher by researchers at CounterPane Systems. It is a 1702 16 round block cipher supporting key sizes of 128, 192, and 256 1703 bits. 1704 1705 See also: 1706 <https://www.schneier.com/twofish.html> 1707 1708config CRYPTO_TWOFISH_X86_64 1709 tristate "Twofish cipher algorithm (x86_64)" 1710 depends on (X86 || UML_X86) && 64BIT 1711 select CRYPTO_ALGAPI 1712 select CRYPTO_TWOFISH_COMMON 1713 help 1714 Twofish cipher algorithm (x86_64). 1715 1716 Twofish was submitted as an AES (Advanced Encryption Standard) 1717 candidate cipher by researchers at CounterPane Systems. It is a 1718 16 round block cipher supporting key sizes of 128, 192, and 256 1719 bits. 1720 1721 See also: 1722 <https://www.schneier.com/twofish.html> 1723 1724config CRYPTO_TWOFISH_X86_64_3WAY 1725 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)" 1726 depends on X86 && 64BIT 1727 select CRYPTO_SKCIPHER 1728 select CRYPTO_TWOFISH_COMMON 1729 select CRYPTO_TWOFISH_X86_64 1730 select CRYPTO_GLUE_HELPER_X86 1731 help 1732 Twofish cipher algorithm (x86_64, 3-way parallel). 1733 1734 Twofish was submitted as an AES (Advanced Encryption Standard) 1735 candidate cipher by researchers at CounterPane Systems. It is a 1736 16 round block cipher supporting key sizes of 128, 192, and 256 1737 bits. 1738 1739 This module provides Twofish cipher algorithm that processes three 1740 blocks parallel, utilizing resources of out-of-order CPUs better. 1741 1742 See also: 1743 <https://www.schneier.com/twofish.html> 1744 1745config CRYPTO_TWOFISH_AVX_X86_64 1746 tristate "Twofish cipher algorithm (x86_64/AVX)" 1747 depends on X86 && 64BIT 1748 select CRYPTO_SKCIPHER 1749 select CRYPTO_GLUE_HELPER_X86 1750 select CRYPTO_SIMD 1751 select CRYPTO_TWOFISH_COMMON 1752 select CRYPTO_TWOFISH_X86_64 1753 select CRYPTO_TWOFISH_X86_64_3WAY 1754 help 1755 Twofish cipher algorithm (x86_64/AVX). 1756 1757 Twofish was submitted as an AES (Advanced Encryption Standard) 1758 candidate cipher by researchers at CounterPane Systems. It is a 1759 16 round block cipher supporting key sizes of 128, 192, and 256 1760 bits. 1761 1762 This module provides the Twofish cipher algorithm that processes 1763 eight blocks parallel using the AVX Instruction Set. 1764 1765 See also: 1766 <https://www.schneier.com/twofish.html> 1767 1768comment "Compression" 1769 1770config CRYPTO_DEFLATE 1771 tristate "Deflate compression algorithm" 1772 select CRYPTO_ALGAPI 1773 select CRYPTO_ACOMP2 1774 select ZLIB_INFLATE 1775 select ZLIB_DEFLATE 1776 help 1777 This is the Deflate algorithm (RFC1951), specified for use in 1778 IPSec with the IPCOMP protocol (RFC3173, RFC2394). 1779 1780 You will most probably want this if using IPSec. 1781 1782config CRYPTO_LZO 1783 tristate "LZO compression algorithm" 1784 select CRYPTO_ALGAPI 1785 select CRYPTO_ACOMP2 1786 select LZO_COMPRESS 1787 select LZO_DECOMPRESS 1788 help 1789 This is the LZO algorithm. 1790 1791config CRYPTO_842 1792 tristate "842 compression algorithm" 1793 select CRYPTO_ALGAPI 1794 select CRYPTO_ACOMP2 1795 select 842_COMPRESS 1796 select 842_DECOMPRESS 1797 help 1798 This is the 842 algorithm. 1799 1800config CRYPTO_LZ4 1801 tristate "LZ4 compression algorithm" 1802 select CRYPTO_ALGAPI 1803 select CRYPTO_ACOMP2 1804 select LZ4_COMPRESS 1805 select LZ4_DECOMPRESS 1806 help 1807 This is the LZ4 algorithm. 1808 1809config CRYPTO_LZ4HC 1810 tristate "LZ4HC compression algorithm" 1811 select CRYPTO_ALGAPI 1812 select CRYPTO_ACOMP2 1813 select LZ4HC_COMPRESS 1814 select LZ4_DECOMPRESS 1815 help 1816 This is the LZ4 high compression mode algorithm. 1817 1818config CRYPTO_ZSTD 1819 tristate "Zstd compression algorithm" 1820 select CRYPTO_ALGAPI 1821 select CRYPTO_ACOMP2 1822 select ZSTD_COMPRESS 1823 select ZSTD_DECOMPRESS 1824 help 1825 This is the zstd algorithm. 1826 1827comment "Random Number Generation" 1828 1829config CRYPTO_ANSI_CPRNG 1830 tristate "Pseudo Random Number Generation for Cryptographic modules" 1831 select CRYPTO_AES 1832 select CRYPTO_RNG 1833 help 1834 This option enables the generic pseudo random number generator 1835 for cryptographic modules. Uses the Algorithm specified in 1836 ANSI X9.31 A.2.4. Note that this option must be enabled if 1837 CRYPTO_FIPS is selected 1838 1839menuconfig CRYPTO_DRBG_MENU 1840 tristate "NIST SP800-90A DRBG" 1841 help 1842 NIST SP800-90A compliant DRBG. In the following submenu, one or 1843 more of the DRBG types must be selected. 1844 1845if CRYPTO_DRBG_MENU 1846 1847config CRYPTO_DRBG_HMAC 1848 bool 1849 default y 1850 select CRYPTO_HMAC 1851 select CRYPTO_SHA256 1852 1853config CRYPTO_DRBG_HASH 1854 bool "Enable Hash DRBG" 1855 select CRYPTO_SHA256 1856 help 1857 Enable the Hash DRBG variant as defined in NIST SP800-90A. 1858 1859config CRYPTO_DRBG_CTR 1860 bool "Enable CTR DRBG" 1861 select CRYPTO_AES 1862 select CRYPTO_CTR 1863 help 1864 Enable the CTR DRBG variant as defined in NIST SP800-90A. 1865 1866config CRYPTO_DRBG 1867 tristate 1868 default CRYPTO_DRBG_MENU 1869 select CRYPTO_RNG 1870 select CRYPTO_JITTERENTROPY 1871 1872endif # if CRYPTO_DRBG_MENU 1873 1874config CRYPTO_JITTERENTROPY 1875 tristate "Jitterentropy Non-Deterministic Random Number Generator" 1876 select CRYPTO_RNG 1877 help 1878 The Jitterentropy RNG is a noise that is intended 1879 to provide seed to another RNG. The RNG does not 1880 perform any cryptographic whitening of the generated 1881 random numbers. This Jitterentropy RNG registers with 1882 the kernel crypto API and can be used by any caller. 1883 1884config CRYPTO_USER_API 1885 tristate 1886 1887config CRYPTO_USER_API_HASH 1888 tristate "User-space interface for hash algorithms" 1889 depends on NET 1890 select CRYPTO_HASH 1891 select CRYPTO_USER_API 1892 help 1893 This option enables the user-spaces interface for hash 1894 algorithms. 1895 1896config CRYPTO_USER_API_SKCIPHER 1897 tristate "User-space interface for symmetric key cipher algorithms" 1898 depends on NET 1899 select CRYPTO_SKCIPHER 1900 select CRYPTO_USER_API 1901 help 1902 This option enables the user-spaces interface for symmetric 1903 key cipher algorithms. 1904 1905config CRYPTO_USER_API_RNG 1906 tristate "User-space interface for random number generator algorithms" 1907 depends on NET 1908 select CRYPTO_RNG 1909 select CRYPTO_USER_API 1910 help 1911 This option enables the user-spaces interface for random 1912 number generator algorithms. 1913 1914config CRYPTO_USER_API_RNG_CAVP 1915 bool "Enable CAVP testing of DRBG" 1916 depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG 1917 help 1918 This option enables extra API for CAVP testing via the user-space 1919 interface: resetting of DRBG entropy, and providing Additional Data. 1920 This should only be enabled for CAVP testing. You should say 1921 no unless you know what this is. 1922 1923config CRYPTO_USER_API_AEAD 1924 tristate "User-space interface for AEAD cipher algorithms" 1925 depends on NET 1926 select CRYPTO_AEAD 1927 select CRYPTO_SKCIPHER 1928 select CRYPTO_NULL 1929 select CRYPTO_USER_API 1930 help 1931 This option enables the user-spaces interface for AEAD 1932 cipher algorithms. 1933 1934config CRYPTO_USER_API_ENABLE_OBSOLETE 1935 bool "Enable obsolete cryptographic algorithms for userspace" 1936 depends on CRYPTO_USER_API 1937 default y 1938 help 1939 Allow obsolete cryptographic algorithms to be selected that have 1940 already been phased out from internal use by the kernel, and are 1941 only useful for userspace clients that still rely on them. 1942 1943config CRYPTO_STATS 1944 bool "Crypto usage statistics for User-space" 1945 depends on CRYPTO_USER 1946 help 1947 This option enables the gathering of crypto stats. 1948 This will collect: 1949 - encrypt/decrypt size and numbers of symmeric operations 1950 - compress/decompress size and numbers of compress operations 1951 - size and numbers of hash operations 1952 - encrypt/decrypt/sign/verify numbers for asymmetric operations 1953 - generate/seed numbers for rng operations 1954 1955config CRYPTO_HASH_INFO 1956 bool 1957 1958source "drivers/crypto/Kconfig" 1959source "crypto/asymmetric_keys/Kconfig" 1960source "certs/Kconfig" 1961 1962endif # if CRYPTO 1963