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