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