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