xref: /linux/arch/arm64/crypto/Kconfig (revision f39b6c468c52745dbca9a842d91c8373fda208ab)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
22c98833aSArd Biesheuvel
34a329fecSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (arm64)"
42c98833aSArd Biesheuvel
59e5647ebSRobert Elliottconfig CRYPTO_GHASH_ARM64_CE
63f342a23SRobert Elliott	tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)"
79e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
87918ecefSArd Biesheuvel	select CRYPTO_HASH
99e5647ebSRobert Elliott	select CRYPTO_LIB_AES
1061c581a4SArd Biesheuvel	select CRYPTO_LIB_GF128MUL
119e5647ebSRobert Elliott	select CRYPTO_AEAD
123f342a23SRobert Elliott	help
133f342a23SRobert Elliott	  GCM GHASH function (NIST SP800-38D)
143f342a23SRobert Elliott
153f342a23SRobert Elliott	  Architecture: arm64 using:
163f342a23SRobert Elliott	  - ARMv8 Crypto Extensions
177918ecefSArd Biesheuvel
189e5647ebSRobert Elliottconfig CRYPTO_NHPOLY1305_NEON
193f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (NEON)"
209e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
219e5647ebSRobert Elliott	select CRYPTO_NHPOLY1305
223f342a23SRobert Elliott	help
233f342a23SRobert Elliott	  NHPoly1305 hash function (Adiantum)
243f342a23SRobert Elliott
253f342a23SRobert Elliott	  Architecture: arm64 using:
263f342a23SRobert Elliott	  - NEON (Advanced SIMD) extensions
279e5647ebSRobert Elliott
2815d5910eSArd Biesheuvelconfig CRYPTO_SHA3_ARM64
293f342a23SRobert Elliott	tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)"
3015d5910eSArd Biesheuvel	depends on KERNEL_MODE_NEON
3115d5910eSArd Biesheuvel	select CRYPTO_HASH
3215d5910eSArd Biesheuvel	select CRYPTO_SHA3
333f342a23SRobert Elliott	help
343f342a23SRobert Elliott	  SHA-3 secure hash algorithms (FIPS 202)
353f342a23SRobert Elliott
363f342a23SRobert Elliott	  Architecture: arm64 using:
373f342a23SRobert Elliott	  - ARMv8.2 Crypto Extensions
3815d5910eSArd Biesheuvel
39a41b2129STianjia Zhangconfig CRYPTO_SM3_NEON
40a41b2129STianjia Zhang	tristate "Hash functions: SM3 (NEON)"
41a41b2129STianjia Zhang	depends on KERNEL_MODE_NEON
42a41b2129STianjia Zhang	select CRYPTO_HASH
43f4065b2fSHerbert Xu	select CRYPTO_LIB_SM3
44a41b2129STianjia Zhang	help
45a41b2129STianjia Zhang	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
46a41b2129STianjia Zhang
47a41b2129STianjia Zhang	  Architecture: arm64 using:
48a41b2129STianjia Zhang	  - NEON (Advanced SIMD) extensions
49a41b2129STianjia Zhang
50140aa50dSArd Biesheuvelconfig CRYPTO_SM3_ARM64_CE
513f342a23SRobert Elliott	tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
52140aa50dSArd Biesheuvel	depends on KERNEL_MODE_NEON
53140aa50dSArd Biesheuvel	select CRYPTO_HASH
54f4065b2fSHerbert Xu	select CRYPTO_LIB_SM3
553f342a23SRobert Elliott	help
563f342a23SRobert Elliott	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
573f342a23SRobert Elliott
583f342a23SRobert Elliott	  Architecture: arm64 using:
593f342a23SRobert Elliott	  - ARMv8.2 Crypto Extensions
60140aa50dSArd Biesheuvel
619d2c0b48SNathan Huckleberryconfig CRYPTO_POLYVAL_ARM64_CE
623f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
639d2c0b48SNathan Huckleberry	depends on KERNEL_MODE_NEON
649d2c0b48SNathan Huckleberry	select CRYPTO_POLYVAL
653f342a23SRobert Elliott	help
663f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
673f342a23SRobert Elliott
683f342a23SRobert Elliott	  Architecture: arm64 using:
693f342a23SRobert Elliott	  - ARMv8 Crypto Extensions
709d2c0b48SNathan Huckleberry
71bed593c0SArd Biesheuvelconfig CRYPTO_AES_ARM64
72cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
73bed593c0SArd Biesheuvel	select CRYPTO_AES
74*01834444SEric Biggers	select CRYPTO_LIB_SHA256
75cf514b2aSRobert Elliott	help
76cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
77cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
78cf514b2aSRobert Elliott	    XCTR, and XTS modes
79cf514b2aSRobert Elliott	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
80cf514b2aSRobert Elliott	    for fscrypt and dm-crypt
81cf514b2aSRobert Elliott
82cf514b2aSRobert Elliott	  Architecture: arm64
83bed593c0SArd Biesheuvel
84317f2f75SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE
85cf514b2aSRobert Elliott	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
86e2df5fb7SEric Biggers	depends on KERNEL_MODE_NEON
87317f2f75SArd Biesheuvel	select CRYPTO_ALGAPI
884d3f9d89SArd Biesheuvel	select CRYPTO_LIB_AES
89cf514b2aSRobert Elliott	help
90cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
91cf514b2aSRobert Elliott
92cf514b2aSRobert Elliott	  Architecture: arm64 using:
93cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
94317f2f75SArd Biesheuvel
9549788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE_BLK
96cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
97e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
98b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
9912ac3efeSArd Biesheuvel	select CRYPTO_AES_ARM64_CE
100cf514b2aSRobert Elliott	help
101cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
102cf514b2aSRobert Elliott	  with block cipher modes:
103cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
104cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
105cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
106cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
107cf514b2aSRobert Elliott	    and IEEE 1619)
108cf514b2aSRobert Elliott
109cf514b2aSRobert Elliott	  Architecture: arm64 using:
110cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
11149788fe2SArd Biesheuvel
11249788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_NEON_BLK
113cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
114e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
115b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
116c1844729SArd Biesheuvel	select CRYPTO_LIB_AES
117cf514b2aSRobert Elliott	help
118cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
119cf514b2aSRobert Elliott	  with block cipher modes:
120cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
121cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
122cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
123cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
124cf514b2aSRobert Elliott	    and IEEE 1619)
125cf514b2aSRobert Elliott
126cf514b2aSRobert Elliott	  Architecture: arm64 using:
127cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
12849788fe2SArd Biesheuvel
1291abee99eSArd Biesheuvelconfig CRYPTO_AES_ARM64_BS
130cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
1311abee99eSArd Biesheuvel	depends on KERNEL_MODE_NEON
132b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
13312fcd923SArd Biesheuvel	select CRYPTO_AES_ARM64_NEON_BLK
134f68df543SArd Biesheuvel	select CRYPTO_LIB_AES
135cf514b2aSRobert Elliott	help
136cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
137cf514b2aSRobert Elliott	  with block cipher modes:
138cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
139cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
140cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
141cf514b2aSRobert Elliott	  - XCTR mode for HCTR2
142cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
143cf514b2aSRobert Elliott	    and IEEE 1619)
144cf514b2aSRobert Elliott
145cf514b2aSRobert Elliott	  Architecture: arm64 using:
146cf514b2aSRobert Elliott	  - bit-sliced algorithm
147cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1481abee99eSArd Biesheuvel
1499e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE
150cf514b2aSRobert Elliott	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
1519e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1529e5647ebSRobert Elliott	select CRYPTO_ALGAPI
1539e5647ebSRobert Elliott	select CRYPTO_SM4
154cf514b2aSRobert Elliott	help
155cf514b2aSRobert Elliott	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
156cf514b2aSRobert Elliott
157cf514b2aSRobert Elliott	  Architecture: arm64 using:
158cf514b2aSRobert Elliott	  - ARMv8.2 Crypto Extensions
159cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1609e5647ebSRobert Elliott
1619e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE_BLK
16229fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
1639e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1649e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
1659e5647ebSRobert Elliott	select CRYPTO_SM4
166cf514b2aSRobert Elliott	help
167cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
168cf514b2aSRobert Elliott	  with block cipher modes:
169cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
170cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
171cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
17201f63311STianjia Zhang	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
17301f63311STianjia Zhang	    and IEEE 1619)
174cf514b2aSRobert Elliott
175cf514b2aSRobert Elliott	  Architecture: arm64 using:
176cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
177cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1789e5647ebSRobert Elliott
1799e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_NEON_BLK
18029fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
1819e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1829e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
1839e5647ebSRobert Elliott	select CRYPTO_SM4
184cf514b2aSRobert Elliott	help
185cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
186cf514b2aSRobert Elliott	  with block cipher modes:
187cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
188cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
189cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
190cf514b2aSRobert Elliott
191cf514b2aSRobert Elliott	  Architecture: arm64 using:
192cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1939e5647ebSRobert Elliott
1949e5647ebSRobert Elliottconfig CRYPTO_AES_ARM64_CE_CCM
195cf514b2aSRobert Elliott	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
196e2df5fb7SEric Biggers	depends on KERNEL_MODE_NEON
1979e5647ebSRobert Elliott	select CRYPTO_ALGAPI
1989e5647ebSRobert Elliott	select CRYPTO_AES_ARM64_CE
199948ffc66SArd Biesheuvel	select CRYPTO_AES_ARM64_CE_BLK
2009e5647ebSRobert Elliott	select CRYPTO_AEAD
2019e5647ebSRobert Elliott	select CRYPTO_LIB_AES
202cf514b2aSRobert Elliott	help
203cf514b2aSRobert Elliott	  AEAD cipher: AES cipher algorithms (FIPS-197) with
204cf514b2aSRobert Elliott	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
205cf514b2aSRobert Elliott	  authenticated encryption mode (NIST SP800-38C)
206cf514b2aSRobert Elliott
207cf514b2aSRobert Elliott	  Architecture: arm64 using:
208cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
209cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
2109e5647ebSRobert Elliott
21167fa3a7fSTianjia Zhangconfig CRYPTO_SM4_ARM64_CE_CCM
21267fa3a7fSTianjia Zhang	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
21367fa3a7fSTianjia Zhang	depends on KERNEL_MODE_NEON
21467fa3a7fSTianjia Zhang	select CRYPTO_ALGAPI
21567fa3a7fSTianjia Zhang	select CRYPTO_AEAD
21667fa3a7fSTianjia Zhang	select CRYPTO_SM4
21767fa3a7fSTianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
21867fa3a7fSTianjia Zhang	help
21967fa3a7fSTianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
22067fa3a7fSTianjia Zhang	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
22167fa3a7fSTianjia Zhang	  authenticated encryption mode (NIST SP800-38C)
22267fa3a7fSTianjia Zhang
22367fa3a7fSTianjia Zhang	  Architecture: arm64 using:
22467fa3a7fSTianjia Zhang	  - ARMv8 Crypto Extensions
22567fa3a7fSTianjia Zhang	  - NEON (Advanced SIMD) extensions
22667fa3a7fSTianjia Zhang
227ae1b83c7STianjia Zhangconfig CRYPTO_SM4_ARM64_CE_GCM
228ae1b83c7STianjia Zhang	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
229ae1b83c7STianjia Zhang	depends on KERNEL_MODE_NEON
230ae1b83c7STianjia Zhang	select CRYPTO_ALGAPI
231ae1b83c7STianjia Zhang	select CRYPTO_AEAD
232ae1b83c7STianjia Zhang	select CRYPTO_SM4
233ae1b83c7STianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
234ae1b83c7STianjia Zhang	help
235ae1b83c7STianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
236ae1b83c7STianjia Zhang	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
237ae1b83c7STianjia Zhang
238ae1b83c7STianjia Zhang	  Architecture: arm64 using:
239ae1b83c7STianjia Zhang	  - ARMv8 Crypto Extensions
240ae1b83c7STianjia Zhang	  - PMULL (Polynomial Multiply Long) instructions
241ae1b83c7STianjia Zhang	  - NEON (Advanced SIMD) extensions
242ae1b83c7STianjia Zhang
2434a329fecSRobert Elliottendmenu
2449e5647ebSRobert Elliott
245