hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/drivers/crypto/Kconfig
....@@ -1,14 +1,17 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12
23 menuconfig CRYPTO_HW
34 bool "Hardware crypto devices"
45 default y
5
- ---help---
6
+ help
67 Say Y here to get to see options for hardware crypto devices and
78 processors. This option alone does not add any kernel code.
89
910 If you say N, all options in this submenu will be skipped and disabled.
1011
1112 if CRYPTO_HW
13
+
14
+source "drivers/crypto/allwinner/Kconfig"
1215
1316 config CRYPTO_DEV_PADLOCK
1417 tristate "Support for VIA PadLock ACE"
....@@ -25,8 +28,8 @@
2528 config CRYPTO_DEV_PADLOCK_AES
2629 tristate "PadLock driver for AES algorithm"
2730 depends on CRYPTO_DEV_PADLOCK
28
- select CRYPTO_BLKCIPHER
29
- select CRYPTO_AES
31
+ select CRYPTO_SKCIPHER
32
+ select CRYPTO_LIB_AES
3033 help
3134 Use VIA PadLock for AES algorithm.
3235
....@@ -53,7 +56,7 @@
5356 tristate "Support for the Geode LX AES engine"
5457 depends on X86_32 && PCI
5558 select CRYPTO_ALGAPI
56
- select CRYPTO_BLKCIPHER
59
+ select CRYPTO_SKCIPHER
5760 help
5861 Say 'Y' here to use the AMD Geode LX processor on-board AES
5962 engine for the CryptoAPI AES algorithm.
....@@ -68,10 +71,37 @@
6871 help
6972 Select this option if you want to enable support for
7073 s390 cryptographic adapters like:
71
- + PCI-X Cryptographic Coprocessor (PCIXCC)
72
- + Crypto Express 2,3,4 or 5 Coprocessor (CEXxC)
73
- + Crypto Express 2,3,4 or 5 Accelerator (CEXxA)
74
- + Crypto Express 4 or 5 EP11 Coprocessor (CEXxP)
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
+
78
+config 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
+
95
+config 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.
75105
76106 config PKEY
77107 tristate "Kernel API for protected key handling"
....@@ -95,7 +125,7 @@
95125 depends on ZCRYPT
96126 depends on PKEY
97127 select CRYPTO_ALGAPI
98
- select CRYPTO_BLKCIPHER
128
+ select CRYPTO_SKCIPHER
99129 help
100130 This is the s390 hardware accelerated implementation of the
101131 AES cipher algorithms for use with protected key.
....@@ -133,12 +163,32 @@
133163
134164 It is available as of z10.
135165
166
+config CRYPTO_SHA3_256_S390
167
+ tristate "SHA3_224 and SHA3_256 digest algorithm"
168
+ depends on S390
169
+ select CRYPTO_HASH
170
+ help
171
+ This is the s390 hardware accelerated implementation of the
172
+ SHA3_256 secure hash standard.
173
+
174
+ It is available as of z14.
175
+
176
+config CRYPTO_SHA3_512_S390
177
+ tristate "SHA3_384 and SHA3_512 digest algorithm"
178
+ depends on S390
179
+ select CRYPTO_HASH
180
+ help
181
+ This is the s390 hardware accelerated implementation of the
182
+ SHA3_512 secure hash standard.
183
+
184
+ It is available as of z14.
185
+
136186 config CRYPTO_DES_S390
137187 tristate "DES and Triple DES cipher algorithms"
138188 depends on S390
139189 select CRYPTO_ALGAPI
140
- select CRYPTO_BLKCIPHER
141
- select CRYPTO_DES
190
+ select CRYPTO_SKCIPHER
191
+ select CRYPTO_LIB_DES
142192 help
143193 This is the s390 hardware accelerated implementation of the
144194 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
....@@ -150,7 +200,7 @@
150200 tristate "AES cipher algorithms"
151201 depends on S390
152202 select CRYPTO_ALGAPI
153
- select CRYPTO_BLKCIPHER
203
+ select CRYPTO_SKCIPHER
154204 help
155205 This is the s390 hardware accelerated implementation of the
156206 AES cipher algorithms (FIPS-197).
....@@ -177,12 +227,12 @@
177227 It is available as of z9.
178228
179229 config CRYPTO_GHASH_S390
180
- tristate "GHASH digest algorithm"
230
+ tristate "GHASH hash function"
181231 depends on S390
182232 select CRYPTO_HASH
183233 help
184
- This is the s390 hardware accelerated implementation of the
185
- GHASH message digest algorithm for GCM (Galois/Counter Mode).
234
+ This is the s390 hardware accelerated implementation of GHASH,
235
+ the hash function used in GCM (Galois/Counter mode).
186236
187237 It is available as of z196.
188238
....@@ -199,30 +249,16 @@
199249
200250 It is available with IBM z13 or later.
201251
202
-config CRYPTO_DEV_MARVELL_CESA
203
- tristate "Marvell's Cryptographic Engine driver"
204
- depends on PLAT_ORION || ARCH_MVEBU
205
- select CRYPTO_AES
206
- select CRYPTO_DES
207
- select CRYPTO_BLKCIPHER
208
- select CRYPTO_HASH
209
- select SRAM
210
- help
211
- This driver allows you to utilize the Cryptographic Engines and
212
- Security Accelerator (CESA) which can be found on MVEBU and ORION
213
- platforms.
214
- This driver supports CPU offload through DMA transfers.
215
-
216252 config CRYPTO_DEV_NIAGARA2
217
- tristate "Niagara2 Stream Processing Unit driver"
218
- select CRYPTO_DES
219
- select CRYPTO_BLKCIPHER
220
- select CRYPTO_HASH
221
- select CRYPTO_MD5
222
- select CRYPTO_SHA1
223
- select CRYPTO_SHA256
224
- depends on SPARC64
225
- help
253
+ tristate "Niagara2 Stream Processing Unit driver"
254
+ select CRYPTO_LIB_DES
255
+ select CRYPTO_SKCIPHER
256
+ select CRYPTO_HASH
257
+ select CRYPTO_MD5
258
+ select CRYPTO_SHA1
259
+ select CRYPTO_SHA256
260
+ depends on SPARC64
261
+ help
226262 Each core of a Niagara2 processor contains a Stream
227263 Processing Unit, which itself contains several cryptographic
228264 sub-units. One set provides the Modular Arithmetic Unit,
....@@ -232,8 +268,8 @@
232268
233269 config CRYPTO_DEV_HIFN_795X
234270 tristate "Driver HIFN 795x crypto accelerator chips"
235
- select CRYPTO_DES
236
- select CRYPTO_BLKCIPHER
271
+ select CRYPTO_LIB_DES
272
+ select CRYPTO_SKCIPHER
237273 select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
238274 depends on PCI
239275 depends on !ARCH_DMA_ADDR_T_64BIT
....@@ -247,14 +283,15 @@
247283 Select this option if you want to enable the random number generator
248284 on the HIFN 795x crypto adapters.
249285
250
-source drivers/crypto/caam/Kconfig
286
+source "drivers/crypto/caam/Kconfig"
251287
252288 config CRYPTO_DEV_TALITOS
253289 tristate "Talitos Freescale Security Engine (SEC)"
254290 select CRYPTO_AEAD
255291 select CRYPTO_AUTHENC
256
- select CRYPTO_BLKCIPHER
292
+ select CRYPTO_SKCIPHER
257293 select CRYPTO_HASH
294
+ select CRYPTO_LIB_DES
258295 select HW_RANDOM
259296 depends on FSL_SOC
260297 help
....@@ -288,10 +325,10 @@
288325 config CRYPTO_DEV_IXP4XX
289326 tristate "Driver for IXP4xx crypto hardware acceleration"
290327 depends on ARCH_IXP4XX && IXP4XX_QMGR && IXP4XX_NPE
291
- select CRYPTO_DES
328
+ select CRYPTO_LIB_DES
292329 select CRYPTO_AEAD
293330 select CRYPTO_AUTHENC
294
- select CRYPTO_BLKCIPHER
331
+ select CRYPTO_SKCIPHER
295332 help
296333 Driver for the IXP4xx NPE crypto engine.
297334
....@@ -301,10 +338,11 @@
301338 select CRYPTO_HASH
302339 select CRYPTO_AEAD
303340 select CRYPTO_AES
341
+ select CRYPTO_LIB_AES
304342 select CRYPTO_CCM
305343 select CRYPTO_CTR
306344 select CRYPTO_GCM
307
- select CRYPTO_BLKCIPHER
345
+ select CRYPTO_SKCIPHER
308346 help
309347 This option allows you to have support for AMCC crypto acceleration.
310348
....@@ -312,7 +350,7 @@
312350 bool "PowerPC 4xx generic true random number generator support"
313351 depends on CRYPTO_DEV_PPC4XX && HW_RANDOM
314352 default y
315
- ---help---
353
+ help
316354 This option provides the kernel-side support for the TRNG hardware
317355 found in the security function of some PowerPC 4xx SoCs.
318356
....@@ -321,13 +359,14 @@
321359 depends on ARCH_OMAP2PLUS
322360 help
323361 OMAP processors have various crypto HW accelerators. Select this if
324
- you want to use the OMAP modules for any of the crypto algorithms.
362
+ you want to use the OMAP modules for any of the crypto algorithms.
325363
326364 if CRYPTO_DEV_OMAP
327365
328366 config CRYPTO_DEV_OMAP_SHAM
329367 tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator"
330368 depends on ARCH_OMAP2PLUS
369
+ select CRYPTO_ENGINE
331370 select CRYPTO_SHA1
332371 select CRYPTO_MD5
333372 select CRYPTO_SHA256
....@@ -341,7 +380,7 @@
341380 tristate "Support for OMAP AES hw engine"
342381 depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS
343382 select CRYPTO_AES
344
- select CRYPTO_BLKCIPHER
383
+ select CRYPTO_SKCIPHER
345384 select CRYPTO_ENGINE
346385 select CRYPTO_CBC
347386 select CRYPTO_ECB
....@@ -354,8 +393,8 @@
354393 config CRYPTO_DEV_OMAP_DES
355394 tristate "Support for OMAP DES/3DES hw engine"
356395 depends on ARCH_OMAP2PLUS
357
- select CRYPTO_DES
358
- select CRYPTO_BLKCIPHER
396
+ select CRYPTO_LIB_DES
397
+ select CRYPTO_SKCIPHER
359398 select CRYPTO_ENGINE
360399 help
361400 OMAP processors have DES/3DES module accelerator. Select this if you
....@@ -371,8 +410,8 @@
371410 select CRYPTO_AEAD
372411 select CRYPTO_AES
373412 select CRYPTO_AUTHENC
374
- select CRYPTO_BLKCIPHER
375
- select CRYPTO_DES
413
+ select CRYPTO_SKCIPHER
414
+ select CRYPTO_LIB_DES
376415 select CRYPTO_CBC
377416 select CRYPTO_ECB
378417 select CRYPTO_SEQIV
....@@ -381,33 +420,24 @@
381420 Picochip picoXcell SoC devices. Select this for IPSEC ESP offload
382421 and for 3gpp Layer 2 ciphering support.
383422
384
- Saying m here will build a module named pipcoxcell_crypto.
423
+ Saying m here will build a module named picoxcell_crypto.
385424
386425 config CRYPTO_DEV_SAHARA
387426 tristate "Support for SAHARA crypto accelerator"
388427 depends on ARCH_MXC && OF
389
- select CRYPTO_BLKCIPHER
428
+ select CRYPTO_SKCIPHER
390429 select CRYPTO_AES
391430 select CRYPTO_ECB
392431 help
393432 This option enables support for the SAHARA HW crypto accelerator
394433 found in some Freescale i.MX chips.
395434
396
-config CRYPTO_DEV_MXC_SCC
397
- tristate "Support for Freescale Security Controller (SCC)"
398
- depends on ARCH_MXC && OF
399
- select CRYPTO_BLKCIPHER
400
- select CRYPTO_DES
401
- help
402
- This option enables support for the Security Controller (SCC)
403
- found in Freescale i.MX25 chips.
404
-
405435 config CRYPTO_DEV_EXYNOS_RNG
406
- tristate "EXYNOS HW pseudo random number generator support"
436
+ tristate "Exynos HW pseudo random number generator support"
407437 depends on ARCH_EXYNOS || COMPILE_TEST
408438 depends on HAS_IOMEM
409439 select CRYPTO_RNG
410
- ---help---
440
+ help
411441 This driver provides kernel-side support through the
412442 cryptographic API for the pseudo random number generator hardware
413443 found on Exynos SoCs.
....@@ -422,7 +452,7 @@
422452 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
423453 depends on HAS_IOMEM
424454 select CRYPTO_AES
425
- select CRYPTO_BLKCIPHER
455
+ select CRYPTO_SKCIPHER
426456 help
427457 This option allows you to have support for S5P crypto acceleration.
428458 Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES
....@@ -466,11 +496,9 @@
466496 endif # if CRYPTO_DEV_UX500
467497
468498 config CRYPTO_DEV_ATMEL_AUTHENC
469
- tristate "Support for Atmel IPSEC/SSL hw accelerator"
499
+ bool "Support for Atmel IPSEC/SSL hw accelerator"
470500 depends on ARCH_AT91 || COMPILE_TEST
471
- select CRYPTO_AUTHENC
472
- select CRYPTO_DEV_ATMEL_AES
473
- select CRYPTO_DEV_ATMEL_SHA
501
+ depends on CRYPTO_DEV_ATMEL_AES
474502 help
475503 Some Atmel processors can combine the AES and SHA hw accelerators
476504 to enhance support of IPSEC/SSL.
....@@ -482,7 +510,9 @@
482510 depends on ARCH_AT91 || COMPILE_TEST
483511 select CRYPTO_AES
484512 select CRYPTO_AEAD
485
- select CRYPTO_BLKCIPHER
513
+ select CRYPTO_SKCIPHER
514
+ select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
515
+ select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
486516 help
487517 Some Atmel processors have AES hw accelerator.
488518 Select this if you want to use the Atmel module for
....@@ -494,8 +524,8 @@
494524 config CRYPTO_DEV_ATMEL_TDES
495525 tristate "Support for Atmel DES/TDES hw accelerator"
496526 depends on ARCH_AT91 || COMPILE_TEST
497
- select CRYPTO_DES
498
- select CRYPTO_BLKCIPHER
527
+ select CRYPTO_LIB_DES
528
+ select CRYPTO_SKCIPHER
499529 help
500530 Some Atmel processors have DES/TDES hw accelerator.
501531 Select this if you want to use the Atmel module for
....@@ -517,10 +547,14 @@
517547 To compile this driver as a module, choose M here: the module
518548 will be called atmel-sha.
519549
550
+config CRYPTO_DEV_ATMEL_I2C
551
+ tristate
552
+ select BITREVERSE
553
+
520554 config CRYPTO_DEV_ATMEL_ECC
521555 tristate "Support for Microchip / Atmel ECC hw accelerator"
522
- depends on ARCH_AT91 || COMPILE_TEST
523556 depends on I2C
557
+ select CRYPTO_DEV_ATMEL_I2C
524558 select CRYPTO_ECDH
525559 select CRC16
526560 help
....@@ -530,6 +564,21 @@
530564
531565 To compile this driver as a module, choose M here: the module
532566 will be called atmel-ecc.
567
+
568
+config CRYPTO_DEV_ATMEL_SHA204A
569
+ tristate "Support for Microchip / Atmel SHA accelerator and RNG"
570
+ depends on I2C
571
+ select CRYPTO_DEV_ATMEL_I2C
572
+ select HW_RANDOM
573
+ select CRC16
574
+ help
575
+ Microhip / Atmel SHA accelerator and RNG.
576
+ Select this if you want to use the Microchip / Atmel SHA204A
577
+ module as a random number generator. (Other functions of the
578
+ chip are currently not exposed by this driver)
579
+
580
+ To compile this driver as a module, choose M here: the module
581
+ will be called atmel-sha204a.
533582
534583 config CRYPTO_DEV_CCP
535584 bool "Support for AMD Secure Processor"
....@@ -549,7 +598,7 @@
549598 select CRYPTO_CBC
550599 select CRYPTO_ECB
551600 select CRYPTO_AES
552
- select CRYPTO_BLKCIPHER
601
+ select CRYPTO_SKCIPHER
553602 select CRYPTO_HASH
554603 help
555604 The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB
....@@ -561,11 +610,12 @@
561610 source "drivers/crypto/qat/Kconfig"
562611 source "drivers/crypto/cavium/cpt/Kconfig"
563612 source "drivers/crypto/cavium/nitrox/Kconfig"
613
+source "drivers/crypto/marvell/Kconfig"
564614
565615 config CRYPTO_DEV_CAVIUM_ZIP
566616 tristate "Cavium ZIP driver"
567617 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
568
- ---help---
618
+ help
569619 Select this option if you want to enable compression/decompression
570620 acceleration on Cavium's ARM based SoCs
571621
....@@ -573,17 +623,97 @@
573623 tristate "Qualcomm crypto engine accelerator"
574624 depends on ARCH_QCOM || COMPILE_TEST
575625 depends on HAS_IOMEM
576
- select CRYPTO_AES
577
- select CRYPTO_DES
578
- select CRYPTO_ECB
579
- select CRYPTO_CBC
580
- select CRYPTO_XTS
581
- select CRYPTO_CTR
582
- select CRYPTO_BLKCIPHER
583626 help
584627 This driver supports Qualcomm crypto engine accelerator
585628 hardware. To compile this driver as a module, choose M here. The
586629 module will be called qcrypto.
630
+
631
+config CRYPTO_DEV_QCE_SKCIPHER
632
+ bool
633
+ depends on CRYPTO_DEV_QCE
634
+ select CRYPTO_AES
635
+ select CRYPTO_LIB_DES
636
+ select CRYPTO_ECB
637
+ select CRYPTO_CBC
638
+ select CRYPTO_XTS
639
+ select CRYPTO_CTR
640
+ select CRYPTO_SKCIPHER
641
+
642
+config CRYPTO_DEV_QCE_SHA
643
+ bool
644
+ depends on CRYPTO_DEV_QCE
645
+ select CRYPTO_SHA1
646
+ select CRYPTO_SHA256
647
+
648
+choice
649
+ prompt "Algorithms enabled for QCE acceleration"
650
+ default CRYPTO_DEV_QCE_ENABLE_ALL
651
+ depends on CRYPTO_DEV_QCE
652
+ help
653
+ This option allows to choose whether to build support for all algorihtms
654
+ (default), hashes-only, or skciphers-only.
655
+
656
+ The QCE engine does not appear to scale as well as the CPU to handle
657
+ multiple crypto requests. While the ipq40xx chips have 4-core CPUs, the
658
+ QCE handles only 2 requests in parallel.
659
+
660
+ Ipsec throughput seems to improve when disabling either family of
661
+ algorithms, sharing the load with the CPU. Enabling skciphers-only
662
+ appears to work best.
663
+
664
+ config CRYPTO_DEV_QCE_ENABLE_ALL
665
+ bool "All supported algorithms"
666
+ select CRYPTO_DEV_QCE_SKCIPHER
667
+ select CRYPTO_DEV_QCE_SHA
668
+ help
669
+ Enable all supported algorithms:
670
+ - AES (CBC, CTR, ECB, XTS)
671
+ - 3DES (CBC, ECB)
672
+ - DES (CBC, ECB)
673
+ - SHA1, HMAC-SHA1
674
+ - SHA256, HMAC-SHA256
675
+
676
+ config CRYPTO_DEV_QCE_ENABLE_SKCIPHER
677
+ bool "Symmetric-key ciphers only"
678
+ select CRYPTO_DEV_QCE_SKCIPHER
679
+ help
680
+ Enable symmetric-key ciphers only:
681
+ - AES (CBC, CTR, ECB, XTS)
682
+ - 3DES (ECB, CBC)
683
+ - DES (ECB, CBC)
684
+
685
+ config CRYPTO_DEV_QCE_ENABLE_SHA
686
+ bool "Hash/HMAC only"
687
+ select CRYPTO_DEV_QCE_SHA
688
+ help
689
+ Enable hashes/HMAC algorithms only:
690
+ - SHA1, HMAC-SHA1
691
+ - SHA256, HMAC-SHA256
692
+
693
+endchoice
694
+
695
+config CRYPTO_DEV_QCE_SW_MAX_LEN
696
+ int "Default maximum request size to use software for AES"
697
+ depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER
698
+ default 512
699
+ help
700
+ This sets the default maximum request size to perform AES requests
701
+ using software instead of the crypto engine. It can be changed by
702
+ setting the aes_sw_max_len parameter.
703
+
704
+ Small blocks are processed faster in software than hardware.
705
+ Considering the 256-bit ciphers, software is 2-3 times faster than
706
+ qce at 256-bytes, 30% faster at 512, and about even at 768-bytes.
707
+ With 128-bit keys, the break-even point would be around 1024-bytes.
708
+
709
+ The default is set a little lower, to 512 bytes, to balance the
710
+ cost in CPU usage. The minimum recommended setting is 16-bytes
711
+ (1 AES block), since AES-GCM will fail if you set it lower.
712
+ Setting this to zero will send all requests to the hardware.
713
+
714
+ Note that 192-bit keys are not supported by the hardware and are
715
+ always processed by the software fallback, and all DES requests
716
+ are done by the hardware.
587717
588718 config CRYPTO_DEV_QCOM_RNG
589719 tristate "Qualcomm Random Number Generator Driver"
....@@ -594,7 +724,7 @@
594724 Generator hardware found on Qualcomm SoCs.
595725
596726 To compile this driver as a module, choose M here. The
597
- module will be called qcom-rng. If unsure, say N.
727
+ module will be called qcom-rng. If unsure, say N.
598728
599729 config CRYPTO_DEV_VMX
600730 bool "Support for VMX cryptographic acceleration instructions"
....@@ -615,31 +745,6 @@
615745 This driver interfaces with the Imagination Technologies
616746 hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256
617747 hashing algorithms.
618
-
619
-config CRYPTO_DEV_SUN4I_SS
620
- tristate "Support for Allwinner Security System cryptographic accelerator"
621
- depends on ARCH_SUNXI && !64BIT
622
- select CRYPTO_MD5
623
- select CRYPTO_SHA1
624
- select CRYPTO_AES
625
- select CRYPTO_DES
626
- select CRYPTO_BLKCIPHER
627
- help
628
- Some Allwinner SoC have a crypto accelerator named
629
- Security System. Select this if you want to use it.
630
- The Security System handle AES/DES/3DES ciphers in CBC mode
631
- and SHA1 and MD5 hash algorithms.
632
-
633
- To compile this driver as a module, choose M here: the module
634
- will be called sun4i-ss.
635
-
636
-config CRYPTO_DEV_SUN4I_SS_PRNG
637
- bool "Support for Allwinner Security System PRNG"
638
- depends on CRYPTO_DEV_SUN4I_SS
639
- select CRYPTO_RNG
640
- help
641
- Select this option if you want to provide kernel-side support for
642
- the Pseudo-Random Number Generator found in the Security System.
643748
644749 config CRYPTO_DEV_ROCKCHIP
645750 tristate "Rockchip's Cryptographic Engine driver"
....@@ -670,13 +775,24 @@
670775
671776 source "drivers/crypto/rockchip/Kconfig"
672777
778
+config CRYPTO_DEV_ZYNQMP_AES
779
+ tristate "Support for Xilinx ZynqMP AES hw accelerator"
780
+ depends on ZYNQMP_FIRMWARE || COMPILE_TEST
781
+ select CRYPTO_AES
782
+ select CRYPTO_ENGINE
783
+ select CRYPTO_AEAD
784
+ help
785
+ Xilinx ZynqMP has AES-GCM engine used for symmetric key
786
+ encryption and decryption. This driver interfaces with AES hw
787
+ accelerator. Select this if you want to use the ZynqMP module
788
+ for AES algorithms.
789
+
673790 config CRYPTO_DEV_MEDIATEK
674791 tristate "MediaTek's EIP97 Cryptographic Engine driver"
675792 depends on (ARM && ARCH_MEDIATEK) || COMPILE_TEST
676
- select CRYPTO_AES
793
+ select CRYPTO_LIB_AES
677794 select CRYPTO_AEAD
678
- select CRYPTO_BLKCIPHER
679
- select CRYPTO_CTR
795
+ select CRYPTO_SKCIPHER
680796 select CRYPTO_SHA1
681797 select CRYPTO_SHA256
682798 select CRYPTO_SHA512
....@@ -696,37 +812,39 @@
696812 depends on MAILBOX
697813 default m
698814 select CRYPTO_AUTHENC
699
- select CRYPTO_DES
815
+ select CRYPTO_LIB_DES
700816 select CRYPTO_MD5
701817 select CRYPTO_SHA1
702818 select CRYPTO_SHA256
703819 select CRYPTO_SHA512
704820 help
705821 This driver provides support for Broadcom crypto acceleration using the
706
- Secure Processing Unit (SPU). The SPU driver registers ablkcipher,
822
+ Secure Processing Unit (SPU). The SPU driver registers skcipher,
707823 ahash, and aead algorithms with the kernel cryptographic API.
708824
709825 source "drivers/crypto/stm32/Kconfig"
710826
711827 config CRYPTO_DEV_SAFEXCEL
712828 tristate "Inside Secure's SafeXcel cryptographic engine driver"
713
- depends on OF
714
- depends on (ARM64 && ARCH_MVEBU) || (COMPILE_TEST && 64BIT)
715
- select CRYPTO_AES
829
+ depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
830
+ select CRYPTO_LIB_AES
716831 select CRYPTO_AUTHENC
717
- select CRYPTO_BLKCIPHER
718
- select CRYPTO_DES
832
+ select CRYPTO_SKCIPHER
833
+ select CRYPTO_LIB_DES
719834 select CRYPTO_HASH
720835 select CRYPTO_HMAC
721836 select CRYPTO_MD5
722837 select CRYPTO_SHA1
723838 select CRYPTO_SHA256
724839 select CRYPTO_SHA512
840
+ select CRYPTO_CHACHA20POLY1305
841
+ select CRYPTO_SHA3
725842 help
726
- This driver interfaces with the SafeXcel EIP-197 cryptographic engine
727
- designed by Inside Secure. Select this if you want to use CBC/ECB
728
- chain mode, AES cipher mode and SHA1/SHA224/SHA256/SHA512 hash
729
- algorithms.
843
+ This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic
844
+ engines designed by Inside Secure. It currently accelerates DES, 3DES and
845
+ AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256,
846
+ SHA384 and SHA512 hash algorithms for both basic hash and HMAC.
847
+ Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations.
730848
731849 config CRYPTO_DEV_ARTPEC6
732850 tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration."
....@@ -735,7 +853,7 @@
735853 select CRYPTO_AEAD
736854 select CRYPTO_AES
737855 select CRYPTO_ALGAPI
738
- select CRYPTO_BLKCIPHER
856
+ select CRYPTO_SKCIPHER
739857 select CRYPTO_CTR
740858 select CRYPTO_HASH
741859 select CRYPTO_SHA1
....@@ -752,8 +870,8 @@
752870 depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA
753871 default n
754872 select CRYPTO_HASH
755
- select CRYPTO_BLKCIPHER
756
- select CRYPTO_DES
873
+ select CRYPTO_SKCIPHER
874
+ select CRYPTO_LIB_DES
757875 select CRYPTO_AEAD
758876 select CRYPTO_AUTHENC
759877 select CRYPTO_SHA1
....@@ -766,14 +884,37 @@
766884 select CRYPTO_ECB
767885 select CRYPTO_CTR
768886 select CRYPTO_XTS
887
+ select CRYPTO_SM4
888
+ select CRYPTO_SM3
769889 help
770890 Say 'Y' to enable a driver for the REE interface of the Arm
771891 TrustZone CryptoCell family of processors. Currently the
772
- CryptoCell 712, 710 and 630 are supported.
892
+ CryptoCell 713, 703, 712, 710 and 630 are supported.
773893 Choose this if you wish to use hardware acceleration of
774894 cryptographic operations on the system REE.
775895 If unsure say Y.
776896
777897 source "drivers/crypto/hisilicon/Kconfig"
778898
899
+source "drivers/crypto/amlogic/Kconfig"
900
+
901
+config CRYPTO_DEV_SA2UL
902
+ tristate "Support for TI security accelerator"
903
+ depends on ARCH_K3 || COMPILE_TEST
904
+ select ARM64_CRYPTO
905
+ select CRYPTO_AES
906
+ select CRYPTO_AES_ARM64
907
+ select CRYPTO_ALGAPI
908
+ select CRYPTO_AUTHENC
909
+ select CRYPTO_DES
910
+ select CRYPTO_SHA1
911
+ select CRYPTO_SHA256
912
+ select CRYPTO_SHA512
913
+ select HW_RANDOM
914
+ select SG_SPLIT
915
+ help
916
+ K3 devices include a security accelerator engine that may be
917
+ used for crypto offload. Select this if you want to use hardware
918
+ acceleration for cryptographic algorithms on these devices.
919
+
779920 endif # CRYPTO_HW