1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 22c98833aSArd Biesheuvel 34a329fecSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (arm64)" 42c98833aSArd Biesheuvel 59e5647ebSRobert Elliottconfig CRYPTO_GHASH_ARM64_CE 63f342a23SRobert Elliott tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)" 79e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 87918ecefSArd Biesheuvel select CRYPTO_HASH 99e5647ebSRobert Elliott select CRYPTO_LIB_AES 10*61c581a4SArd Biesheuvel select CRYPTO_LIB_GF128MUL 119e5647ebSRobert Elliott select CRYPTO_AEAD 123f342a23SRobert Elliott help 133f342a23SRobert Elliott GCM GHASH function (NIST SP800-38D) 143f342a23SRobert Elliott 153f342a23SRobert Elliott Architecture: arm64 using: 163f342a23SRobert Elliott - ARMv8 Crypto Extensions 177918ecefSArd Biesheuvel 189e5647ebSRobert Elliottconfig CRYPTO_NHPOLY1305_NEON 193f342a23SRobert Elliott tristate "Hash functions: NHPoly1305 (NEON)" 209e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 219e5647ebSRobert Elliott select CRYPTO_NHPOLY1305 223f342a23SRobert Elliott help 233f342a23SRobert Elliott NHPoly1305 hash function (Adiantum) 243f342a23SRobert Elliott 253f342a23SRobert Elliott Architecture: arm64 using: 263f342a23SRobert Elliott - NEON (Advanced SIMD) extensions 279e5647ebSRobert Elliott 289e5647ebSRobert Elliottconfig CRYPTO_POLY1305_NEON 293f342a23SRobert Elliott tristate "Hash functions: Poly1305 (NEON)" 309e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 317918ecefSArd Biesheuvel select CRYPTO_HASH 329e5647ebSRobert Elliott select CRYPTO_ARCH_HAVE_LIB_POLY1305 333f342a23SRobert Elliott help 343f342a23SRobert Elliott Poly1305 authenticator algorithm (RFC7539) 357918ecefSArd Biesheuvel 363f342a23SRobert Elliott Architecture: arm64 using: 373f342a23SRobert Elliott - NEON (Advanced SIMD) extensions 383f342a23SRobert Elliott 39611d451eSLukas Bulwahnconfig CRYPTO_SHA1_ARM64_CE 403f342a23SRobert Elliott tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)" 410771f323SArd Biesheuvel depends on KERNEL_MODE_NEON 422c98833aSArd Biesheuvel select CRYPTO_HASH 430771f323SArd Biesheuvel select CRYPTO_SHA1 443f342a23SRobert Elliott help 453f342a23SRobert Elliott SHA-1 secure hash algorithm (FIPS 180) 463f342a23SRobert Elliott 473f342a23SRobert Elliott Architecture: arm64 using: 483f342a23SRobert Elliott - ARMv8 Crypto Extensions 492c98833aSArd Biesheuvel 509e5647ebSRobert Elliottconfig CRYPTO_SHA256_ARM64 513f342a23SRobert Elliott tristate "Hash functions: SHA-224 and SHA-256" 529e5647ebSRobert Elliott select CRYPTO_HASH 533f342a23SRobert Elliott help 543f342a23SRobert Elliott SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 553f342a23SRobert Elliott 563f342a23SRobert Elliott Architecture: arm64 579e5647ebSRobert Elliott 586ba6c74dSArd Biesheuvelconfig CRYPTO_SHA2_ARM64_CE 593f342a23SRobert Elliott tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)" 60da179331SArd Biesheuvel depends on KERNEL_MODE_NEON 616ba6c74dSArd Biesheuvel select CRYPTO_HASH 62da179331SArd Biesheuvel select CRYPTO_SHA256_ARM64 633f342a23SRobert Elliott help 643f342a23SRobert Elliott SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 653f342a23SRobert Elliott 663f342a23SRobert Elliott Architecture: arm64 using: 673f342a23SRobert Elliott - ARMv8 Crypto Extensions 686ba6c74dSArd Biesheuvel 699e5647ebSRobert Elliottconfig CRYPTO_SHA512_ARM64 703f342a23SRobert Elliott tristate "Hash functions: SHA-384 and SHA-512" 719e5647ebSRobert Elliott select CRYPTO_HASH 723f342a23SRobert Elliott help 733f342a23SRobert Elliott SHA-384 and SHA-512 secure hash algorithms (FIPS 180) 743f342a23SRobert Elliott 753f342a23SRobert Elliott Architecture: arm64 769e5647ebSRobert Elliott 77bb6c8c46SArd Biesheuvelconfig CRYPTO_SHA512_ARM64_CE 783f342a23SRobert Elliott tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)" 79bb6c8c46SArd Biesheuvel depends on KERNEL_MODE_NEON 80bb6c8c46SArd Biesheuvel select CRYPTO_HASH 81bb6c8c46SArd Biesheuvel select CRYPTO_SHA512_ARM64 823f342a23SRobert Elliott help 833f342a23SRobert Elliott SHA-384 and SHA-512 secure hash algorithms (FIPS 180) 843f342a23SRobert Elliott 853f342a23SRobert Elliott Architecture: arm64 using: 863f342a23SRobert Elliott - ARMv8 Crypto Extensions 87bb6c8c46SArd Biesheuvel 8815d5910eSArd Biesheuvelconfig CRYPTO_SHA3_ARM64 893f342a23SRobert Elliott tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)" 9015d5910eSArd Biesheuvel depends on KERNEL_MODE_NEON 9115d5910eSArd Biesheuvel select CRYPTO_HASH 9215d5910eSArd Biesheuvel select CRYPTO_SHA3 933f342a23SRobert Elliott help 943f342a23SRobert Elliott SHA-3 secure hash algorithms (FIPS 202) 953f342a23SRobert Elliott 963f342a23SRobert Elliott Architecture: arm64 using: 973f342a23SRobert Elliott - ARMv8.2 Crypto Extensions 9815d5910eSArd Biesheuvel 99a41b2129STianjia Zhangconfig CRYPTO_SM3_NEON 100a41b2129STianjia Zhang tristate "Hash functions: SM3 (NEON)" 101a41b2129STianjia Zhang depends on KERNEL_MODE_NEON 102a41b2129STianjia Zhang select CRYPTO_HASH 103a41b2129STianjia Zhang select CRYPTO_SM3 104a41b2129STianjia Zhang help 105a41b2129STianjia Zhang SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 106a41b2129STianjia Zhang 107a41b2129STianjia Zhang Architecture: arm64 using: 108a41b2129STianjia Zhang - NEON (Advanced SIMD) extensions 109a41b2129STianjia Zhang 110140aa50dSArd Biesheuvelconfig CRYPTO_SM3_ARM64_CE 1113f342a23SRobert Elliott tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" 112140aa50dSArd Biesheuvel depends on KERNEL_MODE_NEON 113140aa50dSArd Biesheuvel select CRYPTO_HASH 114d2825fa9SJason A. Donenfeld select CRYPTO_SM3 1153f342a23SRobert Elliott help 1163f342a23SRobert Elliott SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 1173f342a23SRobert Elliott 1183f342a23SRobert Elliott Architecture: arm64 using: 1193f342a23SRobert Elliott - ARMv8.2 Crypto Extensions 120140aa50dSArd Biesheuvel 1219d2c0b48SNathan Huckleberryconfig CRYPTO_POLYVAL_ARM64_CE 1223f342a23SRobert Elliott tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" 1239d2c0b48SNathan Huckleberry depends on KERNEL_MODE_NEON 1249d2c0b48SNathan Huckleberry select CRYPTO_POLYVAL 1253f342a23SRobert Elliott help 1263f342a23SRobert Elliott POLYVAL hash function for HCTR2 1273f342a23SRobert Elliott 1283f342a23SRobert Elliott Architecture: arm64 using: 1293f342a23SRobert Elliott - ARMv8 Crypto Extensions 1309d2c0b48SNathan Huckleberry 131bed593c0SArd Biesheuvelconfig CRYPTO_AES_ARM64 132cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" 133bed593c0SArd Biesheuvel select CRYPTO_AES 134cf514b2aSRobert Elliott help 135cf514b2aSRobert Elliott Block ciphers: AES cipher algorithms (FIPS-197) 136cf514b2aSRobert Elliott Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, 137cf514b2aSRobert Elliott XCTR, and XTS modes 138cf514b2aSRobert Elliott AEAD cipher: AES with CBC, ESSIV, and SHA-256 139cf514b2aSRobert Elliott for fscrypt and dm-crypt 140cf514b2aSRobert Elliott 141cf514b2aSRobert Elliott Architecture: arm64 142bed593c0SArd Biesheuvel 143317f2f75SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE 144cf514b2aSRobert Elliott tristate "Ciphers: AES (ARMv8 Crypto Extensions)" 145317f2f75SArd Biesheuvel depends on ARM64 && KERNEL_MODE_NEON 146317f2f75SArd Biesheuvel select CRYPTO_ALGAPI 1474d3f9d89SArd Biesheuvel select CRYPTO_LIB_AES 148cf514b2aSRobert Elliott help 149cf514b2aSRobert Elliott Block ciphers: AES cipher algorithms (FIPS-197) 150cf514b2aSRobert Elliott 151cf514b2aSRobert Elliott Architecture: arm64 using: 152cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 153317f2f75SArd Biesheuvel 15449788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE_BLK 155cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 156e2115069SArd Biesheuvel depends on KERNEL_MODE_NEON 157b95bba5dSEric Biggers select CRYPTO_SKCIPHER 15812ac3efeSArd Biesheuvel select CRYPTO_AES_ARM64_CE 159cf514b2aSRobert Elliott help 160cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 161cf514b2aSRobert Elliott with block cipher modes: 162cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 163cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 164cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 165cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 166cf514b2aSRobert Elliott and IEEE 1619) 167cf514b2aSRobert Elliott 168cf514b2aSRobert Elliott Architecture: arm64 using: 169cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 17049788fe2SArd Biesheuvel 17149788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_NEON_BLK 172cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 173e2115069SArd Biesheuvel depends on KERNEL_MODE_NEON 174b95bba5dSEric Biggers select CRYPTO_SKCIPHER 175c1844729SArd Biesheuvel select CRYPTO_LIB_AES 176cf514b2aSRobert Elliott help 177cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 178cf514b2aSRobert Elliott with block cipher modes: 179cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 180cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 181cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 182cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 183cf514b2aSRobert Elliott and IEEE 1619) 184cf514b2aSRobert Elliott 185cf514b2aSRobert Elliott Architecture: arm64 using: 186cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 18749788fe2SArd Biesheuvel 188b7171ce9SArd Biesheuvelconfig CRYPTO_CHACHA20_NEON 189cf514b2aSRobert Elliott tristate "Ciphers: ChaCha (NEON)" 190b7171ce9SArd Biesheuvel depends on KERNEL_MODE_NEON 191b95bba5dSEric Biggers select CRYPTO_SKCIPHER 192c77da486SArd Biesheuvel select CRYPTO_LIB_CHACHA_GENERIC 193b3aad5baSArd Biesheuvel select CRYPTO_ARCH_HAVE_LIB_CHACHA 194cf514b2aSRobert Elliott help 195cf514b2aSRobert Elliott Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12 196cf514b2aSRobert Elliott stream cipher algorithms 197cf514b2aSRobert Elliott 198cf514b2aSRobert Elliott Architecture: arm64 using: 199cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 200b7171ce9SArd Biesheuvel 2011abee99eSArd Biesheuvelconfig CRYPTO_AES_ARM64_BS 202cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" 2031abee99eSArd Biesheuvel depends on KERNEL_MODE_NEON 204b95bba5dSEric Biggers select CRYPTO_SKCIPHER 20512fcd923SArd Biesheuvel select CRYPTO_AES_ARM64_NEON_BLK 206f68df543SArd Biesheuvel select CRYPTO_LIB_AES 207cf514b2aSRobert Elliott help 208cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 209cf514b2aSRobert Elliott with block cipher modes: 210cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 211cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 212cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 213cf514b2aSRobert Elliott - XCTR mode for HCTR2 214cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 215cf514b2aSRobert Elliott and IEEE 1619) 216cf514b2aSRobert Elliott 217cf514b2aSRobert Elliott Architecture: arm64 using: 218cf514b2aSRobert Elliott - bit-sliced algorithm 219cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2201abee99eSArd Biesheuvel 2219e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE 222cf514b2aSRobert Elliott tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" 2239e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 2249e5647ebSRobert Elliott select CRYPTO_ALGAPI 2259e5647ebSRobert Elliott select CRYPTO_SM4 226cf514b2aSRobert Elliott help 227cf514b2aSRobert Elliott Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 228cf514b2aSRobert Elliott 229cf514b2aSRobert Elliott Architecture: arm64 using: 230cf514b2aSRobert Elliott - ARMv8.2 Crypto Extensions 231cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2329e5647ebSRobert Elliott 2339e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE_BLK 23401f63311STianjia Zhang tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR/XTS (ARMv8 Crypto Extensions)" 2359e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 2369e5647ebSRobert Elliott select CRYPTO_SKCIPHER 2379e5647ebSRobert Elliott select CRYPTO_SM4 238cf514b2aSRobert Elliott help 239cf514b2aSRobert Elliott Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 240cf514b2aSRobert Elliott with block cipher modes: 241cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 242cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 243cf514b2aSRobert Elliott - CFB (Cipher Feedback) mode (NIST SP800-38A) 244cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 24501f63311STianjia Zhang - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 24601f63311STianjia Zhang and IEEE 1619) 247cf514b2aSRobert Elliott 248cf514b2aSRobert Elliott Architecture: arm64 using: 249cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 250cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2519e5647ebSRobert Elliott 2529e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_NEON_BLK 253cf514b2aSRobert Elliott tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (NEON)" 2549e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 2559e5647ebSRobert Elliott select CRYPTO_SKCIPHER 2569e5647ebSRobert Elliott select CRYPTO_SM4 257cf514b2aSRobert Elliott help 258cf514b2aSRobert Elliott Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 259cf514b2aSRobert Elliott with block cipher modes: 260cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 261cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 262cf514b2aSRobert Elliott - CFB (Cipher Feedback) mode (NIST SP800-38A) 263cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 264cf514b2aSRobert Elliott 265cf514b2aSRobert Elliott Architecture: arm64 using: 266cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2679e5647ebSRobert Elliott 2689e5647ebSRobert Elliottconfig CRYPTO_AES_ARM64_CE_CCM 269cf514b2aSRobert Elliott tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" 2709e5647ebSRobert Elliott depends on ARM64 && KERNEL_MODE_NEON 2719e5647ebSRobert Elliott select CRYPTO_ALGAPI 2729e5647ebSRobert Elliott select CRYPTO_AES_ARM64_CE 2739e5647ebSRobert Elliott select CRYPTO_AEAD 2749e5647ebSRobert Elliott select CRYPTO_LIB_AES 275cf514b2aSRobert Elliott help 276cf514b2aSRobert Elliott AEAD cipher: AES cipher algorithms (FIPS-197) with 277cf514b2aSRobert Elliott CCM (Counter with Cipher Block Chaining-Message Authentication Code) 278cf514b2aSRobert Elliott authenticated encryption mode (NIST SP800-38C) 279cf514b2aSRobert Elliott 280cf514b2aSRobert Elliott Architecture: arm64 using: 281cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 282cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2839e5647ebSRobert Elliott 28467fa3a7fSTianjia Zhangconfig CRYPTO_SM4_ARM64_CE_CCM 28567fa3a7fSTianjia Zhang tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)" 28667fa3a7fSTianjia Zhang depends on KERNEL_MODE_NEON 28767fa3a7fSTianjia Zhang select CRYPTO_ALGAPI 28867fa3a7fSTianjia Zhang select CRYPTO_AEAD 28967fa3a7fSTianjia Zhang select CRYPTO_SM4 29067fa3a7fSTianjia Zhang select CRYPTO_SM4_ARM64_CE_BLK 29167fa3a7fSTianjia Zhang help 29267fa3a7fSTianjia Zhang AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 29367fa3a7fSTianjia Zhang CCM (Counter with Cipher Block Chaining-Message Authentication Code) 29467fa3a7fSTianjia Zhang authenticated encryption mode (NIST SP800-38C) 29567fa3a7fSTianjia Zhang 29667fa3a7fSTianjia Zhang Architecture: arm64 using: 29767fa3a7fSTianjia Zhang - ARMv8 Crypto Extensions 29867fa3a7fSTianjia Zhang - NEON (Advanced SIMD) extensions 29967fa3a7fSTianjia Zhang 300ae1b83c7STianjia Zhangconfig CRYPTO_SM4_ARM64_CE_GCM 301ae1b83c7STianjia Zhang tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)" 302ae1b83c7STianjia Zhang depends on KERNEL_MODE_NEON 303ae1b83c7STianjia Zhang select CRYPTO_ALGAPI 304ae1b83c7STianjia Zhang select CRYPTO_AEAD 305ae1b83c7STianjia Zhang select CRYPTO_SM4 306ae1b83c7STianjia Zhang select CRYPTO_SM4_ARM64_CE_BLK 307ae1b83c7STianjia Zhang help 308ae1b83c7STianjia Zhang AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 309ae1b83c7STianjia Zhang GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D) 310ae1b83c7STianjia Zhang 311ae1b83c7STianjia Zhang Architecture: arm64 using: 312ae1b83c7STianjia Zhang - ARMv8 Crypto Extensions 313ae1b83c7STianjia Zhang - PMULL (Polynomial Multiply Long) instructions 314ae1b83c7STianjia Zhang - NEON (Advanced SIMD) extensions 315ae1b83c7STianjia Zhang 3169e5647ebSRobert Elliottconfig CRYPTO_CRCT10DIF_ARM64_CE 317ec84348dSRobert Elliott tristate "CRCT10DIF (PMULL)" 3189e5647ebSRobert Elliott depends on KERNEL_MODE_NEON && CRC_T10DIF 3199e5647ebSRobert Elliott select CRYPTO_HASH 320ec84348dSRobert Elliott help 321ec84348dSRobert Elliott CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF) 322ec84348dSRobert Elliott 323ec84348dSRobert Elliott Architecture: arm64 using 324ec84348dSRobert Elliott - PMULL (Polynomial Multiply Long) instructions 3259e5647ebSRobert Elliott 3264a329fecSRobert Elliottendmenu 3279e5647ebSRobert Elliott 328