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