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