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