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