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