xref: /linux/arch/arm64/crypto/Kconfig (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
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
6*a336c01fSEric Biggers	tristate "AEAD cipher: AES in GCM mode (ARMv8 Crypto Extensions)"
79e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
89e5647ebSRobert Elliott	select CRYPTO_LIB_AES
961c581a4SArd Biesheuvel	select CRYPTO_LIB_GF128MUL
109e5647ebSRobert Elliott	select CRYPTO_AEAD
113f342a23SRobert Elliott	help
12*a336c01fSEric Biggers	  AEAD cipher: AES-GCM
133f342a23SRobert Elliott
143f342a23SRobert Elliott	  Architecture: arm64 using:
153f342a23SRobert Elliott	  - ARMv8 Crypto Extensions
167918ecefSArd Biesheuvel
1749788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE_BLK
18cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
19e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
20b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
212b1ef7aeSEric Biggers	select CRYPTO_LIB_AES
225be8dcc1SEric Biggers	select CRYPTO_LIB_SHA256
23cf514b2aSRobert Elliott	help
24cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
25cf514b2aSRobert Elliott	  with block cipher modes:
26cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
27cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
28cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
29cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
30cf514b2aSRobert Elliott	    and IEEE 1619)
31cf514b2aSRobert Elliott
32cf514b2aSRobert Elliott	  Architecture: arm64 using:
33cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
3449788fe2SArd Biesheuvel
3549788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_NEON_BLK
36cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
37e2115069SArd Biesheuvel	depends on KERNEL_MODE_NEON
38b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
39c1844729SArd Biesheuvel	select CRYPTO_LIB_AES
405be8dcc1SEric Biggers	select CRYPTO_LIB_SHA256
41cf514b2aSRobert Elliott	help
42cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
43cf514b2aSRobert Elliott	  with block cipher modes:
44cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
45cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
46cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
47cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
48cf514b2aSRobert Elliott	    and IEEE 1619)
49cf514b2aSRobert Elliott
50cf514b2aSRobert Elliott	  Architecture: arm64 using:
51cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
5249788fe2SArd Biesheuvel
531abee99eSArd Biesheuvelconfig CRYPTO_AES_ARM64_BS
54cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
551abee99eSArd Biesheuvel	depends on KERNEL_MODE_NEON
56b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
5712fcd923SArd Biesheuvel	select CRYPTO_AES_ARM64_NEON_BLK
58f68df543SArd Biesheuvel	select CRYPTO_LIB_AES
59cf514b2aSRobert Elliott	help
60cf514b2aSRobert Elliott	  Length-preserving ciphers: AES cipher algorithms (FIPS-197)
61cf514b2aSRobert Elliott	  with block cipher modes:
62cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
63cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
64cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
65cf514b2aSRobert Elliott	  - XCTR mode for HCTR2
66cf514b2aSRobert Elliott	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
67cf514b2aSRobert Elliott	    and IEEE 1619)
68cf514b2aSRobert Elliott
69cf514b2aSRobert Elliott	  Architecture: arm64 using:
70cf514b2aSRobert Elliott	  - bit-sliced algorithm
71cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
721abee99eSArd Biesheuvel
739e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE
74cf514b2aSRobert Elliott	tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
759e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
769e5647ebSRobert Elliott	select CRYPTO_ALGAPI
779e5647ebSRobert Elliott	select CRYPTO_SM4
78cf514b2aSRobert Elliott	help
79cf514b2aSRobert Elliott	  Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
80cf514b2aSRobert Elliott
81cf514b2aSRobert Elliott	  Architecture: arm64 using:
82cf514b2aSRobert Elliott	  - ARMv8.2 Crypto Extensions
83cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
849e5647ebSRobert Elliott
859e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE_BLK
8629fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
879e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
889e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
899e5647ebSRobert Elliott	select CRYPTO_SM4
90cf514b2aSRobert Elliott	help
91cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
92cf514b2aSRobert Elliott	  with block cipher modes:
93cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
94cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
95cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
9601f63311STianjia Zhang	  - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
9701f63311STianjia Zhang	    and IEEE 1619)
98cf514b2aSRobert Elliott
99cf514b2aSRobert Elliott	  Architecture: arm64 using:
100cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
101cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1029e5647ebSRobert Elliott
1039e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_NEON_BLK
10429fa12e9SHerbert Xu	tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
1059e5647ebSRobert Elliott	depends on KERNEL_MODE_NEON
1069e5647ebSRobert Elliott	select CRYPTO_SKCIPHER
1079e5647ebSRobert Elliott	select CRYPTO_SM4
108cf514b2aSRobert Elliott	help
109cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
110cf514b2aSRobert Elliott	  with block cipher modes:
111cf514b2aSRobert Elliott	  - ECB (Electronic Codebook) mode (NIST SP800-38A)
112cf514b2aSRobert Elliott	  - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
113cf514b2aSRobert Elliott	  - CTR (Counter) mode (NIST SP800-38A)
114cf514b2aSRobert Elliott
115cf514b2aSRobert Elliott	  Architecture: arm64 using:
116cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1179e5647ebSRobert Elliott
1189e5647ebSRobert Elliottconfig CRYPTO_AES_ARM64_CE_CCM
119cf514b2aSRobert Elliott	tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
120e2df5fb7SEric Biggers	depends on KERNEL_MODE_NEON
1219e5647ebSRobert Elliott	select CRYPTO_ALGAPI
122948ffc66SArd Biesheuvel	select CRYPTO_AES_ARM64_CE_BLK
1239e5647ebSRobert Elliott	select CRYPTO_AEAD
12458286738SEric Biggers	select CRYPTO_LIB_AES_CBC_MACS
125cf514b2aSRobert Elliott	help
126cf514b2aSRobert Elliott	  AEAD cipher: AES cipher algorithms (FIPS-197) with
127cf514b2aSRobert Elliott	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
128cf514b2aSRobert Elliott	  authenticated encryption mode (NIST SP800-38C)
129cf514b2aSRobert Elliott
130cf514b2aSRobert Elliott	  Architecture: arm64 using:
131cf514b2aSRobert Elliott	  - ARMv8 Crypto Extensions
132cf514b2aSRobert Elliott	  - NEON (Advanced SIMD) extensions
1339e5647ebSRobert Elliott
13467fa3a7fSTianjia Zhangconfig CRYPTO_SM4_ARM64_CE_CCM
13567fa3a7fSTianjia Zhang	tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
13667fa3a7fSTianjia Zhang	depends on KERNEL_MODE_NEON
13767fa3a7fSTianjia Zhang	select CRYPTO_ALGAPI
13867fa3a7fSTianjia Zhang	select CRYPTO_AEAD
13967fa3a7fSTianjia Zhang	select CRYPTO_SM4
14067fa3a7fSTianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
14167fa3a7fSTianjia Zhang	help
14267fa3a7fSTianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
14367fa3a7fSTianjia Zhang	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
14467fa3a7fSTianjia Zhang	  authenticated encryption mode (NIST SP800-38C)
14567fa3a7fSTianjia Zhang
14667fa3a7fSTianjia Zhang	  Architecture: arm64 using:
14767fa3a7fSTianjia Zhang	  - ARMv8 Crypto Extensions
14867fa3a7fSTianjia Zhang	  - NEON (Advanced SIMD) extensions
14967fa3a7fSTianjia Zhang
150ae1b83c7STianjia Zhangconfig CRYPTO_SM4_ARM64_CE_GCM
151ae1b83c7STianjia Zhang	tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
152ae1b83c7STianjia Zhang	depends on KERNEL_MODE_NEON
153ae1b83c7STianjia Zhang	select CRYPTO_ALGAPI
154ae1b83c7STianjia Zhang	select CRYPTO_AEAD
155ae1b83c7STianjia Zhang	select CRYPTO_SM4
156ae1b83c7STianjia Zhang	select CRYPTO_SM4_ARM64_CE_BLK
157ae1b83c7STianjia Zhang	help
158ae1b83c7STianjia Zhang	  AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
159ae1b83c7STianjia Zhang	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
160ae1b83c7STianjia Zhang
161ae1b83c7STianjia Zhang	  Architecture: arm64 using:
162ae1b83c7STianjia Zhang	  - ARMv8 Crypto Extensions
163ae1b83c7STianjia Zhang	  - PMULL (Polynomial Multiply Long) instructions
164ae1b83c7STianjia Zhang	  - NEON (Advanced SIMD) extensions
165ae1b83c7STianjia Zhang
1664a329fecSRobert Elliottendmenu
1679e5647ebSRobert Elliott
168