128a936efSRobert Elliott# SPDX-License-Identifier: GPL-2.0 228a936efSRobert Elliott 328a936efSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (x86)" 428a936efSRobert Elliott 528a936efSRobert Elliottconfig CRYPTO_CURVE25519_X86 605b37465SRobert Elliott tristate "Public key crypto: Curve25519 (ADX)" 728a936efSRobert Elliott depends on X86 && 64BIT 828a936efSRobert Elliott select CRYPTO_LIB_CURVE25519_GENERIC 928a936efSRobert Elliott select CRYPTO_ARCH_HAVE_LIB_CURVE25519 1005b37465SRobert Elliott help 1105b37465SRobert Elliott Curve25519 algorithm 1205b37465SRobert Elliott 1305b37465SRobert Elliott Architecture: x86_64 using: 1405b37465SRobert Elliott - ADX (large integer arithmetic) 1528a936efSRobert Elliott 1628a936efSRobert Elliottconfig CRYPTO_AES_NI_INTEL 1728a936efSRobert Elliott tristate "AES cipher algorithms (AES-NI)" 1828a936efSRobert Elliott depends on X86 1928a936efSRobert Elliott select CRYPTO_AEAD 2028a936efSRobert Elliott select CRYPTO_LIB_AES 2128a936efSRobert Elliott select CRYPTO_ALGAPI 2228a936efSRobert Elliott select CRYPTO_SKCIPHER 2328a936efSRobert Elliott select CRYPTO_SIMD 2428a936efSRobert Elliott help 2528a936efSRobert Elliott Use Intel AES-NI instructions for AES algorithm. 2628a936efSRobert Elliott 2728a936efSRobert Elliott AES cipher algorithms (FIPS-197). AES uses the Rijndael 2828a936efSRobert Elliott algorithm. 2928a936efSRobert Elliott 3028a936efSRobert Elliott Rijndael appears to be consistently a very good performer in 3128a936efSRobert Elliott both hardware and software across a wide range of computing 3228a936efSRobert Elliott environments regardless of its use in feedback or non-feedback 3328a936efSRobert Elliott modes. Its key setup time is excellent, and its key agility is 3428a936efSRobert Elliott good. Rijndael's very low memory requirements make it very well 3528a936efSRobert Elliott suited for restricted-space environments, in which it also 3628a936efSRobert Elliott demonstrates excellent performance. Rijndael's operations are 3728a936efSRobert Elliott among the easiest to defend against power and timing attacks. 3828a936efSRobert Elliott 3928a936efSRobert Elliott The AES specifies three key sizes: 128, 192 and 256 bits 4028a936efSRobert Elliott 4128a936efSRobert Elliott See <http://csrc.nist.gov/encryption/aes/> for more information. 4228a936efSRobert Elliott 4328a936efSRobert Elliott In addition to AES cipher algorithm support, the acceleration 4428a936efSRobert Elliott for some popular block cipher mode is supported too, including 4528a936efSRobert Elliott ECB, CBC, LRW, XTS. The 64 bit version has additional 4628a936efSRobert Elliott acceleration for CTR and XCTR. 4728a936efSRobert Elliott 4828a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64 4928a936efSRobert Elliott tristate "Blowfish cipher algorithm (x86_64)" 5028a936efSRobert Elliott depends on X86 && 64BIT 5128a936efSRobert Elliott select CRYPTO_SKCIPHER 5228a936efSRobert Elliott select CRYPTO_BLOWFISH_COMMON 5328a936efSRobert Elliott imply CRYPTO_CTR 5428a936efSRobert Elliott help 5528a936efSRobert Elliott Blowfish cipher algorithm (x86_64), by Bruce Schneier. 5628a936efSRobert Elliott 5728a936efSRobert Elliott This is a variable key length cipher which can use keys from 32 5828a936efSRobert Elliott bits to 448 bits in length. It's fast, simple and specifically 5928a936efSRobert Elliott designed for use on "large microprocessors". 6028a936efSRobert Elliott 6128a936efSRobert Elliott See also: 6228a936efSRobert Elliott <https://www.schneier.com/blowfish.html> 6328a936efSRobert Elliott 6428a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64 6528a936efSRobert Elliott tristate "Camellia cipher algorithm (x86_64)" 6628a936efSRobert Elliott depends on X86 && 64BIT 6728a936efSRobert Elliott select CRYPTO_SKCIPHER 6828a936efSRobert Elliott imply CRYPTO_CTR 6928a936efSRobert Elliott help 7028a936efSRobert Elliott Camellia cipher algorithm module (x86_64). 7128a936efSRobert Elliott 7228a936efSRobert Elliott Camellia is a symmetric key block cipher developed jointly 7328a936efSRobert Elliott at NTT and Mitsubishi Electric Corporation. 7428a936efSRobert Elliott 7528a936efSRobert Elliott The Camellia specifies three key sizes: 128, 192 and 256 bits. 7628a936efSRobert Elliott 7728a936efSRobert Elliott See also: 7828a936efSRobert Elliott <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 7928a936efSRobert Elliott 8028a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64 8128a936efSRobert Elliott tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" 8228a936efSRobert Elliott depends on X86 && 64BIT 8328a936efSRobert Elliott select CRYPTO_SKCIPHER 8428a936efSRobert Elliott select CRYPTO_CAMELLIA_X86_64 8528a936efSRobert Elliott select CRYPTO_SIMD 8628a936efSRobert Elliott imply CRYPTO_XTS 8728a936efSRobert Elliott help 8828a936efSRobert Elliott Camellia cipher algorithm module (x86_64/AES-NI/AVX). 8928a936efSRobert Elliott 9028a936efSRobert Elliott Camellia is a symmetric key block cipher developed jointly 9128a936efSRobert Elliott at NTT and Mitsubishi Electric Corporation. 9228a936efSRobert Elliott 9328a936efSRobert Elliott The Camellia specifies three key sizes: 128, 192 and 256 bits. 9428a936efSRobert Elliott 9528a936efSRobert Elliott See also: 9628a936efSRobert Elliott <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 9728a936efSRobert Elliott 9828a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 9928a936efSRobert Elliott tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" 10028a936efSRobert Elliott depends on X86 && 64BIT 10128a936efSRobert Elliott select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 10228a936efSRobert Elliott help 10328a936efSRobert Elliott Camellia cipher algorithm module (x86_64/AES-NI/AVX2). 10428a936efSRobert Elliott 10528a936efSRobert Elliott Camellia is a symmetric key block cipher developed jointly 10628a936efSRobert Elliott at NTT and Mitsubishi Electric Corporation. 10728a936efSRobert Elliott 10828a936efSRobert Elliott The Camellia specifies three key sizes: 128, 192 and 256 bits. 10928a936efSRobert Elliott 11028a936efSRobert Elliott See also: 11128a936efSRobert Elliott <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 11228a936efSRobert Elliott 11328a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64 11428a936efSRobert Elliott tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)" 11528a936efSRobert Elliott depends on X86 && 64BIT 11628a936efSRobert Elliott select CRYPTO_SKCIPHER 11728a936efSRobert Elliott select CRYPTO_CAST5 11828a936efSRobert Elliott select CRYPTO_CAST_COMMON 11928a936efSRobert Elliott select CRYPTO_SIMD 12028a936efSRobert Elliott imply CRYPTO_CTR 12128a936efSRobert Elliott help 12228a936efSRobert Elliott The CAST5 encryption algorithm (synonymous with CAST-128) is 12328a936efSRobert Elliott described in RFC2144. 12428a936efSRobert Elliott 12528a936efSRobert Elliott This module provides the Cast5 cipher algorithm that processes 12628a936efSRobert Elliott sixteen blocks parallel using the AVX instruction set. 12728a936efSRobert Elliott 12828a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64 12928a936efSRobert Elliott tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)" 13028a936efSRobert Elliott depends on X86 && 64BIT 13128a936efSRobert Elliott select CRYPTO_SKCIPHER 13228a936efSRobert Elliott select CRYPTO_CAST6 13328a936efSRobert Elliott select CRYPTO_CAST_COMMON 13428a936efSRobert Elliott select CRYPTO_SIMD 13528a936efSRobert Elliott imply CRYPTO_XTS 13628a936efSRobert Elliott imply CRYPTO_CTR 13728a936efSRobert Elliott help 13828a936efSRobert Elliott The CAST6 encryption algorithm (synonymous with CAST-256) is 13928a936efSRobert Elliott described in RFC2612. 14028a936efSRobert Elliott 14128a936efSRobert Elliott This module provides the Cast6 cipher algorithm that processes 14228a936efSRobert Elliott eight blocks parallel using the AVX instruction set. 14328a936efSRobert Elliott 14428a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64 14528a936efSRobert Elliott tristate "Triple DES EDE cipher algorithm (x86-64)" 14628a936efSRobert Elliott depends on X86 && 64BIT 14728a936efSRobert Elliott select CRYPTO_SKCIPHER 14828a936efSRobert Elliott select CRYPTO_LIB_DES 14928a936efSRobert Elliott imply CRYPTO_CTR 15028a936efSRobert Elliott help 15128a936efSRobert Elliott Triple DES EDE (FIPS 46-3) algorithm. 15228a936efSRobert Elliott 15328a936efSRobert Elliott This module provides implementation of the Triple DES EDE cipher 15428a936efSRobert Elliott algorithm that is optimized for x86-64 processors. Two versions of 15528a936efSRobert Elliott algorithm are provided; regular processing one input block and 15628a936efSRobert Elliott one that processes three blocks parallel. 15728a936efSRobert Elliott 15828a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64 15928a936efSRobert Elliott tristate "Serpent cipher algorithm (x86_64/SSE2)" 16028a936efSRobert Elliott depends on X86 && 64BIT 16128a936efSRobert Elliott select CRYPTO_SKCIPHER 16228a936efSRobert Elliott select CRYPTO_SERPENT 16328a936efSRobert Elliott select CRYPTO_SIMD 16428a936efSRobert Elliott imply CRYPTO_CTR 16528a936efSRobert Elliott help 16628a936efSRobert Elliott Serpent cipher algorithm, by Anderson, Biham & Knudsen. 16728a936efSRobert Elliott 16828a936efSRobert Elliott Keys are allowed to be from 0 to 256 bits in length, in steps 16928a936efSRobert Elliott of 8 bits. 17028a936efSRobert Elliott 17128a936efSRobert Elliott This module provides Serpent cipher algorithm that processes eight 17228a936efSRobert Elliott blocks parallel using SSE2 instruction set. 17328a936efSRobert Elliott 17428a936efSRobert Elliott See also: 17528a936efSRobert Elliott <https://www.cl.cam.ac.uk/~rja14/serpent.html> 17628a936efSRobert Elliott 17728a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586 17828a936efSRobert Elliott tristate "Serpent cipher algorithm (i586/SSE2)" 17928a936efSRobert Elliott depends on X86 && !64BIT 18028a936efSRobert Elliott select CRYPTO_SKCIPHER 18128a936efSRobert Elliott select CRYPTO_SERPENT 18228a936efSRobert Elliott select CRYPTO_SIMD 18328a936efSRobert Elliott imply CRYPTO_CTR 18428a936efSRobert Elliott help 18528a936efSRobert Elliott Serpent cipher algorithm, by Anderson, Biham & Knudsen. 18628a936efSRobert Elliott 18728a936efSRobert Elliott Keys are allowed to be from 0 to 256 bits in length, in steps 18828a936efSRobert Elliott of 8 bits. 18928a936efSRobert Elliott 19028a936efSRobert Elliott This module provides Serpent cipher algorithm that processes four 19128a936efSRobert Elliott blocks parallel using SSE2 instruction set. 19228a936efSRobert Elliott 19328a936efSRobert Elliott See also: 19428a936efSRobert Elliott <https://www.cl.cam.ac.uk/~rja14/serpent.html> 19528a936efSRobert Elliott 19628a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX_X86_64 19728a936efSRobert Elliott tristate "Serpent cipher algorithm (x86_64/AVX)" 19828a936efSRobert Elliott depends on X86 && 64BIT 19928a936efSRobert Elliott select CRYPTO_SKCIPHER 20028a936efSRobert Elliott select CRYPTO_SERPENT 20128a936efSRobert Elliott select CRYPTO_SIMD 20228a936efSRobert Elliott imply CRYPTO_XTS 20328a936efSRobert Elliott imply CRYPTO_CTR 20428a936efSRobert Elliott help 20528a936efSRobert Elliott Serpent cipher algorithm, by Anderson, Biham & Knudsen. 20628a936efSRobert Elliott 20728a936efSRobert Elliott Keys are allowed to be from 0 to 256 bits in length, in steps 20828a936efSRobert Elliott of 8 bits. 20928a936efSRobert Elliott 21028a936efSRobert Elliott This module provides the Serpent cipher algorithm that processes 21128a936efSRobert Elliott eight blocks parallel using the AVX instruction set. 21228a936efSRobert Elliott 21328a936efSRobert Elliott See also: 21428a936efSRobert Elliott <https://www.cl.cam.ac.uk/~rja14/serpent.html> 21528a936efSRobert Elliott 21628a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64 21728a936efSRobert Elliott tristate "Serpent cipher algorithm (x86_64/AVX2)" 21828a936efSRobert Elliott depends on X86 && 64BIT 21928a936efSRobert Elliott select CRYPTO_SERPENT_AVX_X86_64 22028a936efSRobert Elliott help 22128a936efSRobert Elliott Serpent cipher algorithm, by Anderson, Biham & Knudsen. 22228a936efSRobert Elliott 22328a936efSRobert Elliott Keys are allowed to be from 0 to 256 bits in length, in steps 22428a936efSRobert Elliott of 8 bits. 22528a936efSRobert Elliott 22628a936efSRobert Elliott This module provides Serpent cipher algorithm that processes 16 22728a936efSRobert Elliott blocks parallel using AVX2 instruction set. 22828a936efSRobert Elliott 22928a936efSRobert Elliott See also: 23028a936efSRobert Elliott <https://www.cl.cam.ac.uk/~rja14/serpent.html> 23128a936efSRobert Elliott 23228a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64 23328a936efSRobert Elliott tristate "SM4 cipher algorithm (x86_64/AES-NI/AVX)" 23428a936efSRobert Elliott depends on X86 && 64BIT 23528a936efSRobert Elliott select CRYPTO_SKCIPHER 23628a936efSRobert Elliott select CRYPTO_SIMD 23728a936efSRobert Elliott select CRYPTO_ALGAPI 23828a936efSRobert Elliott select CRYPTO_SM4 23928a936efSRobert Elliott help 24028a936efSRobert Elliott SM4 cipher algorithms (OSCCA GB/T 32907-2016) (x86_64/AES-NI/AVX). 24128a936efSRobert Elliott 24228a936efSRobert Elliott SM4 (GBT.32907-2016) is a cryptographic standard issued by the 24328a936efSRobert Elliott Organization of State Commercial Administration of China (OSCCA) 24428a936efSRobert Elliott as an authorized cryptographic algorithms for the use within China. 24528a936efSRobert Elliott 24628a936efSRobert Elliott This is SM4 optimized implementation using AES-NI/AVX/x86_64 24728a936efSRobert Elliott instruction set for block cipher. Through two affine transforms, 24828a936efSRobert Elliott we can use the AES S-Box to simulate the SM4 S-Box to achieve the 24928a936efSRobert Elliott effect of instruction acceleration. 25028a936efSRobert Elliott 25128a936efSRobert Elliott If unsure, say N. 25228a936efSRobert Elliott 25328a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64 25428a936efSRobert Elliott tristate "SM4 cipher algorithm (x86_64/AES-NI/AVX2)" 25528a936efSRobert Elliott depends on X86 && 64BIT 25628a936efSRobert Elliott select CRYPTO_SKCIPHER 25728a936efSRobert Elliott select CRYPTO_SIMD 25828a936efSRobert Elliott select CRYPTO_ALGAPI 25928a936efSRobert Elliott select CRYPTO_SM4 26028a936efSRobert Elliott select CRYPTO_SM4_AESNI_AVX_X86_64 26128a936efSRobert Elliott help 26228a936efSRobert Elliott SM4 cipher algorithms (OSCCA GB/T 32907-2016) (x86_64/AES-NI/AVX2). 26328a936efSRobert Elliott 26428a936efSRobert Elliott SM4 (GBT.32907-2016) is a cryptographic standard issued by the 26528a936efSRobert Elliott Organization of State Commercial Administration of China (OSCCA) 26628a936efSRobert Elliott as an authorized cryptographic algorithms for the use within China. 26728a936efSRobert Elliott 26828a936efSRobert Elliott This is SM4 optimized implementation using AES-NI/AVX2/x86_64 26928a936efSRobert Elliott instruction set for block cipher. Through two affine transforms, 27028a936efSRobert Elliott we can use the AES S-Box to simulate the SM4 S-Box to achieve the 27128a936efSRobert Elliott effect of instruction acceleration. 27228a936efSRobert Elliott 27328a936efSRobert Elliott If unsure, say N. 27428a936efSRobert Elliott 27528a936efSRobert Elliottconfig CRYPTO_TWOFISH_586 27628a936efSRobert Elliott tristate "Twofish cipher algorithms (i586)" 27728a936efSRobert Elliott depends on (X86 || UML_X86) && !64BIT 27828a936efSRobert Elliott select CRYPTO_ALGAPI 27928a936efSRobert Elliott select CRYPTO_TWOFISH_COMMON 28028a936efSRobert Elliott imply CRYPTO_CTR 28128a936efSRobert Elliott help 28228a936efSRobert Elliott Twofish cipher algorithm. 28328a936efSRobert Elliott 28428a936efSRobert Elliott Twofish was submitted as an AES (Advanced Encryption Standard) 28528a936efSRobert Elliott candidate cipher by researchers at CounterPane Systems. It is a 28628a936efSRobert Elliott 16 round block cipher supporting key sizes of 128, 192, and 256 28728a936efSRobert Elliott bits. 28828a936efSRobert Elliott 28928a936efSRobert Elliott See also: 29028a936efSRobert Elliott <https://www.schneier.com/twofish.html> 29128a936efSRobert Elliott 29228a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64 29328a936efSRobert Elliott tristate "Twofish cipher algorithm (x86_64)" 29428a936efSRobert Elliott depends on (X86 || UML_X86) && 64BIT 29528a936efSRobert Elliott select CRYPTO_ALGAPI 29628a936efSRobert Elliott select CRYPTO_TWOFISH_COMMON 29728a936efSRobert Elliott imply CRYPTO_CTR 29828a936efSRobert Elliott help 29928a936efSRobert Elliott Twofish cipher algorithm (x86_64). 30028a936efSRobert Elliott 30128a936efSRobert Elliott Twofish was submitted as an AES (Advanced Encryption Standard) 30228a936efSRobert Elliott candidate cipher by researchers at CounterPane Systems. It is a 30328a936efSRobert Elliott 16 round block cipher supporting key sizes of 128, 192, and 256 30428a936efSRobert Elliott bits. 30528a936efSRobert Elliott 30628a936efSRobert Elliott See also: 30728a936efSRobert Elliott <https://www.schneier.com/twofish.html> 30828a936efSRobert Elliott 30928a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY 31028a936efSRobert Elliott tristate "Twofish cipher algorithm (x86_64, 3-way parallel)" 31128a936efSRobert Elliott depends on X86 && 64BIT 31228a936efSRobert Elliott select CRYPTO_SKCIPHER 31328a936efSRobert Elliott select CRYPTO_TWOFISH_COMMON 31428a936efSRobert Elliott select CRYPTO_TWOFISH_X86_64 31528a936efSRobert Elliott help 31628a936efSRobert Elliott Twofish cipher algorithm (x86_64, 3-way parallel). 31728a936efSRobert Elliott 31828a936efSRobert Elliott Twofish was submitted as an AES (Advanced Encryption Standard) 31928a936efSRobert Elliott candidate cipher by researchers at CounterPane Systems. It is a 32028a936efSRobert Elliott 16 round block cipher supporting key sizes of 128, 192, and 256 32128a936efSRobert Elliott bits. 32228a936efSRobert Elliott 32328a936efSRobert Elliott This module provides Twofish cipher algorithm that processes three 32428a936efSRobert Elliott blocks parallel, utilizing resources of out-of-order CPUs better. 32528a936efSRobert Elliott 32628a936efSRobert Elliott See also: 32728a936efSRobert Elliott <https://www.schneier.com/twofish.html> 32828a936efSRobert Elliott 32928a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64 33028a936efSRobert Elliott tristate "Twofish cipher algorithm (x86_64/AVX)" 33128a936efSRobert Elliott depends on X86 && 64BIT 33228a936efSRobert Elliott select CRYPTO_SKCIPHER 33328a936efSRobert Elliott select CRYPTO_SIMD 33428a936efSRobert Elliott select CRYPTO_TWOFISH_COMMON 33528a936efSRobert Elliott select CRYPTO_TWOFISH_X86_64 33628a936efSRobert Elliott select CRYPTO_TWOFISH_X86_64_3WAY 33728a936efSRobert Elliott imply CRYPTO_XTS 33828a936efSRobert Elliott help 33928a936efSRobert Elliott Twofish cipher algorithm (x86_64/AVX). 34028a936efSRobert Elliott 34128a936efSRobert Elliott Twofish was submitted as an AES (Advanced Encryption Standard) 34228a936efSRobert Elliott candidate cipher by researchers at CounterPane Systems. It is a 34328a936efSRobert Elliott 16 round block cipher supporting key sizes of 128, 192, and 256 34428a936efSRobert Elliott bits. 34528a936efSRobert Elliott 34628a936efSRobert Elliott This module provides the Twofish cipher algorithm that processes 34728a936efSRobert Elliott eight blocks parallel using the AVX Instruction Set. 34828a936efSRobert Elliott 34928a936efSRobert Elliott See also: 35028a936efSRobert Elliott <https://www.schneier.com/twofish.html> 35128a936efSRobert Elliott 35228a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64 35328a936efSRobert Elliott tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)" 35428a936efSRobert Elliott depends on X86 && 64BIT 35528a936efSRobert Elliott select CRYPTO_SKCIPHER 35628a936efSRobert Elliott select CRYPTO_LIB_CHACHA_GENERIC 35728a936efSRobert Elliott select CRYPTO_ARCH_HAVE_LIB_CHACHA 35828a936efSRobert Elliott help 35928a936efSRobert Elliott SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20, 36028a936efSRobert Elliott XChaCha20, and XChaCha12 stream ciphers. 36128a936efSRobert Elliott 36228a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2 363e3d2eaddSRobert Elliott tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)" 36428a936efSRobert Elliott depends on X86 && 64BIT 36528a936efSRobert Elliott select CRYPTO_AEAD 36628a936efSRobert Elliott select CRYPTO_SIMD 36728a936efSRobert Elliott help 368e3d2eaddSRobert Elliott AEGIS-128 AEAD algorithm 369e3d2eaddSRobert Elliott 370e3d2eaddSRobert Elliott Architecture: x86_64 using: 371e3d2eaddSRobert Elliott - AES-NI (AES New Instructions) 372e3d2eaddSRobert Elliott - SSE2 (Streaming SIMD Extensions 2) 37328a936efSRobert Elliott 37428a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2 375*3f342a23SRobert Elliott tristate "Hash functions: NHPoly1305 (SSE2)" 37628a936efSRobert Elliott depends on X86 && 64BIT 37728a936efSRobert Elliott select CRYPTO_NHPOLY1305 37828a936efSRobert Elliott help 379*3f342a23SRobert Elliott NHPoly1305 hash function for Adiantum 380*3f342a23SRobert Elliott 381*3f342a23SRobert Elliott Architecture: x86_64 using: 382*3f342a23SRobert Elliott - SSE2 (Streaming SIMD Extensions 2) 38328a936efSRobert Elliott 38428a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2 385*3f342a23SRobert Elliott tristate "Hash functions: NHPoly1305 (AVX2)" 38628a936efSRobert Elliott depends on X86 && 64BIT 38728a936efSRobert Elliott select CRYPTO_NHPOLY1305 38828a936efSRobert Elliott help 389*3f342a23SRobert Elliott NHPoly1305 hash function for Adiantum 390*3f342a23SRobert Elliott 391*3f342a23SRobert Elliott Architecture: x86_64 using: 392*3f342a23SRobert Elliott - AVX2 (Advanced Vector Extensions 2) 39328a936efSRobert Elliott 39428a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86 395*3f342a23SRobert Elliott bool "Hash functions: BLAKE2s (SSSE3/AVX-512)" 39628a936efSRobert Elliott depends on X86 && 64BIT 39728a936efSRobert Elliott select CRYPTO_LIB_BLAKE2S_GENERIC 39828a936efSRobert Elliott select CRYPTO_ARCH_HAVE_LIB_BLAKE2S 399*3f342a23SRobert Elliott help 400*3f342a23SRobert Elliott BLAKE2s cryptographic hash function (RFC 7693) 401*3f342a23SRobert Elliott 402*3f342a23SRobert Elliott Architecture: x86_64 using: 403*3f342a23SRobert Elliott - SSSE3 (Supplemental SSE3) 404*3f342a23SRobert Elliott - AVX-512 (Advanced Vector Extensions-512) 40528a936efSRobert Elliott 40628a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI 407*3f342a23SRobert Elliott tristate "Hash functions: POLYVAL (CLMUL-NI)" 40828a936efSRobert Elliott depends on X86 && 64BIT 40928a936efSRobert Elliott select CRYPTO_POLYVAL 41028a936efSRobert Elliott help 411*3f342a23SRobert Elliott POLYVAL hash function for HCTR2 412*3f342a23SRobert Elliott 413*3f342a23SRobert Elliott Architecture: x86_64 using: 414*3f342a23SRobert Elliott - CLMUL-NI (carry-less multiplication new instructions) 41528a936efSRobert Elliott 41628a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64 417*3f342a23SRobert Elliott tristate "Hash functions: Poly1305 (SSE2/AVX2)" 41828a936efSRobert Elliott depends on X86 && 64BIT 41928a936efSRobert Elliott select CRYPTO_LIB_POLY1305_GENERIC 42028a936efSRobert Elliott select CRYPTO_ARCH_HAVE_LIB_POLY1305 42128a936efSRobert Elliott help 422*3f342a23SRobert Elliott Poly1305 authenticator algorithm (RFC7539) 42328a936efSRobert Elliott 424*3f342a23SRobert Elliott Architecture: x86_64 using: 425*3f342a23SRobert Elliott - SSE2 (Streaming SIMD Extensions 2) 426*3f342a23SRobert Elliott - AVX2 (Advanced Vector Extensions 2) 42728a936efSRobert Elliott 42828a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3 429*3f342a23SRobert Elliott tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)" 43028a936efSRobert Elliott depends on X86 && 64BIT 43128a936efSRobert Elliott select CRYPTO_SHA1 43228a936efSRobert Elliott select CRYPTO_HASH 43328a936efSRobert Elliott help 434*3f342a23SRobert Elliott SHA-1 secure hash algorithm (FIPS 180) 435*3f342a23SRobert Elliott 436*3f342a23SRobert Elliott Architecture: x86_64 using: 437*3f342a23SRobert Elliott - SSSE3 (Supplemental SSE3) 438*3f342a23SRobert Elliott - AVX (Advanced Vector Extensions) 439*3f342a23SRobert Elliott - AVX2 (Advanced Vector Extensions 2) 440*3f342a23SRobert Elliott - SHA-NI (SHA Extensions New Instructions) 44128a936efSRobert Elliott 44228a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3 443*3f342a23SRobert Elliott tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)" 44428a936efSRobert Elliott depends on X86 && 64BIT 44528a936efSRobert Elliott select CRYPTO_SHA256 44628a936efSRobert Elliott select CRYPTO_HASH 44728a936efSRobert Elliott help 448*3f342a23SRobert Elliott SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 449*3f342a23SRobert Elliott 450*3f342a23SRobert Elliott Architecture: x86_64 using: 451*3f342a23SRobert Elliott - SSSE3 (Supplemental SSE3) 452*3f342a23SRobert Elliott - AVX (Advanced Vector Extensions) 453*3f342a23SRobert Elliott - AVX2 (Advanced Vector Extensions 2) 454*3f342a23SRobert Elliott - SHA-NI (SHA Extensions New Instructions) 45528a936efSRobert Elliott 45628a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3 457*3f342a23SRobert Elliott tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)" 45828a936efSRobert Elliott depends on X86 && 64BIT 45928a936efSRobert Elliott select CRYPTO_SHA512 46028a936efSRobert Elliott select CRYPTO_HASH 46128a936efSRobert Elliott help 462*3f342a23SRobert Elliott SHA-384 and SHA-512 secure hash algorithms (FIPS 180) 463*3f342a23SRobert Elliott 464*3f342a23SRobert Elliott Architecture: x86_64 using: 465*3f342a23SRobert Elliott - SSSE3 (Supplemental SSE3) 466*3f342a23SRobert Elliott - AVX (Advanced Vector Extensions) 467*3f342a23SRobert Elliott - AVX2 (Advanced Vector Extensions 2) 46828a936efSRobert Elliott 46928a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64 470*3f342a23SRobert Elliott tristate "Hash functions: SM3 (AVX)" 47128a936efSRobert Elliott depends on X86 && 64BIT 47228a936efSRobert Elliott select CRYPTO_HASH 47328a936efSRobert Elliott select CRYPTO_SM3 47428a936efSRobert Elliott help 475*3f342a23SRobert Elliott SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3 476*3f342a23SRobert Elliott 477*3f342a23SRobert Elliott Architecture: x86_64 using: 478*3f342a23SRobert Elliott - AVX (Advanced Vector Extensions) 47928a936efSRobert Elliott 48028a936efSRobert Elliott If unsure, say N. 48128a936efSRobert Elliott 48228a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL 483*3f342a23SRobert Elliott tristate "Hash functions: GHASH (CLMUL-NI)" 48428a936efSRobert Elliott depends on X86 && 64BIT 48528a936efSRobert Elliott select CRYPTO_CRYPTD 48628a936efSRobert Elliott help 487*3f342a23SRobert Elliott GCM GHASH hash function (NIST SP800-38D) 488*3f342a23SRobert Elliott 489*3f342a23SRobert Elliott Architecture: x86_64 using: 490*3f342a23SRobert Elliott - CLMUL-NI (carry-less multiplication new instructions) 49128a936efSRobert Elliott 49228a936efSRobert Elliottconfig CRYPTO_CRC32C_INTEL 493ec84348dSRobert Elliott tristate "CRC32c (SSE4.2/PCLMULQDQ)" 49428a936efSRobert Elliott depends on X86 49528a936efSRobert Elliott select CRYPTO_HASH 49628a936efSRobert Elliott help 497ec84348dSRobert Elliott CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720) 498ec84348dSRobert Elliott 499ec84348dSRobert Elliott Architecture: x86 (32-bit and 64-bit) using: 500ec84348dSRobert Elliott - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction 501ec84348dSRobert Elliott - PCLMULQDQ (carry-less multiplication) 50228a936efSRobert Elliott 50328a936efSRobert Elliottconfig CRYPTO_CRC32_PCLMUL 504ec84348dSRobert Elliott tristate "CRC32 (PCLMULQDQ)" 50528a936efSRobert Elliott depends on X86 50628a936efSRobert Elliott select CRYPTO_HASH 50728a936efSRobert Elliott select CRC32 50828a936efSRobert Elliott help 509ec84348dSRobert Elliott CRC32 CRC algorithm (IEEE 802.3) 510ec84348dSRobert Elliott 511ec84348dSRobert Elliott Architecture: x86 (32-bit and 64-bit) using: 512ec84348dSRobert Elliott - PCLMULQDQ (carry-less multiplication) 51328a936efSRobert Elliott 51428a936efSRobert Elliottconfig CRYPTO_CRCT10DIF_PCLMUL 515ec84348dSRobert Elliott tristate "CRCT10DIF (PCLMULQDQ)" 51628a936efSRobert Elliott depends on X86 && 64BIT && CRC_T10DIF 51728a936efSRobert Elliott select CRYPTO_HASH 51828a936efSRobert Elliott help 519ec84348dSRobert Elliott CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF) 520ec84348dSRobert Elliott 521ec84348dSRobert Elliott Architecture: x86_64 using: 522ec84348dSRobert Elliott - PCLMULQDQ (carry-less multiplication) 52328a936efSRobert Elliott 52428a936efSRobert Elliottendmenu 525