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
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_ARM64_CE
100 tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
101 depends on KERNEL_MODE_NEON
105 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
107 Architecture: arm64 using:
108 - ARMv8.2 Crypto Extensions
110 config CRYPTO_POLYVAL_ARM64_CE
111 tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
112 depends on KERNEL_MODE_NEON
113 select CRYPTO_POLYVAL
115 POLYVAL hash function for HCTR2
117 Architecture: arm64 using:
118 - ARMv8 Crypto Extensions
120 config CRYPTO_AES_ARM64
121 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
124 Block ciphers: AES cipher algorithms (FIPS-197)
125 Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
127 AEAD cipher: AES with CBC, ESSIV, and SHA-256
128 for fscrypt and dm-crypt
132 config CRYPTO_AES_ARM64_CE
133 tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
134 depends on ARM64 && KERNEL_MODE_NEON
136 select CRYPTO_LIB_AES
138 Block ciphers: AES cipher algorithms (FIPS-197)
140 Architecture: arm64 using:
141 - ARMv8 Crypto Extensions
143 config 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
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
157 Architecture: arm64 using:
158 - ARMv8 Crypto Extensions
160 config 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
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
174 Architecture: arm64 using:
175 - NEON (Advanced SIMD) extensions
177 config 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
184 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
185 stream cipher algorithms
187 Architecture: arm64 using:
188 - NEON (Advanced SIMD) extensions
190 config 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
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
206 Architecture: arm64 using:
207 - bit-sliced algorithm
208 - NEON (Advanced SIMD) extensions
210 config CRYPTO_SM4_ARM64_CE
211 tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
212 depends on KERNEL_MODE_NEON
216 Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
218 Architecture: arm64 using:
219 - ARMv8.2 Crypto Extensions
220 - NEON (Advanced SIMD) extensions
222 config 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
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)
235 Architecture: arm64 using:
236 - ARMv8 Crypto Extensions
237 - NEON (Advanced SIMD) extensions
239 config 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
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)
252 Architecture: arm64 using:
253 - NEON (Advanced SIMD) extensions
255 config CRYPTO_AES_ARM64_CE_CCM
256 tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
257 depends on ARM64 && KERNEL_MODE_NEON
259 select CRYPTO_AES_ARM64_CE
261 select CRYPTO_LIB_AES
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)
267 Architecture: arm64 using:
268 - ARMv8 Crypto Extensions
269 - NEON (Advanced SIMD) extensions
271 config CRYPTO_CRCT10DIF_ARM64_CE
272 tristate "CRCT10DIF (PMULL)"
273 depends on KERNEL_MODE_NEON && CRC_T10DIF
276 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
278 Architecture: arm64 using
279 - PMULL (Polynomial Multiply Long) instructions