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 1061c581a4SArd 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 2815d5910eSArd Biesheuvelconfig CRYPTO_SHA3_ARM64 293f342a23SRobert Elliott tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)" 3015d5910eSArd Biesheuvel depends on KERNEL_MODE_NEON 3115d5910eSArd Biesheuvel select CRYPTO_HASH 3215d5910eSArd Biesheuvel select CRYPTO_SHA3 333f342a23SRobert Elliott help 343f342a23SRobert Elliott SHA-3 secure hash algorithms (FIPS 202) 353f342a23SRobert Elliott 363f342a23SRobert Elliott Architecture: arm64 using: 373f342a23SRobert Elliott - ARMv8.2 Crypto Extensions 3815d5910eSArd Biesheuvel 39a41b2129STianjia Zhangconfig CRYPTO_SM3_NEON 40a41b2129STianjia Zhang tristate "Hash functions: SM3 (NEON)" 41a41b2129STianjia Zhang depends on KERNEL_MODE_NEON 42a41b2129STianjia Zhang select CRYPTO_HASH 43f4065b2fSHerbert Xu select CRYPTO_LIB_SM3 44a41b2129STianjia Zhang help 45a41b2129STianjia Zhang SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 46a41b2129STianjia Zhang 47a41b2129STianjia Zhang Architecture: arm64 using: 48a41b2129STianjia Zhang - NEON (Advanced SIMD) extensions 49a41b2129STianjia Zhang 50140aa50dSArd Biesheuvelconfig CRYPTO_SM3_ARM64_CE 513f342a23SRobert Elliott tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" 52140aa50dSArd Biesheuvel depends on KERNEL_MODE_NEON 53140aa50dSArd Biesheuvel select CRYPTO_HASH 54f4065b2fSHerbert Xu select CRYPTO_LIB_SM3 553f342a23SRobert Elliott help 563f342a23SRobert Elliott SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) 573f342a23SRobert Elliott 583f342a23SRobert Elliott Architecture: arm64 using: 593f342a23SRobert Elliott - ARMv8.2 Crypto Extensions 60140aa50dSArd Biesheuvel 619d2c0b48SNathan Huckleberryconfig CRYPTO_POLYVAL_ARM64_CE 623f342a23SRobert Elliott tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" 639d2c0b48SNathan Huckleberry depends on KERNEL_MODE_NEON 649d2c0b48SNathan Huckleberry select CRYPTO_POLYVAL 653f342a23SRobert Elliott help 663f342a23SRobert Elliott POLYVAL hash function for HCTR2 673f342a23SRobert Elliott 683f342a23SRobert Elliott Architecture: arm64 using: 693f342a23SRobert Elliott - ARMv8 Crypto Extensions 709d2c0b48SNathan Huckleberry 71bed593c0SArd Biesheuvelconfig CRYPTO_AES_ARM64 72cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" 73bed593c0SArd Biesheuvel select CRYPTO_AES 74*01834444SEric Biggers select CRYPTO_LIB_SHA256 75cf514b2aSRobert Elliott help 76cf514b2aSRobert Elliott Block ciphers: AES cipher algorithms (FIPS-197) 77cf514b2aSRobert Elliott Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, 78cf514b2aSRobert Elliott XCTR, and XTS modes 79cf514b2aSRobert Elliott AEAD cipher: AES with CBC, ESSIV, and SHA-256 80cf514b2aSRobert Elliott for fscrypt and dm-crypt 81cf514b2aSRobert Elliott 82cf514b2aSRobert Elliott Architecture: arm64 83bed593c0SArd Biesheuvel 84317f2f75SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE 85cf514b2aSRobert Elliott tristate "Ciphers: AES (ARMv8 Crypto Extensions)" 86e2df5fb7SEric Biggers depends on KERNEL_MODE_NEON 87317f2f75SArd Biesheuvel select CRYPTO_ALGAPI 884d3f9d89SArd Biesheuvel select CRYPTO_LIB_AES 89cf514b2aSRobert Elliott help 90cf514b2aSRobert Elliott Block ciphers: AES cipher algorithms (FIPS-197) 91cf514b2aSRobert Elliott 92cf514b2aSRobert Elliott Architecture: arm64 using: 93cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 94317f2f75SArd Biesheuvel 9549788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_CE_BLK 96cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 97e2115069SArd Biesheuvel depends on KERNEL_MODE_NEON 98b95bba5dSEric Biggers select CRYPTO_SKCIPHER 9912ac3efeSArd Biesheuvel select CRYPTO_AES_ARM64_CE 100cf514b2aSRobert Elliott help 101cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 102cf514b2aSRobert Elliott with block cipher modes: 103cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 104cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 105cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 106cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 107cf514b2aSRobert Elliott and IEEE 1619) 108cf514b2aSRobert Elliott 109cf514b2aSRobert Elliott Architecture: arm64 using: 110cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 11149788fe2SArd Biesheuvel 11249788fe2SArd Biesheuvelconfig CRYPTO_AES_ARM64_NEON_BLK 113cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 114e2115069SArd Biesheuvel depends on KERNEL_MODE_NEON 115b95bba5dSEric Biggers select CRYPTO_SKCIPHER 116c1844729SArd Biesheuvel select CRYPTO_LIB_AES 117cf514b2aSRobert Elliott help 118cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 119cf514b2aSRobert Elliott with block cipher modes: 120cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 121cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 122cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 123cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 124cf514b2aSRobert Elliott and IEEE 1619) 125cf514b2aSRobert Elliott 126cf514b2aSRobert Elliott Architecture: arm64 using: 127cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 12849788fe2SArd Biesheuvel 1291abee99eSArd Biesheuvelconfig CRYPTO_AES_ARM64_BS 130cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" 1311abee99eSArd Biesheuvel depends on KERNEL_MODE_NEON 132b95bba5dSEric Biggers select CRYPTO_SKCIPHER 13312fcd923SArd Biesheuvel select CRYPTO_AES_ARM64_NEON_BLK 134f68df543SArd Biesheuvel select CRYPTO_LIB_AES 135cf514b2aSRobert Elliott help 136cf514b2aSRobert Elliott Length-preserving ciphers: AES cipher algorithms (FIPS-197) 137cf514b2aSRobert Elliott with block cipher modes: 138cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 139cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 140cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 141cf514b2aSRobert Elliott - XCTR mode for HCTR2 142cf514b2aSRobert Elliott - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 143cf514b2aSRobert Elliott and IEEE 1619) 144cf514b2aSRobert Elliott 145cf514b2aSRobert Elliott Architecture: arm64 using: 146cf514b2aSRobert Elliott - bit-sliced algorithm 147cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 1481abee99eSArd Biesheuvel 1499e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE 150cf514b2aSRobert Elliott tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" 1519e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 1529e5647ebSRobert Elliott select CRYPTO_ALGAPI 1539e5647ebSRobert Elliott select CRYPTO_SM4 154cf514b2aSRobert Elliott help 155cf514b2aSRobert Elliott Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 156cf514b2aSRobert Elliott 157cf514b2aSRobert Elliott Architecture: arm64 using: 158cf514b2aSRobert Elliott - ARMv8.2 Crypto Extensions 159cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 1609e5647ebSRobert Elliott 1619e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_CE_BLK 16229fa12e9SHerbert Xu tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" 1639e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 1649e5647ebSRobert Elliott select CRYPTO_SKCIPHER 1659e5647ebSRobert Elliott select CRYPTO_SM4 166cf514b2aSRobert Elliott help 167cf514b2aSRobert Elliott Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 168cf514b2aSRobert Elliott with block cipher modes: 169cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 170cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 171cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 17201f63311STianjia Zhang - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 17301f63311STianjia Zhang and IEEE 1619) 174cf514b2aSRobert Elliott 175cf514b2aSRobert Elliott Architecture: arm64 using: 176cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 177cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 1789e5647ebSRobert Elliott 1799e5647ebSRobert Elliottconfig CRYPTO_SM4_ARM64_NEON_BLK 18029fa12e9SHerbert Xu tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)" 1819e5647ebSRobert Elliott depends on KERNEL_MODE_NEON 1829e5647ebSRobert Elliott select CRYPTO_SKCIPHER 1839e5647ebSRobert Elliott select CRYPTO_SM4 184cf514b2aSRobert Elliott help 185cf514b2aSRobert Elliott Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) 186cf514b2aSRobert Elliott with block cipher modes: 187cf514b2aSRobert Elliott - ECB (Electronic Codebook) mode (NIST SP800-38A) 188cf514b2aSRobert Elliott - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 189cf514b2aSRobert Elliott - CTR (Counter) mode (NIST SP800-38A) 190cf514b2aSRobert Elliott 191cf514b2aSRobert Elliott Architecture: arm64 using: 192cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 1939e5647ebSRobert Elliott 1949e5647ebSRobert Elliottconfig CRYPTO_AES_ARM64_CE_CCM 195cf514b2aSRobert Elliott tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" 196e2df5fb7SEric Biggers depends on KERNEL_MODE_NEON 1979e5647ebSRobert Elliott select CRYPTO_ALGAPI 1989e5647ebSRobert Elliott select CRYPTO_AES_ARM64_CE 199948ffc66SArd Biesheuvel select CRYPTO_AES_ARM64_CE_BLK 2009e5647ebSRobert Elliott select CRYPTO_AEAD 2019e5647ebSRobert Elliott select CRYPTO_LIB_AES 202cf514b2aSRobert Elliott help 203cf514b2aSRobert Elliott AEAD cipher: AES cipher algorithms (FIPS-197) with 204cf514b2aSRobert Elliott CCM (Counter with Cipher Block Chaining-Message Authentication Code) 205cf514b2aSRobert Elliott authenticated encryption mode (NIST SP800-38C) 206cf514b2aSRobert Elliott 207cf514b2aSRobert Elliott Architecture: arm64 using: 208cf514b2aSRobert Elliott - ARMv8 Crypto Extensions 209cf514b2aSRobert Elliott - NEON (Advanced SIMD) extensions 2109e5647ebSRobert Elliott 21167fa3a7fSTianjia Zhangconfig CRYPTO_SM4_ARM64_CE_CCM 21267fa3a7fSTianjia Zhang tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)" 21367fa3a7fSTianjia Zhang depends on KERNEL_MODE_NEON 21467fa3a7fSTianjia Zhang select CRYPTO_ALGAPI 21567fa3a7fSTianjia Zhang select CRYPTO_AEAD 21667fa3a7fSTianjia Zhang select CRYPTO_SM4 21767fa3a7fSTianjia Zhang select CRYPTO_SM4_ARM64_CE_BLK 21867fa3a7fSTianjia Zhang help 21967fa3a7fSTianjia Zhang AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 22067fa3a7fSTianjia Zhang CCM (Counter with Cipher Block Chaining-Message Authentication Code) 22167fa3a7fSTianjia Zhang authenticated encryption mode (NIST SP800-38C) 22267fa3a7fSTianjia Zhang 22367fa3a7fSTianjia Zhang Architecture: arm64 using: 22467fa3a7fSTianjia Zhang - ARMv8 Crypto Extensions 22567fa3a7fSTianjia Zhang - NEON (Advanced SIMD) extensions 22667fa3a7fSTianjia Zhang 227ae1b83c7STianjia Zhangconfig CRYPTO_SM4_ARM64_CE_GCM 228ae1b83c7STianjia Zhang tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)" 229ae1b83c7STianjia Zhang depends on KERNEL_MODE_NEON 230ae1b83c7STianjia Zhang select CRYPTO_ALGAPI 231ae1b83c7STianjia Zhang select CRYPTO_AEAD 232ae1b83c7STianjia Zhang select CRYPTO_SM4 233ae1b83c7STianjia Zhang select CRYPTO_SM4_ARM64_CE_BLK 234ae1b83c7STianjia Zhang help 235ae1b83c7STianjia Zhang AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with 236ae1b83c7STianjia Zhang GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D) 237ae1b83c7STianjia Zhang 238ae1b83c7STianjia Zhang Architecture: arm64 using: 239ae1b83c7STianjia Zhang - ARMv8 Crypto Extensions 240ae1b83c7STianjia Zhang - PMULL (Polynomial Multiply Long) instructions 241ae1b83c7STianjia Zhang - NEON (Advanced SIMD) extensions 242ae1b83c7STianjia Zhang 2434a329fecSRobert Elliottendmenu 2449e5647ebSRobert Elliott 245