xref: /linux/arch/arm64/crypto/Kconfig (revision efd1d2c8f3c073c43d5616d0c2d698cbe8a3ecde)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (arm64)"
4
5config CRYPTO_GHASH_ARM64_CE
6	tristate "AEAD cipher: AES in GCM mode (ARMv8 Crypto Extensions)"
7	depends on KERNEL_MODE_NEON
8	select CRYPTO_LIB_AES
9	select CRYPTO_LIB_GF128MUL
10	select CRYPTO_AEAD
11	help
12	  AEAD cipher: AES-GCM
13
14	  Architecture: arm64 using:
15	  - ARMv8 Crypto Extensions
16
17config CRYPTO_SM3_NEON
18	tristate "Hash functions: SM3 (NEON)"
19	depends on KERNEL_MODE_NEON
20	select CRYPTO_HASH
21	select CRYPTO_LIB_SM3
22	help
23	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
24
25	  Architecture: arm64 using:
26	  - NEON (Advanced SIMD) extensions
27
28config CRYPTO_SM3_ARM64_CE
29	tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
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	  - ARMv8.2 Crypto Extensions
38
39config CRYPTO_AES_ARM64_CE_BLK
40	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
41	depends on KERNEL_MODE_NEON
42	select CRYPTO_SKCIPHER
43	select CRYPTO_LIB_AES
44	select CRYPTO_LIB_SHA256
45	help
46	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
47	  with block cipher modes:
48	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
49	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
50	  - CTR (Counter) mode (NIST SP800-38A)
51	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
52	    and IEEE 1619)
53
54	  Architecture: arm64 using:
55	  - ARMv8 Crypto Extensions
56
57config CRYPTO_AES_ARM64_NEON_BLK
58	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
59	depends on KERNEL_MODE_NEON
60	select CRYPTO_SKCIPHER
61	select CRYPTO_LIB_AES
62	select CRYPTO_LIB_SHA256
63	help
64	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
65	  with block cipher modes:
66	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
67	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
68	  - CTR (Counter) mode (NIST SP800-38A)
69	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
70	    and IEEE 1619)
71
72	  Architecture: arm64 using:
73	  - NEON (Advanced SIMD) extensions
74
75config CRYPTO_AES_ARM64_BS
76	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
77	depends on KERNEL_MODE_NEON
78	select CRYPTO_SKCIPHER
79	select CRYPTO_AES_ARM64_NEON_BLK
80	select CRYPTO_LIB_AES
81	help
82	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
83	  with block cipher modes:
84	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
85	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
86	  - CTR (Counter) mode (NIST SP800-38A)
87	  - XCTR mode for HCTR2
88	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
89	    and IEEE 1619)
90
91	  Architecture: arm64 using:
92	  - bit-sliced algorithm
93	  - NEON (Advanced SIMD) extensions
94
95config CRYPTO_SM4_ARM64_CE
96	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
97	depends on KERNEL_MODE_NEON
98	select CRYPTO_ALGAPI
99	select CRYPTO_SM4
100	help
101	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
102
103	  Architecture: arm64 using:
104	  - ARMv8.2 Crypto Extensions
105	  - NEON (Advanced SIMD) extensions
106
107config CRYPTO_SM4_ARM64_CE_BLK
108	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
109	depends on KERNEL_MODE_NEON
110	select CRYPTO_SKCIPHER
111	select CRYPTO_SM4
112	help
113	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
114	  with block cipher modes:
115	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
116	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
117	  - CTR (Counter) mode (NIST SP800-38A)
118	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
119	    and IEEE 1619)
120
121	  Architecture: arm64 using:
122	  - ARMv8 Crypto Extensions
123	  - NEON (Advanced SIMD) extensions
124
125config CRYPTO_SM4_ARM64_NEON_BLK
126	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
127	depends on KERNEL_MODE_NEON
128	select CRYPTO_SKCIPHER
129	select CRYPTO_SM4
130	help
131	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
132	  with block cipher modes:
133	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
134	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
135	  - CTR (Counter) mode (NIST SP800-38A)
136
137	  Architecture: arm64 using:
138	  - NEON (Advanced SIMD) extensions
139
140config CRYPTO_AES_ARM64_CE_CCM
141	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
142	depends on KERNEL_MODE_NEON
143	select CRYPTO_ALGAPI
144	select CRYPTO_AES_ARM64_CE_BLK
145	select CRYPTO_AEAD
146	select CRYPTO_LIB_AES_CBC_MACS
147	help
148	  AEAD cipher: AES cipher algorithms (FIPS-197) with
149	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
150	  authenticated encryption mode (NIST SP800-38C)
151
152	  Architecture: arm64 using:
153	  - ARMv8 Crypto Extensions
154	  - NEON (Advanced SIMD) extensions
155
156config CRYPTO_SM4_ARM64_CE_CCM
157	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
158	depends on KERNEL_MODE_NEON
159	select CRYPTO_ALGAPI
160	select CRYPTO_AEAD
161	select CRYPTO_SM4
162	select CRYPTO_SM4_ARM64_CE_BLK
163	help
164	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
165	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
166	  authenticated encryption mode (NIST SP800-38C)
167
168	  Architecture: arm64 using:
169	  - ARMv8 Crypto Extensions
170	  - NEON (Advanced SIMD) extensions
171
172config CRYPTO_SM4_ARM64_CE_GCM
173	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
174	depends on KERNEL_MODE_NEON
175	select CRYPTO_ALGAPI
176	select CRYPTO_AEAD
177	select CRYPTO_SM4
178	select CRYPTO_SM4_ARM64_CE_BLK
179	help
180	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
181	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
182
183	  Architecture: arm64 using:
184	  - ARMv8 Crypto Extensions
185	  - PMULL (Polynomial Multiply Long) instructions
186	  - NEON (Advanced SIMD) extensions
187
188endmenu
189
190