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