xref: /linux/arch/arm64/crypto/Kconfig (revision 13150742b09e720fdf021de14cd2b98b37415a89)
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	help
75	  Block ciphers: AES cipher algorithms (FIPS-197)
76	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
77	    XCTR, and XTS modes
78	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
79	    for fscrypt and dm-crypt
80
81	  Architecture: arm64
82
83config CRYPTO_AES_ARM64_CE
84	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
85	depends on KERNEL_MODE_NEON
86	select CRYPTO_ALGAPI
87	select CRYPTO_LIB_AES
88	help
89	  Block ciphers: AES cipher algorithms (FIPS-197)
90
91	  Architecture: arm64 using:
92	  - ARMv8 Crypto Extensions
93
94config CRYPTO_AES_ARM64_CE_BLK
95	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
96	depends on KERNEL_MODE_NEON
97	select CRYPTO_SKCIPHER
98	select CRYPTO_AES_ARM64_CE
99	help
100	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
101	  with block cipher modes:
102	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
103	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
104	  - CTR (Counter) mode (NIST SP800-38A)
105	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
106	    and IEEE 1619)
107
108	  Architecture: arm64 using:
109	  - ARMv8 Crypto Extensions
110
111config CRYPTO_AES_ARM64_NEON_BLK
112	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
113	depends on KERNEL_MODE_NEON
114	select CRYPTO_SKCIPHER
115	select CRYPTO_LIB_AES
116	help
117	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
118	  with block cipher modes:
119	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
120	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
121	  - CTR (Counter) mode (NIST SP800-38A)
122	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
123	    and IEEE 1619)
124
125	  Architecture: arm64 using:
126	  - NEON (Advanced SIMD) extensions
127
128config CRYPTO_AES_ARM64_BS
129	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
130	depends on KERNEL_MODE_NEON
131	select CRYPTO_SKCIPHER
132	select CRYPTO_AES_ARM64_NEON_BLK
133	select CRYPTO_LIB_AES
134	help
135	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
136	  with block cipher modes:
137	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
138	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
139	  - CTR (Counter) mode (NIST SP800-38A)
140	  - XCTR mode for HCTR2
141	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
142	    and IEEE 1619)
143
144	  Architecture: arm64 using:
145	  - bit-sliced algorithm
146	  - NEON (Advanced SIMD) extensions
147
148config CRYPTO_SM4_ARM64_CE
149	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
150	depends on KERNEL_MODE_NEON
151	select CRYPTO_ALGAPI
152	select CRYPTO_SM4
153	help
154	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
155
156	  Architecture: arm64 using:
157	  - ARMv8.2 Crypto Extensions
158	  - NEON (Advanced SIMD) extensions
159
160config CRYPTO_SM4_ARM64_CE_BLK
161	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
162	depends on KERNEL_MODE_NEON
163	select CRYPTO_SKCIPHER
164	select CRYPTO_SM4
165	help
166	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
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	  - ARMv8 Crypto Extensions
176	  - NEON (Advanced SIMD) extensions
177
178config CRYPTO_SM4_ARM64_NEON_BLK
179	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
180	depends on KERNEL_MODE_NEON
181	select CRYPTO_SKCIPHER
182	select CRYPTO_SM4
183	help
184	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
185	  with block cipher modes:
186	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
187	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
188	  - CTR (Counter) mode (NIST SP800-38A)
189
190	  Architecture: arm64 using:
191	  - NEON (Advanced SIMD) extensions
192
193config CRYPTO_AES_ARM64_CE_CCM
194	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
195	depends on KERNEL_MODE_NEON
196	select CRYPTO_ALGAPI
197	select CRYPTO_AES_ARM64_CE
198	select CRYPTO_AES_ARM64_CE_BLK
199	select CRYPTO_AEAD
200	select CRYPTO_LIB_AES
201	help
202	  AEAD cipher: AES cipher algorithms (FIPS-197) with
203	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
204	  authenticated encryption mode (NIST SP800-38C)
205
206	  Architecture: arm64 using:
207	  - ARMv8 Crypto Extensions
208	  - NEON (Advanced SIMD) extensions
209
210config CRYPTO_SM4_ARM64_CE_CCM
211	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
212	depends on KERNEL_MODE_NEON
213	select CRYPTO_ALGAPI
214	select CRYPTO_AEAD
215	select CRYPTO_SM4
216	select CRYPTO_SM4_ARM64_CE_BLK
217	help
218	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
219	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
220	  authenticated encryption mode (NIST SP800-38C)
221
222	  Architecture: arm64 using:
223	  - ARMv8 Crypto Extensions
224	  - NEON (Advanced SIMD) extensions
225
226config CRYPTO_SM4_ARM64_CE_GCM
227	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
228	depends on KERNEL_MODE_NEON
229	select CRYPTO_ALGAPI
230	select CRYPTO_AEAD
231	select CRYPTO_SM4
232	select CRYPTO_SM4_ARM64_CE_BLK
233	help
234	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
235	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
236
237	  Architecture: arm64 using:
238	  - ARMv8 Crypto Extensions
239	  - PMULL (Polynomial Multiply Long) instructions
240	  - NEON (Advanced SIMD) extensions
241
242endmenu
243
244