xref: /openbmc/linux/arch/arm64/crypto/Kconfig (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1 # SPDX-License-Identifier: GPL-2.0
2 
3 menu "Accelerated Cryptographic Algorithms for CPU (arm64)"
4 
5 config CRYPTO_GHASH_ARM64_CE
6 	tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)"
7 	depends on KERNEL_MODE_NEON
8 	select CRYPTO_HASH
9 	select CRYPTO_LIB_AES
10 	select CRYPTO_LIB_GF128MUL
11 	select CRYPTO_AEAD
12 	help
13 	  GCM GHASH function (NIST SP800-38D)
14 
15 	  Architecture: arm64 using:
16 	  - ARMv8 Crypto Extensions
17 
18 config CRYPTO_NHPOLY1305_NEON
19 	tristate "Hash functions: NHPoly1305 (NEON)"
20 	depends on KERNEL_MODE_NEON
21 	select CRYPTO_NHPOLY1305
22 	help
23 	  NHPoly1305 hash function (Adiantum)
24 
25 	  Architecture: arm64 using:
26 	  - NEON (Advanced SIMD) extensions
27 
28 config CRYPTO_POLY1305_NEON
29 	tristate "Hash functions: Poly1305 (NEON)"
30 	depends on KERNEL_MODE_NEON
31 	select CRYPTO_HASH
32 	select CRYPTO_ARCH_HAVE_LIB_POLY1305
33 	help
34 	  Poly1305 authenticator algorithm (RFC7539)
35 
36 	  Architecture: arm64 using:
37 	  - NEON (Advanced SIMD) extensions
38 
39 config CRYPTO_SHA1_ARM64_CE
40 	tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)"
41 	depends on KERNEL_MODE_NEON
42 	select CRYPTO_HASH
43 	select CRYPTO_SHA1
44 	help
45 	  SHA-1 secure hash algorithm (FIPS 180)
46 
47 	  Architecture: arm64 using:
48 	  - ARMv8 Crypto Extensions
49 
50 config CRYPTO_SHA256_ARM64
51 	tristate "Hash functions: SHA-224 and SHA-256"
52 	select CRYPTO_HASH
53 	help
54 	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
55 
56 	  Architecture: arm64
57 
58 config CRYPTO_SHA2_ARM64_CE
59 	tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)"
60 	depends on KERNEL_MODE_NEON
61 	select CRYPTO_HASH
62 	select CRYPTO_SHA256_ARM64
63 	help
64 	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
65 
66 	  Architecture: arm64 using:
67 	  - ARMv8 Crypto Extensions
68 
69 config CRYPTO_SHA512_ARM64
70 	tristate "Hash functions: SHA-384 and SHA-512"
71 	select CRYPTO_HASH
72 	help
73 	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
74 
75 	  Architecture: arm64
76 
77 config CRYPTO_SHA512_ARM64_CE
78 	tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)"
79 	depends on KERNEL_MODE_NEON
80 	select CRYPTO_HASH
81 	select CRYPTO_SHA512_ARM64
82 	help
83 	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
84 
85 	  Architecture: arm64 using:
86 	  - ARMv8 Crypto Extensions
87 
88 config CRYPTO_SHA3_ARM64
89 	tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)"
90 	depends on KERNEL_MODE_NEON
91 	select CRYPTO_HASH
92 	select CRYPTO_SHA3
93 	help
94 	  SHA-3 secure hash algorithms (FIPS 202)
95 
96 	  Architecture: arm64 using:
97 	  - ARMv8.2 Crypto Extensions
98 
99 config CRYPTO_SM3_NEON
100 	tristate "Hash functions: SM3 (NEON)"
101 	depends on KERNEL_MODE_NEON
102 	select CRYPTO_HASH
103 	select CRYPTO_SM3
104 	help
105 	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
106 
107 	  Architecture: arm64 using:
108 	  - NEON (Advanced SIMD) extensions
109 
110 config CRYPTO_SM3_ARM64_CE
111 	tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
112 	depends on KERNEL_MODE_NEON
113 	select CRYPTO_HASH
114 	select CRYPTO_SM3
115 	help
116 	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
117 
118 	  Architecture: arm64 using:
119 	  - ARMv8.2 Crypto Extensions
120 
121 config CRYPTO_POLYVAL_ARM64_CE
122 	tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
123 	depends on KERNEL_MODE_NEON
124 	select CRYPTO_POLYVAL
125 	help
126 	  POLYVAL hash function for HCTR2
127 
128 	  Architecture: arm64 using:
129 	  - ARMv8 Crypto Extensions
130 
131 config CRYPTO_AES_ARM64
132 	tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
133 	select CRYPTO_AES
134 	help
135 	  Block ciphers: AES cipher algorithms (FIPS-197)
136 	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
137 	    XCTR, and XTS modes
138 	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
139 	    for fscrypt and dm-crypt
140 
141 	  Architecture: arm64
142 
143 config CRYPTO_AES_ARM64_CE
144 	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
145 	depends on ARM64 && KERNEL_MODE_NEON
146 	select CRYPTO_ALGAPI
147 	select CRYPTO_LIB_AES
148 	help
149 	  Block ciphers: AES cipher algorithms (FIPS-197)
150 
151 	  Architecture: arm64 using:
152 	  - ARMv8 Crypto Extensions
153 
154 config CRYPTO_AES_ARM64_CE_BLK
155 	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
156 	depends on KERNEL_MODE_NEON
157 	select CRYPTO_SKCIPHER
158 	select CRYPTO_AES_ARM64_CE
159 	help
160 	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
161 	  with block cipher modes:
162 	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
163 	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
164 	  - CTR (Counter) mode (NIST SP800-38A)
165 	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
166 	    and IEEE 1619)
167 
168 	  Architecture: arm64 using:
169 	  - ARMv8 Crypto Extensions
170 
171 config CRYPTO_AES_ARM64_NEON_BLK
172 	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
173 	depends on KERNEL_MODE_NEON
174 	select CRYPTO_SKCIPHER
175 	select CRYPTO_LIB_AES
176 	help
177 	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
178 	  with block cipher modes:
179 	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
180 	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
181 	  - CTR (Counter) mode (NIST SP800-38A)
182 	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
183 	    and IEEE 1619)
184 
185 	  Architecture: arm64 using:
186 	  - NEON (Advanced SIMD) extensions
187 
188 config CRYPTO_CHACHA20_NEON
189 	tristate "Ciphers: ChaCha (NEON)"
190 	depends on KERNEL_MODE_NEON
191 	select CRYPTO_SKCIPHER
192 	select CRYPTO_LIB_CHACHA_GENERIC
193 	select CRYPTO_ARCH_HAVE_LIB_CHACHA
194 	help
195 	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
196 	  stream cipher algorithms
197 
198 	  Architecture: arm64 using:
199 	  - NEON (Advanced SIMD) extensions
200 
201 config CRYPTO_AES_ARM64_BS
202 	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
203 	depends on KERNEL_MODE_NEON
204 	select CRYPTO_SKCIPHER
205 	select CRYPTO_AES_ARM64_NEON_BLK
206 	select CRYPTO_LIB_AES
207 	help
208 	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
209 	  with block cipher modes:
210 	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
211 	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
212 	  - CTR (Counter) mode (NIST SP800-38A)
213 	  - XCTR mode for HCTR2
214 	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
215 	    and IEEE 1619)
216 
217 	  Architecture: arm64 using:
218 	  - bit-sliced algorithm
219 	  - NEON (Advanced SIMD) extensions
220 
221 config CRYPTO_SM4_ARM64_CE
222 	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
223 	depends on KERNEL_MODE_NEON
224 	select CRYPTO_ALGAPI
225 	select CRYPTO_SM4
226 	help
227 	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
228 
229 	  Architecture: arm64 using:
230 	  - ARMv8.2 Crypto Extensions
231 	  - NEON (Advanced SIMD) extensions
232 
233 config CRYPTO_SM4_ARM64_CE_BLK
234 	tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR/XTS (ARMv8 Crypto Extensions)"
235 	depends on KERNEL_MODE_NEON
236 	select CRYPTO_SKCIPHER
237 	select CRYPTO_SM4
238 	help
239 	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
240 	  with block cipher modes:
241 	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
242 	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
243 	  - CFB (Cipher Feedback) mode (NIST SP800-38A)
244 	  - CTR (Counter) mode (NIST SP800-38A)
245 	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
246 	    and IEEE 1619)
247 
248 	  Architecture: arm64 using:
249 	  - ARMv8 Crypto Extensions
250 	  - NEON (Advanced SIMD) extensions
251 
252 config CRYPTO_SM4_ARM64_NEON_BLK
253 	tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (NEON)"
254 	depends on KERNEL_MODE_NEON
255 	select CRYPTO_SKCIPHER
256 	select CRYPTO_SM4
257 	help
258 	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
259 	  with block cipher modes:
260 	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
261 	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
262 	  - CFB (Cipher Feedback) mode (NIST SP800-38A)
263 	  - CTR (Counter) mode (NIST SP800-38A)
264 
265 	  Architecture: arm64 using:
266 	  - NEON (Advanced SIMD) extensions
267 
268 config CRYPTO_AES_ARM64_CE_CCM
269 	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
270 	depends on ARM64 && KERNEL_MODE_NEON
271 	select CRYPTO_ALGAPI
272 	select CRYPTO_AES_ARM64_CE
273 	select CRYPTO_AEAD
274 	select CRYPTO_LIB_AES
275 	help
276 	  AEAD cipher: AES cipher algorithms (FIPS-197) with
277 	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
278 	  authenticated encryption mode (NIST SP800-38C)
279 
280 	  Architecture: arm64 using:
281 	  - ARMv8 Crypto Extensions
282 	  - NEON (Advanced SIMD) extensions
283 
284 config CRYPTO_SM4_ARM64_CE_CCM
285 	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
286 	depends on KERNEL_MODE_NEON
287 	select CRYPTO_ALGAPI
288 	select CRYPTO_AEAD
289 	select CRYPTO_SM4
290 	select CRYPTO_SM4_ARM64_CE_BLK
291 	help
292 	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
293 	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
294 	  authenticated encryption mode (NIST SP800-38C)
295 
296 	  Architecture: arm64 using:
297 	  - ARMv8 Crypto Extensions
298 	  - NEON (Advanced SIMD) extensions
299 
300 config CRYPTO_SM4_ARM64_CE_GCM
301 	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
302 	depends on KERNEL_MODE_NEON
303 	select CRYPTO_ALGAPI
304 	select CRYPTO_AEAD
305 	select CRYPTO_SM4
306 	select CRYPTO_SM4_ARM64_CE_BLK
307 	help
308 	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
309 	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
310 
311 	  Architecture: arm64 using:
312 	  - ARMv8 Crypto Extensions
313 	  - PMULL (Polynomial Multiply Long) instructions
314 	  - NEON (Advanced SIMD) extensions
315 
316 config CRYPTO_CRCT10DIF_ARM64_CE
317 	tristate "CRCT10DIF (PMULL)"
318 	depends on KERNEL_MODE_NEON && CRC_T10DIF
319 	select CRYPTO_HASH
320 	help
321 	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
322 
323 	  Architecture: arm64 using
324 	  - PMULL (Polynomial Multiply Long) instructions
325 
326 endmenu
327 
328