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