0001 # SPDX-License-Identifier: GPL-2.0-only
0002
0003 menuconfig CRYPTO_HW
0004 bool "Hardware crypto devices"
0005 default y
0006 help
0007 Say Y here to get to see options for hardware crypto devices and
0008 processors. This option alone does not add any kernel code.
0009
0010 If you say N, all options in this submenu will be skipped and disabled.
0011
0012 if CRYPTO_HW
0013
0014 source "drivers/crypto/allwinner/Kconfig"
0015
0016 config CRYPTO_DEV_PADLOCK
0017 tristate "Support for VIA PadLock ACE"
0018 depends on X86 && !UML
0019 help
0020 Some VIA processors come with an integrated crypto engine
0021 (so called VIA PadLock ACE, Advanced Cryptography Engine)
0022 that provides instructions for very fast cryptographic
0023 operations with supported algorithms.
0024
0025 The instructions are used only when the CPU supports them.
0026 Otherwise software encryption is used.
0027
0028 config CRYPTO_DEV_PADLOCK_AES
0029 tristate "PadLock driver for AES algorithm"
0030 depends on CRYPTO_DEV_PADLOCK
0031 select CRYPTO_SKCIPHER
0032 select CRYPTO_LIB_AES
0033 help
0034 Use VIA PadLock for AES algorithm.
0035
0036 Available in VIA C3 and newer CPUs.
0037
0038 If unsure say M. The compiled module will be
0039 called padlock-aes.
0040
0041 config CRYPTO_DEV_PADLOCK_SHA
0042 tristate "PadLock driver for SHA1 and SHA256 algorithms"
0043 depends on CRYPTO_DEV_PADLOCK
0044 select CRYPTO_HASH
0045 select CRYPTO_SHA1
0046 select CRYPTO_SHA256
0047 help
0048 Use VIA PadLock for SHA1/SHA256 algorithms.
0049
0050 Available in VIA C7 and newer processors.
0051
0052 If unsure say M. The compiled module will be
0053 called padlock-sha.
0054
0055 config CRYPTO_DEV_GEODE
0056 tristate "Support for the Geode LX AES engine"
0057 depends on X86_32 && PCI
0058 select CRYPTO_ALGAPI
0059 select CRYPTO_SKCIPHER
0060 help
0061 Say 'Y' here to use the AMD Geode LX processor on-board AES
0062 engine for the CryptoAPI AES algorithm.
0063
0064 To compile this driver as a module, choose M here: the module
0065 will be called geode-aes.
0066
0067 config ZCRYPT
0068 tristate "Support for s390 cryptographic adapters"
0069 depends on S390
0070 select HW_RANDOM
0071 help
0072 Select this option if you want to enable support for
0073 s390 cryptographic adapters like:
0074 + Crypto Express 2 up to 7 Coprocessor (CEXxC)
0075 + Crypto Express 2 up to 7 Accelerator (CEXxA)
0076 + Crypto Express 4 up to 7 EP11 Coprocessor (CEXxP)
0077
0078 config ZCRYPT_DEBUG
0079 bool "Enable debug features for s390 cryptographic adapters"
0080 default n
0081 depends on DEBUG_KERNEL
0082 depends on ZCRYPT
0083 help
0084 Say 'Y' here to enable some additional debug features on the
0085 s390 cryptographic adapters driver.
0086
0087 There will be some more sysfs attributes displayed for ap cards
0088 and queues and some flags on crypto requests are interpreted as
0089 debugging messages to force error injection.
0090
0091 Do not enable on production level kernel build.
0092
0093 If unsure, say N.
0094
0095 config ZCRYPT_MULTIDEVNODES
0096 bool "Support for multiple zcrypt device nodes"
0097 default y
0098 depends on S390
0099 depends on ZCRYPT
0100 help
0101 With this option enabled the zcrypt device driver can
0102 provide multiple devices nodes in /dev. Each device
0103 node can get customized to limit access and narrow
0104 down the use of the available crypto hardware.
0105
0106 config PKEY
0107 tristate "Kernel API for protected key handling"
0108 depends on S390
0109 depends on ZCRYPT
0110 help
0111 With this option enabled the pkey kernel module provides an API
0112 for creation and handling of protected keys. Other parts of the
0113 kernel or userspace applications may use these functions.
0114
0115 Select this option if you want to enable the kernel and userspace
0116 API for proteced key handling.
0117
0118 Please note that creation of protected keys from secure keys
0119 requires to have at least one CEX card in coprocessor mode
0120 available at runtime.
0121
0122 config CRYPTO_PAES_S390
0123 tristate "PAES cipher algorithms"
0124 depends on S390
0125 depends on ZCRYPT
0126 depends on PKEY
0127 select CRYPTO_ALGAPI
0128 select CRYPTO_SKCIPHER
0129 help
0130 This is the s390 hardware accelerated implementation of the
0131 AES cipher algorithms for use with protected key.
0132
0133 Select this option if you want to use the paes cipher
0134 for example to use protected key encrypted devices.
0135
0136 config S390_PRNG
0137 tristate "Pseudo random number generator device driver"
0138 depends on S390
0139 default "m"
0140 help
0141 Select this option if you want to use the s390 pseudo random number
0142 generator. The PRNG is part of the cryptographic processor functions
0143 and uses triple-DES to generate secure random numbers like the
0144 ANSI X9.17 standard. User-space programs access the
0145 pseudo-random-number device through the char device /dev/prandom.
0146
0147 It is available as of z9.
0148
0149 config CRYPTO_DEV_NIAGARA2
0150 tristate "Niagara2 Stream Processing Unit driver"
0151 select CRYPTO_LIB_DES
0152 select CRYPTO_SKCIPHER
0153 select CRYPTO_HASH
0154 select CRYPTO_MD5
0155 select CRYPTO_SHA1
0156 select CRYPTO_SHA256
0157 depends on SPARC64
0158 help
0159 Each core of a Niagara2 processor contains a Stream
0160 Processing Unit, which itself contains several cryptographic
0161 sub-units. One set provides the Modular Arithmetic Unit,
0162 used for SSL offload. The other set provides the Cipher
0163 Group, which can perform encryption, decryption, hashing,
0164 checksumming, and raw copies.
0165
0166 config CRYPTO_DEV_SL3516
0167 tristate "Storlink SL3516 crypto offloader"
0168 depends on ARCH_GEMINI || COMPILE_TEST
0169 depends on HAS_IOMEM && PM
0170 select CRYPTO_SKCIPHER
0171 select CRYPTO_ENGINE
0172 select CRYPTO_ECB
0173 select CRYPTO_AES
0174 select HW_RANDOM
0175 help
0176 This option allows you to have support for SL3516 crypto offloader.
0177
0178 config CRYPTO_DEV_SL3516_DEBUG
0179 bool "Enable SL3516 stats"
0180 depends on CRYPTO_DEV_SL3516
0181 depends on DEBUG_FS
0182 help
0183 Say y to enable SL3516 debug stats.
0184 This will create /sys/kernel/debug/sl3516/stats for displaying
0185 the number of requests per algorithm and other internal stats.
0186
0187 config CRYPTO_DEV_HIFN_795X
0188 tristate "Driver HIFN 795x crypto accelerator chips"
0189 select CRYPTO_LIB_DES
0190 select CRYPTO_SKCIPHER
0191 select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
0192 depends on PCI
0193 depends on !ARCH_DMA_ADDR_T_64BIT
0194 help
0195 This option allows you to have support for HIFN 795x crypto adapters.
0196
0197 config CRYPTO_DEV_HIFN_795X_RNG
0198 bool "HIFN 795x random number generator"
0199 depends on CRYPTO_DEV_HIFN_795X
0200 help
0201 Select this option if you want to enable the random number generator
0202 on the HIFN 795x crypto adapters.
0203
0204 source "drivers/crypto/caam/Kconfig"
0205
0206 config CRYPTO_DEV_TALITOS
0207 tristate "Talitos Freescale Security Engine (SEC)"
0208 select CRYPTO_AEAD
0209 select CRYPTO_AUTHENC
0210 select CRYPTO_SKCIPHER
0211 select CRYPTO_HASH
0212 select CRYPTO_LIB_DES
0213 select HW_RANDOM
0214 depends on FSL_SOC
0215 help
0216 Say 'Y' here to use the Freescale Security Engine (SEC)
0217 to offload cryptographic algorithm computation.
0218
0219 The Freescale SEC is present on PowerQUICC 'E' processors, such
0220 as the MPC8349E and MPC8548E.
0221
0222 To compile this driver as a module, choose M here: the module
0223 will be called talitos.
0224
0225 config CRYPTO_DEV_TALITOS1
0226 bool "SEC1 (SEC 1.0 and SEC Lite 1.2)"
0227 depends on CRYPTO_DEV_TALITOS
0228 depends on PPC_8xx || PPC_82xx
0229 default y
0230 help
0231 Say 'Y' here to use the Freescale Security Engine (SEC) version 1.0
0232 found on MPC82xx or the Freescale Security Engine (SEC Lite)
0233 version 1.2 found on MPC8xx
0234
0235 config CRYPTO_DEV_TALITOS2
0236 bool "SEC2+ (SEC version 2.0 or upper)"
0237 depends on CRYPTO_DEV_TALITOS
0238 default y if !PPC_8xx
0239 help
0240 Say 'Y' here to use the Freescale Security Engine (SEC)
0241 version 2 and following as found on MPC83xx, MPC85xx, etc ...
0242
0243 config CRYPTO_DEV_IXP4XX
0244 tristate "Driver for IXP4xx crypto hardware acceleration"
0245 depends on ARCH_IXP4XX && IXP4XX_QMGR && IXP4XX_NPE
0246 select CRYPTO_AES
0247 select CRYPTO_DES
0248 select CRYPTO_ECB
0249 select CRYPTO_CBC
0250 select CRYPTO_CTR
0251 select CRYPTO_LIB_DES
0252 select CRYPTO_AEAD
0253 select CRYPTO_AUTHENC
0254 select CRYPTO_SKCIPHER
0255 help
0256 Driver for the IXP4xx NPE crypto engine.
0257
0258 config CRYPTO_DEV_PPC4XX
0259 tristate "Driver AMCC PPC4xx crypto accelerator"
0260 depends on PPC && 4xx
0261 select CRYPTO_HASH
0262 select CRYPTO_AEAD
0263 select CRYPTO_AES
0264 select CRYPTO_LIB_AES
0265 select CRYPTO_CCM
0266 select CRYPTO_CTR
0267 select CRYPTO_GCM
0268 select CRYPTO_SKCIPHER
0269 help
0270 This option allows you to have support for AMCC crypto acceleration.
0271
0272 config HW_RANDOM_PPC4XX
0273 bool "PowerPC 4xx generic true random number generator support"
0274 depends on CRYPTO_DEV_PPC4XX && HW_RANDOM=y
0275 default y
0276 help
0277 This option provides the kernel-side support for the TRNG hardware
0278 found in the security function of some PowerPC 4xx SoCs.
0279
0280 config CRYPTO_DEV_OMAP
0281 tristate "Support for OMAP crypto HW accelerators"
0282 depends on ARCH_OMAP2PLUS
0283 help
0284 OMAP processors have various crypto HW accelerators. Select this if
0285 you want to use the OMAP modules for any of the crypto algorithms.
0286
0287 if CRYPTO_DEV_OMAP
0288
0289 config CRYPTO_DEV_OMAP_SHAM
0290 tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator"
0291 depends on ARCH_OMAP2PLUS
0292 select CRYPTO_ENGINE
0293 select CRYPTO_SHA1
0294 select CRYPTO_MD5
0295 select CRYPTO_SHA256
0296 select CRYPTO_SHA512
0297 select CRYPTO_HMAC
0298 help
0299 OMAP processors have MD5/SHA1/SHA2 hw accelerator. Select this if you
0300 want to use the OMAP module for MD5/SHA1/SHA2 algorithms.
0301
0302 config CRYPTO_DEV_OMAP_AES
0303 tristate "Support for OMAP AES hw engine"
0304 depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS
0305 select CRYPTO_AES
0306 select CRYPTO_SKCIPHER
0307 select CRYPTO_ENGINE
0308 select CRYPTO_CBC
0309 select CRYPTO_ECB
0310 select CRYPTO_CTR
0311 select CRYPTO_AEAD
0312 help
0313 OMAP processors have AES module accelerator. Select this if you
0314 want to use the OMAP module for AES algorithms.
0315
0316 config CRYPTO_DEV_OMAP_DES
0317 tristate "Support for OMAP DES/3DES hw engine"
0318 depends on ARCH_OMAP2PLUS
0319 select CRYPTO_LIB_DES
0320 select CRYPTO_SKCIPHER
0321 select CRYPTO_ENGINE
0322 help
0323 OMAP processors have DES/3DES module accelerator. Select this if you
0324 want to use the OMAP module for DES and 3DES algorithms. Currently
0325 the ECB and CBC modes of operation are supported by the driver. Also
0326 accesses made on unaligned boundaries are supported.
0327
0328 endif # CRYPTO_DEV_OMAP
0329
0330 config CRYPTO_DEV_SAHARA
0331 tristate "Support for SAHARA crypto accelerator"
0332 depends on ARCH_MXC && OF
0333 select CRYPTO_SKCIPHER
0334 select CRYPTO_AES
0335 select CRYPTO_ECB
0336 help
0337 This option enables support for the SAHARA HW crypto accelerator
0338 found in some Freescale i.MX chips.
0339
0340 config CRYPTO_DEV_EXYNOS_RNG
0341 tristate "Exynos HW pseudo random number generator support"
0342 depends on ARCH_EXYNOS || COMPILE_TEST
0343 depends on HAS_IOMEM
0344 select CRYPTO_RNG
0345 help
0346 This driver provides kernel-side support through the
0347 cryptographic API for the pseudo random number generator hardware
0348 found on Exynos SoCs.
0349
0350 To compile this driver as a module, choose M here: the
0351 module will be called exynos-rng.
0352
0353 If unsure, say Y.
0354
0355 config CRYPTO_DEV_S5P
0356 tristate "Support for Samsung S5PV210/Exynos crypto accelerator"
0357 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
0358 depends on HAS_IOMEM
0359 select CRYPTO_AES
0360 select CRYPTO_SKCIPHER
0361 help
0362 This option allows you to have support for S5P crypto acceleration.
0363 Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES
0364 algorithms execution.
0365
0366 config CRYPTO_DEV_EXYNOS_HASH
0367 bool "Support for Samsung Exynos HASH accelerator"
0368 depends on CRYPTO_DEV_S5P
0369 depends on !CRYPTO_DEV_EXYNOS_RNG && CRYPTO_DEV_EXYNOS_RNG!=m
0370 select CRYPTO_SHA1
0371 select CRYPTO_MD5
0372 select CRYPTO_SHA256
0373 help
0374 Select this to offload Exynos from HASH MD5/SHA1/SHA256.
0375 This will select software SHA1, MD5 and SHA256 as they are
0376 needed for small and zero-size messages.
0377 HASH algorithms will be disabled if EXYNOS_RNG
0378 is enabled due to hw conflict.
0379
0380 config CRYPTO_DEV_NX
0381 bool "Support for IBM PowerPC Nest (NX) cryptographic acceleration"
0382 depends on PPC64
0383 help
0384 This enables support for the NX hardware cryptographic accelerator
0385 coprocessor that is in IBM PowerPC P7+ or later processors. This
0386 does not actually enable any drivers, it only allows you to select
0387 which acceleration type (encryption and/or compression) to enable.
0388
0389 if CRYPTO_DEV_NX
0390 source "drivers/crypto/nx/Kconfig"
0391 endif
0392
0393 config CRYPTO_DEV_UX500
0394 tristate "Driver for ST-Ericsson UX500 crypto hardware acceleration"
0395 depends on ARCH_U8500
0396 help
0397 Driver for ST-Ericsson UX500 crypto engine.
0398
0399 if CRYPTO_DEV_UX500
0400 source "drivers/crypto/ux500/Kconfig"
0401 endif # if CRYPTO_DEV_UX500
0402
0403 config CRYPTO_DEV_ATMEL_AUTHENC
0404 bool "Support for Atmel IPSEC/SSL hw accelerator"
0405 depends on ARCH_AT91 || COMPILE_TEST
0406 depends on CRYPTO_DEV_ATMEL_AES
0407 help
0408 Some Atmel processors can combine the AES and SHA hw accelerators
0409 to enhance support of IPSEC/SSL.
0410 Select this if you want to use the Atmel modules for
0411 authenc(hmac(shaX),Y(cbc)) algorithms.
0412
0413 config CRYPTO_DEV_ATMEL_AES
0414 tristate "Support for Atmel AES hw accelerator"
0415 depends on ARCH_AT91 || COMPILE_TEST
0416 select CRYPTO_AES
0417 select CRYPTO_AEAD
0418 select CRYPTO_SKCIPHER
0419 select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
0420 select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
0421 help
0422 Some Atmel processors have AES hw accelerator.
0423 Select this if you want to use the Atmel module for
0424 AES algorithms.
0425
0426 To compile this driver as a module, choose M here: the module
0427 will be called atmel-aes.
0428
0429 config CRYPTO_DEV_ATMEL_TDES
0430 tristate "Support for Atmel DES/TDES hw accelerator"
0431 depends on ARCH_AT91 || COMPILE_TEST
0432 select CRYPTO_LIB_DES
0433 select CRYPTO_SKCIPHER
0434 help
0435 Some Atmel processors have DES/TDES hw accelerator.
0436 Select this if you want to use the Atmel module for
0437 DES/TDES algorithms.
0438
0439 To compile this driver as a module, choose M here: the module
0440 will be called atmel-tdes.
0441
0442 config CRYPTO_DEV_ATMEL_SHA
0443 tristate "Support for Atmel SHA hw accelerator"
0444 depends on ARCH_AT91 || COMPILE_TEST
0445 select CRYPTO_HASH
0446 help
0447 Some Atmel processors have SHA1/SHA224/SHA256/SHA384/SHA512
0448 hw accelerator.
0449 Select this if you want to use the Atmel module for
0450 SHA1/SHA224/SHA256/SHA384/SHA512 algorithms.
0451
0452 To compile this driver as a module, choose M here: the module
0453 will be called atmel-sha.
0454
0455 config CRYPTO_DEV_ATMEL_I2C
0456 tristate
0457 select BITREVERSE
0458
0459 config CRYPTO_DEV_ATMEL_ECC
0460 tristate "Support for Microchip / Atmel ECC hw accelerator"
0461 depends on I2C
0462 select CRYPTO_DEV_ATMEL_I2C
0463 select CRYPTO_ECDH
0464 select CRC16
0465 help
0466 Microhip / Atmel ECC hw accelerator.
0467 Select this if you want to use the Microchip / Atmel module for
0468 ECDH algorithm.
0469
0470 To compile this driver as a module, choose M here: the module
0471 will be called atmel-ecc.
0472
0473 config CRYPTO_DEV_ATMEL_SHA204A
0474 tristate "Support for Microchip / Atmel SHA accelerator and RNG"
0475 depends on I2C
0476 select CRYPTO_DEV_ATMEL_I2C
0477 select HW_RANDOM
0478 select CRC16
0479 help
0480 Microhip / Atmel SHA accelerator and RNG.
0481 Select this if you want to use the Microchip / Atmel SHA204A
0482 module as a random number generator. (Other functions of the
0483 chip are currently not exposed by this driver)
0484
0485 To compile this driver as a module, choose M here: the module
0486 will be called atmel-sha204a.
0487
0488 config CRYPTO_DEV_CCP
0489 bool "Support for AMD Secure Processor"
0490 depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM
0491 help
0492 The AMD Secure Processor provides support for the Cryptographic Coprocessor
0493 (CCP) and the Platform Security Processor (PSP) devices.
0494
0495 if CRYPTO_DEV_CCP
0496 source "drivers/crypto/ccp/Kconfig"
0497 endif
0498
0499 config CRYPTO_DEV_MXS_DCP
0500 tristate "Support for Freescale MXS DCP"
0501 depends on (ARCH_MXS || ARCH_MXC)
0502 select STMP_DEVICE
0503 select CRYPTO_CBC
0504 select CRYPTO_ECB
0505 select CRYPTO_AES
0506 select CRYPTO_SKCIPHER
0507 select CRYPTO_HASH
0508 help
0509 The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB
0510 co-processor on the die.
0511
0512 To compile this driver as a module, choose M here: the module
0513 will be called mxs-dcp.
0514
0515 source "drivers/crypto/qat/Kconfig"
0516 source "drivers/crypto/cavium/cpt/Kconfig"
0517 source "drivers/crypto/cavium/nitrox/Kconfig"
0518 source "drivers/crypto/marvell/Kconfig"
0519
0520 config CRYPTO_DEV_CAVIUM_ZIP
0521 tristate "Cavium ZIP driver"
0522 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
0523 help
0524 Select this option if you want to enable compression/decompression
0525 acceleration on Cavium's ARM based SoCs
0526
0527 config CRYPTO_DEV_QCE
0528 tristate "Qualcomm crypto engine accelerator"
0529 depends on ARCH_QCOM || COMPILE_TEST
0530 depends on HAS_IOMEM
0531 help
0532 This driver supports Qualcomm crypto engine accelerator
0533 hardware. To compile this driver as a module, choose M here. The
0534 module will be called qcrypto.
0535
0536 config CRYPTO_DEV_QCE_SKCIPHER
0537 bool
0538 depends on CRYPTO_DEV_QCE
0539 select CRYPTO_AES
0540 select CRYPTO_LIB_DES
0541 select CRYPTO_ECB
0542 select CRYPTO_CBC
0543 select CRYPTO_XTS
0544 select CRYPTO_CTR
0545 select CRYPTO_SKCIPHER
0546
0547 config CRYPTO_DEV_QCE_SHA
0548 bool
0549 depends on CRYPTO_DEV_QCE
0550 select CRYPTO_SHA1
0551 select CRYPTO_SHA256
0552
0553 config CRYPTO_DEV_QCE_AEAD
0554 bool
0555 depends on CRYPTO_DEV_QCE
0556 select CRYPTO_AUTHENC
0557 select CRYPTO_LIB_DES
0558
0559 choice
0560 prompt "Algorithms enabled for QCE acceleration"
0561 default CRYPTO_DEV_QCE_ENABLE_ALL
0562 depends on CRYPTO_DEV_QCE
0563 help
0564 This option allows to choose whether to build support for all algorithms
0565 (default), hashes-only, or skciphers-only.
0566
0567 The QCE engine does not appear to scale as well as the CPU to handle
0568 multiple crypto requests. While the ipq40xx chips have 4-core CPUs, the
0569 QCE handles only 2 requests in parallel.
0570
0571 Ipsec throughput seems to improve when disabling either family of
0572 algorithms, sharing the load with the CPU. Enabling skciphers-only
0573 appears to work best.
0574
0575 config CRYPTO_DEV_QCE_ENABLE_ALL
0576 bool "All supported algorithms"
0577 select CRYPTO_DEV_QCE_SKCIPHER
0578 select CRYPTO_DEV_QCE_SHA
0579 select CRYPTO_DEV_QCE_AEAD
0580 help
0581 Enable all supported algorithms:
0582 - AES (CBC, CTR, ECB, XTS)
0583 - 3DES (CBC, ECB)
0584 - DES (CBC, ECB)
0585 - SHA1, HMAC-SHA1
0586 - SHA256, HMAC-SHA256
0587
0588 config CRYPTO_DEV_QCE_ENABLE_SKCIPHER
0589 bool "Symmetric-key ciphers only"
0590 select CRYPTO_DEV_QCE_SKCIPHER
0591 help
0592 Enable symmetric-key ciphers only:
0593 - AES (CBC, CTR, ECB, XTS)
0594 - 3DES (ECB, CBC)
0595 - DES (ECB, CBC)
0596
0597 config CRYPTO_DEV_QCE_ENABLE_SHA
0598 bool "Hash/HMAC only"
0599 select CRYPTO_DEV_QCE_SHA
0600 help
0601 Enable hashes/HMAC algorithms only:
0602 - SHA1, HMAC-SHA1
0603 - SHA256, HMAC-SHA256
0604
0605 config CRYPTO_DEV_QCE_ENABLE_AEAD
0606 bool "AEAD algorithms only"
0607 select CRYPTO_DEV_QCE_AEAD
0608 help
0609 Enable AEAD algorithms only:
0610 - authenc()
0611 - ccm(aes)
0612 - rfc4309(ccm(aes))
0613 endchoice
0614
0615 config CRYPTO_DEV_QCE_SW_MAX_LEN
0616 int "Default maximum request size to use software for AES"
0617 depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER
0618 default 512
0619 help
0620 This sets the default maximum request size to perform AES requests
0621 using software instead of the crypto engine. It can be changed by
0622 setting the aes_sw_max_len parameter.
0623
0624 Small blocks are processed faster in software than hardware.
0625 Considering the 256-bit ciphers, software is 2-3 times faster than
0626 qce at 256-bytes, 30% faster at 512, and about even at 768-bytes.
0627 With 128-bit keys, the break-even point would be around 1024-bytes.
0628
0629 The default is set a little lower, to 512 bytes, to balance the
0630 cost in CPU usage. The minimum recommended setting is 16-bytes
0631 (1 AES block), since AES-GCM will fail if you set it lower.
0632 Setting this to zero will send all requests to the hardware.
0633
0634 Note that 192-bit keys are not supported by the hardware and are
0635 always processed by the software fallback, and all DES requests
0636 are done by the hardware.
0637
0638 config CRYPTO_DEV_QCOM_RNG
0639 tristate "Qualcomm Random Number Generator Driver"
0640 depends on ARCH_QCOM || COMPILE_TEST
0641 select CRYPTO_RNG
0642 help
0643 This driver provides support for the Random Number
0644 Generator hardware found on Qualcomm SoCs.
0645
0646 To compile this driver as a module, choose M here. The
0647 module will be called qcom-rng. If unsure, say N.
0648
0649 config CRYPTO_DEV_VMX
0650 bool "Support for VMX cryptographic acceleration instructions"
0651 depends on PPC64 && VSX
0652 help
0653 Support for VMX cryptographic acceleration instructions.
0654
0655 source "drivers/crypto/vmx/Kconfig"
0656
0657 config CRYPTO_DEV_IMGTEC_HASH
0658 tristate "Imagination Technologies hardware hash accelerator"
0659 depends on MIPS || COMPILE_TEST
0660 select CRYPTO_MD5
0661 select CRYPTO_SHA1
0662 select CRYPTO_SHA256
0663 select CRYPTO_HASH
0664 help
0665 This driver interfaces with the Imagination Technologies
0666 hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256
0667 hashing algorithms.
0668
0669 config CRYPTO_DEV_ROCKCHIP
0670 tristate "Rockchip's Cryptographic Engine driver"
0671 depends on OF && ARCH_ROCKCHIP
0672 select CRYPTO_AES
0673 select CRYPTO_LIB_DES
0674 select CRYPTO_MD5
0675 select CRYPTO_SHA1
0676 select CRYPTO_SHA256
0677 select CRYPTO_HASH
0678 select CRYPTO_SKCIPHER
0679
0680 help
0681 This driver interfaces with the hardware crypto accelerator.
0682 Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode.
0683
0684 config CRYPTO_DEV_ZYNQMP_AES
0685 tristate "Support for Xilinx ZynqMP AES hw accelerator"
0686 depends on ZYNQMP_FIRMWARE || COMPILE_TEST
0687 select CRYPTO_AES
0688 select CRYPTO_ENGINE
0689 select CRYPTO_AEAD
0690 help
0691 Xilinx ZynqMP has AES-GCM engine used for symmetric key
0692 encryption and decryption. This driver interfaces with AES hw
0693 accelerator. Select this if you want to use the ZynqMP module
0694 for AES algorithms.
0695
0696 config CRYPTO_DEV_ZYNQMP_SHA3
0697 tristate "Support for Xilinx ZynqMP SHA3 hardware accelerator"
0698 depends on ZYNQMP_FIRMWARE || COMPILE_TEST
0699 select CRYPTO_SHA3
0700 help
0701 Xilinx ZynqMP has SHA3 engine used for secure hash calculation.
0702 This driver interfaces with SHA3 hardware engine.
0703 Select this if you want to use the ZynqMP module
0704 for SHA3 hash computation.
0705
0706 source "drivers/crypto/chelsio/Kconfig"
0707
0708 source "drivers/crypto/virtio/Kconfig"
0709
0710 config CRYPTO_DEV_BCM_SPU
0711 tristate "Broadcom symmetric crypto/hash acceleration support"
0712 depends on ARCH_BCM_IPROC
0713 depends on MAILBOX
0714 default m
0715 select CRYPTO_AUTHENC
0716 select CRYPTO_LIB_DES
0717 select CRYPTO_MD5
0718 select CRYPTO_SHA1
0719 select CRYPTO_SHA256
0720 select CRYPTO_SHA512
0721 help
0722 This driver provides support for Broadcom crypto acceleration using the
0723 Secure Processing Unit (SPU). The SPU driver registers skcipher,
0724 ahash, and aead algorithms with the kernel cryptographic API.
0725
0726 source "drivers/crypto/stm32/Kconfig"
0727
0728 config CRYPTO_DEV_SAFEXCEL
0729 tristate "Inside Secure's SafeXcel cryptographic engine driver"
0730 depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
0731 select CRYPTO_LIB_AES
0732 select CRYPTO_AUTHENC
0733 select CRYPTO_SKCIPHER
0734 select CRYPTO_LIB_DES
0735 select CRYPTO_HASH
0736 select CRYPTO_HMAC
0737 select CRYPTO_MD5
0738 select CRYPTO_SHA1
0739 select CRYPTO_SHA256
0740 select CRYPTO_SHA512
0741 select CRYPTO_CHACHA20POLY1305
0742 select CRYPTO_SHA3
0743 help
0744 This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic
0745 engines designed by Inside Secure. It currently accelerates DES, 3DES and
0746 AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256,
0747 SHA384 and SHA512 hash algorithms for both basic hash and HMAC.
0748 Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations.
0749
0750 config CRYPTO_DEV_ARTPEC6
0751 tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration."
0752 depends on ARM && (ARCH_ARTPEC || COMPILE_TEST)
0753 depends on OF
0754 select CRYPTO_AEAD
0755 select CRYPTO_AES
0756 select CRYPTO_ALGAPI
0757 select CRYPTO_SKCIPHER
0758 select CRYPTO_CTR
0759 select CRYPTO_HASH
0760 select CRYPTO_SHA1
0761 select CRYPTO_SHA256
0762 select CRYPTO_SHA512
0763 help
0764 Enables the driver for the on-chip crypto accelerator
0765 of Axis ARTPEC SoCs.
0766
0767 To compile this driver as a module, choose M here.
0768
0769 config CRYPTO_DEV_CCREE
0770 tristate "Support for ARM TrustZone CryptoCell family of security processors"
0771 depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA
0772 default n
0773 select CRYPTO_HASH
0774 select CRYPTO_SKCIPHER
0775 select CRYPTO_LIB_DES
0776 select CRYPTO_AEAD
0777 select CRYPTO_AUTHENC
0778 select CRYPTO_SHA1
0779 select CRYPTO_MD5
0780 select CRYPTO_SHA256
0781 select CRYPTO_SHA512
0782 select CRYPTO_HMAC
0783 select CRYPTO_AES
0784 select CRYPTO_CBC
0785 select CRYPTO_ECB
0786 select CRYPTO_CTR
0787 select CRYPTO_XTS
0788 select CRYPTO_SM4
0789 select CRYPTO_SM3
0790 help
0791 Say 'Y' to enable a driver for the REE interface of the Arm
0792 TrustZone CryptoCell family of processors. Currently the
0793 CryptoCell 713, 703, 712, 710 and 630 are supported.
0794 Choose this if you wish to use hardware acceleration of
0795 cryptographic operations on the system REE.
0796 If unsure say Y.
0797
0798 source "drivers/crypto/hisilicon/Kconfig"
0799
0800 source "drivers/crypto/amlogic/Kconfig"
0801
0802 config CRYPTO_DEV_SA2UL
0803 tristate "Support for TI security accelerator"
0804 depends on ARCH_K3 || COMPILE_TEST
0805 select ARM64_CRYPTO
0806 select CRYPTO_AES
0807 select CRYPTO_AES_ARM64
0808 select CRYPTO_ALGAPI
0809 select CRYPTO_AUTHENC
0810 select CRYPTO_SHA1
0811 select CRYPTO_SHA256
0812 select CRYPTO_SHA512
0813 select HW_RANDOM
0814 select SG_SPLIT
0815 help
0816 K3 devices include a security accelerator engine that may be
0817 used for crypto offload. Select this if you want to use hardware
0818 acceleration for cryptographic algorithms on these devices.
0819
0820 source "drivers/crypto/keembay/Kconfig"
0821
0822 endif # CRYPTO_HW