Merge tag 'input-for-v6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor...
[linux-2.6-microblaze.git] / arch / arm64 / crypto / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "Accelerated Cryptographic Algorithms for CPU (arm64)"
4
5 config 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
18 config 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
28 config 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
39 config 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
50 config 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
58 config 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
69 config 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
77 config 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
88 config 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
99 config 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
110 config 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
120 config 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
132 config 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
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
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
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
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
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
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
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
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
210 config 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
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
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
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
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
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
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
271 config 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
281 endmenu
282