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