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