xref: /linux/arch/arm64/crypto/Kconfig (revision 13150742b09e720fdf021de14cd2b98b37415a89)
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
74cf514b2aSRobert Elliott	help
75cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
76cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
77cf514b2aSRobert Elliott	    XCTR, and XTS modes
78cf514b2aSRobert Elliott	  AEAD cipher: AES with CBC, ESSIV, and SHA-256
79cf514b2aSRobert Elliott	    for fscrypt and dm-crypt
80cf514b2aSRobert Elliott
81cf514b2aSRobert Elliott	  Architecture: arm64
82bed593c0SArd Biesheuvel
83317f2f75SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE
84cf514b2aSRobert Elliott	tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
85*e2df5fb7SEric Biggers	depends on KERNEL_MODE_NEON
86317f2f75SArd Biesheuvel	select CRYPTO_ALGAPI
874d3f9d89SArd Biesheuvel	select CRYPTO_LIB_AES
88cf514b2aSRobert Elliott	help
89cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
90cf514b2aSRobert Elliott
91cf514b2aSRobert Elliott	  Architecture: arm64 using:
92cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
93317f2f75SArd Biesheuvel
9449788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE_BLK
95cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
96e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
97b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
9812ac3efeSArd Biesheuvel	select CRYPTO_AES_ARM64_CE
99cf514b2aSRobert Elliott	help
100cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
101cf514b2aSRobert Elliott	  with block cipher modes:
102cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
103cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
104cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
105cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
106cf514b2aSRobert Elliott	    and IEEE 1619)
107cf514b2aSRobert Elliott
108cf514b2aSRobert Elliott	  Architecture: arm64 using:
109cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
11049788fe2SArd Biesheuvel
11149788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_NEON_BLK
112cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
113e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
114b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
115c1844729SArd Biesheuvel	select CRYPTO_LIB_AES
116cf514b2aSRobert Elliott	help
117cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
118cf514b2aSRobert Elliott	  with block cipher modes:
119cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
120cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
121cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
122cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
123cf514b2aSRobert Elliott	    and IEEE 1619)
124cf514b2aSRobert Elliott
125cf514b2aSRobert Elliott	  Architecture: arm64 using:
126cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
12749788fe2SArd Biesheuvel
1281abee99eSArd Biesheuvelconfig CRYPTO_AES_ARM64_BS
129cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
1301abee99eSArd Biesheuvel	depends on KERNEL_MODE_NEON
131b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
13212fcd923SArd Biesheuvel	select CRYPTO_AES_ARM64_NEON_BLK
133f68df543SArd Biesheuvel	select CRYPTO_LIB_AES
134cf514b2aSRobert Elliott	help
135cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
136cf514b2aSRobert Elliott	  with block cipher modes:
137cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
138cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
139cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
140cf514b2aSRobert Elliott	  - XCTR mode for HCTR2
141cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
142cf514b2aSRobert Elliott	    and IEEE 1619)
143cf514b2aSRobert Elliott
144cf514b2aSRobert Elliott	  Architecture: arm64 using:
145cf514b2aSRobert Elliott	  - bit-sliced algorithm
146cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1471abee99eSArd Biesheuvel
1489e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE
149cf514b2aSRobert Elliott	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
1509e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1519e5647ebSRobert Elliott	select CRYPTO_ALGAPI
1529e5647ebSRobert Elliott	select CRYPTO_SM4
153cf514b2aSRobert Elliott	help
154cf514b2aSRobert Elliott	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
155cf514b2aSRobert Elliott
156cf514b2aSRobert Elliott	  Architecture: arm64 using:
157cf514b2aSRobert Elliott	  - ARMv8.2 Crypto Extensions
158cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1599e5647ebSRobert Elliott
1609e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE_BLK
16129fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
1629e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1639e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
1649e5647ebSRobert Elliott	select CRYPTO_SM4
165cf514b2aSRobert Elliott	help
166cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
167cf514b2aSRobert Elliott	  with block cipher modes:
168cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
169cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
170cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
17101f63311STianjia Zhang	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
17201f63311STianjia Zhang	    and IEEE 1619)
173cf514b2aSRobert Elliott
174cf514b2aSRobert Elliott	  Architecture: arm64 using:
175cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
176cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1779e5647ebSRobert Elliott
1789e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_NEON_BLK
17929fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
1809e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1819e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
1829e5647ebSRobert Elliott	select CRYPTO_SM4
183cf514b2aSRobert Elliott	help
184cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
185cf514b2aSRobert Elliott	  with block cipher modes:
186cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
187cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
188cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
189cf514b2aSRobert Elliott
190cf514b2aSRobert Elliott	  Architecture: arm64 using:
191cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1929e5647ebSRobert Elliott
1939e5647ebSRobert Elliottconfig CRYPTO_AES_ARM64_CE_CCM
194cf514b2aSRobert Elliott	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
195*e2df5fb7SEric Biggers	depends on KERNEL_MODE_NEON
1969e5647ebSRobert Elliott	select CRYPTO_ALGAPI
1979e5647ebSRobert Elliott	select CRYPTO_AES_ARM64_CE
198948ffc66SArd Biesheuvel	select CRYPTO_AES_ARM64_CE_BLK
1999e5647ebSRobert Elliott	select CRYPTO_AEAD
2009e5647ebSRobert Elliott	select CRYPTO_LIB_AES
201cf514b2aSRobert Elliott	help
202cf514b2aSRobert Elliott	  AEAD cipher: AES cipher algorithms (FIPS-197) with
203cf514b2aSRobert Elliott	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
204cf514b2aSRobert Elliott	  authenticated encryption mode (NIST SP800-38C)
205cf514b2aSRobert Elliott
206cf514b2aSRobert Elliott	  Architecture: arm64 using:
207cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
208cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
2099e5647ebSRobert Elliott
21067fa3a7fSTianjia Zhangconfig CRYPTO_SM4_ARM64_CE_CCM
21167fa3a7fSTianjia Zhang	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
21267fa3a7fSTianjia Zhang	depends on KERNEL_MODE_NEON
21367fa3a7fSTianjia Zhang	select CRYPTO_ALGAPI
21467fa3a7fSTianjia Zhang	select CRYPTO_AEAD
21567fa3a7fSTianjia Zhang	select CRYPTO_SM4
21667fa3a7fSTianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
21767fa3a7fSTianjia Zhang	help
21867fa3a7fSTianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
21967fa3a7fSTianjia Zhang	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
22067fa3a7fSTianjia Zhang	  authenticated encryption mode (NIST SP800-38C)
22167fa3a7fSTianjia Zhang
22267fa3a7fSTianjia Zhang	  Architecture: arm64 using:
22367fa3a7fSTianjia Zhang	  - ARMv8 Crypto Extensions
22467fa3a7fSTianjia Zhang	  - NEON (Advanced SIMD) extensions
22567fa3a7fSTianjia Zhang
226ae1b83c7STianjia Zhangconfig CRYPTO_SM4_ARM64_CE_GCM
227ae1b83c7STianjia Zhang	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
228ae1b83c7STianjia Zhang	depends on KERNEL_MODE_NEON
229ae1b83c7STianjia Zhang	select CRYPTO_ALGAPI
230ae1b83c7STianjia Zhang	select CRYPTO_AEAD
231ae1b83c7STianjia Zhang	select CRYPTO_SM4
232ae1b83c7STianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
233ae1b83c7STianjia Zhang	help
234ae1b83c7STianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
235ae1b83c7STianjia Zhang	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
236ae1b83c7STianjia Zhang
237ae1b83c7STianjia Zhang	  Architecture: arm64 using:
238ae1b83c7STianjia Zhang	  - ARMv8 Crypto Extensions
239ae1b83c7STianjia Zhang	  - PMULL (Polynomial Multiply Long) instructions
240ae1b83c7STianjia Zhang	  - NEON (Advanced SIMD) extensions
241ae1b83c7STianjia Zhang
2424a329fecSRobert Elliottendmenu
2439e5647ebSRobert Elliott
244