xref: /linux/arch/arm64/crypto/Kconfig (revision cbc9f5bcfa72d7e58cbace18c97e4df7e3a73058)
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_LIB_CHACHA_GENERIC
193	select CRYPTO_ARCH_HAVE_LIB_CHACHA
194	default CRYPTO_LIB_CHACHA_INTERNAL
195
196config CRYPTO_AES_ARM64_BS
197	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
198	depends on KERNEL_MODE_NEON
199	select CRYPTO_SKCIPHER
200	select CRYPTO_AES_ARM64_NEON_BLK
201	select CRYPTO_LIB_AES
202	help
203	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
204	  with block cipher modes:
205	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
206	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
207	  - CTR (Counter) mode (NIST SP800-38A)
208	  - XCTR mode for HCTR2
209	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
210	    and IEEE 1619)
211
212	  Architecture: arm64 using:
213	  - bit-sliced algorithm
214	  - NEON (Advanced SIMD) extensions
215
216config CRYPTO_SM4_ARM64_CE
217	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
218	depends on KERNEL_MODE_NEON
219	select CRYPTO_ALGAPI
220	select CRYPTO_SM4
221	help
222	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
223
224	  Architecture: arm64 using:
225	  - ARMv8.2 Crypto Extensions
226	  - NEON (Advanced SIMD) extensions
227
228config CRYPTO_SM4_ARM64_CE_BLK
229	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
230	depends on KERNEL_MODE_NEON
231	select CRYPTO_SKCIPHER
232	select CRYPTO_SM4
233	help
234	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
235	  with block cipher modes:
236	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
237	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
238	  - CTR (Counter) mode (NIST SP800-38A)
239	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
240	    and IEEE 1619)
241
242	  Architecture: arm64 using:
243	  - ARMv8 Crypto Extensions
244	  - NEON (Advanced SIMD) extensions
245
246config CRYPTO_SM4_ARM64_NEON_BLK
247	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
248	depends on KERNEL_MODE_NEON
249	select CRYPTO_SKCIPHER
250	select CRYPTO_SM4
251	help
252	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
253	  with block cipher modes:
254	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
255	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
256	  - CTR (Counter) mode (NIST SP800-38A)
257
258	  Architecture: arm64 using:
259	  - NEON (Advanced SIMD) extensions
260
261config CRYPTO_AES_ARM64_CE_CCM
262	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
263	depends on ARM64 && KERNEL_MODE_NEON
264	select CRYPTO_ALGAPI
265	select CRYPTO_AES_ARM64_CE
266	select CRYPTO_AES_ARM64_CE_BLK
267	select CRYPTO_AEAD
268	select CRYPTO_LIB_AES
269	help
270	  AEAD cipher: AES cipher algorithms (FIPS-197) with
271	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
272	  authenticated encryption mode (NIST SP800-38C)
273
274	  Architecture: arm64 using:
275	  - ARMv8 Crypto Extensions
276	  - NEON (Advanced SIMD) extensions
277
278config CRYPTO_SM4_ARM64_CE_CCM
279	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
280	depends on KERNEL_MODE_NEON
281	select CRYPTO_ALGAPI
282	select CRYPTO_AEAD
283	select CRYPTO_SM4
284	select CRYPTO_SM4_ARM64_CE_BLK
285	help
286	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
287	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
288	  authenticated encryption mode (NIST SP800-38C)
289
290	  Architecture: arm64 using:
291	  - ARMv8 Crypto Extensions
292	  - NEON (Advanced SIMD) extensions
293
294config CRYPTO_SM4_ARM64_CE_GCM
295	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
296	depends on KERNEL_MODE_NEON
297	select CRYPTO_ALGAPI
298	select CRYPTO_AEAD
299	select CRYPTO_SM4
300	select CRYPTO_SM4_ARM64_CE_BLK
301	help
302	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
303	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
304
305	  Architecture: arm64 using:
306	  - ARMv8 Crypto Extensions
307	  - PMULL (Polynomial Multiply Long) instructions
308	  - NEON (Advanced SIMD) extensions
309
310endmenu
311
312