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_SM3_NEON 29 tristate "Hash functions: SM3 (NEON)" 30 depends on KERNEL_MODE_NEON 31 select CRYPTO_HASH 32 select CRYPTO_LIB_SM3 33 help 34 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 35 36 Architecture: arm64 using: 37 - NEON (Advanced SIMD) extensions 38 39config CRYPTO_SM3_ARM64_CE 40 tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" 41 depends on KERNEL_MODE_NEON 42 select CRYPTO_HASH 43 select CRYPTO_LIB_SM3 44 help 45 SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 46 47 Architecture: arm64 using: 48 - ARMv8.2 Crypto Extensions 49 50config CRYPTO_POLYVAL_ARM64_CE 51 tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" 52 depends on KERNEL_MODE_NEON 53 select CRYPTO_POLYVAL 54 help 55 POLYVAL hash function for HCTR2 56 57 Architecture: arm64 using: 58 - ARMv8 Crypto Extensions 59 60config CRYPTO_AES_ARM64 61 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" 62 select CRYPTO_AES 63 select CRYPTO_LIB_SHA256 64 help 65 Block ciphers: AES cipher algorithms (FIPS-197) 66 Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, 67 XCTR, and XTS modes 68 AEAD cipher: AES with CBC, ESSIV, and SHA-256 69 for fscrypt and dm-crypt 70 71 Architecture: arm64 72 73config CRYPTO_AES_ARM64_CE 74 tristate "Ciphers: AES (ARMv8 Crypto Extensions)" 75 depends on KERNEL_MODE_NEON 76 select CRYPTO_ALGAPI 77 select CRYPTO_LIB_AES 78 help 79 Block ciphers: AES cipher algorithms (FIPS-197) 80 81 Architecture: arm64 using: 82 - ARMv8 Crypto Extensions 83 84config CRYPTO_AES_ARM64_CE_BLK 85 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 86 depends on KERNEL_MODE_NEON 87 select CRYPTO_SKCIPHER 88 select CRYPTO_AES_ARM64_CE 89 help 90 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 91 with block cipher modes: 92 - ECB (Electronic Codebook) mode (NIST SP800-38A) 93 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 94 - CTR (Counter) mode (NIST SP800-38A) 95 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 96 and IEEE 1619) 97 98 Architecture: arm64 using: 99 - ARMv8 Crypto Extensions 100 101config CRYPTO_AES_ARM64_NEON_BLK 102 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 103 depends on KERNEL_MODE_NEON 104 select CRYPTO_SKCIPHER 105 select CRYPTO_LIB_AES 106 help 107 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 108 with block cipher modes: 109 - ECB (Electronic Codebook) mode (NIST SP800-38A) 110 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 111 - CTR (Counter) mode (NIST SP800-38A) 112 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 113 and IEEE 1619) 114 115 Architecture: arm64 using: 116 - NEON (Advanced SIMD) extensions 117 118config CRYPTO_AES_ARM64_BS 119 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" 120 depends on KERNEL_MODE_NEON 121 select CRYPTO_SKCIPHER 122 select CRYPTO_AES_ARM64_NEON_BLK 123 select CRYPTO_LIB_AES 124 help 125 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 126 with block cipher modes: 127 - ECB (Electronic Codebook) mode (NIST SP800-38A) 128 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 129 - CTR (Counter) mode (NIST SP800-38A) 130 - XCTR mode for HCTR2 131 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 132 and IEEE 1619) 133 134 Architecture: arm64 using: 135 - bit-sliced algorithm 136 - NEON (Advanced SIMD) extensions 137 138config CRYPTO_SM4_ARM64_CE 139 tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" 140 depends on KERNEL_MODE_NEON 141 select CRYPTO_ALGAPI 142 select CRYPTO_SM4 143 help 144 Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 145 146 Architecture: arm64 using: 147 - ARMv8.2 Crypto Extensions 148 - NEON (Advanced SIMD) extensions 149 150config CRYPTO_SM4_ARM64_CE_BLK 151 tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 152 depends on KERNEL_MODE_NEON 153 select CRYPTO_SKCIPHER 154 select CRYPTO_SM4 155 help 156 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 157 with block cipher modes: 158 - ECB (Electronic Codebook) mode (NIST SP800-38A) 159 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 160 - CTR (Counter) mode (NIST SP800-38A) 161 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 162 and IEEE 1619) 163 164 Architecture: arm64 using: 165 - ARMv8 Crypto Extensions 166 - NEON (Advanced SIMD) extensions 167 168config CRYPTO_SM4_ARM64_NEON_BLK 169 tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)" 170 depends on KERNEL_MODE_NEON 171 select CRYPTO_SKCIPHER 172 select CRYPTO_SM4 173 help 174 Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 175 with block cipher modes: 176 - ECB (Electronic Codebook) mode (NIST SP800-38A) 177 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 178 - CTR (Counter) mode (NIST SP800-38A) 179 180 Architecture: arm64 using: 181 - NEON (Advanced SIMD) extensions 182 183config CRYPTO_AES_ARM64_CE_CCM 184 tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" 185 depends on KERNEL_MODE_NEON 186 select CRYPTO_ALGAPI 187 select CRYPTO_AES_ARM64_CE 188 select CRYPTO_AES_ARM64_CE_BLK 189 select CRYPTO_AEAD 190 select CRYPTO_LIB_AES 191 help 192 AEAD cipher: AES cipher algorithms (FIPS-197) with 193 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 194 authenticated encryption mode (NIST SP800-38C) 195 196 Architecture: arm64 using: 197 - ARMv8 Crypto Extensions 198 - NEON (Advanced SIMD) extensions 199 200config CRYPTO_SM4_ARM64_CE_CCM 201 tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)" 202 depends on KERNEL_MODE_NEON 203 select CRYPTO_ALGAPI 204 select CRYPTO_AEAD 205 select CRYPTO_SM4 206 select CRYPTO_SM4_ARM64_CE_BLK 207 help 208 AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 209 CCM (Counter with Cipher Block Chaining-Message Authentication Code) 210 authenticated encryption mode (NIST SP800-38C) 211 212 Architecture: arm64 using: 213 - ARMv8 Crypto Extensions 214 - NEON (Advanced SIMD) extensions 215 216config CRYPTO_SM4_ARM64_CE_GCM 217 tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)" 218 depends on KERNEL_MODE_NEON 219 select CRYPTO_ALGAPI 220 select CRYPTO_AEAD 221 select CRYPTO_SM4 222 select CRYPTO_SM4_ARM64_CE_BLK 223 help 224 AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 225 GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D) 226 227 Architecture: arm64 using: 228 - ARMv8 Crypto Extensions 229 - PMULL (Polynomial Multiply Long) instructions 230 - NEON (Advanced SIMD) extensions 231 232endmenu 233 234