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