Back to home page

OSCL-LXR

 
 

    


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