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_GF128MUL 10 select CRYPTO_LIB_AES 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_ARM64_CE 100 tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" 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 - ARMv8.2 Crypto Extensions 109 110config CRYPTO_POLYVAL_ARM64_CE 111 tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" 112 depends on KERNEL_MODE_NEON 113 select CRYPTO_POLYVAL 114 help 115 POLYVAL hash function for HCTR2 116 117 Architecture: arm64 using: 118 - ARMv8 Crypto Extensions 119 120config CRYPTO_AES_ARM64 121 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" 122 select CRYPTO_AES 123 help 124 Block ciphers: AES cipher algorithms (FIPS-197) 125 Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, 126 XCTR, and XTS modes 127 AEAD cipher: AES with CBC, ESSIV, and SHA-256 128 for fscrypt and dm-crypt 129 130 Architecture: arm64 131 132config CRYPTO_AES_ARM64_CE 133 tristate "Ciphers: AES (ARMv8 Crypto Extensions)" 134 depends on ARM64 && KERNEL_MODE_NEON 135 select CRYPTO_ALGAPI 136 select CRYPTO_LIB_AES 137 help 138 Block ciphers: AES cipher algorithms (FIPS-197) 139 140 Architecture: arm64 using: 141 - ARMv8 Crypto Extensions 142 143config CRYPTO_AES_ARM64_CE_BLK 144 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 145 depends on KERNEL_MODE_NEON 146 select CRYPTO_SKCIPHER 147 select CRYPTO_AES_ARM64_CE 148 help 149 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 150 with block cipher modes: 151 - ECB (Electronic Codebook) mode (NIST SP800-38A) 152 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 153 - CTR (Counter) mode (NIST SP800-38A) 154 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 155 and IEEE 1619) 156 157 Architecture: arm64 using: 158 - ARMv8 Crypto Extensions 159 160config CRYPTO_AES_ARM64_NEON_BLK 161 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 162 depends on KERNEL_MODE_NEON 163 select CRYPTO_SKCIPHER 164 select CRYPTO_LIB_AES 165 help 166 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 167 with block cipher modes: 168 - ECB (Electronic Codebook) mode (NIST SP800-38A) 169 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 170 - CTR (Counter) mode (NIST SP800-38A) 171 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 172 and IEEE 1619) 173 174 Architecture: arm64 using: 175 - NEON (Advanced SIMD) extensions 176 177config CRYPTO_CHACHA20_NEON 178 tristate "Ciphers: ChaCha (NEON)" 179 depends on KERNEL_MODE_NEON 180 select CRYPTO_SKCIPHER 181 select CRYPTO_LIB_CHACHA_GENERIC 182 select CRYPTO_ARCH_HAVE_LIB_CHACHA 183 help 184 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12 185 stream cipher algorithms 186 187 Architecture: arm64 using: 188 - NEON (Advanced SIMD) extensions 189 190config CRYPTO_AES_ARM64_BS 191 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" 192 depends on KERNEL_MODE_NEON 193 select CRYPTO_SKCIPHER 194 select CRYPTO_AES_ARM64_NEON_BLK 195 select CRYPTO_LIB_AES 196 help 197 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 198 with block cipher modes: 199 - ECB (Electronic Codebook) mode (NIST SP800-38A) 200 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 201 - CTR (Counter) mode (NIST SP800-38A) 202 - XCTR mode for HCTR2 203 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 204 and IEEE 1619) 205 206 Architecture: arm64 using: 207 - bit-sliced algorithm 208 - NEON (Advanced SIMD) extensions 209 210config CRYPTO_SM4_ARM64_CE 211 tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" 212 depends on KERNEL_MODE_NEON 213 select CRYPTO_ALGAPI 214 select CRYPTO_SM4 215 help 216 Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 217 218 Architecture: arm64 using: 219 - ARMv8.2 Crypto Extensions 220 - NEON (Advanced SIMD) extensions 221 222config CRYPTO_SM4_ARM64_CE_BLK 223 tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (ARMv8 Crypto Extensions)" 224 depends on KERNEL_MODE_NEON 225 select CRYPTO_SKCIPHER 226 select CRYPTO_SM4 227 help 228 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 229 with block cipher modes: 230 - ECB (Electronic Codebook) mode (NIST SP800-38A) 231 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 232 - CFB (Cipher Feedback) mode (NIST SP800-38A) 233 - CTR (Counter) mode (NIST SP800-38A) 234 235 Architecture: arm64 using: 236 - ARMv8 Crypto Extensions 237 - NEON (Advanced SIMD) extensions 238 239config CRYPTO_SM4_ARM64_NEON_BLK 240 tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (NEON)" 241 depends on KERNEL_MODE_NEON 242 select CRYPTO_SKCIPHER 243 select CRYPTO_SM4 244 help 245 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 246 with block cipher modes: 247 - ECB (Electronic Codebook) mode (NIST SP800-38A) 248 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 249 - CFB (Cipher Feedback) mode (NIST SP800-38A) 250 - CTR (Counter) mode (NIST SP800-38A) 251 252 Architecture: arm64 using: 253 - NEON (Advanced SIMD) extensions 254 255config CRYPTO_AES_ARM64_CE_CCM 256 tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" 257 depends on ARM64 && KERNEL_MODE_NEON 258 select CRYPTO_ALGAPI 259 select CRYPTO_AES_ARM64_CE 260 select CRYPTO_AEAD 261 select CRYPTO_LIB_AES 262 help 263 AEAD cipher: AES cipher algorithms (FIPS-197) with 264 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 265 authenticated encryption mode (NIST SP800-38C) 266 267 Architecture: arm64 using: 268 - ARMv8 Crypto Extensions 269 - NEON (Advanced SIMD) extensions 270 271config CRYPTO_CRCT10DIF_ARM64_CE 272 tristate "CRCT10DIF (PMULL)" 273 depends on KERNEL_MODE_NEON && CRC_T10DIF 274 select CRYPTO_HASH 275 help 276 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF) 277 278 Architecture: arm64 using 279 - PMULL (Polynomial Multiply Long) instructions 280 281endmenu 282 283