1# SPDX-License-Identifier: GPL-2.0 2 3menu "Accelerated Cryptographic Algorithms for CPU (x86)" 4 5config CRYPTO_AES_NI_INTEL 6 tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)" 7 select CRYPTO_AEAD 8 select CRYPTO_LIB_AES 9 select CRYPTO_LIB_GF128MUL 10 select CRYPTO_SKCIPHER 11 help 12 AEAD cipher: AES with GCM 13 Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS 14 15 Architecture: x86 (32-bit and 64-bit) using: 16 - AES-NI (AES new instructions) 17 - VAES (Vector AES) 18 19 Some algorithm implementations are supported only in 64-bit builds, 20 and some have additional prerequisites such as AVX2 or AVX512. 21 22config CRYPTO_BLOWFISH_X86_64 23 tristate "Ciphers: Blowfish, modes: ECB, CBC" 24 depends on 64BIT 25 select CRYPTO_SKCIPHER 26 select CRYPTO_BLOWFISH_COMMON 27 imply CRYPTO_CTR 28 help 29 Block cipher: Blowfish cipher algorithm 30 Length-preserving ciphers: Blowfish with ECB and CBC modes 31 32 Architecture: x86_64 33 34config CRYPTO_CAMELLIA_X86_64 35 tristate "Ciphers: Camellia with modes: ECB, CBC" 36 depends on 64BIT 37 select CRYPTO_SKCIPHER 38 imply CRYPTO_CTR 39 help 40 Block cipher: Camellia cipher algorithms 41 Length-preserving ciphers: Camellia with ECB and CBC modes 42 43 Architecture: x86_64 44 45config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 46 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)" 47 depends on 64BIT 48 select CRYPTO_SKCIPHER 49 select CRYPTO_CAMELLIA_X86_64 50 imply CRYPTO_XTS 51 help 52 Length-preserving ciphers: Camellia with ECB and CBC modes 53 54 Architecture: x86_64 using: 55 - AES-NI (AES New Instructions) 56 - AVX (Advanced Vector Extensions) 57 58config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 59 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)" 60 depends on 64BIT 61 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 62 help 63 Length-preserving ciphers: Camellia with ECB and CBC modes 64 65 Architecture: x86_64 using: 66 - AES-NI (AES New Instructions) 67 - AVX2 (Advanced Vector Extensions 2) 68 69config CRYPTO_CAST5_AVX_X86_64 70 tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)" 71 depends on 64BIT 72 select CRYPTO_SKCIPHER 73 select CRYPTO_CAST5 74 select CRYPTO_CAST_COMMON 75 imply CRYPTO_CTR 76 help 77 Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm 78 (RFC2144) with ECB and CBC modes 79 80 Architecture: x86_64 using: 81 - AVX (Advanced Vector Extensions) 82 83 Processes 16 blocks in parallel. 84 85config CRYPTO_CAST6_AVX_X86_64 86 tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)" 87 depends on 64BIT 88 select CRYPTO_SKCIPHER 89 select CRYPTO_CAST6 90 select CRYPTO_CAST_COMMON 91 imply CRYPTO_XTS 92 imply CRYPTO_CTR 93 help 94 Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm 95 (RFC2612) with ECB and CBC modes 96 97 Architecture: x86_64 using: 98 - AVX (Advanced Vector Extensions) 99 100 Processes eight blocks in parallel. 101 102config CRYPTO_SERPENT_SSE2_X86_64 103 tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)" 104 depends on 64BIT 105 select CRYPTO_SKCIPHER 106 select CRYPTO_SERPENT 107 imply CRYPTO_CTR 108 help 109 Length-preserving ciphers: Serpent cipher algorithm 110 with ECB and CBC modes 111 112 Architecture: x86_64 using: 113 - SSE2 (Streaming SIMD Extensions 2) 114 115 Processes eight blocks in parallel. 116 117config CRYPTO_SERPENT_SSE2_586 118 tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)" 119 depends on !64BIT 120 select CRYPTO_SKCIPHER 121 select CRYPTO_SERPENT 122 imply CRYPTO_CTR 123 help 124 Length-preserving ciphers: Serpent cipher algorithm 125 with ECB and CBC modes 126 127 Architecture: x86 (32-bit) using: 128 - SSE2 (Streaming SIMD Extensions 2) 129 130 Processes four blocks in parallel. 131 132config CRYPTO_SERPENT_AVX_X86_64 133 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)" 134 depends on 64BIT 135 select CRYPTO_SKCIPHER 136 select CRYPTO_SERPENT 137 imply CRYPTO_XTS 138 imply CRYPTO_CTR 139 help 140 Length-preserving ciphers: Serpent cipher algorithm 141 with ECB and CBC modes 142 143 Architecture: x86_64 using: 144 - AVX (Advanced Vector Extensions) 145 146 Processes eight blocks in parallel. 147 148config CRYPTO_SERPENT_AVX2_X86_64 149 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)" 150 depends on 64BIT 151 select CRYPTO_SERPENT_AVX_X86_64 152 help 153 Length-preserving ciphers: Serpent cipher algorithm 154 with ECB and CBC modes 155 156 Architecture: x86_64 using: 157 - AVX2 (Advanced Vector Extensions 2) 158 159 Processes 16 blocks in parallel. 160 161config CRYPTO_SM4_AESNI_AVX_X86_64 162 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)" 163 depends on 64BIT 164 select CRYPTO_SKCIPHER 165 select CRYPTO_ALGAPI 166 select CRYPTO_SM4 167 help 168 Length-preserving ciphers: SM4 cipher algorithms 169 (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes 170 171 Architecture: x86_64 using: 172 - AES-NI (AES New Instructions) 173 - AVX (Advanced Vector Extensions) 174 175 Through two affine transforms, 176 we can use the AES S-Box to simulate the SM4 S-Box to achieve the 177 effect of instruction acceleration. 178 179 If unsure, say N. 180 181config CRYPTO_SM4_AESNI_AVX2_X86_64 182 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)" 183 depends on 64BIT 184 select CRYPTO_SKCIPHER 185 select CRYPTO_ALGAPI 186 select CRYPTO_SM4 187 select CRYPTO_SM4_AESNI_AVX_X86_64 188 help 189 Length-preserving ciphers: SM4 cipher algorithms 190 (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes 191 192 Architecture: x86_64 using: 193 - AES-NI (AES New Instructions) 194 - AVX2 (Advanced Vector Extensions 2) 195 196 Through two affine transforms, 197 we can use the AES S-Box to simulate the SM4 S-Box to achieve the 198 effect of instruction acceleration. 199 200 If unsure, say N. 201 202config CRYPTO_TWOFISH_586 203 tristate "Ciphers: Twofish (32-bit)" 204 depends on !64BIT 205 select CRYPTO_ALGAPI 206 select CRYPTO_TWOFISH_COMMON 207 imply CRYPTO_CTR 208 help 209 Block cipher: Twofish cipher algorithm 210 211 Architecture: x86 (32-bit) 212 213config CRYPTO_TWOFISH_X86_64 214 tristate "Ciphers: Twofish" 215 depends on 64BIT 216 select CRYPTO_ALGAPI 217 select CRYPTO_TWOFISH_COMMON 218 imply CRYPTO_CTR 219 help 220 Block cipher: Twofish cipher algorithm 221 222 Architecture: x86_64 223 224config CRYPTO_TWOFISH_X86_64_3WAY 225 tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)" 226 depends on 64BIT 227 select CRYPTO_SKCIPHER 228 select CRYPTO_TWOFISH_COMMON 229 select CRYPTO_TWOFISH_X86_64 230 help 231 Length-preserving cipher: Twofish cipher algorithm 232 with ECB and CBC modes 233 234 Architecture: x86_64 235 236 Processes three blocks in parallel, better utilizing resources of 237 out-of-order CPUs. 238 239config CRYPTO_TWOFISH_AVX_X86_64 240 tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)" 241 depends on 64BIT 242 select CRYPTO_SKCIPHER 243 select CRYPTO_TWOFISH_COMMON 244 select CRYPTO_TWOFISH_X86_64 245 select CRYPTO_TWOFISH_X86_64_3WAY 246 imply CRYPTO_XTS 247 help 248 Length-preserving cipher: Twofish cipher algorithm 249 with ECB and CBC modes 250 251 Architecture: x86_64 using: 252 - AVX (Advanced Vector Extensions) 253 254 Processes eight blocks in parallel. 255 256config CRYPTO_ARIA_AESNI_AVX_X86_64 257 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)" 258 depends on 64BIT 259 select CRYPTO_SKCIPHER 260 select CRYPTO_ALGAPI 261 select CRYPTO_ARIA 262 help 263 Length-preserving cipher: ARIA cipher algorithms 264 (RFC 5794) with ECB and CTR modes 265 266 Architecture: x86_64 using: 267 - AES-NI (AES New Instructions) 268 - AVX (Advanced Vector Extensions) 269 - GFNI (Galois Field New Instructions) 270 271 Processes 16 blocks in parallel. 272 273config CRYPTO_ARIA_AESNI_AVX2_X86_64 274 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)" 275 depends on 64BIT 276 select CRYPTO_SKCIPHER 277 select CRYPTO_ALGAPI 278 select CRYPTO_ARIA 279 select CRYPTO_ARIA_AESNI_AVX_X86_64 280 help 281 Length-preserving cipher: ARIA cipher algorithms 282 (RFC 5794) with ECB and CTR modes 283 284 Architecture: x86_64 using: 285 - AES-NI (AES New Instructions) 286 - AVX2 (Advanced Vector Extensions) 287 - GFNI (Galois Field New Instructions) 288 289 Processes 32 blocks in parallel. 290 291config CRYPTO_ARIA_GFNI_AVX512_X86_64 292 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)" 293 depends on 64BIT 294 select CRYPTO_SKCIPHER 295 select CRYPTO_ALGAPI 296 select CRYPTO_ARIA 297 select CRYPTO_ARIA_AESNI_AVX_X86_64 298 select CRYPTO_ARIA_AESNI_AVX2_X86_64 299 help 300 Length-preserving cipher: ARIA cipher algorithms 301 (RFC 5794) with ECB and CTR modes 302 303 Architecture: x86_64 using: 304 - AVX512 (Advanced Vector Extensions) 305 - GFNI (Galois Field New Instructions) 306 307 Processes 64 blocks in parallel. 308 309config CRYPTO_AEGIS128_AESNI_SSE2 310 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)" 311 depends on 64BIT 312 select CRYPTO_AEAD 313 help 314 AEGIS-128 AEAD algorithm 315 316 Architecture: x86_64 using: 317 - AES-NI (AES New Instructions) 318 - SSE4.1 (Streaming SIMD Extensions 4.1) 319 320endmenu 321