1# SPDX-License-Identifier: GPL-2.0-only 2 3menuconfig CRYPTO_HW 4 bool "Hardware crypto devices" 5 default y 6 help 7 Say Y here to get to see options for hardware crypto devices and 8 processors. This option alone does not add any kernel code. 9 10 If you say N, all options in this submenu will be skipped and disabled. 11 12if CRYPTO_HW 13 14source "drivers/crypto/allwinner/Kconfig" 15 16config CRYPTO_DEV_PADLOCK 17 tristate "Support for VIA PadLock ACE" 18 depends on X86 && !UML 19 help 20 Some VIA processors come with an integrated crypto engine 21 (so called VIA PadLock ACE, Advanced Cryptography Engine) 22 that provides instructions for very fast cryptographic 23 operations with supported algorithms. 24 25 The instructions are used only when the CPU supports them. 26 Otherwise software encryption is used. 27 28config CRYPTO_DEV_PADLOCK_AES 29 tristate "PadLock driver for AES algorithm" 30 depends on CRYPTO_DEV_PADLOCK 31 select CRYPTO_SKCIPHER 32 select CRYPTO_LIB_AES 33 help 34 Use VIA PadLock for AES algorithm. 35 36 Available in VIA C3 and newer CPUs. 37 38 If unsure say M. The compiled module will be 39 called padlock-aes. 40 41config CRYPTO_DEV_PADLOCK_SHA 42 tristate "PadLock driver for SHA1 and SHA256 algorithms" 43 depends on CRYPTO_DEV_PADLOCK 44 select CRYPTO_HASH 45 select CRYPTO_SHA1 46 select CRYPTO_SHA256 47 help 48 Use VIA PadLock for SHA1/SHA256 algorithms. 49 50 Available in VIA C7 and newer processors. 51 52 If unsure say M. The compiled module will be 53 called padlock-sha. 54 55config CRYPTO_DEV_GEODE 56 tristate "Support for the Geode LX AES engine" 57 depends on X86_32 && PCI 58 select CRYPTO_ALGAPI 59 select CRYPTO_SKCIPHER 60 help 61 Say 'Y' here to use the AMD Geode LX processor on-board AES 62 engine for the CryptoAPI AES algorithm. 63 64 To compile this driver as a module, choose M here: the module 65 will be called geode-aes. 66 67config ZCRYPT 68 tristate "Support for s390 cryptographic adapters" 69 depends on S390 70 select HW_RANDOM 71 help 72 Select this option if you want to enable support for 73 s390 cryptographic adapters like: 74 + Crypto Express 2 up to 7 Coprocessor (CEXxC) 75 + Crypto Express 2 up to 7 Accelerator (CEXxA) 76 + Crypto Express 4 up to 7 EP11 Coprocessor (CEXxP) 77 78config ZCRYPT_DEBUG 79 bool "Enable debug features for s390 cryptographic adapters" 80 default n 81 depends on DEBUG_KERNEL 82 depends on ZCRYPT 83 help 84 Say 'Y' here to enable some additional debug features on the 85 s390 cryptographic adapters driver. 86 87 There will be some more sysfs attributes displayed for ap cards 88 and queues and some flags on crypto requests are interpreted as 89 debugging messages to force error injection. 90 91 Do not enable on production level kernel build. 92 93 If unsure, say N. 94 95config ZCRYPT_MULTIDEVNODES 96 bool "Support for multiple zcrypt device nodes" 97 default y 98 depends on S390 99 depends on ZCRYPT 100 help 101 With this option enabled the zcrypt device driver can 102 provide multiple devices nodes in /dev. Each device 103 node can get customized to limit access and narrow 104 down the use of the available crypto hardware. 105 106config PKEY 107 tristate "Kernel API for protected key handling" 108 depends on S390 109 depends on ZCRYPT 110 help 111 With this option enabled the pkey kernel module provides an API 112 for creation and handling of protected keys. Other parts of the 113 kernel or userspace applications may use these functions. 114 115 Select this option if you want to enable the kernel and userspace 116 API for proteced key handling. 117 118 Please note that creation of protected keys from secure keys 119 requires to have at least one CEX card in coprocessor mode 120 available at runtime. 121 122config CRYPTO_PAES_S390 123 tristate "PAES cipher algorithms" 124 depends on S390 125 depends on ZCRYPT 126 depends on PKEY 127 select CRYPTO_ALGAPI 128 select CRYPTO_SKCIPHER 129 help 130 This is the s390 hardware accelerated implementation of the 131 AES cipher algorithms for use with protected key. 132 133 Select this option if you want to use the paes cipher 134 for example to use protected key encrypted devices. 135 136config CRYPTO_SHA1_S390 137 tristate "SHA1 digest algorithm" 138 depends on S390 139 select CRYPTO_HASH 140 help 141 This is the s390 hardware accelerated implementation of the 142 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 143 144 It is available as of z990. 145 146config CRYPTO_SHA256_S390 147 tristate "SHA256 digest algorithm" 148 depends on S390 149 select CRYPTO_HASH 150 help 151 This is the s390 hardware accelerated implementation of the 152 SHA256 secure hash standard (DFIPS 180-2). 153 154 It is available as of z9. 155 156config CRYPTO_SHA512_S390 157 tristate "SHA384 and SHA512 digest algorithm" 158 depends on S390 159 select CRYPTO_HASH 160 help 161 This is the s390 hardware accelerated implementation of the 162 SHA512 secure hash standard. 163 164 It is available as of z10. 165 166config CRYPTO_SHA3_256_S390 167 tristate "SHA3_224 and SHA3_256 digest algorithm" 168 depends on S390 169 select CRYPTO_HASH 170 help 171 This is the s390 hardware accelerated implementation of the 172 SHA3_256 secure hash standard. 173 174 It is available as of z14. 175 176config CRYPTO_SHA3_512_S390 177 tristate "SHA3_384 and SHA3_512 digest algorithm" 178 depends on S390 179 select CRYPTO_HASH 180 help 181 This is the s390 hardware accelerated implementation of the 182 SHA3_512 secure hash standard. 183 184 It is available as of z14. 185 186config CRYPTO_DES_S390 187 tristate "DES and Triple DES cipher algorithms" 188 depends on S390 189 select CRYPTO_ALGAPI 190 select CRYPTO_SKCIPHER 191 select CRYPTO_LIB_DES 192 help 193 This is the s390 hardware accelerated implementation of the 194 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 195 196 As of z990 the ECB and CBC mode are hardware accelerated. 197 As of z196 the CTR mode is hardware accelerated. 198 199config CRYPTO_AES_S390 200 tristate "AES cipher algorithms" 201 depends on S390 202 select CRYPTO_ALGAPI 203 select CRYPTO_SKCIPHER 204 help 205 This is the s390 hardware accelerated implementation of the 206 AES cipher algorithms (FIPS-197). 207 208 As of z9 the ECB and CBC modes are hardware accelerated 209 for 128 bit keys. 210 As of z10 the ECB and CBC modes are hardware accelerated 211 for all AES key sizes. 212 As of z196 the CTR mode is hardware accelerated for all AES 213 key sizes and XTS mode is hardware accelerated for 256 and 214 512 bit keys. 215 216config S390_PRNG 217 tristate "Pseudo random number generator device driver" 218 depends on S390 219 default "m" 220 help 221 Select this option if you want to use the s390 pseudo random number 222 generator. The PRNG is part of the cryptographic processor functions 223 and uses triple-DES to generate secure random numbers like the 224 ANSI X9.17 standard. User-space programs access the 225 pseudo-random-number device through the char device /dev/prandom. 226 227 It is available as of z9. 228 229config CRYPTO_GHASH_S390 230 tristate "GHASH hash function" 231 depends on S390 232 select CRYPTO_HASH 233 help 234 This is the s390 hardware accelerated implementation of GHASH, 235 the hash function used in GCM (Galois/Counter mode). 236 237 It is available as of z196. 238 239config CRYPTO_CRC32_S390 240 tristate "CRC-32 algorithms" 241 depends on S390 242 select CRYPTO_HASH 243 select CRC32 244 help 245 Select this option if you want to use hardware accelerated 246 implementations of CRC algorithms. With this option, you 247 can optimize the computation of CRC-32 (IEEE 802.3 Ethernet) 248 and CRC-32C (Castagnoli). 249 250 It is available with IBM z13 or later. 251 252config CRYPTO_DEV_NIAGARA2 253 tristate "Niagara2 Stream Processing Unit driver" 254 select CRYPTO_LIB_DES 255 select CRYPTO_SKCIPHER 256 select CRYPTO_HASH 257 select CRYPTO_MD5 258 select CRYPTO_SHA1 259 select CRYPTO_SHA256 260 depends on SPARC64 261 help 262 Each core of a Niagara2 processor contains a Stream 263 Processing Unit, which itself contains several cryptographic 264 sub-units. One set provides the Modular Arithmetic Unit, 265 used for SSL offload. The other set provides the Cipher 266 Group, which can perform encryption, decryption, hashing, 267 checksumming, and raw copies. 268 269config CRYPTO_DEV_HIFN_795X 270 tristate "Driver HIFN 795x crypto accelerator chips" 271 select CRYPTO_LIB_DES 272 select CRYPTO_SKCIPHER 273 select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG 274 depends on PCI 275 depends on !ARCH_DMA_ADDR_T_64BIT 276 help 277 This option allows you to have support for HIFN 795x crypto adapters. 278 279config CRYPTO_DEV_HIFN_795X_RNG 280 bool "HIFN 795x random number generator" 281 depends on CRYPTO_DEV_HIFN_795X 282 help 283 Select this option if you want to enable the random number generator 284 on the HIFN 795x crypto adapters. 285 286source "drivers/crypto/caam/Kconfig" 287 288config CRYPTO_DEV_TALITOS 289 tristate "Talitos Freescale Security Engine (SEC)" 290 select CRYPTO_AEAD 291 select CRYPTO_AUTHENC 292 select CRYPTO_SKCIPHER 293 select CRYPTO_HASH 294 select CRYPTO_LIB_DES 295 select HW_RANDOM 296 depends on FSL_SOC 297 help 298 Say 'Y' here to use the Freescale Security Engine (SEC) 299 to offload cryptographic algorithm computation. 300 301 The Freescale SEC is present on PowerQUICC 'E' processors, such 302 as the MPC8349E and MPC8548E. 303 304 To compile this driver as a module, choose M here: the module 305 will be called talitos. 306 307config CRYPTO_DEV_TALITOS1 308 bool "SEC1 (SEC 1.0 and SEC Lite 1.2)" 309 depends on CRYPTO_DEV_TALITOS 310 depends on PPC_8xx || PPC_82xx 311 default y 312 help 313 Say 'Y' here to use the Freescale Security Engine (SEC) version 1.0 314 found on MPC82xx or the Freescale Security Engine (SEC Lite) 315 version 1.2 found on MPC8xx 316 317config CRYPTO_DEV_TALITOS2 318 bool "SEC2+ (SEC version 2.0 or upper)" 319 depends on CRYPTO_DEV_TALITOS 320 default y if !PPC_8xx 321 help 322 Say 'Y' here to use the Freescale Security Engine (SEC) 323 version 2 and following as found on MPC83xx, MPC85xx, etc ... 324 325config CRYPTO_DEV_IXP4XX 326 tristate "Driver for IXP4xx crypto hardware acceleration" 327 depends on ARCH_IXP4XX && IXP4XX_QMGR && IXP4XX_NPE 328 select CRYPTO_LIB_DES 329 select CRYPTO_AEAD 330 select CRYPTO_AUTHENC 331 select CRYPTO_SKCIPHER 332 help 333 Driver for the IXP4xx NPE crypto engine. 334 335config CRYPTO_DEV_PPC4XX 336 tristate "Driver AMCC PPC4xx crypto accelerator" 337 depends on PPC && 4xx 338 select CRYPTO_HASH 339 select CRYPTO_AEAD 340 select CRYPTO_AES 341 select CRYPTO_LIB_AES 342 select CRYPTO_CCM 343 select CRYPTO_CTR 344 select CRYPTO_GCM 345 select CRYPTO_SKCIPHER 346 help 347 This option allows you to have support for AMCC crypto acceleration. 348 349config HW_RANDOM_PPC4XX 350 bool "PowerPC 4xx generic true random number generator support" 351 depends on CRYPTO_DEV_PPC4XX && HW_RANDOM 352 default y 353 help 354 This option provides the kernel-side support for the TRNG hardware 355 found in the security function of some PowerPC 4xx SoCs. 356 357config CRYPTO_DEV_OMAP 358 tristate "Support for OMAP crypto HW accelerators" 359 depends on ARCH_OMAP2PLUS 360 help 361 OMAP processors have various crypto HW accelerators. Select this if 362 you want to use the OMAP modules for any of the crypto algorithms. 363 364if CRYPTO_DEV_OMAP 365 366config CRYPTO_DEV_OMAP_SHAM 367 tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator" 368 depends on ARCH_OMAP2PLUS 369 select CRYPTO_SHA1 370 select CRYPTO_MD5 371 select CRYPTO_SHA256 372 select CRYPTO_SHA512 373 select CRYPTO_HMAC 374 help 375 OMAP processors have MD5/SHA1/SHA2 hw accelerator. Select this if you 376 want to use the OMAP module for MD5/SHA1/SHA2 algorithms. 377 378config CRYPTO_DEV_OMAP_AES 379 tristate "Support for OMAP AES hw engine" 380 depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS 381 select CRYPTO_AES 382 select CRYPTO_SKCIPHER 383 select CRYPTO_ENGINE 384 select CRYPTO_CBC 385 select CRYPTO_ECB 386 select CRYPTO_CTR 387 select CRYPTO_AEAD 388 help 389 OMAP processors have AES module accelerator. Select this if you 390 want to use the OMAP module for AES algorithms. 391 392config CRYPTO_DEV_OMAP_DES 393 tristate "Support for OMAP DES/3DES hw engine" 394 depends on ARCH_OMAP2PLUS 395 select CRYPTO_LIB_DES 396 select CRYPTO_SKCIPHER 397 select CRYPTO_ENGINE 398 help 399 OMAP processors have DES/3DES module accelerator. Select this if you 400 want to use the OMAP module for DES and 3DES algorithms. Currently 401 the ECB and CBC modes of operation are supported by the driver. Also 402 accesses made on unaligned boundaries are supported. 403 404endif # CRYPTO_DEV_OMAP 405 406config CRYPTO_DEV_SAHARA 407 tristate "Support for SAHARA crypto accelerator" 408 depends on ARCH_MXC && OF 409 select CRYPTO_SKCIPHER 410 select CRYPTO_AES 411 select CRYPTO_ECB 412 help 413 This option enables support for the SAHARA HW crypto accelerator 414 found in some Freescale i.MX chips. 415 416config CRYPTO_DEV_EXYNOS_RNG 417 tristate "Exynos HW pseudo random number generator support" 418 depends on ARCH_EXYNOS || COMPILE_TEST 419 depends on HAS_IOMEM 420 select CRYPTO_RNG 421 help 422 This driver provides kernel-side support through the 423 cryptographic API for the pseudo random number generator hardware 424 found on Exynos SoCs. 425 426 To compile this driver as a module, choose M here: the 427 module will be called exynos-rng. 428 429 If unsure, say Y. 430 431config CRYPTO_DEV_S5P 432 tristate "Support for Samsung S5PV210/Exynos crypto accelerator" 433 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 434 depends on HAS_IOMEM 435 select CRYPTO_AES 436 select CRYPTO_SKCIPHER 437 help 438 This option allows you to have support for S5P crypto acceleration. 439 Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES 440 algorithms execution. 441 442config CRYPTO_DEV_EXYNOS_HASH 443 bool "Support for Samsung Exynos HASH accelerator" 444 depends on CRYPTO_DEV_S5P 445 depends on !CRYPTO_DEV_EXYNOS_RNG && CRYPTO_DEV_EXYNOS_RNG!=m 446 select CRYPTO_SHA1 447 select CRYPTO_MD5 448 select CRYPTO_SHA256 449 help 450 Select this to offload Exynos from HASH MD5/SHA1/SHA256. 451 This will select software SHA1, MD5 and SHA256 as they are 452 needed for small and zero-size messages. 453 HASH algorithms will be disabled if EXYNOS_RNG 454 is enabled due to hw conflict. 455 456config CRYPTO_DEV_NX 457 bool "Support for IBM PowerPC Nest (NX) cryptographic acceleration" 458 depends on PPC64 459 help 460 This enables support for the NX hardware cryptographic accelerator 461 coprocessor that is in IBM PowerPC P7+ or later processors. This 462 does not actually enable any drivers, it only allows you to select 463 which acceleration type (encryption and/or compression) to enable. 464 465if CRYPTO_DEV_NX 466 source "drivers/crypto/nx/Kconfig" 467endif 468 469config CRYPTO_DEV_UX500 470 tristate "Driver for ST-Ericsson UX500 crypto hardware acceleration" 471 depends on ARCH_U8500 472 help 473 Driver for ST-Ericsson UX500 crypto engine. 474 475if CRYPTO_DEV_UX500 476 source "drivers/crypto/ux500/Kconfig" 477endif # if CRYPTO_DEV_UX500 478 479config CRYPTO_DEV_ATMEL_AUTHENC 480 bool "Support for Atmel IPSEC/SSL hw accelerator" 481 depends on ARCH_AT91 || COMPILE_TEST 482 depends on CRYPTO_DEV_ATMEL_AES 483 help 484 Some Atmel processors can combine the AES and SHA hw accelerators 485 to enhance support of IPSEC/SSL. 486 Select this if you want to use the Atmel modules for 487 authenc(hmac(shaX),Y(cbc)) algorithms. 488 489config CRYPTO_DEV_ATMEL_AES 490 tristate "Support for Atmel AES hw accelerator" 491 depends on ARCH_AT91 || COMPILE_TEST 492 select CRYPTO_AES 493 select CRYPTO_AEAD 494 select CRYPTO_SKCIPHER 495 select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC 496 select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC 497 help 498 Some Atmel processors have AES hw accelerator. 499 Select this if you want to use the Atmel module for 500 AES algorithms. 501 502 To compile this driver as a module, choose M here: the module 503 will be called atmel-aes. 504 505config CRYPTO_DEV_ATMEL_TDES 506 tristate "Support for Atmel DES/TDES hw accelerator" 507 depends on ARCH_AT91 || COMPILE_TEST 508 select CRYPTO_LIB_DES 509 select CRYPTO_SKCIPHER 510 help 511 Some Atmel processors have DES/TDES hw accelerator. 512 Select this if you want to use the Atmel module for 513 DES/TDES algorithms. 514 515 To compile this driver as a module, choose M here: the module 516 will be called atmel-tdes. 517 518config CRYPTO_DEV_ATMEL_SHA 519 tristate "Support for Atmel SHA hw accelerator" 520 depends on ARCH_AT91 || COMPILE_TEST 521 select CRYPTO_HASH 522 help 523 Some Atmel processors have SHA1/SHA224/SHA256/SHA384/SHA512 524 hw accelerator. 525 Select this if you want to use the Atmel module for 526 SHA1/SHA224/SHA256/SHA384/SHA512 algorithms. 527 528 To compile this driver as a module, choose M here: the module 529 will be called atmel-sha. 530 531config CRYPTO_DEV_ATMEL_I2C 532 tristate 533 select BITREVERSE 534 535config CRYPTO_DEV_ATMEL_ECC 536 tristate "Support for Microchip / Atmel ECC hw accelerator" 537 depends on I2C 538 select CRYPTO_DEV_ATMEL_I2C 539 select CRYPTO_ECDH 540 select CRC16 541 help 542 Microhip / Atmel ECC hw accelerator. 543 Select this if you want to use the Microchip / Atmel module for 544 ECDH algorithm. 545 546 To compile this driver as a module, choose M here: the module 547 will be called atmel-ecc. 548 549config CRYPTO_DEV_ATMEL_SHA204A 550 tristate "Support for Microchip / Atmel SHA accelerator and RNG" 551 depends on I2C 552 select CRYPTO_DEV_ATMEL_I2C 553 select HW_RANDOM 554 select CRC16 555 help 556 Microhip / Atmel SHA accelerator and RNG. 557 Select this if you want to use the Microchip / Atmel SHA204A 558 module as a random number generator. (Other functions of the 559 chip are currently not exposed by this driver) 560 561 To compile this driver as a module, choose M here: the module 562 will be called atmel-sha204a. 563 564config CRYPTO_DEV_CCP 565 bool "Support for AMD Secure Processor" 566 depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM 567 help 568 The AMD Secure Processor provides support for the Cryptographic Coprocessor 569 (CCP) and the Platform Security Processor (PSP) devices. 570 571if CRYPTO_DEV_CCP 572 source "drivers/crypto/ccp/Kconfig" 573endif 574 575config CRYPTO_DEV_MXS_DCP 576 tristate "Support for Freescale MXS DCP" 577 depends on (ARCH_MXS || ARCH_MXC) 578 select STMP_DEVICE 579 select CRYPTO_CBC 580 select CRYPTO_ECB 581 select CRYPTO_AES 582 select CRYPTO_SKCIPHER 583 select CRYPTO_HASH 584 help 585 The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB 586 co-processor on the die. 587 588 To compile this driver as a module, choose M here: the module 589 will be called mxs-dcp. 590 591source "drivers/crypto/qat/Kconfig" 592source "drivers/crypto/cavium/cpt/Kconfig" 593source "drivers/crypto/cavium/nitrox/Kconfig" 594source "drivers/crypto/marvell/Kconfig" 595 596config CRYPTO_DEV_CAVIUM_ZIP 597 tristate "Cavium ZIP driver" 598 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 599 help 600 Select this option if you want to enable compression/decompression 601 acceleration on Cavium's ARM based SoCs 602 603config CRYPTO_DEV_QCE 604 tristate "Qualcomm crypto engine accelerator" 605 depends on ARCH_QCOM || COMPILE_TEST 606 depends on HAS_IOMEM 607 help 608 This driver supports Qualcomm crypto engine accelerator 609 hardware. To compile this driver as a module, choose M here. The 610 module will be called qcrypto. 611 612config CRYPTO_DEV_QCE_SKCIPHER 613 bool 614 depends on CRYPTO_DEV_QCE 615 select CRYPTO_AES 616 select CRYPTO_LIB_DES 617 select CRYPTO_ECB 618 select CRYPTO_CBC 619 select CRYPTO_XTS 620 select CRYPTO_CTR 621 select CRYPTO_SKCIPHER 622 623config CRYPTO_DEV_QCE_SHA 624 bool 625 depends on CRYPTO_DEV_QCE 626 select CRYPTO_SHA1 627 select CRYPTO_SHA256 628 629choice 630 prompt "Algorithms enabled for QCE acceleration" 631 default CRYPTO_DEV_QCE_ENABLE_ALL 632 depends on CRYPTO_DEV_QCE 633 help 634 This option allows to choose whether to build support for all algorithms 635 (default), hashes-only, or skciphers-only. 636 637 The QCE engine does not appear to scale as well as the CPU to handle 638 multiple crypto requests. While the ipq40xx chips have 4-core CPUs, the 639 QCE handles only 2 requests in parallel. 640 641 Ipsec throughput seems to improve when disabling either family of 642 algorithms, sharing the load with the CPU. Enabling skciphers-only 643 appears to work best. 644 645 config CRYPTO_DEV_QCE_ENABLE_ALL 646 bool "All supported algorithms" 647 select CRYPTO_DEV_QCE_SKCIPHER 648 select CRYPTO_DEV_QCE_SHA 649 help 650 Enable all supported algorithms: 651 - AES (CBC, CTR, ECB, XTS) 652 - 3DES (CBC, ECB) 653 - DES (CBC, ECB) 654 - SHA1, HMAC-SHA1 655 - SHA256, HMAC-SHA256 656 657 config CRYPTO_DEV_QCE_ENABLE_SKCIPHER 658 bool "Symmetric-key ciphers only" 659 select CRYPTO_DEV_QCE_SKCIPHER 660 help 661 Enable symmetric-key ciphers only: 662 - AES (CBC, CTR, ECB, XTS) 663 - 3DES (ECB, CBC) 664 - DES (ECB, CBC) 665 666 config CRYPTO_DEV_QCE_ENABLE_SHA 667 bool "Hash/HMAC only" 668 select CRYPTO_DEV_QCE_SHA 669 help 670 Enable hashes/HMAC algorithms only: 671 - SHA1, HMAC-SHA1 672 - SHA256, HMAC-SHA256 673 674endchoice 675 676config CRYPTO_DEV_QCE_SW_MAX_LEN 677 int "Default maximum request size to use software for AES" 678 depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER 679 default 512 680 help 681 This sets the default maximum request size to perform AES requests 682 using software instead of the crypto engine. It can be changed by 683 setting the aes_sw_max_len parameter. 684 685 Small blocks are processed faster in software than hardware. 686 Considering the 256-bit ciphers, software is 2-3 times faster than 687 qce at 256-bytes, 30% faster at 512, and about even at 768-bytes. 688 With 128-bit keys, the break-even point would be around 1024-bytes. 689 690 The default is set a little lower, to 512 bytes, to balance the 691 cost in CPU usage. The minimum recommended setting is 16-bytes 692 (1 AES block), since AES-GCM will fail if you set it lower. 693 Setting this to zero will send all requests to the hardware. 694 695 Note that 192-bit keys are not supported by the hardware and are 696 always processed by the software fallback, and all DES requests 697 are done by the hardware. 698 699config CRYPTO_DEV_QCOM_RNG 700 tristate "Qualcomm Random Number Generator Driver" 701 depends on ARCH_QCOM || COMPILE_TEST 702 select CRYPTO_RNG 703 help 704 This driver provides support for the Random Number 705 Generator hardware found on Qualcomm SoCs. 706 707 To compile this driver as a module, choose M here. The 708 module will be called qcom-rng. If unsure, say N. 709 710config CRYPTO_DEV_VMX 711 bool "Support for VMX cryptographic acceleration instructions" 712 depends on PPC64 && VSX 713 help 714 Support for VMX cryptographic acceleration instructions. 715 716source "drivers/crypto/vmx/Kconfig" 717 718config CRYPTO_DEV_IMGTEC_HASH 719 tristate "Imagination Technologies hardware hash accelerator" 720 depends on MIPS || COMPILE_TEST 721 select CRYPTO_MD5 722 select CRYPTO_SHA1 723 select CRYPTO_SHA256 724 select CRYPTO_HASH 725 help 726 This driver interfaces with the Imagination Technologies 727 hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256 728 hashing algorithms. 729 730config CRYPTO_DEV_ROCKCHIP 731 tristate "Rockchip's Cryptographic Engine driver" 732 depends on OF && ARCH_ROCKCHIP 733 select CRYPTO_AES 734 select CRYPTO_LIB_DES 735 select CRYPTO_MD5 736 select CRYPTO_SHA1 737 select CRYPTO_SHA256 738 select CRYPTO_HASH 739 select CRYPTO_SKCIPHER 740 741 help 742 This driver interfaces with the hardware crypto accelerator. 743 Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode. 744 745config CRYPTO_DEV_ZYNQMP_AES 746 tristate "Support for Xilinx ZynqMP AES hw accelerator" 747 depends on ZYNQMP_FIRMWARE || COMPILE_TEST 748 select CRYPTO_AES 749 select CRYPTO_ENGINE 750 select CRYPTO_AEAD 751 help 752 Xilinx ZynqMP has AES-GCM engine used for symmetric key 753 encryption and decryption. This driver interfaces with AES hw 754 accelerator. Select this if you want to use the ZynqMP module 755 for AES algorithms. 756 757source "drivers/crypto/chelsio/Kconfig" 758 759source "drivers/crypto/virtio/Kconfig" 760 761config CRYPTO_DEV_BCM_SPU 762 tristate "Broadcom symmetric crypto/hash acceleration support" 763 depends on ARCH_BCM_IPROC 764 depends on MAILBOX 765 default m 766 select CRYPTO_AUTHENC 767 select CRYPTO_LIB_DES 768 select CRYPTO_MD5 769 select CRYPTO_SHA1 770 select CRYPTO_SHA256 771 select CRYPTO_SHA512 772 help 773 This driver provides support for Broadcom crypto acceleration using the 774 Secure Processing Unit (SPU). The SPU driver registers skcipher, 775 ahash, and aead algorithms with the kernel cryptographic API. 776 777source "drivers/crypto/stm32/Kconfig" 778 779config CRYPTO_DEV_SAFEXCEL 780 tristate "Inside Secure's SafeXcel cryptographic engine driver" 781 depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM 782 select CRYPTO_LIB_AES 783 select CRYPTO_AUTHENC 784 select CRYPTO_SKCIPHER 785 select CRYPTO_LIB_DES 786 select CRYPTO_HASH 787 select CRYPTO_HMAC 788 select CRYPTO_MD5 789 select CRYPTO_SHA1 790 select CRYPTO_SHA256 791 select CRYPTO_SHA512 792 select CRYPTO_CHACHA20POLY1305 793 select CRYPTO_SHA3 794 help 795 This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic 796 engines designed by Inside Secure. It currently accelerates DES, 3DES and 797 AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256, 798 SHA384 and SHA512 hash algorithms for both basic hash and HMAC. 799 Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations. 800 801config CRYPTO_DEV_ARTPEC6 802 tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration." 803 depends on ARM && (ARCH_ARTPEC || COMPILE_TEST) 804 depends on OF 805 select CRYPTO_AEAD 806 select CRYPTO_AES 807 select CRYPTO_ALGAPI 808 select CRYPTO_SKCIPHER 809 select CRYPTO_CTR 810 select CRYPTO_HASH 811 select CRYPTO_SHA1 812 select CRYPTO_SHA256 813 select CRYPTO_SHA512 814 help 815 Enables the driver for the on-chip crypto accelerator 816 of Axis ARTPEC SoCs. 817 818 To compile this driver as a module, choose M here. 819 820config CRYPTO_DEV_CCREE 821 tristate "Support for ARM TrustZone CryptoCell family of security processors" 822 depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA 823 default n 824 select CRYPTO_HASH 825 select CRYPTO_SKCIPHER 826 select CRYPTO_LIB_DES 827 select CRYPTO_AEAD 828 select CRYPTO_AUTHENC 829 select CRYPTO_SHA1 830 select CRYPTO_MD5 831 select CRYPTO_SHA256 832 select CRYPTO_SHA512 833 select CRYPTO_HMAC 834 select CRYPTO_AES 835 select CRYPTO_CBC 836 select CRYPTO_ECB 837 select CRYPTO_CTR 838 select CRYPTO_XTS 839 select CRYPTO_SM4 840 select CRYPTO_SM3 841 help 842 Say 'Y' to enable a driver for the REE interface of the Arm 843 TrustZone CryptoCell family of processors. Currently the 844 CryptoCell 713, 703, 712, 710 and 630 are supported. 845 Choose this if you wish to use hardware acceleration of 846 cryptographic operations on the system REE. 847 If unsure say Y. 848 849source "drivers/crypto/hisilicon/Kconfig" 850 851source "drivers/crypto/amlogic/Kconfig" 852 853config CRYPTO_DEV_SA2UL 854 tristate "Support for TI security accelerator" 855 depends on ARCH_K3 || COMPILE_TEST 856 select ARM64_CRYPTO 857 select CRYPTO_AES 858 select CRYPTO_AES_ARM64 859 select CRYPTO_ALGAPI 860 select CRYPTO_AUTHENC 861 select CRYPTO_SHA1 862 select CRYPTO_SHA256 863 select CRYPTO_SHA512 864 select HW_RANDOM 865 select SG_SPLIT 866 help 867 K3 devices include a security accelerator engine that may be 868 used for crypto offload. Select this if you want to use hardware 869 acceleration for cryptographic algorithms on these devices. 870 871source "drivers/crypto/keembay/Kconfig" 872 873endif # CRYPTO_HW 874