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_NHPOLY1305_NEON 19 tristate "Hash functions: NHPoly1305 (NEON)" 20 depends on KERNEL_MODE_NEON 21 select CRYPTO_NHPOLY1305 22 help 23 NHPoly1305 hash function (Adiantum) 24 25 Architecture: arm64 using: 26 - NEON (Advanced SIMD) extensions 27 28config CRYPTO_POLY1305_NEON 29 tristate "Hash functions: Poly1305 (NEON)" 30 depends on KERNEL_MODE_NEON 31 select CRYPTO_HASH 32 select CRYPTO_ARCH_HAVE_LIB_POLY1305 33 help 34 Poly1305 authenticator algorithm (RFC7539) 35 36 Architecture: arm64 using: 37 - NEON (Advanced SIMD) extensions 38 39config CRYPTO_SHA1_ARM64_CE 40 tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)" 41 depends on KERNEL_MODE_NEON 42 select CRYPTO_HASH 43 select CRYPTO_SHA1 44 help 45 SHA-1 secure hash algorithm (FIPS 180) 46 47 Architecture: arm64 using: 48 - ARMv8 Crypto Extensions 49 50config CRYPTO_SHA256_ARM64 51 tristate "Hash functions: SHA-224 and SHA-256" 52 select CRYPTO_HASH 53 help 54 SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 55 56 Architecture: arm64 57 58config CRYPTO_SHA2_ARM64_CE 59 tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)" 60 depends on KERNEL_MODE_NEON 61 select CRYPTO_HASH 62 select CRYPTO_SHA256_ARM64 63 help 64 SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 65 66 Architecture: arm64 using: 67 - ARMv8 Crypto Extensions 68 69config CRYPTO_SHA512_ARM64 70 tristate "Hash functions: SHA-384 and SHA-512" 71 select CRYPTO_HASH 72 help 73 SHA-384 and SHA-512 secure hash algorithms (FIPS 180) 74 75 Architecture: arm64 76 77config CRYPTO_SHA512_ARM64_CE 78 tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)" 79 depends on KERNEL_MODE_NEON 80 select CRYPTO_HASH 81 select CRYPTO_SHA512_ARM64 82 help 83 SHA-384 and SHA-512 secure hash algorithms (FIPS 180) 84 85 Architecture: arm64 using: 86 - ARMv8 Crypto Extensions 87 88config CRYPTO_SHA3_ARM64 89 tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)" 90 depends on KERNEL_MODE_NEON 91 select CRYPTO_HASH 92 select CRYPTO_SHA3 93 help 94 SHA-3 secure hash algorithms (FIPS 202) 95 96 Architecture: arm64 using: 97 - ARMv8.2 Crypto Extensions 98 99config CRYPTO_SM3_NEON 100 tristate "Hash functions: SM3 (NEON)" 101 depends on KERNEL_MODE_NEON 102 select CRYPTO_HASH 103 select CRYPTO_SM3 104 help 105 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 106 107 Architecture: arm64 using: 108 - NEON (Advanced SIMD) extensions 109 110config CRYPTO_SM3_ARM64_CE 111 tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" 112 depends on KERNEL_MODE_NEON 113 select CRYPTO_HASH 114 select CRYPTO_SM3 115 help 116 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 117 118 Architecture: arm64 using: 119 - ARMv8.2 Crypto Extensions 120 121config CRYPTO_POLYVAL_ARM64_CE 122 tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" 123 depends on KERNEL_MODE_NEON 124 select CRYPTO_POLYVAL 125 help 126 POLYVAL hash function for HCTR2 127 128 Architecture: arm64 using: 129 - ARMv8 Crypto Extensions 130 131config CRYPTO_AES_ARM64 132 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" 133 select CRYPTO_AES 134 help 135 Block ciphers: AES cipher algorithms (FIPS-197) 136 Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, 137 XCTR, and XTS modes 138 AEAD cipher: AES with CBC, ESSIV, and SHA-256 139 for fscrypt and dm-crypt 140 141 Architecture: arm64 142 143config CRYPTO_AES_ARM64_CE 144 tristate "Ciphers: AES (ARMv8 Crypto Extensions)" 145 depends on ARM64 && KERNEL_MODE_NEON 146 select CRYPTO_ALGAPI 147 select CRYPTO_LIB_AES 148 help 149 Block ciphers: AES cipher algorithms (FIPS-197) 150 151 Architecture: arm64 using: 152 - ARMv8 Crypto Extensions 153 154config CRYPTO_AES_ARM64_CE_BLK 155 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 156 depends on KERNEL_MODE_NEON 157 select CRYPTO_SKCIPHER 158 select CRYPTO_AES_ARM64_CE 159 help 160 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 161 with block cipher modes: 162 - ECB (Electronic Codebook) mode (NIST SP800-38A) 163 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 164 - CTR (Counter) mode (NIST SP800-38A) 165 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 166 and IEEE 1619) 167 168 Architecture: arm64 using: 169 - ARMv8 Crypto Extensions 170 171config CRYPTO_AES_ARM64_NEON_BLK 172 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 173 depends on KERNEL_MODE_NEON 174 select CRYPTO_SKCIPHER 175 select CRYPTO_LIB_AES 176 help 177 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 178 with block cipher modes: 179 - ECB (Electronic Codebook) mode (NIST SP800-38A) 180 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 181 - CTR (Counter) mode (NIST SP800-38A) 182 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 183 and IEEE 1619) 184 185 Architecture: arm64 using: 186 - NEON (Advanced SIMD) extensions 187 188config CRYPTO_CHACHA20_NEON 189 tristate "Ciphers: ChaCha (NEON)" 190 depends on KERNEL_MODE_NEON 191 select CRYPTO_SKCIPHER 192 select CRYPTO_LIB_CHACHA_GENERIC 193 select CRYPTO_ARCH_HAVE_LIB_CHACHA 194 help 195 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12 196 stream cipher algorithms 197 198 Architecture: arm64 using: 199 - NEON (Advanced SIMD) extensions 200 201config CRYPTO_AES_ARM64_BS 202 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" 203 depends on KERNEL_MODE_NEON 204 select CRYPTO_SKCIPHER 205 select CRYPTO_AES_ARM64_NEON_BLK 206 select CRYPTO_LIB_AES 207 help 208 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 209 with block cipher modes: 210 - ECB (Electronic Codebook) mode (NIST SP800-38A) 211 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 212 - CTR (Counter) mode (NIST SP800-38A) 213 - XCTR mode for HCTR2 214 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 215 and IEEE 1619) 216 217 Architecture: arm64 using: 218 - bit-sliced algorithm 219 - NEON (Advanced SIMD) extensions 220 221config CRYPTO_SM4_ARM64_CE 222 tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" 223 depends on KERNEL_MODE_NEON 224 select CRYPTO_ALGAPI 225 select CRYPTO_SM4 226 help 227 Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 228 229 Architecture: arm64 using: 230 - ARMv8.2 Crypto Extensions 231 - NEON (Advanced SIMD) extensions 232 233config CRYPTO_SM4_ARM64_CE_BLK 234 tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 235 depends on KERNEL_MODE_NEON 236 select CRYPTO_SKCIPHER 237 select CRYPTO_SM4 238 help 239 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 240 with block cipher modes: 241 - ECB (Electronic Codebook) mode (NIST SP800-38A) 242 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 243 - CTR (Counter) mode (NIST SP800-38A) 244 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 245 and IEEE 1619) 246 247 Architecture: arm64 using: 248 - ARMv8 Crypto Extensions 249 - NEON (Advanced SIMD) extensions 250 251config CRYPTO_SM4_ARM64_NEON_BLK 252 tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)" 253 depends on KERNEL_MODE_NEON 254 select CRYPTO_SKCIPHER 255 select CRYPTO_SM4 256 help 257 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 258 with block cipher modes: 259 - ECB (Electronic Codebook) mode (NIST SP800-38A) 260 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 261 - CTR (Counter) mode (NIST SP800-38A) 262 263 Architecture: arm64 using: 264 - NEON (Advanced SIMD) extensions 265 266config CRYPTO_AES_ARM64_CE_CCM 267 tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" 268 depends on ARM64 && KERNEL_MODE_NEON 269 select CRYPTO_ALGAPI 270 select CRYPTO_AES_ARM64_CE 271 select CRYPTO_AES_ARM64_CE_BLK 272 select CRYPTO_AEAD 273 select CRYPTO_LIB_AES 274 help 275 AEAD cipher: AES cipher algorithms (FIPS-197) with 276 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 277 authenticated encryption mode (NIST SP800-38C) 278 279 Architecture: arm64 using: 280 - ARMv8 Crypto Extensions 281 - NEON (Advanced SIMD) extensions 282 283config CRYPTO_SM4_ARM64_CE_CCM 284 tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)" 285 depends on KERNEL_MODE_NEON 286 select CRYPTO_ALGAPI 287 select CRYPTO_AEAD 288 select CRYPTO_SM4 289 select CRYPTO_SM4_ARM64_CE_BLK 290 help 291 AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 292 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 293 authenticated encryption mode (NIST SP800-38C) 294 295 Architecture: arm64 using: 296 - ARMv8 Crypto Extensions 297 - NEON (Advanced SIMD) extensions 298 299config CRYPTO_SM4_ARM64_CE_GCM 300 tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)" 301 depends on KERNEL_MODE_NEON 302 select CRYPTO_ALGAPI 303 select CRYPTO_AEAD 304 select CRYPTO_SM4 305 select CRYPTO_SM4_ARM64_CE_BLK 306 help 307 AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 308 GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D) 309 310 Architecture: arm64 using: 311 - ARMv8 Crypto Extensions 312 - PMULL (Polynomial Multiply Long) instructions 313 - NEON (Advanced SIMD) extensions 314 315config CRYPTO_CRCT10DIF_ARM64_CE 316 tristate "CRCT10DIF (PMULL)" 317 depends on KERNEL_MODE_NEON && CRC_T10DIF 318 select CRYPTO_HASH 319 help 320 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF) 321 322 Architecture: arm64 using 323 - PMULL (Polynomial Multiply Long) instructions 324 325endmenu 326 327