xref: /kernel/linux/linux-6.6/drivers/crypto/Kconfig (revision 62306a36)
162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci
362306a36Sopenharmony_cimenuconfig CRYPTO_HW
462306a36Sopenharmony_ci	bool "Hardware crypto devices"
562306a36Sopenharmony_ci	default y
662306a36Sopenharmony_ci	help
762306a36Sopenharmony_ci	  Say Y here to get to see options for hardware crypto devices and
862306a36Sopenharmony_ci	  processors. This option alone does not add any kernel code.
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	  If you say N, all options in this submenu will be skipped and disabled.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciif CRYPTO_HW
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cisource "drivers/crypto/allwinner/Kconfig"
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig CRYPTO_DEV_PADLOCK
1762306a36Sopenharmony_ci	tristate "Support for VIA PadLock ACE"
1862306a36Sopenharmony_ci	depends on X86 && !UML
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  Some VIA processors come with an integrated crypto engine
2162306a36Sopenharmony_ci	  (so called VIA PadLock ACE, Advanced Cryptography Engine)
2262306a36Sopenharmony_ci	  that provides instructions for very fast cryptographic
2362306a36Sopenharmony_ci	  operations with supported algorithms.
2462306a36Sopenharmony_ci	  
2562306a36Sopenharmony_ci	  The instructions are used only when the CPU supports them.
2662306a36Sopenharmony_ci	  Otherwise software encryption is used.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciconfig CRYPTO_DEV_PADLOCK_AES
2962306a36Sopenharmony_ci	tristate "PadLock driver for AES algorithm"
3062306a36Sopenharmony_ci	depends on CRYPTO_DEV_PADLOCK
3162306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
3262306a36Sopenharmony_ci	select CRYPTO_LIB_AES
3362306a36Sopenharmony_ci	help
3462306a36Sopenharmony_ci	  Use VIA PadLock for AES algorithm.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	  Available in VIA C3 and newer CPUs.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	  If unsure say M. The compiled module will be
3962306a36Sopenharmony_ci	  called padlock-aes.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig CRYPTO_DEV_PADLOCK_SHA
4262306a36Sopenharmony_ci	tristate "PadLock driver for SHA1 and SHA256 algorithms"
4362306a36Sopenharmony_ci	depends on CRYPTO_DEV_PADLOCK
4462306a36Sopenharmony_ci	select CRYPTO_HASH
4562306a36Sopenharmony_ci	select CRYPTO_SHA1
4662306a36Sopenharmony_ci	select CRYPTO_SHA256
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  Use VIA PadLock for SHA1/SHA256 algorithms.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	  Available in VIA C7 and newer processors.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci	  If unsure say M. The compiled module will be
5362306a36Sopenharmony_ci	  called padlock-sha.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig CRYPTO_DEV_GEODE
5662306a36Sopenharmony_ci	tristate "Support for the Geode LX AES engine"
5762306a36Sopenharmony_ci	depends on X86_32 && PCI
5862306a36Sopenharmony_ci	select CRYPTO_ALGAPI
5962306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  Say 'Y' here to use the AMD Geode LX processor on-board AES
6262306a36Sopenharmony_ci	  engine for the CryptoAPI AES algorithm.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
6562306a36Sopenharmony_ci	  will be called geode-aes.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig ZCRYPT
6862306a36Sopenharmony_ci	tristate "Support for s390 cryptographic adapters"
6962306a36Sopenharmony_ci	depends on S390
7062306a36Sopenharmony_ci	select HW_RANDOM
7162306a36Sopenharmony_ci	help
7262306a36Sopenharmony_ci	  Select this option if you want to enable support for
7362306a36Sopenharmony_ci	  s390 cryptographic adapters like Crypto Express 4 up
7462306a36Sopenharmony_ci	  to 8 in Coprocessor (CEXxC), EP11 Coprocessor (CEXxP)
7562306a36Sopenharmony_ci	  or Accelerator (CEXxA) mode.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciconfig ZCRYPT_DEBUG
7862306a36Sopenharmony_ci	bool "Enable debug features for s390 cryptographic adapters"
7962306a36Sopenharmony_ci	default n
8062306a36Sopenharmony_ci	depends on DEBUG_KERNEL
8162306a36Sopenharmony_ci	depends on ZCRYPT
8262306a36Sopenharmony_ci	help
8362306a36Sopenharmony_ci	  Say 'Y' here to enable some additional debug features on the
8462306a36Sopenharmony_ci	  s390 cryptographic adapters driver.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  There will be some more sysfs attributes displayed for ap cards
8762306a36Sopenharmony_ci	  and queues and some flags on crypto requests are interpreted as
8862306a36Sopenharmony_ci	  debugging messages to force error injection.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	  Do not enable on production level kernel build.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci	  If unsure, say N.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciconfig PKEY
9562306a36Sopenharmony_ci	tristate "Kernel API for protected key handling"
9662306a36Sopenharmony_ci	depends on S390
9762306a36Sopenharmony_ci	depends on ZCRYPT
9862306a36Sopenharmony_ci	help
9962306a36Sopenharmony_ci	  With this option enabled the pkey kernel module provides an API
10062306a36Sopenharmony_ci	  for creation and handling of protected keys. Other parts of the
10162306a36Sopenharmony_ci	  kernel or userspace applications may use these functions.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci	  Select this option if you want to enable the kernel and userspace
10462306a36Sopenharmony_ci	  API for proteced key handling.
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  Please note that creation of protected keys from secure keys
10762306a36Sopenharmony_ci	  requires to have at least one CEX card in coprocessor mode
10862306a36Sopenharmony_ci	  available at runtime.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig CRYPTO_PAES_S390
11162306a36Sopenharmony_ci	tristate "PAES cipher algorithms"
11262306a36Sopenharmony_ci	depends on S390
11362306a36Sopenharmony_ci	depends on ZCRYPT
11462306a36Sopenharmony_ci	depends on PKEY
11562306a36Sopenharmony_ci	select CRYPTO_ALGAPI
11662306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  This is the s390 hardware accelerated implementation of the
11962306a36Sopenharmony_ci	  AES cipher algorithms for use with protected key.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci	  Select this option if you want to use the paes cipher
12262306a36Sopenharmony_ci	  for example to use protected key encrypted devices.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciconfig S390_PRNG
12562306a36Sopenharmony_ci	tristate "Pseudo random number generator device driver"
12662306a36Sopenharmony_ci	depends on S390
12762306a36Sopenharmony_ci	default "m"
12862306a36Sopenharmony_ci	help
12962306a36Sopenharmony_ci	  Select this option if you want to use the s390 pseudo random number
13062306a36Sopenharmony_ci	  generator. The PRNG is part of the cryptographic processor functions
13162306a36Sopenharmony_ci	  and uses triple-DES to generate secure random numbers like the
13262306a36Sopenharmony_ci	  ANSI X9.17 standard. User-space programs access the
13362306a36Sopenharmony_ci	  pseudo-random-number device through the char device /dev/prandom.
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	  It is available as of z9.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciconfig CRYPTO_DEV_NIAGARA2
13862306a36Sopenharmony_ci	tristate "Niagara2 Stream Processing Unit driver"
13962306a36Sopenharmony_ci	select CRYPTO_LIB_DES
14062306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
14162306a36Sopenharmony_ci	select CRYPTO_HASH
14262306a36Sopenharmony_ci	select CRYPTO_MD5
14362306a36Sopenharmony_ci	select CRYPTO_SHA1
14462306a36Sopenharmony_ci	select CRYPTO_SHA256
14562306a36Sopenharmony_ci	depends on SPARC64
14662306a36Sopenharmony_ci	help
14762306a36Sopenharmony_ci	  Each core of a Niagara2 processor contains a Stream
14862306a36Sopenharmony_ci	  Processing Unit, which itself contains several cryptographic
14962306a36Sopenharmony_ci	  sub-units.  One set provides the Modular Arithmetic Unit,
15062306a36Sopenharmony_ci	  used for SSL offload.  The other set provides the Cipher
15162306a36Sopenharmony_ci	  Group, which can perform encryption, decryption, hashing,
15262306a36Sopenharmony_ci	  checksumming, and raw copies.
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciconfig CRYPTO_DEV_SL3516
15562306a36Sopenharmony_ci	tristate "Storlink SL3516 crypto offloader"
15662306a36Sopenharmony_ci	depends on ARCH_GEMINI || COMPILE_TEST
15762306a36Sopenharmony_ci	depends on HAS_IOMEM && PM
15862306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
15962306a36Sopenharmony_ci	select CRYPTO_ENGINE
16062306a36Sopenharmony_ci	select CRYPTO_ECB
16162306a36Sopenharmony_ci	select CRYPTO_AES
16262306a36Sopenharmony_ci	select HW_RANDOM
16362306a36Sopenharmony_ci	help
16462306a36Sopenharmony_ci	  This option allows you to have support for SL3516 crypto offloader.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig CRYPTO_DEV_SL3516_DEBUG
16762306a36Sopenharmony_ci	bool "Enable SL3516 stats"
16862306a36Sopenharmony_ci	depends on CRYPTO_DEV_SL3516
16962306a36Sopenharmony_ci	depends on DEBUG_FS
17062306a36Sopenharmony_ci	help
17162306a36Sopenharmony_ci	  Say y to enable SL3516 debug stats.
17262306a36Sopenharmony_ci	  This will create /sys/kernel/debug/sl3516/stats for displaying
17362306a36Sopenharmony_ci	  the number of requests per algorithm and other internal stats.
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ciconfig CRYPTO_DEV_HIFN_795X
17662306a36Sopenharmony_ci	tristate "Driver HIFN 795x crypto accelerator chips"
17762306a36Sopenharmony_ci	select CRYPTO_LIB_DES
17862306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
17962306a36Sopenharmony_ci	select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
18062306a36Sopenharmony_ci	depends on PCI
18162306a36Sopenharmony_ci	depends on !ARCH_DMA_ADDR_T_64BIT
18262306a36Sopenharmony_ci	help
18362306a36Sopenharmony_ci	  This option allows you to have support for HIFN 795x crypto adapters.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ciconfig CRYPTO_DEV_HIFN_795X_RNG
18662306a36Sopenharmony_ci	bool "HIFN 795x random number generator"
18762306a36Sopenharmony_ci	depends on CRYPTO_DEV_HIFN_795X
18862306a36Sopenharmony_ci	help
18962306a36Sopenharmony_ci	  Select this option if you want to enable the random number generator
19062306a36Sopenharmony_ci	  on the HIFN 795x crypto adapters.
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_cisource "drivers/crypto/caam/Kconfig"
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciconfig CRYPTO_DEV_TALITOS
19562306a36Sopenharmony_ci	tristate "Talitos Freescale Security Engine (SEC)"
19662306a36Sopenharmony_ci	select CRYPTO_AEAD
19762306a36Sopenharmony_ci	select CRYPTO_AUTHENC
19862306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
19962306a36Sopenharmony_ci	select CRYPTO_HASH
20062306a36Sopenharmony_ci	select CRYPTO_LIB_DES
20162306a36Sopenharmony_ci	select HW_RANDOM
20262306a36Sopenharmony_ci	depends on FSL_SOC
20362306a36Sopenharmony_ci	help
20462306a36Sopenharmony_ci	  Say 'Y' here to use the Freescale Security Engine (SEC)
20562306a36Sopenharmony_ci	  to offload cryptographic algorithm computation.
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci	  The Freescale SEC is present on PowerQUICC 'E' processors, such
20862306a36Sopenharmony_ci	  as the MPC8349E and MPC8548E.
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
21162306a36Sopenharmony_ci	  will be called talitos.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ciconfig CRYPTO_DEV_TALITOS1
21462306a36Sopenharmony_ci	bool "SEC1 (SEC 1.0 and SEC Lite 1.2)"
21562306a36Sopenharmony_ci	depends on CRYPTO_DEV_TALITOS
21662306a36Sopenharmony_ci	depends on PPC_8xx || PPC_82xx
21762306a36Sopenharmony_ci	default y
21862306a36Sopenharmony_ci	help
21962306a36Sopenharmony_ci	  Say 'Y' here to use the Freescale Security Engine (SEC) version 1.0
22062306a36Sopenharmony_ci	  found on MPC82xx or the Freescale Security Engine (SEC Lite)
22162306a36Sopenharmony_ci	  version 1.2 found on MPC8xx
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ciconfig CRYPTO_DEV_TALITOS2
22462306a36Sopenharmony_ci	bool "SEC2+ (SEC version 2.0 or upper)"
22562306a36Sopenharmony_ci	depends on CRYPTO_DEV_TALITOS
22662306a36Sopenharmony_ci	default y if !PPC_8xx
22762306a36Sopenharmony_ci	help
22862306a36Sopenharmony_ci	  Say 'Y' here to use the Freescale Security Engine (SEC)
22962306a36Sopenharmony_ci	  version 2 and following as found on MPC83xx, MPC85xx, etc ...
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig CRYPTO_DEV_PPC4XX
23262306a36Sopenharmony_ci	tristate "Driver AMCC PPC4xx crypto accelerator"
23362306a36Sopenharmony_ci	depends on PPC && 4xx
23462306a36Sopenharmony_ci	select CRYPTO_HASH
23562306a36Sopenharmony_ci	select CRYPTO_AEAD
23662306a36Sopenharmony_ci	select CRYPTO_AES
23762306a36Sopenharmony_ci	select CRYPTO_LIB_AES
23862306a36Sopenharmony_ci	select CRYPTO_CCM
23962306a36Sopenharmony_ci	select CRYPTO_CTR
24062306a36Sopenharmony_ci	select CRYPTO_GCM
24162306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
24262306a36Sopenharmony_ci	help
24362306a36Sopenharmony_ci	  This option allows you to have support for AMCC crypto acceleration.
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ciconfig HW_RANDOM_PPC4XX
24662306a36Sopenharmony_ci	bool "PowerPC 4xx generic true random number generator support"
24762306a36Sopenharmony_ci	depends on CRYPTO_DEV_PPC4XX && HW_RANDOM=y
24862306a36Sopenharmony_ci	default y
24962306a36Sopenharmony_ci	help
25062306a36Sopenharmony_ci	 This option provides the kernel-side support for the TRNG hardware
25162306a36Sopenharmony_ci	 found in the security function of some PowerPC 4xx SoCs.
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ciconfig CRYPTO_DEV_OMAP
25462306a36Sopenharmony_ci	tristate "Support for OMAP crypto HW accelerators"
25562306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS
25662306a36Sopenharmony_ci	help
25762306a36Sopenharmony_ci	  OMAP processors have various crypto HW accelerators. Select this if
25862306a36Sopenharmony_ci	  you want to use the OMAP modules for any of the crypto algorithms.
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ciif CRYPTO_DEV_OMAP
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ciconfig CRYPTO_DEV_OMAP_SHAM
26362306a36Sopenharmony_ci	tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator"
26462306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS
26562306a36Sopenharmony_ci	select CRYPTO_ENGINE
26662306a36Sopenharmony_ci	select CRYPTO_SHA1
26762306a36Sopenharmony_ci	select CRYPTO_MD5
26862306a36Sopenharmony_ci	select CRYPTO_SHA256
26962306a36Sopenharmony_ci	select CRYPTO_SHA512
27062306a36Sopenharmony_ci	select CRYPTO_HMAC
27162306a36Sopenharmony_ci	help
27262306a36Sopenharmony_ci	  OMAP processors have MD5/SHA1/SHA2 hw accelerator. Select this if you
27362306a36Sopenharmony_ci	  want to use the OMAP module for MD5/SHA1/SHA2 algorithms.
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ciconfig CRYPTO_DEV_OMAP_AES
27662306a36Sopenharmony_ci	tristate "Support for OMAP AES hw engine"
27762306a36Sopenharmony_ci	depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS
27862306a36Sopenharmony_ci	select CRYPTO_AES
27962306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
28062306a36Sopenharmony_ci	select CRYPTO_ENGINE
28162306a36Sopenharmony_ci	select CRYPTO_CBC
28262306a36Sopenharmony_ci	select CRYPTO_ECB
28362306a36Sopenharmony_ci	select CRYPTO_CTR
28462306a36Sopenharmony_ci	select CRYPTO_AEAD
28562306a36Sopenharmony_ci	help
28662306a36Sopenharmony_ci	  OMAP processors have AES module accelerator. Select this if you
28762306a36Sopenharmony_ci	  want to use the OMAP module for AES algorithms.
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ciconfig CRYPTO_DEV_OMAP_DES
29062306a36Sopenharmony_ci	tristate "Support for OMAP DES/3DES hw engine"
29162306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS
29262306a36Sopenharmony_ci	select CRYPTO_LIB_DES
29362306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
29462306a36Sopenharmony_ci	select CRYPTO_ENGINE
29562306a36Sopenharmony_ci	help
29662306a36Sopenharmony_ci	  OMAP processors have DES/3DES module accelerator. Select this if you
29762306a36Sopenharmony_ci	  want to use the OMAP module for DES and 3DES algorithms. Currently
29862306a36Sopenharmony_ci	  the ECB and CBC modes of operation are supported by the driver. Also
29962306a36Sopenharmony_ci	  accesses made on unaligned boundaries are supported.
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ciendif # CRYPTO_DEV_OMAP
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ciconfig CRYPTO_DEV_SAHARA
30462306a36Sopenharmony_ci	tristate "Support for SAHARA crypto accelerator"
30562306a36Sopenharmony_ci	depends on ARCH_MXC && OF
30662306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
30762306a36Sopenharmony_ci	select CRYPTO_AES
30862306a36Sopenharmony_ci	select CRYPTO_ECB
30962306a36Sopenharmony_ci	help
31062306a36Sopenharmony_ci	  This option enables support for the SAHARA HW crypto accelerator
31162306a36Sopenharmony_ci	  found in some Freescale i.MX chips.
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ciconfig CRYPTO_DEV_EXYNOS_RNG
31462306a36Sopenharmony_ci	tristate "Exynos HW pseudo random number generator support"
31562306a36Sopenharmony_ci	depends on ARCH_EXYNOS || COMPILE_TEST
31662306a36Sopenharmony_ci	depends on HAS_IOMEM
31762306a36Sopenharmony_ci	select CRYPTO_RNG
31862306a36Sopenharmony_ci	help
31962306a36Sopenharmony_ci	  This driver provides kernel-side support through the
32062306a36Sopenharmony_ci	  cryptographic API for the pseudo random number generator hardware
32162306a36Sopenharmony_ci	  found on Exynos SoCs.
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
32462306a36Sopenharmony_ci	  module will be called exynos-rng.
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ci	  If unsure, say Y.
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ciconfig CRYPTO_DEV_S5P
32962306a36Sopenharmony_ci	tristate "Support for Samsung S5PV210/Exynos crypto accelerator"
33062306a36Sopenharmony_ci	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
33162306a36Sopenharmony_ci	depends on HAS_IOMEM
33262306a36Sopenharmony_ci	select CRYPTO_AES
33362306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
33462306a36Sopenharmony_ci	help
33562306a36Sopenharmony_ci	  This option allows you to have support for S5P crypto acceleration.
33662306a36Sopenharmony_ci	  Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES
33762306a36Sopenharmony_ci	  algorithms execution.
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ciconfig CRYPTO_DEV_EXYNOS_HASH
34062306a36Sopenharmony_ci	bool "Support for Samsung Exynos HASH accelerator"
34162306a36Sopenharmony_ci	depends on CRYPTO_DEV_S5P
34262306a36Sopenharmony_ci	depends on !CRYPTO_DEV_EXYNOS_RNG && CRYPTO_DEV_EXYNOS_RNG!=m
34362306a36Sopenharmony_ci	select CRYPTO_SHA1
34462306a36Sopenharmony_ci	select CRYPTO_MD5
34562306a36Sopenharmony_ci	select CRYPTO_SHA256
34662306a36Sopenharmony_ci	help
34762306a36Sopenharmony_ci	  Select this to offload Exynos from HASH MD5/SHA1/SHA256.
34862306a36Sopenharmony_ci	  This will select software SHA1, MD5 and SHA256 as they are
34962306a36Sopenharmony_ci	  needed for small and zero-size messages.
35062306a36Sopenharmony_ci	  HASH algorithms will be disabled if EXYNOS_RNG
35162306a36Sopenharmony_ci	  is enabled due to hw conflict.
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_ciconfig CRYPTO_DEV_NX
35462306a36Sopenharmony_ci	bool "Support for IBM PowerPC Nest (NX) cryptographic acceleration"
35562306a36Sopenharmony_ci	depends on PPC64
35662306a36Sopenharmony_ci	help
35762306a36Sopenharmony_ci	  This enables support for the NX hardware cryptographic accelerator
35862306a36Sopenharmony_ci	  coprocessor that is in IBM PowerPC P7+ or later processors.  This
35962306a36Sopenharmony_ci	  does not actually enable any drivers, it only allows you to select
36062306a36Sopenharmony_ci	  which acceleration type (encryption and/or compression) to enable.
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_ciif CRYPTO_DEV_NX
36362306a36Sopenharmony_ci	source "drivers/crypto/nx/Kconfig"
36462306a36Sopenharmony_ciendif
36562306a36Sopenharmony_ci
36662306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_AUTHENC
36762306a36Sopenharmony_ci	bool "Support for Atmel IPSEC/SSL hw accelerator"
36862306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
36962306a36Sopenharmony_ci	depends on CRYPTO_DEV_ATMEL_AES
37062306a36Sopenharmony_ci	help
37162306a36Sopenharmony_ci	  Some Atmel processors can combine the AES and SHA hw accelerators
37262306a36Sopenharmony_ci	  to enhance support of IPSEC/SSL.
37362306a36Sopenharmony_ci	  Select this if you want to use the Atmel modules for
37462306a36Sopenharmony_ci	  authenc(hmac(shaX),Y(cbc)) algorithms.
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_AES
37762306a36Sopenharmony_ci	tristate "Support for Atmel AES hw accelerator"
37862306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
37962306a36Sopenharmony_ci	select CRYPTO_AES
38062306a36Sopenharmony_ci	select CRYPTO_AEAD
38162306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
38262306a36Sopenharmony_ci	select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
38362306a36Sopenharmony_ci	select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
38462306a36Sopenharmony_ci	help
38562306a36Sopenharmony_ci	  Some Atmel processors have AES hw accelerator.
38662306a36Sopenharmony_ci	  Select this if you want to use the Atmel module for
38762306a36Sopenharmony_ci	  AES algorithms.
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
39062306a36Sopenharmony_ci	  will be called atmel-aes.
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_TDES
39362306a36Sopenharmony_ci	tristate "Support for Atmel DES/TDES hw accelerator"
39462306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
39562306a36Sopenharmony_ci	select CRYPTO_LIB_DES
39662306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
39762306a36Sopenharmony_ci	help
39862306a36Sopenharmony_ci	  Some Atmel processors have DES/TDES hw accelerator.
39962306a36Sopenharmony_ci	  Select this if you want to use the Atmel module for
40062306a36Sopenharmony_ci	  DES/TDES algorithms.
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
40362306a36Sopenharmony_ci	  will be called atmel-tdes.
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_SHA
40662306a36Sopenharmony_ci	tristate "Support for Atmel SHA hw accelerator"
40762306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
40862306a36Sopenharmony_ci	select CRYPTO_HASH
40962306a36Sopenharmony_ci	help
41062306a36Sopenharmony_ci	  Some Atmel processors have SHA1/SHA224/SHA256/SHA384/SHA512
41162306a36Sopenharmony_ci	  hw accelerator.
41262306a36Sopenharmony_ci	  Select this if you want to use the Atmel module for
41362306a36Sopenharmony_ci	  SHA1/SHA224/SHA256/SHA384/SHA512 algorithms.
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
41662306a36Sopenharmony_ci	  will be called atmel-sha.
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_I2C
41962306a36Sopenharmony_ci	tristate
42062306a36Sopenharmony_ci	select BITREVERSE
42162306a36Sopenharmony_ci
42262306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_ECC
42362306a36Sopenharmony_ci	tristate "Support for Microchip / Atmel ECC hw accelerator"
42462306a36Sopenharmony_ci	depends on I2C
42562306a36Sopenharmony_ci	select CRYPTO_DEV_ATMEL_I2C
42662306a36Sopenharmony_ci	select CRYPTO_ECDH
42762306a36Sopenharmony_ci	select CRC16
42862306a36Sopenharmony_ci	help
42962306a36Sopenharmony_ci	  Microhip / Atmel ECC hw accelerator.
43062306a36Sopenharmony_ci	  Select this if you want to use the Microchip / Atmel module for
43162306a36Sopenharmony_ci	  ECDH algorithm.
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
43462306a36Sopenharmony_ci	  will be called atmel-ecc.
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ciconfig CRYPTO_DEV_ATMEL_SHA204A
43762306a36Sopenharmony_ci	tristate "Support for Microchip / Atmel SHA accelerator and RNG"
43862306a36Sopenharmony_ci	depends on I2C
43962306a36Sopenharmony_ci	select CRYPTO_DEV_ATMEL_I2C
44062306a36Sopenharmony_ci	select HW_RANDOM
44162306a36Sopenharmony_ci	select CRC16
44262306a36Sopenharmony_ci	help
44362306a36Sopenharmony_ci	  Microhip / Atmel SHA accelerator and RNG.
44462306a36Sopenharmony_ci	  Select this if you want to use the Microchip / Atmel SHA204A
44562306a36Sopenharmony_ci	  module as a random number generator. (Other functions of the
44662306a36Sopenharmony_ci	  chip are currently not exposed by this driver)
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
44962306a36Sopenharmony_ci	  will be called atmel-sha204a.
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_ciconfig CRYPTO_DEV_CCP
45262306a36Sopenharmony_ci	bool "Support for AMD Secure Processor"
45362306a36Sopenharmony_ci	depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM
45462306a36Sopenharmony_ci	help
45562306a36Sopenharmony_ci	  The AMD Secure Processor provides support for the Cryptographic Coprocessor
45662306a36Sopenharmony_ci	  (CCP) and the Platform Security Processor (PSP) devices.
45762306a36Sopenharmony_ci
45862306a36Sopenharmony_ciif CRYPTO_DEV_CCP
45962306a36Sopenharmony_ci	source "drivers/crypto/ccp/Kconfig"
46062306a36Sopenharmony_ciendif
46162306a36Sopenharmony_ci
46262306a36Sopenharmony_ciconfig CRYPTO_DEV_MXS_DCP
46362306a36Sopenharmony_ci	tristate "Support for Freescale MXS DCP"
46462306a36Sopenharmony_ci	depends on (ARCH_MXS || ARCH_MXC)
46562306a36Sopenharmony_ci	select STMP_DEVICE
46662306a36Sopenharmony_ci	select CRYPTO_CBC
46762306a36Sopenharmony_ci	select CRYPTO_ECB
46862306a36Sopenharmony_ci	select CRYPTO_AES
46962306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
47062306a36Sopenharmony_ci	select CRYPTO_HASH
47162306a36Sopenharmony_ci	help
47262306a36Sopenharmony_ci	  The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB
47362306a36Sopenharmony_ci	  co-processor on the die.
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
47662306a36Sopenharmony_ci	  will be called mxs-dcp.
47762306a36Sopenharmony_ci
47862306a36Sopenharmony_cisource "drivers/crypto/cavium/cpt/Kconfig"
47962306a36Sopenharmony_cisource "drivers/crypto/cavium/nitrox/Kconfig"
48062306a36Sopenharmony_cisource "drivers/crypto/marvell/Kconfig"
48162306a36Sopenharmony_cisource "drivers/crypto/intel/Kconfig"
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ciconfig CRYPTO_DEV_CAVIUM_ZIP
48462306a36Sopenharmony_ci	tristate "Cavium ZIP driver"
48562306a36Sopenharmony_ci	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
48662306a36Sopenharmony_ci	help
48762306a36Sopenharmony_ci	  Select this option if you want to enable compression/decompression
48862306a36Sopenharmony_ci	  acceleration on Cavium's ARM based SoCs
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ciconfig CRYPTO_DEV_QCE
49162306a36Sopenharmony_ci	tristate "Qualcomm crypto engine accelerator"
49262306a36Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
49362306a36Sopenharmony_ci	depends on HAS_IOMEM
49462306a36Sopenharmony_ci	help
49562306a36Sopenharmony_ci	  This driver supports Qualcomm crypto engine accelerator
49662306a36Sopenharmony_ci	  hardware. To compile this driver as a module, choose M here. The
49762306a36Sopenharmony_ci	  module will be called qcrypto.
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ciconfig CRYPTO_DEV_QCE_SKCIPHER
50062306a36Sopenharmony_ci	bool
50162306a36Sopenharmony_ci	depends on CRYPTO_DEV_QCE
50262306a36Sopenharmony_ci	select CRYPTO_AES
50362306a36Sopenharmony_ci	select CRYPTO_LIB_DES
50462306a36Sopenharmony_ci	select CRYPTO_ECB
50562306a36Sopenharmony_ci	select CRYPTO_CBC
50662306a36Sopenharmony_ci	select CRYPTO_XTS
50762306a36Sopenharmony_ci	select CRYPTO_CTR
50862306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ciconfig CRYPTO_DEV_QCE_SHA
51162306a36Sopenharmony_ci	bool
51262306a36Sopenharmony_ci	depends on CRYPTO_DEV_QCE
51362306a36Sopenharmony_ci	select CRYPTO_SHA1
51462306a36Sopenharmony_ci	select CRYPTO_SHA256
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ciconfig CRYPTO_DEV_QCE_AEAD
51762306a36Sopenharmony_ci	bool
51862306a36Sopenharmony_ci	depends on CRYPTO_DEV_QCE
51962306a36Sopenharmony_ci	select CRYPTO_AUTHENC
52062306a36Sopenharmony_ci	select CRYPTO_LIB_DES
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_cichoice
52362306a36Sopenharmony_ci	prompt "Algorithms enabled for QCE acceleration"
52462306a36Sopenharmony_ci	default CRYPTO_DEV_QCE_ENABLE_ALL
52562306a36Sopenharmony_ci	depends on CRYPTO_DEV_QCE
52662306a36Sopenharmony_ci	help
52762306a36Sopenharmony_ci	  This option allows to choose whether to build support for all algorithms
52862306a36Sopenharmony_ci	  (default), hashes-only, or skciphers-only.
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ci	  The QCE engine does not appear to scale as well as the CPU to handle
53162306a36Sopenharmony_ci	  multiple crypto requests.  While the ipq40xx chips have 4-core CPUs, the
53262306a36Sopenharmony_ci	  QCE handles only 2 requests in parallel.
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci	  Ipsec throughput seems to improve when disabling either family of
53562306a36Sopenharmony_ci	  algorithms, sharing the load with the CPU.  Enabling skciphers-only
53662306a36Sopenharmony_ci	  appears to work best.
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ci	config CRYPTO_DEV_QCE_ENABLE_ALL
53962306a36Sopenharmony_ci		bool "All supported algorithms"
54062306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_SKCIPHER
54162306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_SHA
54262306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_AEAD
54362306a36Sopenharmony_ci		help
54462306a36Sopenharmony_ci		  Enable all supported algorithms:
54562306a36Sopenharmony_ci			- AES (CBC, CTR, ECB, XTS)
54662306a36Sopenharmony_ci			- 3DES (CBC, ECB)
54762306a36Sopenharmony_ci			- DES (CBC, ECB)
54862306a36Sopenharmony_ci			- SHA1, HMAC-SHA1
54962306a36Sopenharmony_ci			- SHA256, HMAC-SHA256
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_ci	config CRYPTO_DEV_QCE_ENABLE_SKCIPHER
55262306a36Sopenharmony_ci		bool "Symmetric-key ciphers only"
55362306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_SKCIPHER
55462306a36Sopenharmony_ci		help
55562306a36Sopenharmony_ci		  Enable symmetric-key ciphers only:
55662306a36Sopenharmony_ci			- AES (CBC, CTR, ECB, XTS)
55762306a36Sopenharmony_ci			- 3DES (ECB, CBC)
55862306a36Sopenharmony_ci			- DES (ECB, CBC)
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ci	config CRYPTO_DEV_QCE_ENABLE_SHA
56162306a36Sopenharmony_ci		bool "Hash/HMAC only"
56262306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_SHA
56362306a36Sopenharmony_ci		help
56462306a36Sopenharmony_ci		  Enable hashes/HMAC algorithms only:
56562306a36Sopenharmony_ci			- SHA1, HMAC-SHA1
56662306a36Sopenharmony_ci			- SHA256, HMAC-SHA256
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ci	config CRYPTO_DEV_QCE_ENABLE_AEAD
56962306a36Sopenharmony_ci		bool "AEAD algorithms only"
57062306a36Sopenharmony_ci		select CRYPTO_DEV_QCE_AEAD
57162306a36Sopenharmony_ci		help
57262306a36Sopenharmony_ci		  Enable AEAD algorithms only:
57362306a36Sopenharmony_ci			- authenc()
57462306a36Sopenharmony_ci			- ccm(aes)
57562306a36Sopenharmony_ci			- rfc4309(ccm(aes))
57662306a36Sopenharmony_ciendchoice
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ciconfig CRYPTO_DEV_QCE_SW_MAX_LEN
57962306a36Sopenharmony_ci	int "Default maximum request size to use software for AES"
58062306a36Sopenharmony_ci	depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER
58162306a36Sopenharmony_ci	default 512
58262306a36Sopenharmony_ci	help
58362306a36Sopenharmony_ci	  This sets the default maximum request size to perform AES requests
58462306a36Sopenharmony_ci	  using software instead of the crypto engine.  It can be changed by
58562306a36Sopenharmony_ci	  setting the aes_sw_max_len parameter.
58662306a36Sopenharmony_ci
58762306a36Sopenharmony_ci	  Small blocks are processed faster in software than hardware.
58862306a36Sopenharmony_ci	  Considering the 256-bit ciphers, software is 2-3 times faster than
58962306a36Sopenharmony_ci	  qce at 256-bytes, 30% faster at 512, and about even at 768-bytes.
59062306a36Sopenharmony_ci	  With 128-bit keys, the break-even point would be around 1024-bytes.
59162306a36Sopenharmony_ci
59262306a36Sopenharmony_ci	  The default is set a little lower, to 512 bytes, to balance the
59362306a36Sopenharmony_ci	  cost in CPU usage.  The minimum recommended setting is 16-bytes
59462306a36Sopenharmony_ci	  (1 AES block), since AES-GCM will fail if you set it lower.
59562306a36Sopenharmony_ci	  Setting this to zero will send all requests to the hardware.
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ci	  Note that 192-bit keys are not supported by the hardware and are
59862306a36Sopenharmony_ci	  always processed by the software fallback, and all DES requests
59962306a36Sopenharmony_ci	  are done by the hardware.
60062306a36Sopenharmony_ci
60162306a36Sopenharmony_ciconfig CRYPTO_DEV_QCOM_RNG
60262306a36Sopenharmony_ci	tristate "Qualcomm Random Number Generator Driver"
60362306a36Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
60462306a36Sopenharmony_ci	select CRYPTO_RNG
60562306a36Sopenharmony_ci	help
60662306a36Sopenharmony_ci	  This driver provides support for the Random Number
60762306a36Sopenharmony_ci	  Generator hardware found on Qualcomm SoCs.
60862306a36Sopenharmony_ci
60962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. The
61062306a36Sopenharmony_ci	  module will be called qcom-rng. If unsure, say N.
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ciconfig CRYPTO_DEV_VMX
61362306a36Sopenharmony_ci	bool "Support for VMX cryptographic acceleration instructions"
61462306a36Sopenharmony_ci	depends on PPC64 && VSX
61562306a36Sopenharmony_ci	help
61662306a36Sopenharmony_ci	  Support for VMX cryptographic acceleration instructions.
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_cisource "drivers/crypto/vmx/Kconfig"
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_ciconfig CRYPTO_DEV_IMGTEC_HASH
62162306a36Sopenharmony_ci	tristate "Imagination Technologies hardware hash accelerator"
62262306a36Sopenharmony_ci	depends on MIPS || COMPILE_TEST
62362306a36Sopenharmony_ci	select CRYPTO_MD5
62462306a36Sopenharmony_ci	select CRYPTO_SHA1
62562306a36Sopenharmony_ci	select CRYPTO_SHA256
62662306a36Sopenharmony_ci	select CRYPTO_HASH
62762306a36Sopenharmony_ci	help
62862306a36Sopenharmony_ci	  This driver interfaces with the Imagination Technologies
62962306a36Sopenharmony_ci	  hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256
63062306a36Sopenharmony_ci	  hashing algorithms.
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_ciconfig CRYPTO_DEV_ROCKCHIP
63362306a36Sopenharmony_ci	tristate "Rockchip's Cryptographic Engine driver"
63462306a36Sopenharmony_ci	depends on OF && ARCH_ROCKCHIP
63562306a36Sopenharmony_ci	depends on PM
63662306a36Sopenharmony_ci	select CRYPTO_ECB
63762306a36Sopenharmony_ci	select CRYPTO_CBC
63862306a36Sopenharmony_ci	select CRYPTO_DES
63962306a36Sopenharmony_ci	select CRYPTO_AES
64062306a36Sopenharmony_ci	select CRYPTO_ENGINE
64162306a36Sopenharmony_ci	select CRYPTO_LIB_DES
64262306a36Sopenharmony_ci	select CRYPTO_MD5
64362306a36Sopenharmony_ci	select CRYPTO_SHA1
64462306a36Sopenharmony_ci	select CRYPTO_SHA256
64562306a36Sopenharmony_ci	select CRYPTO_HASH
64662306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
64762306a36Sopenharmony_ci
64862306a36Sopenharmony_ci	help
64962306a36Sopenharmony_ci	  This driver interfaces with the hardware crypto accelerator.
65062306a36Sopenharmony_ci	  Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode.
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_ciconfig CRYPTO_DEV_ROCKCHIP_DEBUG
65362306a36Sopenharmony_ci	bool "Enable Rockchip crypto stats"
65462306a36Sopenharmony_ci	depends on CRYPTO_DEV_ROCKCHIP
65562306a36Sopenharmony_ci	depends on DEBUG_FS
65662306a36Sopenharmony_ci	help
65762306a36Sopenharmony_ci	  Say y to enable Rockchip crypto debug stats.
65862306a36Sopenharmony_ci	  This will create /sys/kernel/debug/rk3288_crypto/stats for displaying
65962306a36Sopenharmony_ci	  the number of requests per algorithm and other internal stats.
66062306a36Sopenharmony_ci
66162306a36Sopenharmony_ci
66262306a36Sopenharmony_ciconfig CRYPTO_DEV_ZYNQMP_AES
66362306a36Sopenharmony_ci	tristate "Support for Xilinx ZynqMP AES hw accelerator"
66462306a36Sopenharmony_ci	depends on ZYNQMP_FIRMWARE || COMPILE_TEST
66562306a36Sopenharmony_ci	select CRYPTO_AES
66662306a36Sopenharmony_ci	select CRYPTO_ENGINE
66762306a36Sopenharmony_ci	select CRYPTO_AEAD
66862306a36Sopenharmony_ci	help
66962306a36Sopenharmony_ci	  Xilinx ZynqMP has AES-GCM engine used for symmetric key
67062306a36Sopenharmony_ci	  encryption and decryption. This driver interfaces with AES hw
67162306a36Sopenharmony_ci	  accelerator. Select this if you want to use the ZynqMP module
67262306a36Sopenharmony_ci	  for AES algorithms.
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ciconfig CRYPTO_DEV_ZYNQMP_SHA3
67562306a36Sopenharmony_ci	tristate "Support for Xilinx ZynqMP SHA3 hardware accelerator"
67662306a36Sopenharmony_ci	depends on ZYNQMP_FIRMWARE || COMPILE_TEST
67762306a36Sopenharmony_ci	select CRYPTO_SHA3
67862306a36Sopenharmony_ci	help
67962306a36Sopenharmony_ci	  Xilinx ZynqMP has SHA3 engine used for secure hash calculation.
68062306a36Sopenharmony_ci	  This driver interfaces with SHA3 hardware engine.
68162306a36Sopenharmony_ci	  Select this if you want to use the ZynqMP module
68262306a36Sopenharmony_ci	  for SHA3 hash computation.
68362306a36Sopenharmony_ci
68462306a36Sopenharmony_cisource "drivers/crypto/chelsio/Kconfig"
68562306a36Sopenharmony_ci
68662306a36Sopenharmony_cisource "drivers/crypto/virtio/Kconfig"
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_ciconfig CRYPTO_DEV_BCM_SPU
68962306a36Sopenharmony_ci	tristate "Broadcom symmetric crypto/hash acceleration support"
69062306a36Sopenharmony_ci	depends on ARCH_BCM_IPROC
69162306a36Sopenharmony_ci	depends on MAILBOX
69262306a36Sopenharmony_ci	default m
69362306a36Sopenharmony_ci	select CRYPTO_AUTHENC
69462306a36Sopenharmony_ci	select CRYPTO_LIB_DES
69562306a36Sopenharmony_ci	select CRYPTO_MD5
69662306a36Sopenharmony_ci	select CRYPTO_SHA1
69762306a36Sopenharmony_ci	select CRYPTO_SHA256
69862306a36Sopenharmony_ci	select CRYPTO_SHA512
69962306a36Sopenharmony_ci	help
70062306a36Sopenharmony_ci	  This driver provides support for Broadcom crypto acceleration using the
70162306a36Sopenharmony_ci	  Secure Processing Unit (SPU). The SPU driver registers skcipher,
70262306a36Sopenharmony_ci	  ahash, and aead algorithms with the kernel cryptographic API.
70362306a36Sopenharmony_ci
70462306a36Sopenharmony_cisource "drivers/crypto/stm32/Kconfig"
70562306a36Sopenharmony_ci
70662306a36Sopenharmony_ciconfig CRYPTO_DEV_SAFEXCEL
70762306a36Sopenharmony_ci	tristate "Inside Secure's SafeXcel cryptographic engine driver"
70862306a36Sopenharmony_ci	depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
70962306a36Sopenharmony_ci	select CRYPTO_LIB_AES
71062306a36Sopenharmony_ci	select CRYPTO_AUTHENC
71162306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
71262306a36Sopenharmony_ci	select CRYPTO_LIB_DES
71362306a36Sopenharmony_ci	select CRYPTO_HASH
71462306a36Sopenharmony_ci	select CRYPTO_HMAC
71562306a36Sopenharmony_ci	select CRYPTO_MD5
71662306a36Sopenharmony_ci	select CRYPTO_SHA1
71762306a36Sopenharmony_ci	select CRYPTO_SHA256
71862306a36Sopenharmony_ci	select CRYPTO_SHA512
71962306a36Sopenharmony_ci	select CRYPTO_CHACHA20POLY1305
72062306a36Sopenharmony_ci	select CRYPTO_SHA3
72162306a36Sopenharmony_ci	help
72262306a36Sopenharmony_ci	  This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic
72362306a36Sopenharmony_ci	  engines designed by Inside Secure. It currently accelerates DES, 3DES and
72462306a36Sopenharmony_ci	  AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256,
72562306a36Sopenharmony_ci	  SHA384 and SHA512 hash algorithms for both basic hash and HMAC.
72662306a36Sopenharmony_ci	  Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations.
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_ciconfig CRYPTO_DEV_ARTPEC6
72962306a36Sopenharmony_ci	tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration."
73062306a36Sopenharmony_ci	depends on ARM && (ARCH_ARTPEC || COMPILE_TEST)
73162306a36Sopenharmony_ci	depends on OF
73262306a36Sopenharmony_ci	select CRYPTO_AEAD
73362306a36Sopenharmony_ci	select CRYPTO_AES
73462306a36Sopenharmony_ci	select CRYPTO_ALGAPI
73562306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
73662306a36Sopenharmony_ci	select CRYPTO_CTR
73762306a36Sopenharmony_ci	select CRYPTO_HASH
73862306a36Sopenharmony_ci	select CRYPTO_SHA1
73962306a36Sopenharmony_ci	select CRYPTO_SHA256
74062306a36Sopenharmony_ci	select CRYPTO_SHA512
74162306a36Sopenharmony_ci	help
74262306a36Sopenharmony_ci	  Enables the driver for the on-chip crypto accelerator
74362306a36Sopenharmony_ci	  of Axis ARTPEC SoCs.
74462306a36Sopenharmony_ci
74562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_ciconfig CRYPTO_DEV_CCREE
74862306a36Sopenharmony_ci	tristate "Support for ARM TrustZone CryptoCell family of security processors"
74962306a36Sopenharmony_ci	depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA
75062306a36Sopenharmony_ci	depends on HAS_IOMEM
75162306a36Sopenharmony_ci	select CRYPTO_HASH
75262306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
75362306a36Sopenharmony_ci	select CRYPTO_LIB_DES
75462306a36Sopenharmony_ci	select CRYPTO_AEAD
75562306a36Sopenharmony_ci	select CRYPTO_AUTHENC
75662306a36Sopenharmony_ci	select CRYPTO_SHA1
75762306a36Sopenharmony_ci	select CRYPTO_MD5
75862306a36Sopenharmony_ci	select CRYPTO_SHA256
75962306a36Sopenharmony_ci	select CRYPTO_SHA512
76062306a36Sopenharmony_ci	select CRYPTO_HMAC
76162306a36Sopenharmony_ci	select CRYPTO_AES
76262306a36Sopenharmony_ci	select CRYPTO_CBC
76362306a36Sopenharmony_ci	select CRYPTO_ECB
76462306a36Sopenharmony_ci	select CRYPTO_CTR
76562306a36Sopenharmony_ci	select CRYPTO_XTS
76662306a36Sopenharmony_ci	select CRYPTO_SM4_GENERIC
76762306a36Sopenharmony_ci	select CRYPTO_SM3_GENERIC
76862306a36Sopenharmony_ci	help
76962306a36Sopenharmony_ci	  Say 'Y' to enable a driver for the REE interface of the Arm
77062306a36Sopenharmony_ci	  TrustZone CryptoCell family of processors. Currently the
77162306a36Sopenharmony_ci	  CryptoCell 713, 703, 712, 710 and 630 are supported.
77262306a36Sopenharmony_ci	  Choose this if you wish to use hardware acceleration of
77362306a36Sopenharmony_ci	  cryptographic operations on the system REE.
77462306a36Sopenharmony_ci	  If unsure say Y.
77562306a36Sopenharmony_ci
77662306a36Sopenharmony_cisource "drivers/crypto/hisilicon/Kconfig"
77762306a36Sopenharmony_ci
77862306a36Sopenharmony_cisource "drivers/crypto/amlogic/Kconfig"
77962306a36Sopenharmony_ci
78062306a36Sopenharmony_ciconfig CRYPTO_DEV_SA2UL
78162306a36Sopenharmony_ci	tristate "Support for TI security accelerator"
78262306a36Sopenharmony_ci	depends on ARCH_K3 || COMPILE_TEST
78362306a36Sopenharmony_ci	select CRYPTO_AES
78462306a36Sopenharmony_ci	select CRYPTO_ALGAPI
78562306a36Sopenharmony_ci	select CRYPTO_AUTHENC
78662306a36Sopenharmony_ci	select CRYPTO_DES
78762306a36Sopenharmony_ci	select CRYPTO_SHA1
78862306a36Sopenharmony_ci	select CRYPTO_SHA256
78962306a36Sopenharmony_ci	select CRYPTO_SHA512
79062306a36Sopenharmony_ci	select HW_RANDOM
79162306a36Sopenharmony_ci	select SG_SPLIT
79262306a36Sopenharmony_ci	help
79362306a36Sopenharmony_ci	  K3 devices include a security accelerator engine that may be
79462306a36Sopenharmony_ci	  used for crypto offload.  Select this if you want to use hardware
79562306a36Sopenharmony_ci	  acceleration for cryptographic algorithms on these devices.
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_cisource "drivers/crypto/aspeed/Kconfig"
79862306a36Sopenharmony_cisource "drivers/crypto/starfive/Kconfig"
79962306a36Sopenharmony_ci
80062306a36Sopenharmony_ciendif # CRYPTO_HW
801