xref: /OK3568_Linux_fs/kernel/arch/arm64/crypto/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunmenuconfig ARM64_CRYPTO
4*4882a593Smuzhiyun	bool "ARM64 Accelerated Cryptographic Algorithms"
5*4882a593Smuzhiyun	depends on ARM64
6*4882a593Smuzhiyun	help
7*4882a593Smuzhiyun	  Say Y here to choose from a selection of cryptographic algorithms
8*4882a593Smuzhiyun	  implemented using ARM64 specific CPU features or instructions.
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunif ARM64_CRYPTO
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunconfig CRYPTO_SHA256_ARM64
13*4882a593Smuzhiyun	tristate "SHA-224/SHA-256 digest algorithm for arm64"
14*4882a593Smuzhiyun	select CRYPTO_HASH
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunconfig CRYPTO_SHA512_ARM64
17*4882a593Smuzhiyun	tristate "SHA-384/SHA-512 digest algorithm for arm64"
18*4882a593Smuzhiyun	select CRYPTO_HASH
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunconfig CRYPTO_SHA1_ARM64_CE
21*4882a593Smuzhiyun	tristate "SHA-1 digest algorithm (ARMv8 Crypto Extensions)"
22*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
23*4882a593Smuzhiyun	select CRYPTO_HASH
24*4882a593Smuzhiyun	select CRYPTO_SHA1
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunconfig CRYPTO_SHA2_ARM64_CE
27*4882a593Smuzhiyun	tristate "SHA-224/SHA-256 digest algorithm (ARMv8 Crypto Extensions)"
28*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
29*4882a593Smuzhiyun	select CRYPTO_HASH
30*4882a593Smuzhiyun	select CRYPTO_SHA256_ARM64
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunconfig CRYPTO_SHA512_ARM64_CE
33*4882a593Smuzhiyun	tristate "SHA-384/SHA-512 digest algorithm (ARMv8 Crypto Extensions)"
34*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
35*4882a593Smuzhiyun	select CRYPTO_HASH
36*4882a593Smuzhiyun	select CRYPTO_SHA512_ARM64
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunconfig CRYPTO_SHA3_ARM64
39*4882a593Smuzhiyun	tristate "SHA3 digest algorithm (ARMv8.2 Crypto Extensions)"
40*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
41*4882a593Smuzhiyun	select CRYPTO_HASH
42*4882a593Smuzhiyun	select CRYPTO_SHA3
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunconfig CRYPTO_SM3_ARM64_CE
45*4882a593Smuzhiyun	tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)"
46*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
47*4882a593Smuzhiyun	select CRYPTO_HASH
48*4882a593Smuzhiyun	select CRYPTO_SM3
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig CRYPTO_SM4_ARM64_CE
51*4882a593Smuzhiyun	tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)"
52*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
53*4882a593Smuzhiyun	select CRYPTO_ALGAPI
54*4882a593Smuzhiyun	select CRYPTO_SM4
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunconfig CRYPTO_GHASH_ARM64_CE
57*4882a593Smuzhiyun	tristate "GHASH/AES-GCM using ARMv8 Crypto Extensions"
58*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
59*4882a593Smuzhiyun	select CRYPTO_HASH
60*4882a593Smuzhiyun	select CRYPTO_GF128MUL
61*4882a593Smuzhiyun	select CRYPTO_LIB_AES
62*4882a593Smuzhiyun	select CRYPTO_AEAD
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunconfig CRYPTO_CRCT10DIF_ARM64_CE
65*4882a593Smuzhiyun	tristate "CRCT10DIF digest algorithm using PMULL instructions"
66*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON && CRC_T10DIF
67*4882a593Smuzhiyun	select CRYPTO_HASH
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64
70*4882a593Smuzhiyun	tristate "AES core cipher using scalar instructions"
71*4882a593Smuzhiyun	select CRYPTO_AES
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE
74*4882a593Smuzhiyun	tristate "AES core cipher using ARMv8 Crypto Extensions"
75*4882a593Smuzhiyun	depends on ARM64 && KERNEL_MODE_NEON
76*4882a593Smuzhiyun	select CRYPTO_ALGAPI
77*4882a593Smuzhiyun	select CRYPTO_LIB_AES
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE_CCM
80*4882a593Smuzhiyun	tristate "AES in CCM mode using ARMv8 Crypto Extensions"
81*4882a593Smuzhiyun	depends on ARM64 && KERNEL_MODE_NEON
82*4882a593Smuzhiyun	select CRYPTO_ALGAPI
83*4882a593Smuzhiyun	select CRYPTO_AES_ARM64_CE
84*4882a593Smuzhiyun	select CRYPTO_AEAD
85*4882a593Smuzhiyun	select CRYPTO_LIB_AES
86*4882a593Smuzhiyun
87*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE_BLK
88*4882a593Smuzhiyun	tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions"
89*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
90*4882a593Smuzhiyun	select CRYPTO_SKCIPHER
91*4882a593Smuzhiyun	select CRYPTO_AES_ARM64_CE
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_NEON_BLK
94*4882a593Smuzhiyun	tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
95*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
96*4882a593Smuzhiyun	select CRYPTO_SKCIPHER
97*4882a593Smuzhiyun	select CRYPTO_LIB_AES
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunconfig CRYPTO_CHACHA20_NEON
100*4882a593Smuzhiyun	tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
101*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
102*4882a593Smuzhiyun	select CRYPTO_SKCIPHER
103*4882a593Smuzhiyun	select CRYPTO_LIB_CHACHA_GENERIC
104*4882a593Smuzhiyun	select CRYPTO_ARCH_HAVE_LIB_CHACHA
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunconfig CRYPTO_POLY1305_NEON
107*4882a593Smuzhiyun	tristate "Poly1305 hash function using scalar or NEON instructions"
108*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
109*4882a593Smuzhiyun	select CRYPTO_HASH
110*4882a593Smuzhiyun	select CRYPTO_ARCH_HAVE_LIB_POLY1305
111*4882a593Smuzhiyun
112*4882a593Smuzhiyunconfig CRYPTO_NHPOLY1305_NEON
113*4882a593Smuzhiyun	tristate "NHPoly1305 hash function using NEON instructions (for Adiantum)"
114*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
115*4882a593Smuzhiyun	select CRYPTO_NHPOLY1305
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_BS
118*4882a593Smuzhiyun	tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm"
119*4882a593Smuzhiyun	depends on KERNEL_MODE_NEON
120*4882a593Smuzhiyun	select CRYPTO_SKCIPHER
121*4882a593Smuzhiyun	select CRYPTO_AES_ARM64_NEON_BLK
122*4882a593Smuzhiyun	select CRYPTO_LIB_AES
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunendif
125