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