xref: /openbmc/linux/arch/arm64/crypto/Kconfig (revision 25c2e591)
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_GF128MUL
10	select CRYPTO_LIB_AES
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 "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
39config 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
50config 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
58config 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
69config 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
77config 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
88config 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
99config CRYPTO_SM3_ARM64_CE
100	tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
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	  - ARMv8.2 Crypto Extensions
109
110config CRYPTO_POLYVAL_ARM64_CE
111	tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
112	depends on KERNEL_MODE_NEON
113	select CRYPTO_POLYVAL
114	help
115	  POLYVAL hash function for HCTR2
116
117	  Architecture: arm64 using:
118	  - ARMv8 Crypto Extensions
119
120config CRYPTO_AES_ARM64
121	tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
122	select CRYPTO_AES
123	help
124	  Block ciphers: AES cipher algorithms (FIPS-197)
125	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
126	    XCTR, and XTS modes
127	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
128	    for fscrypt and dm-crypt
129
130	  Architecture: arm64
131
132config CRYPTO_AES_ARM64_CE
133	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
134	depends on ARM64 && KERNEL_MODE_NEON
135	select CRYPTO_ALGAPI
136	select CRYPTO_LIB_AES
137	help
138	  Block ciphers: AES cipher algorithms (FIPS-197)
139
140	  Architecture: arm64 using:
141	  - ARMv8 Crypto Extensions
142
143config CRYPTO_AES_ARM64_CE_BLK
144	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
145	depends on KERNEL_MODE_NEON
146	select CRYPTO_SKCIPHER
147	select CRYPTO_AES_ARM64_CE
148	help
149	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
150	  with block cipher modes:
151	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
152	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
153	  - CTR (Counter) mode (NIST SP800-38A)
154	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
155	    and IEEE 1619)
156
157	  Architecture: arm64 using:
158	  - ARMv8 Crypto Extensions
159
160config CRYPTO_AES_ARM64_NEON_BLK
161	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
162	depends on KERNEL_MODE_NEON
163	select CRYPTO_SKCIPHER
164	select CRYPTO_LIB_AES
165	help
166	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
167	  with block cipher modes:
168	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
169	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
170	  - CTR (Counter) mode (NIST SP800-38A)
171	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
172	    and IEEE 1619)
173
174	  Architecture: arm64 using:
175	  - NEON (Advanced SIMD) extensions
176
177config CRYPTO_CHACHA20_NEON
178	tristate "Ciphers: ChaCha (NEON)"
179	depends on KERNEL_MODE_NEON
180	select CRYPTO_SKCIPHER
181	select CRYPTO_LIB_CHACHA_GENERIC
182	select CRYPTO_ARCH_HAVE_LIB_CHACHA
183	help
184	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
185	  stream cipher algorithms
186
187	  Architecture: arm64 using:
188	  - NEON (Advanced SIMD) extensions
189
190config CRYPTO_AES_ARM64_BS
191	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
192	depends on KERNEL_MODE_NEON
193	select CRYPTO_SKCIPHER
194	select CRYPTO_AES_ARM64_NEON_BLK
195	select CRYPTO_LIB_AES
196	help
197	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
198	  with block cipher modes:
199	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
200	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
201	  - CTR (Counter) mode (NIST SP800-38A)
202	  - XCTR mode for HCTR2
203	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
204	    and IEEE 1619)
205
206	  Architecture: arm64 using:
207	  - bit-sliced algorithm
208	  - NEON (Advanced SIMD) extensions
209
210config CRYPTO_SM4_ARM64_CE
211	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
212	depends on KERNEL_MODE_NEON
213	select CRYPTO_ALGAPI
214	select CRYPTO_SM4
215	help
216	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
217
218	  Architecture: arm64 using:
219	  - ARMv8.2 Crypto Extensions
220	  - NEON (Advanced SIMD) extensions
221
222config CRYPTO_SM4_ARM64_CE_BLK
223	tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (ARMv8 Crypto Extensions)"
224	depends on KERNEL_MODE_NEON
225	select CRYPTO_SKCIPHER
226	select CRYPTO_SM4
227	help
228	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
229	  with block cipher modes:
230	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
231	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
232	  - CFB (Cipher Feedback) mode (NIST SP800-38A)
233	  - CTR (Counter) mode (NIST SP800-38A)
234
235	  Architecture: arm64 using:
236	  - ARMv8 Crypto Extensions
237	  - NEON (Advanced SIMD) extensions
238
239config CRYPTO_SM4_ARM64_NEON_BLK
240	tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (NEON)"
241	depends on KERNEL_MODE_NEON
242	select CRYPTO_SKCIPHER
243	select CRYPTO_SM4
244	help
245	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
246	  with block cipher modes:
247	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
248	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
249	  - CFB (Cipher Feedback) mode (NIST SP800-38A)
250	  - CTR (Counter) mode (NIST SP800-38A)
251
252	  Architecture: arm64 using:
253	  - NEON (Advanced SIMD) extensions
254
255config CRYPTO_AES_ARM64_CE_CCM
256	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
257	depends on ARM64 && KERNEL_MODE_NEON
258	select CRYPTO_ALGAPI
259	select CRYPTO_AES_ARM64_CE
260	select CRYPTO_AEAD
261	select CRYPTO_LIB_AES
262	help
263	  AEAD cipher: AES cipher algorithms (FIPS-197) with
264	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
265	  authenticated encryption mode (NIST SP800-38C)
266
267	  Architecture: arm64 using:
268	  - ARMv8 Crypto Extensions
269	  - NEON (Advanced SIMD) extensions
270
271config CRYPTO_CRCT10DIF_ARM64_CE
272	tristate "CRCT10DIF (PMULL)"
273	depends on KERNEL_MODE_NEON && CRC_T10DIF
274	select CRYPTO_HASH
275	help
276	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
277
278	  Architecture: arm64 using
279	  - PMULL (Polynomial Multiply Long) instructions
280
281endmenu
282
283