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