1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunmenuconfig ARM64_CRYPTO 4*4882a593Smuzhiyun bool "ARM64 Accelerated Cryptographic Algorithms" 5*4882a593Smuzhiyun depends on ARM64 6*4882a593Smuzhiyun help 7*4882a593Smuzhiyun Say Y here to choose from a selection of cryptographic algorithms 8*4882a593Smuzhiyun implemented using ARM64 specific CPU features or instructions. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunif ARM64_CRYPTO 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunconfig CRYPTO_SHA256_ARM64 13*4882a593Smuzhiyun tristate "SHA-224/SHA-256 digest algorithm for arm64" 14*4882a593Smuzhiyun select CRYPTO_HASH 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunconfig CRYPTO_SHA512_ARM64 17*4882a593Smuzhiyun tristate "SHA-384/SHA-512 digest algorithm for arm64" 18*4882a593Smuzhiyun select CRYPTO_HASH 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunconfig CRYPTO_SHA1_ARM64_CE 21*4882a593Smuzhiyun tristate "SHA-1 digest algorithm (ARMv8 Crypto Extensions)" 22*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 23*4882a593Smuzhiyun select CRYPTO_HASH 24*4882a593Smuzhiyun select CRYPTO_SHA1 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunconfig CRYPTO_SHA2_ARM64_CE 27*4882a593Smuzhiyun tristate "SHA-224/SHA-256 digest algorithm (ARMv8 Crypto Extensions)" 28*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 29*4882a593Smuzhiyun select CRYPTO_HASH 30*4882a593Smuzhiyun select CRYPTO_SHA256_ARM64 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunconfig CRYPTO_SHA512_ARM64_CE 33*4882a593Smuzhiyun tristate "SHA-384/SHA-512 digest algorithm (ARMv8 Crypto Extensions)" 34*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 35*4882a593Smuzhiyun select CRYPTO_HASH 36*4882a593Smuzhiyun select CRYPTO_SHA512_ARM64 37*4882a593Smuzhiyun 38*4882a593Smuzhiyunconfig CRYPTO_SHA3_ARM64 39*4882a593Smuzhiyun tristate "SHA3 digest algorithm (ARMv8.2 Crypto Extensions)" 40*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 41*4882a593Smuzhiyun select CRYPTO_HASH 42*4882a593Smuzhiyun select CRYPTO_SHA3 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunconfig CRYPTO_SM3_ARM64_CE 45*4882a593Smuzhiyun tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)" 46*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 47*4882a593Smuzhiyun select CRYPTO_HASH 48*4882a593Smuzhiyun select CRYPTO_SM3 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunconfig CRYPTO_SM4_ARM64_CE 51*4882a593Smuzhiyun tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)" 52*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 53*4882a593Smuzhiyun select CRYPTO_ALGAPI 54*4882a593Smuzhiyun select CRYPTO_SM4 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunconfig CRYPTO_GHASH_ARM64_CE 57*4882a593Smuzhiyun tristate "GHASH/AES-GCM using ARMv8 Crypto Extensions" 58*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 59*4882a593Smuzhiyun select CRYPTO_HASH 60*4882a593Smuzhiyun select CRYPTO_GF128MUL 61*4882a593Smuzhiyun select CRYPTO_LIB_AES 62*4882a593Smuzhiyun select CRYPTO_AEAD 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunconfig CRYPTO_CRCT10DIF_ARM64_CE 65*4882a593Smuzhiyun tristate "CRCT10DIF digest algorithm using PMULL instructions" 66*4882a593Smuzhiyun depends on KERNEL_MODE_NEON && CRC_T10DIF 67*4882a593Smuzhiyun select CRYPTO_HASH 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64 70*4882a593Smuzhiyun tristate "AES core cipher using scalar instructions" 71*4882a593Smuzhiyun select CRYPTO_AES 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE 74*4882a593Smuzhiyun tristate "AES core cipher using ARMv8 Crypto Extensions" 75*4882a593Smuzhiyun depends on ARM64 && KERNEL_MODE_NEON 76*4882a593Smuzhiyun select CRYPTO_ALGAPI 77*4882a593Smuzhiyun select CRYPTO_LIB_AES 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE_CCM 80*4882a593Smuzhiyun tristate "AES in CCM mode using ARMv8 Crypto Extensions" 81*4882a593Smuzhiyun depends on ARM64 && KERNEL_MODE_NEON 82*4882a593Smuzhiyun select CRYPTO_ALGAPI 83*4882a593Smuzhiyun select CRYPTO_AES_ARM64_CE 84*4882a593Smuzhiyun select CRYPTO_AEAD 85*4882a593Smuzhiyun select CRYPTO_LIB_AES 86*4882a593Smuzhiyun 87*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_CE_BLK 88*4882a593Smuzhiyun tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions" 89*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 90*4882a593Smuzhiyun select CRYPTO_SKCIPHER 91*4882a593Smuzhiyun select CRYPTO_AES_ARM64_CE 92*4882a593Smuzhiyun 93*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_NEON_BLK 94*4882a593Smuzhiyun tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions" 95*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 96*4882a593Smuzhiyun select CRYPTO_SKCIPHER 97*4882a593Smuzhiyun select CRYPTO_LIB_AES 98*4882a593Smuzhiyun 99*4882a593Smuzhiyunconfig CRYPTO_CHACHA20_NEON 100*4882a593Smuzhiyun tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions" 101*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 102*4882a593Smuzhiyun select CRYPTO_SKCIPHER 103*4882a593Smuzhiyun select CRYPTO_LIB_CHACHA_GENERIC 104*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_CHACHA 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunconfig CRYPTO_POLY1305_NEON 107*4882a593Smuzhiyun tristate "Poly1305 hash function using scalar or NEON instructions" 108*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 109*4882a593Smuzhiyun select CRYPTO_HASH 110*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_POLY1305 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunconfig CRYPTO_NHPOLY1305_NEON 113*4882a593Smuzhiyun tristate "NHPoly1305 hash function using NEON instructions (for Adiantum)" 114*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 115*4882a593Smuzhiyun select CRYPTO_NHPOLY1305 116*4882a593Smuzhiyun 117*4882a593Smuzhiyunconfig CRYPTO_AES_ARM64_BS 118*4882a593Smuzhiyun tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm" 119*4882a593Smuzhiyun depends on KERNEL_MODE_NEON 120*4882a593Smuzhiyun select CRYPTO_SKCIPHER 121*4882a593Smuzhiyun select CRYPTO_AES_ARM64_NEON_BLK 122*4882a593Smuzhiyun select CRYPTO_LIB_AES 123*4882a593Smuzhiyun 124*4882a593Smuzhiyunendif 125