xref: /linux/arch/arm64/crypto/Kconfig (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
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_SHA3_ARM64
29	tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)"
30	depends on KERNEL_MODE_NEON
31	select CRYPTO_HASH
32	select CRYPTO_SHA3
33	help
34	  SHA-3 secure hash algorithms (FIPS 202)
35
36	  Architecture: arm64 using:
37	  - ARMv8.2 Crypto Extensions
38
39config CRYPTO_SM3_NEON
40	tristate "Hash functions: SM3 (NEON)"
41	depends on KERNEL_MODE_NEON
42	select CRYPTO_HASH
43	select CRYPTO_LIB_SM3
44	help
45	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
46
47	  Architecture: arm64 using:
48	  - NEON (Advanced SIMD) extensions
49
50config CRYPTO_SM3_ARM64_CE
51	tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
52	depends on KERNEL_MODE_NEON
53	select CRYPTO_HASH
54	select CRYPTO_LIB_SM3
55	help
56	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
57
58	  Architecture: arm64 using:
59	  - ARMv8.2 Crypto Extensions
60
61config CRYPTO_POLYVAL_ARM64_CE
62	tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
63	depends on KERNEL_MODE_NEON
64	select CRYPTO_POLYVAL
65	help
66	  POLYVAL hash function for HCTR2
67
68	  Architecture: arm64 using:
69	  - ARMv8 Crypto Extensions
70
71config CRYPTO_AES_ARM64
72	tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
73	select CRYPTO_AES
74	select CRYPTO_LIB_SHA256
75	help
76	  Block ciphers: AES cipher algorithms (FIPS-197)
77	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
78	    XCTR, and XTS modes
79	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
80	    for fscrypt and dm-crypt
81
82	  Architecture: arm64
83
84config CRYPTO_AES_ARM64_CE
85	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
86	depends on KERNEL_MODE_NEON
87	select CRYPTO_ALGAPI
88	select CRYPTO_LIB_AES
89	help
90	  Block ciphers: AES cipher algorithms (FIPS-197)
91
92	  Architecture: arm64 using:
93	  - ARMv8 Crypto Extensions
94
95config CRYPTO_AES_ARM64_CE_BLK
96	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
97	depends on KERNEL_MODE_NEON
98	select CRYPTO_SKCIPHER
99	select CRYPTO_AES_ARM64_CE
100	help
101	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
102	  with block cipher modes:
103	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
104	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
105	  - CTR (Counter) mode (NIST SP800-38A)
106	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
107	    and IEEE 1619)
108
109	  Architecture: arm64 using:
110	  - ARMv8 Crypto Extensions
111
112config CRYPTO_AES_ARM64_NEON_BLK
113	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
114	depends on KERNEL_MODE_NEON
115	select CRYPTO_SKCIPHER
116	select CRYPTO_LIB_AES
117	help
118	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
119	  with block cipher modes:
120	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
121	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
122	  - CTR (Counter) mode (NIST SP800-38A)
123	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
124	    and IEEE 1619)
125
126	  Architecture: arm64 using:
127	  - NEON (Advanced SIMD) extensions
128
129config CRYPTO_AES_ARM64_BS
130	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
131	depends on KERNEL_MODE_NEON
132	select CRYPTO_SKCIPHER
133	select CRYPTO_AES_ARM64_NEON_BLK
134	select CRYPTO_LIB_AES
135	help
136	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
137	  with block cipher modes:
138	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
139	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
140	  - CTR (Counter) mode (NIST SP800-38A)
141	  - XCTR mode for HCTR2
142	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
143	    and IEEE 1619)
144
145	  Architecture: arm64 using:
146	  - bit-sliced algorithm
147	  - NEON (Advanced SIMD) extensions
148
149config CRYPTO_SM4_ARM64_CE
150	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
151	depends on KERNEL_MODE_NEON
152	select CRYPTO_ALGAPI
153	select CRYPTO_SM4
154	help
155	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
156
157	  Architecture: arm64 using:
158	  - ARMv8.2 Crypto Extensions
159	  - NEON (Advanced SIMD) extensions
160
161config CRYPTO_SM4_ARM64_CE_BLK
162	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
163	depends on KERNEL_MODE_NEON
164	select CRYPTO_SKCIPHER
165	select CRYPTO_SM4
166	help
167	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
168	  with block cipher modes:
169	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
170	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
171	  - CTR (Counter) mode (NIST SP800-38A)
172	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
173	    and IEEE 1619)
174
175	  Architecture: arm64 using:
176	  - ARMv8 Crypto Extensions
177	  - NEON (Advanced SIMD) extensions
178
179config CRYPTO_SM4_ARM64_NEON_BLK
180	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
181	depends on KERNEL_MODE_NEON
182	select CRYPTO_SKCIPHER
183	select CRYPTO_SM4
184	help
185	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
186	  with block cipher modes:
187	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
188	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
189	  - CTR (Counter) mode (NIST SP800-38A)
190
191	  Architecture: arm64 using:
192	  - NEON (Advanced SIMD) extensions
193
194config CRYPTO_AES_ARM64_CE_CCM
195	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
196	depends on KERNEL_MODE_NEON
197	select CRYPTO_ALGAPI
198	select CRYPTO_AES_ARM64_CE
199	select CRYPTO_AES_ARM64_CE_BLK
200	select CRYPTO_AEAD
201	select CRYPTO_LIB_AES
202	help
203	  AEAD cipher: AES cipher algorithms (FIPS-197) with
204	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
205	  authenticated encryption mode (NIST SP800-38C)
206
207	  Architecture: arm64 using:
208	  - ARMv8 Crypto Extensions
209	  - NEON (Advanced SIMD) extensions
210
211config CRYPTO_SM4_ARM64_CE_CCM
212	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
213	depends on KERNEL_MODE_NEON
214	select CRYPTO_ALGAPI
215	select CRYPTO_AEAD
216	select CRYPTO_SM4
217	select CRYPTO_SM4_ARM64_CE_BLK
218	help
219	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
220	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
221	  authenticated encryption mode (NIST SP800-38C)
222
223	  Architecture: arm64 using:
224	  - ARMv8 Crypto Extensions
225	  - NEON (Advanced SIMD) extensions
226
227config CRYPTO_SM4_ARM64_CE_GCM
228	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
229	depends on KERNEL_MODE_NEON
230	select CRYPTO_ALGAPI
231	select CRYPTO_AEAD
232	select CRYPTO_SM4
233	select CRYPTO_SM4_ARM64_CE_BLK
234	help
235	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
236	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
237
238	  Architecture: arm64 using:
239	  - ARMv8 Crypto Extensions
240	  - PMULL (Polynomial Multiply Long) instructions
241	  - NEON (Advanced SIMD) extensions
242
243endmenu
244
245