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