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 CRYPTO_LIB_UTILS 19 help 20 This option provides the core Cryptographic API. 21 22if CRYPTO 23 24menu "Crypto core or helper" 25 26config CRYPTO_FIPS 27 bool "FIPS 200 compliance" 28 depends on CRYPTO_DRBG && CRYPTO_SELFTESTS 29 depends on (MODULE_SIG || !MODULES) 30 help 31 This option enables the fips boot option which is 32 required if you want the system to operate in a FIPS 200 33 certification. You should say no unless you know what 34 this is. 35 36config CRYPTO_FIPS_NAME 37 string "FIPS Module Name" 38 default "Linux Kernel Cryptographic API" 39 depends on CRYPTO_FIPS 40 help 41 This option sets the FIPS Module name reported by the Crypto API via 42 the /proc/sys/crypto/fips_name file. 43 44config CRYPTO_FIPS_CUSTOM_VERSION 45 bool "Use Custom FIPS Module Version" 46 depends on CRYPTO_FIPS 47 default n 48 49config CRYPTO_FIPS_VERSION 50 string "FIPS Module Version" 51 default "(none)" 52 depends on CRYPTO_FIPS_CUSTOM_VERSION 53 help 54 This option provides the ability to override the FIPS Module Version. 55 By default the KERNELRELEASE value is used. 56 57config CRYPTO_ALGAPI 58 tristate 59 select CRYPTO_ALGAPI2 60 help 61 This option provides the API for cryptographic algorithms. 62 63config CRYPTO_ALGAPI2 64 tristate 65 66config CRYPTO_AEAD 67 tristate 68 select CRYPTO_AEAD2 69 select CRYPTO_ALGAPI 70 71config CRYPTO_AEAD2 72 tristate 73 select CRYPTO_ALGAPI2 74 75config CRYPTO_SIG 76 tristate 77 select CRYPTO_SIG2 78 select CRYPTO_ALGAPI 79 80config CRYPTO_SIG2 81 tristate 82 select CRYPTO_ALGAPI2 83 84config CRYPTO_SKCIPHER 85 tristate 86 select CRYPTO_SKCIPHER2 87 select CRYPTO_ALGAPI 88 select CRYPTO_ECB 89 90config CRYPTO_SKCIPHER2 91 tristate 92 select CRYPTO_ALGAPI2 93 94config CRYPTO_HASH 95 tristate 96 select CRYPTO_HASH2 97 select CRYPTO_ALGAPI 98 99config CRYPTO_HASH2 100 tristate 101 select CRYPTO_ALGAPI2 102 103config CRYPTO_RNG 104 tristate 105 select CRYPTO_RNG2 106 select CRYPTO_ALGAPI 107 108config CRYPTO_RNG2 109 tristate 110 select CRYPTO_ALGAPI2 111 112config CRYPTO_RNG_DEFAULT 113 tristate 114 select CRYPTO_DRBG_MENU 115 116config CRYPTO_AKCIPHER2 117 tristate 118 select CRYPTO_ALGAPI2 119 120config CRYPTO_AKCIPHER 121 tristate 122 select CRYPTO_AKCIPHER2 123 select CRYPTO_ALGAPI 124 125config CRYPTO_KPP2 126 tristate 127 select CRYPTO_ALGAPI2 128 129config CRYPTO_KPP 130 tristate 131 select CRYPTO_ALGAPI 132 select CRYPTO_KPP2 133 134config CRYPTO_ACOMP2 135 tristate 136 select CRYPTO_ALGAPI2 137 select SGL_ALLOC 138 139config CRYPTO_ACOMP 140 tristate 141 select CRYPTO_ALGAPI 142 select CRYPTO_ACOMP2 143 144config CRYPTO_HKDF 145 tristate 146 select CRYPTO_SHA256 if CRYPTO_SELFTESTS 147 select CRYPTO_SHA512 if CRYPTO_SELFTESTS 148 select CRYPTO_HASH2 149 150config CRYPTO_MANAGER 151 tristate 152 default CRYPTO_ALGAPI if CRYPTO_SELFTESTS 153 select CRYPTO_MANAGER2 154 help 155 This provides the support for instantiating templates such as 156 cbc(aes), and the support for the crypto self-tests. 157 158config CRYPTO_MANAGER2 159 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) 160 select CRYPTO_ACOMP2 161 select CRYPTO_AEAD2 162 select CRYPTO_AKCIPHER2 163 select CRYPTO_SIG2 164 select CRYPTO_HASH2 165 select CRYPTO_KPP2 166 select CRYPTO_RNG2 167 select CRYPTO_SKCIPHER2 168 169config CRYPTO_USER 170 tristate "Userspace cryptographic algorithm configuration" 171 depends on NET 172 select CRYPTO_MANAGER 173 help 174 Userspace configuration for cryptographic instantiations such as 175 cbc(aes). 176 177config CRYPTO_SELFTESTS 178 bool "Enable cryptographic self-tests" 179 depends on EXPERT 180 help 181 Enable the cryptographic self-tests. 182 183 The cryptographic self-tests run at boot time, or at algorithm 184 registration time if algorithms are dynamically loaded later. 185 186 There are two main use cases for these tests: 187 188 - Development and pre-release testing. In this case, also enable 189 CRYPTO_SELFTESTS_FULL to get the full set of tests. All crypto code 190 in the kernel is expected to pass the full set of tests. 191 192 - Production kernels, to help prevent buggy drivers from being used 193 and/or meet FIPS 140-3 pre-operational testing requirements. In 194 this case, enable CRYPTO_SELFTESTS but not CRYPTO_SELFTESTS_FULL. 195 196config CRYPTO_SELFTESTS_FULL 197 bool "Enable the full set of cryptographic self-tests" 198 depends on CRYPTO_SELFTESTS 199 help 200 Enable the full set of cryptographic self-tests for each algorithm. 201 202 The full set of tests should be enabled for development and 203 pre-release testing, but not in production kernels. 204 205 All crypto code in the kernel is expected to pass the full tests. 206 207config CRYPTO_NULL 208 tristate "Null algorithms" 209 select CRYPTO_ALGAPI 210 select CRYPTO_SKCIPHER 211 select CRYPTO_HASH 212 help 213 These are 'Null' algorithms, used by IPsec, which do nothing. 214 215config CRYPTO_PCRYPT 216 tristate "Parallel crypto engine" 217 depends on SMP 218 select PADATA 219 select CRYPTO_MANAGER 220 select CRYPTO_AEAD 221 help 222 This converts an arbitrary crypto algorithm into a parallel 223 algorithm that executes in kernel threads. 224 225config CRYPTO_CRYPTD 226 tristate "Software async crypto daemon" 227 select CRYPTO_SKCIPHER 228 select CRYPTO_HASH 229 select CRYPTO_MANAGER 230 help 231 This is a generic software asynchronous crypto daemon that 232 converts an arbitrary synchronous software crypto algorithm 233 into an asynchronous algorithm that executes in a kernel thread. 234 235config CRYPTO_AUTHENC 236 tristate "Authenc support" 237 select CRYPTO_AEAD 238 select CRYPTO_SKCIPHER 239 select CRYPTO_MANAGER 240 select CRYPTO_HASH 241 help 242 Authenc: Combined mode wrapper for IPsec. 243 244 This is required for IPSec ESP (XFRM_ESP). 245 246config CRYPTO_KRB5ENC 247 tristate "Kerberos 5 combined hash+cipher support" 248 select CRYPTO_AEAD 249 select CRYPTO_SKCIPHER 250 select CRYPTO_MANAGER 251 select CRYPTO_HASH 252 help 253 Combined hash and cipher support for Kerberos 5 RFC3961 simplified 254 profile. This is required for Kerberos 5-style encryption, used by 255 sunrpc/NFS and rxrpc/AFS. 256 257config CRYPTO_BENCHMARK 258 tristate "Crypto benchmarking module" 259 depends on m || EXPERT 260 select CRYPTO_MANAGER 261 help 262 Quick & dirty crypto benchmarking module. 263 264 This is mainly intended for use by people developing cryptographic 265 algorithms in the kernel. It should not be enabled in production 266 kernels. 267 268config CRYPTO_SIMD 269 tristate 270 select CRYPTO_CRYPTD 271 272config CRYPTO_ENGINE 273 tristate 274 275endmenu 276 277menu "Public-key cryptography" 278 279config CRYPTO_RSA 280 tristate "RSA (Rivest-Shamir-Adleman)" 281 select CRYPTO_AKCIPHER 282 select CRYPTO_MANAGER 283 select CRYPTO_SIG 284 select MPILIB 285 select ASN1 286 help 287 RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017) 288 289config CRYPTO_DH 290 tristate "DH (Diffie-Hellman)" 291 select CRYPTO_KPP 292 select MPILIB 293 help 294 DH (Diffie-Hellman) key exchange algorithm 295 296config CRYPTO_DH_RFC7919_GROUPS 297 bool "RFC 7919 FFDHE groups" 298 depends on CRYPTO_DH 299 select CRYPTO_RNG_DEFAULT 300 help 301 FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups 302 defined in RFC7919. 303 304 Support these finite-field groups in DH key exchanges: 305 - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192 306 307 If unsure, say N. 308 309config CRYPTO_ECC 310 tristate 311 select CRYPTO_RNG_DEFAULT 312 313config CRYPTO_ECDH 314 tristate "ECDH (Elliptic Curve Diffie-Hellman)" 315 select CRYPTO_ECC 316 select CRYPTO_KPP 317 help 318 ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm 319 using curves P-192, P-256, and P-384 (FIPS 186) 320 321config CRYPTO_ECDSA 322 tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)" 323 select CRYPTO_ECC 324 select CRYPTO_SIG 325 select ASN1 326 help 327 ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186, 328 ISO/IEC 14888-3) 329 using curves P-192, P-256, P-384 and P-521 330 331 Only signature verification is implemented. 332 333config CRYPTO_ECRDSA 334 tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)" 335 select CRYPTO_ECC 336 select CRYPTO_SIG 337 select CRYPTO_STREEBOG 338 select OID_REGISTRY 339 select ASN1 340 help 341 Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, 342 RFC 7091, ISO/IEC 14888-3) 343 344 One of the Russian cryptographic standard algorithms (called GOST 345 algorithms). Only signature verification is implemented. 346 347endmenu 348 349menu "Block ciphers" 350 351config CRYPTO_AES 352 tristate "AES (Advanced Encryption Standard)" 353 select CRYPTO_ALGAPI 354 select CRYPTO_LIB_AES 355 help 356 AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 357 358 Rijndael appears to be consistently a very good performer in 359 both hardware and software across a wide range of computing 360 environments regardless of its use in feedback or non-feedback 361 modes. Its key setup time is excellent, and its key agility is 362 good. Rijndael's very low memory requirements make it very well 363 suited for restricted-space environments, in which it also 364 demonstrates excellent performance. Rijndael's operations are 365 among the easiest to defend against power and timing attacks. 366 367 The AES specifies three key sizes: 128, 192 and 256 bits 368 369config CRYPTO_ANUBIS 370 tristate "Anubis" 371 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 372 select CRYPTO_ALGAPI 373 help 374 Anubis cipher algorithm 375 376 Anubis is a variable key length cipher which can use keys from 377 128 bits to 320 bits in length. It was evaluated as a entrant 378 in the NESSIE competition. 379 380 See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html 381 for further information. 382 383config CRYPTO_ARIA 384 tristate "ARIA" 385 select CRYPTO_ALGAPI 386 help 387 ARIA cipher algorithm (RFC5794) 388 389 ARIA is a standard encryption algorithm of the Republic of Korea. 390 The ARIA specifies three key sizes and rounds. 391 128-bit: 12 rounds. 392 192-bit: 14 rounds. 393 256-bit: 16 rounds. 394 395 See: 396 https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do 397 398config CRYPTO_BLOWFISH 399 tristate "Blowfish" 400 select CRYPTO_ALGAPI 401 select CRYPTO_BLOWFISH_COMMON 402 help 403 Blowfish cipher algorithm, by Bruce Schneier 404 405 This is a variable key length cipher which can use keys from 32 406 bits to 448 bits in length. It's fast, simple and specifically 407 designed for use on "large microprocessors". 408 409 See https://www.schneier.com/blowfish.html for further information. 410 411config CRYPTO_BLOWFISH_COMMON 412 tristate 413 help 414 Common parts of the Blowfish cipher algorithm shared by the 415 generic c and the assembler implementations. 416 417config CRYPTO_CAMELLIA 418 tristate "Camellia" 419 select CRYPTO_ALGAPI 420 help 421 Camellia cipher algorithms (ISO/IEC 18033-3) 422 423 Camellia is a symmetric key block cipher developed jointly 424 at NTT and Mitsubishi Electric Corporation. 425 426 The Camellia specifies three key sizes: 128, 192 and 256 bits. 427 428 See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information. 429 430config CRYPTO_CAST_COMMON 431 tristate 432 help 433 Common parts of the CAST cipher algorithms shared by the 434 generic c and the assembler implementations. 435 436config CRYPTO_CAST5 437 tristate "CAST5 (CAST-128)" 438 select CRYPTO_ALGAPI 439 select CRYPTO_CAST_COMMON 440 help 441 CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3) 442 443config CRYPTO_CAST6 444 tristate "CAST6 (CAST-256)" 445 select CRYPTO_ALGAPI 446 select CRYPTO_CAST_COMMON 447 help 448 CAST6 (CAST-256) encryption algorithm (RFC2612) 449 450config CRYPTO_DES 451 tristate "DES and Triple DES EDE" 452 select CRYPTO_ALGAPI 453 select CRYPTO_LIB_DES 454 help 455 DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and 456 Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3) 457 cipher algorithms 458 459config CRYPTO_FCRYPT 460 tristate "FCrypt" 461 select CRYPTO_ALGAPI 462 select CRYPTO_SKCIPHER 463 help 464 FCrypt algorithm used by RxRPC 465 466 See https://ota.polyonymo.us/fcrypt-paper.txt 467 468config CRYPTO_KHAZAD 469 tristate "Khazad" 470 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 471 select CRYPTO_ALGAPI 472 help 473 Khazad cipher algorithm 474 475 Khazad was a finalist in the initial NESSIE competition. It is 476 an algorithm optimized for 64-bit processors with good performance 477 on 32-bit processors. Khazad uses an 128 bit key size. 478 479 See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html 480 for further information. 481 482config CRYPTO_SEED 483 tristate "SEED" 484 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 485 select CRYPTO_ALGAPI 486 help 487 SEED cipher algorithm (RFC4269, ISO/IEC 18033-3) 488 489 SEED is a 128-bit symmetric key block cipher that has been 490 developed by KISA (Korea Information Security Agency) as a 491 national standard encryption algorithm of the Republic of Korea. 492 It is a 16 round block cipher with the key size of 128 bit. 493 494 See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do 495 for further information. 496 497config CRYPTO_SERPENT 498 tristate "Serpent" 499 select CRYPTO_ALGAPI 500 help 501 Serpent cipher algorithm, by Anderson, Biham & Knudsen 502 503 Keys are allowed to be from 0 to 256 bits in length, in steps 504 of 8 bits. 505 506 See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information. 507 508config CRYPTO_SM4 509 tristate 510 511config CRYPTO_SM4_GENERIC 512 tristate "SM4 (ShangMi 4)" 513 select CRYPTO_ALGAPI 514 select CRYPTO_SM4 515 help 516 SM4 cipher algorithms (OSCCA GB/T 32907-2016, 517 ISO/IEC 18033-3:2010/Amd 1:2021) 518 519 SM4 (GBT.32907-2016) is a cryptographic standard issued by the 520 Organization of State Commercial Administration of China (OSCCA) 521 as an authorized cryptographic algorithms for the use within China. 522 523 SMS4 was originally created for use in protecting wireless 524 networks, and is mandated in the Chinese National Standard for 525 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure) 526 (GB.15629.11-2003). 527 528 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and 529 standardized through TC 260 of the Standardization Administration 530 of the People's Republic of China (SAC). 531 532 The input, output, and key of SMS4 are each 128 bits. 533 534 See https://eprint.iacr.org/2008/329.pdf for further information. 535 536 If unsure, say N. 537 538config CRYPTO_TEA 539 tristate "TEA, XTEA and XETA" 540 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 541 select CRYPTO_ALGAPI 542 help 543 TEA (Tiny Encryption Algorithm) cipher algorithms 544 545 Tiny Encryption Algorithm is a simple cipher that uses 546 many rounds for security. It is very fast and uses 547 little memory. 548 549 Xtendend Tiny Encryption Algorithm is a modification to 550 the TEA algorithm to address a potential key weakness 551 in the TEA algorithm. 552 553 Xtendend Encryption Tiny Algorithm is a mis-implementation 554 of the XTEA algorithm for compatibility purposes. 555 556config CRYPTO_TWOFISH 557 tristate "Twofish" 558 select CRYPTO_ALGAPI 559 select CRYPTO_TWOFISH_COMMON 560 help 561 Twofish cipher algorithm 562 563 Twofish was submitted as an AES (Advanced Encryption Standard) 564 candidate cipher by researchers at CounterPane Systems. It is a 565 16 round block cipher supporting key sizes of 128, 192, and 256 566 bits. 567 568 See https://www.schneier.com/twofish.html for further information. 569 570config CRYPTO_TWOFISH_COMMON 571 tristate 572 help 573 Common parts of the Twofish cipher algorithm shared by the 574 generic c and the assembler implementations. 575 576endmenu 577 578menu "Length-preserving ciphers and modes" 579 580config CRYPTO_ADIANTUM 581 tristate "Adiantum" 582 select CRYPTO_CHACHA20 583 select CRYPTO_LIB_NH 584 select CRYPTO_LIB_POLY1305 585 select CRYPTO_LIB_POLY1305_GENERIC 586 select CRYPTO_MANAGER 587 help 588 Adiantum tweakable, length-preserving encryption mode 589 590 Designed for fast and secure disk encryption, especially on 591 CPUs without dedicated crypto instructions. It encrypts 592 each sector using the XChaCha12 stream cipher, two passes of 593 an ε-almost-∆-universal hash function, and an invocation of 594 the AES-256 block cipher on a single 16-byte block. On CPUs 595 without AES instructions, Adiantum is much faster than 596 AES-XTS. 597 598 Adiantum's security is provably reducible to that of its 599 underlying stream and block ciphers, subject to a security 600 bound. Unlike XTS, Adiantum is a true wide-block encryption 601 mode, so it actually provides an even stronger notion of 602 security than XTS, subject to the security bound. 603 604 If unsure, say N. 605 606config CRYPTO_ARC4 607 tristate "ARC4 (Alleged Rivest Cipher 4)" 608 depends on CRYPTO_USER_API_ENABLE_OBSOLETE 609 select CRYPTO_SKCIPHER 610 select CRYPTO_LIB_ARC4 611 help 612 ARC4 cipher algorithm 613 614 ARC4 is a stream cipher using keys ranging from 8 bits to 2048 615 bits in length. This algorithm is required for driver-based 616 WEP, but it should not be for other purposes because of the 617 weakness of the algorithm. 618 619config CRYPTO_CHACHA20 620 tristate "ChaCha" 621 select CRYPTO_LIB_CHACHA 622 select CRYPTO_SKCIPHER 623 help 624 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms 625 626 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. 627 Bernstein and further specified in RFC7539 for use in IETF protocols. 628 This is the portable C implementation of ChaCha20. See 629 https://cr.yp.to/chacha/chacha-20080128.pdf for further information. 630 631 XChaCha20 is the application of the XSalsa20 construction to ChaCha20 632 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length 633 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits, 634 while provably retaining ChaCha20's security. See 635 https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information. 636 637 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly 638 reduced security margin but increased performance. It can be needed 639 in some performance-sensitive scenarios. 640 641config CRYPTO_CBC 642 tristate "CBC (Cipher Block Chaining)" 643 select CRYPTO_SKCIPHER 644 select CRYPTO_MANAGER 645 help 646 CBC (Cipher Block Chaining) mode (NIST SP800-38A) 647 648 This block cipher mode is required for IPSec ESP (XFRM_ESP). 649 650config CRYPTO_CTR 651 tristate "CTR (Counter)" 652 select CRYPTO_SKCIPHER 653 select CRYPTO_MANAGER 654 help 655 CTR (Counter) mode (NIST SP800-38A) 656 657config CRYPTO_CTS 658 tristate "CTS (Cipher Text Stealing)" 659 select CRYPTO_SKCIPHER 660 select CRYPTO_MANAGER 661 help 662 CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST 663 Addendum to SP800-38A (October 2010)) 664 665 This mode is required for Kerberos gss mechanism support 666 for AES encryption. 667 668config CRYPTO_ECB 669 tristate "ECB (Electronic Codebook)" 670 select CRYPTO_SKCIPHER2 671 select CRYPTO_MANAGER 672 help 673 ECB (Electronic Codebook) mode (NIST SP800-38A) 674 675config CRYPTO_HCTR2 676 tristate "HCTR2" 677 select CRYPTO_XCTR 678 select CRYPTO_LIB_POLYVAL 679 select CRYPTO_MANAGER 680 help 681 HCTR2 length-preserving encryption mode 682 683 A mode for storage encryption that is efficient on processors with 684 instructions to accelerate AES and carryless multiplication, e.g. 685 x86 processors with AES-NI and CLMUL, and ARM processors with the 686 ARMv8 crypto extensions. 687 688 See https://eprint.iacr.org/2021/1441 689 690config CRYPTO_LRW 691 tristate "LRW (Liskov Rivest Wagner)" 692 select CRYPTO_LIB_GF128MUL 693 select CRYPTO_SKCIPHER 694 select CRYPTO_MANAGER 695 select CRYPTO_ECB 696 help 697 LRW (Liskov Rivest Wagner) mode 698 699 A tweakable, non malleable, non movable 700 narrow block cipher mode for dm-crypt. Use it with cipher 701 specification string aes-lrw-benbi, the key must be 256, 320 or 384. 702 The first 128, 192 or 256 bits in the key are used for AES and the 703 rest is used to tie each cipher block to its logical position. 704 705 See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf 706 707config CRYPTO_PCBC 708 tristate "PCBC (Propagating Cipher Block Chaining)" 709 select CRYPTO_SKCIPHER 710 select CRYPTO_MANAGER 711 help 712 PCBC (Propagating Cipher Block Chaining) mode 713 714 This block cipher mode is required for RxRPC. 715 716config CRYPTO_XCTR 717 tristate 718 select CRYPTO_SKCIPHER 719 select CRYPTO_MANAGER 720 help 721 XCTR (XOR Counter) mode for HCTR2 722 723 This blockcipher mode is a variant of CTR mode using XORs and little-endian 724 addition rather than big-endian arithmetic. 725 726 XCTR mode is used to implement HCTR2. 727 728config CRYPTO_XTS 729 tristate "XTS (XOR Encrypt XOR with ciphertext stealing)" 730 select CRYPTO_SKCIPHER 731 select CRYPTO_MANAGER 732 select CRYPTO_ECB 733 help 734 XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 735 and IEEE 1619) 736 737 Use with aes-xts-plain, key size 256, 384 or 512 bits. This 738 implementation currently can't handle a sectorsize which is not a 739 multiple of 16 bytes. 740 741endmenu 742 743menu "AEAD (authenticated encryption with associated data) ciphers" 744 745config CRYPTO_AEGIS128 746 tristate "AEGIS-128" 747 select CRYPTO_AEAD 748 select CRYPTO_LIB_AES # for AES S-box tables 749 help 750 AEGIS-128 AEAD algorithm 751 752config CRYPTO_AEGIS128_SIMD 753 bool "AEGIS-128 (arm NEON, arm64 NEON)" 754 depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) 755 default y 756 help 757 AEGIS-128 AEAD algorithm 758 759 Architecture: arm or arm64 using: 760 - NEON (Advanced SIMD) extension 761 762config CRYPTO_CHACHA20POLY1305 763 tristate "ChaCha20-Poly1305" 764 select CRYPTO_CHACHA20 765 select CRYPTO_AEAD 766 select CRYPTO_LIB_POLY1305 767 select CRYPTO_MANAGER 768 help 769 ChaCha20 stream cipher and Poly1305 authenticator combined 770 mode (RFC8439) 771 772config CRYPTO_CCM 773 tristate "CCM (Counter with Cipher Block Chaining-MAC)" 774 select CRYPTO_CTR 775 select CRYPTO_HASH 776 select CRYPTO_AEAD 777 select CRYPTO_MANAGER 778 help 779 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 780 authenticated encryption mode (NIST SP800-38C) 781 782config CRYPTO_GCM 783 tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)" 784 select CRYPTO_CTR 785 select CRYPTO_AEAD 786 select CRYPTO_GHASH 787 select CRYPTO_MANAGER 788 help 789 GCM (Galois/Counter Mode) authenticated encryption mode and GMAC 790 (GCM Message Authentication Code) (NIST SP800-38D) 791 792 This is required for IPSec ESP (XFRM_ESP). 793 794config CRYPTO_GENIV 795 tristate 796 select CRYPTO_AEAD 797 select CRYPTO_MANAGER 798 select CRYPTO_RNG_DEFAULT 799 800config CRYPTO_SEQIV 801 tristate "Sequence Number IV Generator" 802 select CRYPTO_GENIV 803 help 804 Sequence Number IV generator 805 806 This IV generator generates an IV based on a sequence number by 807 xoring it with a salt. This algorithm is mainly useful for CTR. 808 809 This is required for IPsec ESP (XFRM_ESP). 810 811config CRYPTO_ECHAINIV 812 tristate "Encrypted Chain IV Generator" 813 select CRYPTO_GENIV 814 help 815 Encrypted Chain IV generator 816 817 This IV generator generates an IV based on the encryption of 818 a sequence number xored with a salt. This is the default 819 algorithm for CBC. 820 821config CRYPTO_ESSIV 822 tristate "Encrypted Salt-Sector IV Generator" 823 select CRYPTO_AUTHENC 824 help 825 Encrypted Salt-Sector IV generator 826 827 This IV generator is used in some cases by fscrypt and/or 828 dm-crypt. It uses the hash of the block encryption key as the 829 symmetric key for a block encryption pass applied to the input 830 IV, making low entropy IV sources more suitable for block 831 encryption. 832 833 This driver implements a crypto API template that can be 834 instantiated either as an skcipher or as an AEAD (depending on the 835 type of the first template argument), and which defers encryption 836 and decryption requests to the encapsulated cipher after applying 837 ESSIV to the input IV. Note that in the AEAD case, it is assumed 838 that the keys are presented in the same format used by the authenc 839 template, and that the IV appears at the end of the authenticated 840 associated data (AAD) region (which is how dm-crypt uses it.) 841 842 Note that the use of ESSIV is not recommended for new deployments, 843 and so this only needs to be enabled when interoperability with 844 existing encrypted volumes of filesystems is required, or when 845 building for a particular system that requires it (e.g., when 846 the SoC in question has accelerated CBC but not XTS, making CBC 847 combined with ESSIV the only feasible mode for h/w accelerated 848 block encryption) 849 850endmenu 851 852menu "Hashes, digests, and MACs" 853 854config CRYPTO_BLAKE2B 855 tristate "BLAKE2b" 856 select CRYPTO_HASH 857 select CRYPTO_LIB_BLAKE2B 858 help 859 BLAKE2b cryptographic hash function (RFC 7693) 860 861 BLAKE2b is optimized for 64-bit platforms and can produce digests 862 of any size between 1 and 64 bytes. The keyed hash is also implemented. 863 864 This module provides the following algorithms: 865 - blake2b-160 866 - blake2b-256 867 - blake2b-384 868 - blake2b-512 869 870 Used by the btrfs filesystem. 871 872 See https://blake2.net for further information. 873 874config CRYPTO_CMAC 875 tristate "CMAC (Cipher-based MAC)" 876 select CRYPTO_HASH 877 select CRYPTO_MANAGER 878 help 879 CMAC (Cipher-based Message Authentication Code) authentication 880 mode (NIST SP800-38B and IETF RFC4493) 881 882config CRYPTO_GHASH 883 tristate "GHASH" 884 select CRYPTO_HASH 885 select CRYPTO_LIB_GF128MUL 886 help 887 GCM GHASH function (NIST SP800-38D) 888 889config CRYPTO_HMAC 890 tristate "HMAC (Keyed-Hash MAC)" 891 select CRYPTO_HASH 892 select CRYPTO_MANAGER 893 help 894 HMAC (Keyed-Hash Message Authentication Code) (FIPS 198 and 895 RFC2104) 896 897 This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP). 898 899config CRYPTO_MD4 900 tristate "MD4" 901 select CRYPTO_HASH 902 help 903 MD4 message digest algorithm (RFC1320) 904 905config CRYPTO_MD5 906 tristate "MD5" 907 select CRYPTO_HASH 908 select CRYPTO_LIB_MD5 909 help 910 MD5 message digest algorithm (RFC1321), including HMAC support. 911 912config CRYPTO_MICHAEL_MIC 913 tristate "Michael MIC" 914 select CRYPTO_HASH 915 help 916 Michael MIC (Message Integrity Code) (IEEE 802.11i) 917 918 Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol), 919 known as WPA (Wif-Fi Protected Access). 920 921 This algorithm is required for TKIP, but it should not be used for 922 other purposes because of the weakness of the algorithm. 923 924config CRYPTO_RMD160 925 tristate "RIPEMD-160" 926 select CRYPTO_HASH 927 help 928 RIPEMD-160 hash function (ISO/IEC 10118-3) 929 930 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended 931 to be used as a secure replacement for the 128-bit hash functions 932 MD4, MD5 and its predecessor RIPEMD 933 (not to be confused with RIPEMD-128). 934 935 Its speed is comparable to SHA-1 and there are no known attacks 936 against RIPEMD-160. 937 938 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 939 See https://homes.esat.kuleuven.be/~bosselae/ripemd160.html 940 for further information. 941 942config CRYPTO_SHA1 943 tristate "SHA-1" 944 select CRYPTO_HASH 945 select CRYPTO_LIB_SHA1 946 help 947 SHA-1 secure hash algorithm (FIPS 180, ISO/IEC 10118-3), including 948 HMAC support. 949 950config CRYPTO_SHA256 951 tristate "SHA-224 and SHA-256" 952 select CRYPTO_HASH 953 select CRYPTO_LIB_SHA256 954 help 955 SHA-224 and SHA-256 secure hash algorithms (FIPS 180, ISO/IEC 956 10118-3), including HMAC support. 957 958 This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP). 959 Used by the btrfs filesystem, Ceph, NFS, and SMB. 960 961config CRYPTO_SHA512 962 tristate "SHA-384 and SHA-512" 963 select CRYPTO_HASH 964 select CRYPTO_LIB_SHA512 965 help 966 SHA-384 and SHA-512 secure hash algorithms (FIPS 180, ISO/IEC 967 10118-3), including HMAC support. 968 969config CRYPTO_SHA3 970 tristate "SHA-3" 971 select CRYPTO_HASH 972 select CRYPTO_LIB_SHA3 973 help 974 SHA-3 secure hash algorithms (FIPS 202, ISO/IEC 10118-3) 975 976config CRYPTO_SM3_GENERIC 977 tristate "SM3 (ShangMi 3)" 978 select CRYPTO_HASH 979 select CRYPTO_LIB_SM3 980 help 981 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012, ISO/IEC 10118-3) 982 983 This is part of the Chinese Commercial Cryptography suite. 984 985 References: 986 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf 987 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash 988 989config CRYPTO_STREEBOG 990 tristate "Streebog" 991 select CRYPTO_HASH 992 help 993 Streebog Hash Function (GOST R 34.11-2012, RFC 6986, ISO/IEC 10118-3) 994 995 This is one of the Russian cryptographic standard algorithms (called 996 GOST algorithms). This setting enables two hash algorithms with 997 256 and 512 bits output. 998 999 References: 1000 https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf 1001 https://tools.ietf.org/html/rfc6986 1002 1003config CRYPTO_WP512 1004 tristate "Whirlpool" 1005 select CRYPTO_HASH 1006 help 1007 Whirlpool hash function (ISO/IEC 10118-3) 1008 1009 512, 384 and 256-bit hashes. 1010 1011 Whirlpool-512 is part of the NESSIE cryptographic primitives. 1012 1013 See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html 1014 for further information. 1015 1016config CRYPTO_XCBC 1017 tristate "XCBC-MAC (Extended Cipher Block Chaining MAC)" 1018 select CRYPTO_HASH 1019 select CRYPTO_MANAGER 1020 help 1021 XCBC-MAC (Extended Cipher Block Chaining Message Authentication 1022 Code) (RFC3566) 1023 1024config CRYPTO_XXHASH 1025 tristate "xxHash" 1026 select CRYPTO_HASH 1027 select XXHASH 1028 help 1029 xxHash non-cryptographic hash algorithm 1030 1031 Extremely fast, working at speeds close to RAM limits. 1032 1033 Used by the btrfs filesystem. 1034 1035endmenu 1036 1037menu "CRCs (cyclic redundancy checks)" 1038 1039config CRYPTO_CRC32C 1040 tristate "CRC32c" 1041 select CRYPTO_HASH 1042 select CRC32 1043 help 1044 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720) 1045 1046 A 32-bit CRC (cyclic redundancy check) with a polynomial defined 1047 by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic 1048 Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions 1049 on Communications, Vol. 41, No. 6, June 1993, selected for use with 1050 iSCSI. 1051 1052 Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI. 1053 1054config CRYPTO_CRC32 1055 tristate "CRC32" 1056 select CRYPTO_HASH 1057 select CRC32 1058 help 1059 CRC32 CRC algorithm (IEEE 802.3) 1060 1061 Used by RoCEv2 and f2fs. 1062 1063endmenu 1064 1065menu "Compression" 1066 1067config CRYPTO_DEFLATE 1068 tristate "Deflate" 1069 select CRYPTO_ALGAPI 1070 select CRYPTO_ACOMP2 1071 select ZLIB_INFLATE 1072 select ZLIB_DEFLATE 1073 help 1074 Deflate compression algorithm (RFC1951) 1075 1076 Used by IPSec with the IPCOMP protocol (RFC3173, RFC2394) 1077 1078config CRYPTO_LZO 1079 tristate "LZO" 1080 select CRYPTO_ALGAPI 1081 select CRYPTO_ACOMP2 1082 select LZO_COMPRESS 1083 select LZO_DECOMPRESS 1084 help 1085 LZO compression algorithm 1086 1087 See https://www.oberhumer.com/opensource/lzo/ for further information. 1088 1089config CRYPTO_842 1090 tristate "842" 1091 select CRYPTO_ALGAPI 1092 select CRYPTO_ACOMP2 1093 select 842_COMPRESS 1094 select 842_DECOMPRESS 1095 help 1096 842 compression algorithm by IBM 1097 1098 See https://github.com/plauth/lib842 for further information. 1099 1100config CRYPTO_LZ4 1101 tristate "LZ4" 1102 select CRYPTO_ALGAPI 1103 select CRYPTO_ACOMP2 1104 select LZ4_COMPRESS 1105 select LZ4_DECOMPRESS 1106 help 1107 LZ4 compression algorithm 1108 1109 See https://github.com/lz4/lz4 for further information. 1110 1111config CRYPTO_LZ4HC 1112 tristate "LZ4HC" 1113 select CRYPTO_ALGAPI 1114 select CRYPTO_ACOMP2 1115 select LZ4HC_COMPRESS 1116 select LZ4_DECOMPRESS 1117 help 1118 LZ4 high compression mode algorithm 1119 1120 See https://github.com/lz4/lz4 for further information. 1121 1122config CRYPTO_ZSTD 1123 tristate "Zstd" 1124 select CRYPTO_ALGAPI 1125 select CRYPTO_ACOMP2 1126 select ZSTD_COMPRESS 1127 select ZSTD_DECOMPRESS 1128 help 1129 zstd compression algorithm 1130 1131 See https://github.com/facebook/zstd for further information. 1132 1133endmenu 1134 1135menu "Random number generation" 1136 1137menuconfig CRYPTO_DRBG_MENU 1138 tristate "NIST SP800-90A DRBG (Deterministic Random Bit Generator)" 1139 help 1140 DRBG (Deterministic Random Bit Generator) (NIST SP800-90A) 1141 1142 In the following submenu, one or more of the DRBG types must be selected. 1143 1144if CRYPTO_DRBG_MENU 1145 1146config CRYPTO_DRBG_HMAC 1147 bool 1148 default y 1149 select CRYPTO_HMAC 1150 select CRYPTO_SHA512 1151 1152config CRYPTO_DRBG_HASH 1153 bool "Hash_DRBG" 1154 select CRYPTO_SHA256 1155 help 1156 Hash_DRBG variant as defined in NIST SP800-90A. 1157 1158 This uses the SHA-1, SHA-256, SHA-384, or SHA-512 hash algorithms. 1159 1160config CRYPTO_DRBG_CTR 1161 bool "CTR_DRBG" 1162 select CRYPTO_DF80090A 1163 help 1164 CTR_DRBG variant as defined in NIST SP800-90A. 1165 1166 This uses the AES cipher algorithm with the counter block mode. 1167 1168config CRYPTO_DRBG 1169 tristate 1170 default CRYPTO_DRBG_MENU 1171 select CRYPTO_RNG 1172 select CRYPTO_JITTERENTROPY 1173 1174endif # if CRYPTO_DRBG_MENU 1175 1176config CRYPTO_JITTERENTROPY 1177 tristate "CPU Jitter Non-Deterministic RNG (Random Number Generator)" 1178 select CRYPTO_RNG 1179 select CRYPTO_SHA3 1180 help 1181 CPU Jitter RNG (Random Number Generator) from the Jitterentropy library 1182 1183 A non-physical non-deterministic ("true") RNG (e.g., an entropy source 1184 compliant with NIST SP800-90B) intended to provide a seed to a 1185 deterministic RNG (e.g., per NIST SP800-90C). 1186 This RNG does not perform any cryptographic whitening of the generated 1187 random numbers. 1188 1189 See https://www.chronox.de/jent/ 1190 1191if CRYPTO_JITTERENTROPY 1192if CRYPTO_FIPS && EXPERT 1193 1194choice 1195 prompt "CPU Jitter RNG Memory Size" 1196 default CRYPTO_JITTERENTROPY_MEMSIZE_2 1197 help 1198 The Jitter RNG measures the execution time of memory accesses. 1199 Multiple consecutive memory accesses are performed. If the memory 1200 size fits into a cache (e.g. L1), only the memory access timing 1201 to that cache is measured. The closer the cache is to the CPU 1202 the less variations are measured and thus the less entropy is 1203 obtained. Thus, if the memory size fits into the L1 cache, the 1204 obtained entropy is less than if the memory size fits within 1205 L1 + L2, which in turn is less if the memory fits into 1206 L1 + L2 + L3. Thus, by selecting a different memory size, 1207 the entropy rate produced by the Jitter RNG can be modified. 1208 1209 config CRYPTO_JITTERENTROPY_MEMSIZE_2 1210 bool "2048 Bytes (default)" 1211 1212 config CRYPTO_JITTERENTROPY_MEMSIZE_128 1213 bool "128 kBytes" 1214 1215 config CRYPTO_JITTERENTROPY_MEMSIZE_1024 1216 bool "1024 kBytes" 1217 1218 config CRYPTO_JITTERENTROPY_MEMSIZE_8192 1219 bool "8192 kBytes" 1220endchoice 1221 1222config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS 1223 int 1224 default 64 if CRYPTO_JITTERENTROPY_MEMSIZE_2 1225 default 512 if CRYPTO_JITTERENTROPY_MEMSIZE_128 1226 default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024 1227 default 4096 if CRYPTO_JITTERENTROPY_MEMSIZE_8192 1228 1229config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE 1230 int 1231 default 32 if CRYPTO_JITTERENTROPY_MEMSIZE_2 1232 default 256 if CRYPTO_JITTERENTROPY_MEMSIZE_128 1233 default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024 1234 default 2048 if CRYPTO_JITTERENTROPY_MEMSIZE_8192 1235 1236config CRYPTO_JITTERENTROPY_OSR 1237 int "CPU Jitter RNG Oversampling Rate" 1238 range 1 15 1239 default 3 1240 help 1241 The Jitter RNG allows the specification of an oversampling rate (OSR). 1242 The Jitter RNG operation requires a fixed amount of timing 1243 measurements to produce one output block of random numbers. The 1244 OSR value is multiplied with the amount of timing measurements to 1245 generate one output block. Thus, the timing measurement is oversampled 1246 by the OSR factor. The oversampling allows the Jitter RNG to operate 1247 on hardware whose timers deliver limited amount of entropy (e.g. 1248 the timer is coarse) by setting the OSR to a higher value. The 1249 trade-off, however, is that the Jitter RNG now requires more time 1250 to generate random numbers. 1251 1252config CRYPTO_JITTERENTROPY_TESTINTERFACE 1253 bool "CPU Jitter RNG Test Interface" 1254 help 1255 The test interface allows a privileged process to capture 1256 the raw unconditioned high resolution time stamp noise that 1257 is collected by the Jitter RNG for statistical analysis. As 1258 this data is used at the same time to generate random bits, 1259 the Jitter RNG operates in an insecure mode as long as the 1260 recording is enabled. This interface therefore is only 1261 intended for testing purposes and is not suitable for 1262 production systems. 1263 1264 The raw noise data can be obtained using the jent_raw_hires 1265 debugfs file. Using the option 1266 jitterentropy_testing.boot_raw_hires_test=1 the raw noise of 1267 the first 1000 entropy events since boot can be sampled. 1268 1269 If unsure, select N. 1270 1271endif # if CRYPTO_FIPS && EXPERT 1272 1273if !(CRYPTO_FIPS && EXPERT) 1274 1275config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS 1276 int 1277 default 64 1278 1279config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE 1280 int 1281 default 32 1282 1283config CRYPTO_JITTERENTROPY_OSR 1284 int 1285 default 1 1286 1287config CRYPTO_JITTERENTROPY_TESTINTERFACE 1288 bool 1289 1290endif # if !(CRYPTO_FIPS && EXPERT) 1291endif # if CRYPTO_JITTERENTROPY 1292 1293config CRYPTO_KDF800108_CTR 1294 tristate 1295 select CRYPTO_HMAC 1296 select CRYPTO_SHA256 1297 1298config CRYPTO_DF80090A 1299 tristate 1300 select CRYPTO_AES 1301 select CRYPTO_CTR 1302 1303endmenu 1304menu "Userspace interface" 1305 1306config CRYPTO_USER_API 1307 tristate 1308 1309config CRYPTO_USER_API_HASH 1310 tristate "Hash algorithms" 1311 depends on NET 1312 select CRYPTO_HASH 1313 select CRYPTO_USER_API 1314 help 1315 Enable the userspace interface for hash algorithms. 1316 1317 See Documentation/crypto/userspace-if.rst and 1318 https://www.chronox.de/libkcapi/html/index.html 1319 1320config CRYPTO_USER_API_SKCIPHER 1321 tristate "Symmetric key cipher algorithms" 1322 depends on NET 1323 select CRYPTO_SKCIPHER 1324 select CRYPTO_USER_API 1325 help 1326 Enable the userspace interface for symmetric key cipher algorithms. 1327 1328 See Documentation/crypto/userspace-if.rst and 1329 https://www.chronox.de/libkcapi/html/index.html 1330 1331config CRYPTO_USER_API_RNG 1332 tristate "RNG (random number generator) algorithms" 1333 depends on NET 1334 select CRYPTO_RNG 1335 select CRYPTO_USER_API 1336 help 1337 Enable the userspace interface for RNG (random number generator) 1338 algorithms. 1339 1340 See Documentation/crypto/userspace-if.rst and 1341 https://www.chronox.de/libkcapi/html/index.html 1342 1343config CRYPTO_USER_API_RNG_CAVP 1344 bool "Enable CAVP testing of DRBG" 1345 depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG 1346 help 1347 Enable extra APIs in the userspace interface for NIST CAVP 1348 (Cryptographic Algorithm Validation Program) testing: 1349 - resetting DRBG entropy 1350 - providing Additional Data 1351 1352 This should only be enabled for CAVP testing. You should say 1353 no unless you know what this is. 1354 1355config CRYPTO_USER_API_AEAD 1356 tristate "AEAD cipher algorithms" 1357 depends on NET 1358 select CRYPTO_AEAD 1359 select CRYPTO_SKCIPHER 1360 select CRYPTO_USER_API 1361 help 1362 Enable the userspace interface for AEAD cipher algorithms. 1363 1364 See Documentation/crypto/userspace-if.rst and 1365 https://www.chronox.de/libkcapi/html/index.html 1366 1367config CRYPTO_USER_API_ENABLE_OBSOLETE 1368 bool "Obsolete cryptographic algorithms" 1369 depends on CRYPTO_USER_API 1370 default y 1371 help 1372 Allow obsolete cryptographic algorithms to be selected that have 1373 already been phased out from internal use by the kernel, and are 1374 only useful for userspace clients that still rely on them. 1375 1376endmenu 1377 1378if !KMSAN # avoid false positives from assembly 1379if ARM 1380source "arch/arm/crypto/Kconfig" 1381endif 1382if ARM64 1383source "arch/arm64/crypto/Kconfig" 1384endif 1385if LOONGARCH 1386source "arch/loongarch/crypto/Kconfig" 1387endif 1388if MIPS 1389source "arch/mips/crypto/Kconfig" 1390endif 1391if PPC 1392source "arch/powerpc/crypto/Kconfig" 1393endif 1394if RISCV 1395source "arch/riscv/crypto/Kconfig" 1396endif 1397if S390 1398source "arch/s390/crypto/Kconfig" 1399endif 1400if SPARC 1401source "arch/sparc/crypto/Kconfig" 1402endif 1403if X86 1404source "arch/x86/crypto/Kconfig" 1405endif 1406endif 1407 1408source "drivers/crypto/Kconfig" 1409source "crypto/asymmetric_keys/Kconfig" 1410source "certs/Kconfig" 1411source "crypto/krb5/Kconfig" 1412 1413endif # if CRYPTO 1414