Linux 6.9-rc1
[linux-2.6-microblaze.git] / arch / arm64 / crypto / Kconfig
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/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           - CTR (Counter) mode (NIST SP800-38A)
244           - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
245             and IEEE 1619)
246
247           Architecture: arm64 using:
248           - ARMv8 Crypto Extensions
249           - NEON (Advanced SIMD) extensions
250
251 config CRYPTO_SM4_ARM64_NEON_BLK
252         tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
253         depends on KERNEL_MODE_NEON
254         select CRYPTO_SKCIPHER
255         select CRYPTO_SM4
256         help
257           Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
258           with block cipher modes:
259           - ECB (Electronic Codebook) mode (NIST SP800-38A)
260           - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
261           - CTR (Counter) mode (NIST SP800-38A)
262
263           Architecture: arm64 using:
264           - NEON (Advanced SIMD) extensions
265
266 config CRYPTO_AES_ARM64_CE_CCM
267         tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
268         depends on ARM64 && KERNEL_MODE_NEON
269         select CRYPTO_ALGAPI
270         select CRYPTO_AES_ARM64_CE
271         select CRYPTO_AES_ARM64_CE_BLK
272         select CRYPTO_AEAD
273         select CRYPTO_LIB_AES
274         help
275           AEAD cipher: AES cipher algorithms (FIPS-197) with
276           CCM (Counter with Cipher Block Chaining-Message Authentication Code)
277           authenticated encryption mode (NIST SP800-38C)
278
279           Architecture: arm64 using:
280           - ARMv8 Crypto Extensions
281           - NEON (Advanced SIMD) extensions
282
283 config CRYPTO_SM4_ARM64_CE_CCM
284         tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
285         depends on KERNEL_MODE_NEON
286         select CRYPTO_ALGAPI
287         select CRYPTO_AEAD
288         select CRYPTO_SM4
289         select CRYPTO_SM4_ARM64_CE_BLK
290         help
291           AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
292           CCM (Counter with Cipher Block Chaining-Message Authentication Code)
293           authenticated encryption mode (NIST SP800-38C)
294
295           Architecture: arm64 using:
296           - ARMv8 Crypto Extensions
297           - NEON (Advanced SIMD) extensions
298
299 config CRYPTO_SM4_ARM64_CE_GCM
300         tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
301         depends on KERNEL_MODE_NEON
302         select CRYPTO_ALGAPI
303         select CRYPTO_AEAD
304         select CRYPTO_SM4
305         select CRYPTO_SM4_ARM64_CE_BLK
306         help
307           AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
308           GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
309
310           Architecture: arm64 using:
311           - ARMv8 Crypto Extensions
312           - PMULL (Polynomial Multiply Long) instructions
313           - NEON (Advanced SIMD) extensions
314
315 config CRYPTO_CRCT10DIF_ARM64_CE
316         tristate "CRCT10DIF (PMULL)"
317         depends on KERNEL_MODE_NEON && CRC_T10DIF
318         select CRYPTO_HASH
319         help
320           CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
321
322           Architecture: arm64 using
323           - PMULL (Polynomial Multiply Long) instructions
324
325 endmenu
326