1 # SPDX-License-Identifier: GPL-2.0
3 menu "Accelerated Cryptographic Algorithms for CPU (arm64)"
5 config CRYPTO_GHASH_ARM64_CE
6 tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)"
7 depends on KERNEL_MODE_NEON
10 select CRYPTO_LIB_GF128MUL
13 GCM GHASH function (NIST SP800-38D)
15 Architecture: arm64 using:
16 - ARMv8 Crypto Extensions
18 config CRYPTO_NHPOLY1305_NEON
19 tristate "Hash functions: NHPoly1305 (NEON)"
20 depends on KERNEL_MODE_NEON
21 select CRYPTO_NHPOLY1305
23 NHPoly1305 hash function (Adiantum)
25 Architecture: arm64 using:
26 - NEON (Advanced SIMD) extensions
28 config CRYPTO_POLY1305_NEON
29 tristate "Hash functions: Poly1305 (NEON)"
30 depends on KERNEL_MODE_NEON
32 select CRYPTO_ARCH_HAVE_LIB_POLY1305
34 Poly1305 authenticator algorithm (RFC7539)
36 Architecture: arm64 using:
37 - NEON (Advanced SIMD) extensions
39 config CRYPTO_SHA1_ARM64_CE
40 tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)"
41 depends on KERNEL_MODE_NEON
45 SHA-1 secure hash algorithm (FIPS 180)
47 Architecture: arm64 using:
48 - ARMv8 Crypto Extensions
50 config CRYPTO_SHA256_ARM64
51 tristate "Hash functions: SHA-224 and SHA-256"
54 SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
58 config CRYPTO_SHA2_ARM64_CE
59 tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)"
60 depends on KERNEL_MODE_NEON
62 select CRYPTO_SHA256_ARM64
64 SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
66 Architecture: arm64 using:
67 - ARMv8 Crypto Extensions
69 config CRYPTO_SHA512_ARM64
70 tristate "Hash functions: SHA-384 and SHA-512"
73 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
77 config CRYPTO_SHA512_ARM64_CE
78 tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)"
79 depends on KERNEL_MODE_NEON
81 select CRYPTO_SHA512_ARM64
83 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
85 Architecture: arm64 using:
86 - ARMv8 Crypto Extensions
88 config CRYPTO_SHA3_ARM64
89 tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)"
90 depends on KERNEL_MODE_NEON
94 SHA-3 secure hash algorithms (FIPS 202)
96 Architecture: arm64 using:
97 - ARMv8.2 Crypto Extensions
99 config CRYPTO_SM3_NEON
100 tristate "Hash functions: SM3 (NEON)"
101 depends on KERNEL_MODE_NEON
105 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
107 Architecture: arm64 using:
108 - NEON (Advanced SIMD) extensions
110 config CRYPTO_SM3_ARM64_CE
111 tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
112 depends on KERNEL_MODE_NEON
116 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
118 Architecture: arm64 using:
119 - ARMv8.2 Crypto Extensions
121 config CRYPTO_POLYVAL_ARM64_CE
122 tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
123 depends on KERNEL_MODE_NEON
124 select CRYPTO_POLYVAL
126 POLYVAL hash function for HCTR2
128 Architecture: arm64 using:
129 - ARMv8 Crypto Extensions
131 config CRYPTO_AES_ARM64
132 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
135 Block ciphers: AES cipher algorithms (FIPS-197)
136 Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
138 AEAD cipher: AES with CBC, ESSIV, and SHA-256
139 for fscrypt and dm-crypt
143 config CRYPTO_AES_ARM64_CE
144 tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
145 depends on ARM64 && KERNEL_MODE_NEON
147 select CRYPTO_LIB_AES
149 Block ciphers: AES cipher algorithms (FIPS-197)
151 Architecture: arm64 using:
152 - ARMv8 Crypto Extensions
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
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
168 Architecture: arm64 using:
169 - ARMv8 Crypto Extensions
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
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
185 Architecture: arm64 using:
186 - NEON (Advanced SIMD) extensions
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
195 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
196 stream cipher algorithms
198 Architecture: arm64 using:
199 - NEON (Advanced SIMD) extensions
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
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
217 Architecture: arm64 using:
218 - bit-sliced algorithm
219 - NEON (Advanced SIMD) extensions
221 config CRYPTO_SM4_ARM64_CE
222 tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
223 depends on KERNEL_MODE_NEON
227 Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
229 Architecture: arm64 using:
230 - ARMv8.2 Crypto Extensions
231 - NEON (Advanced SIMD) extensions
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
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
247 Architecture: arm64 using:
248 - ARMv8 Crypto Extensions
249 - NEON (Advanced SIMD) extensions
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
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)
263 Architecture: arm64 using:
264 - NEON (Advanced SIMD) extensions
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
270 select CRYPTO_AES_ARM64_CE
271 select CRYPTO_AES_ARM64_CE_BLK
273 select CRYPTO_LIB_AES
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)
279 Architecture: arm64 using:
280 - ARMv8 Crypto Extensions
281 - NEON (Advanced SIMD) extensions
283 config CRYPTO_SM4_ARM64_CE_CCM
284 tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
285 depends on KERNEL_MODE_NEON
289 select CRYPTO_SM4_ARM64_CE_BLK
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)
295 Architecture: arm64 using:
296 - ARMv8 Crypto Extensions
297 - NEON (Advanced SIMD) extensions
299 config CRYPTO_SM4_ARM64_CE_GCM
300 tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
301 depends on KERNEL_MODE_NEON
305 select CRYPTO_SM4_ARM64_CE_BLK
307 AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
308 GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
310 Architecture: arm64 using:
311 - ARMv8 Crypto Extensions
312 - PMULL (Polynomial Multiply Long) instructions
313 - NEON (Advanced SIMD) extensions
315 config CRYPTO_CRCT10DIF_ARM64_CE
316 tristate "CRCT10DIF (PMULL)"
317 depends on KERNEL_MODE_NEON && CRC_T10DIF
320 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
322 Architecture: arm64 using
323 - PMULL (Polynomial Multiply Long) instructions