0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 menuconfig ARM64_CRYPTO
0004 bool "ARM64 Accelerated Cryptographic Algorithms"
0005 depends on ARM64
0006 help
0007 Say Y here to choose from a selection of cryptographic algorithms
0008 implemented using ARM64 specific CPU features or instructions.
0009
0010 if ARM64_CRYPTO
0011
0012 config CRYPTO_SHA256_ARM64
0013 tristate "SHA-224/SHA-256 digest algorithm for arm64"
0014 select CRYPTO_HASH
0015
0016 config CRYPTO_SHA512_ARM64
0017 tristate "SHA-384/SHA-512 digest algorithm for arm64"
0018 select CRYPTO_HASH
0019
0020 config CRYPTO_SHA1_ARM64_CE
0021 tristate "SHA-1 digest algorithm (ARMv8 Crypto Extensions)"
0022 depends on KERNEL_MODE_NEON
0023 select CRYPTO_HASH
0024 select CRYPTO_SHA1
0025
0026 config CRYPTO_SHA2_ARM64_CE
0027 tristate "SHA-224/SHA-256 digest algorithm (ARMv8 Crypto Extensions)"
0028 depends on KERNEL_MODE_NEON
0029 select CRYPTO_HASH
0030 select CRYPTO_SHA256_ARM64
0031
0032 config CRYPTO_SHA512_ARM64_CE
0033 tristate "SHA-384/SHA-512 digest algorithm (ARMv8 Crypto Extensions)"
0034 depends on KERNEL_MODE_NEON
0035 select CRYPTO_HASH
0036 select CRYPTO_SHA512_ARM64
0037
0038 config CRYPTO_SHA3_ARM64
0039 tristate "SHA3 digest algorithm (ARMv8.2 Crypto Extensions)"
0040 depends on KERNEL_MODE_NEON
0041 select CRYPTO_HASH
0042 select CRYPTO_SHA3
0043
0044 config CRYPTO_SM3_ARM64_CE
0045 tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)"
0046 depends on KERNEL_MODE_NEON
0047 select CRYPTO_HASH
0048 select CRYPTO_SM3
0049
0050 config CRYPTO_SM4_ARM64_CE
0051 tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)"
0052 depends on KERNEL_MODE_NEON
0053 select CRYPTO_ALGAPI
0054 select CRYPTO_SM4
0055
0056 config CRYPTO_SM4_ARM64_CE_BLK
0057 tristate "SM4 in ECB/CBC/CFB/CTR modes using ARMv8 Crypto Extensions"
0058 depends on KERNEL_MODE_NEON
0059 select CRYPTO_SKCIPHER
0060 select CRYPTO_SM4
0061
0062 config CRYPTO_SM4_ARM64_NEON_BLK
0063 tristate "SM4 in ECB/CBC/CFB/CTR modes using NEON instructions"
0064 depends on KERNEL_MODE_NEON
0065 select CRYPTO_SKCIPHER
0066 select CRYPTO_SM4
0067
0068 config CRYPTO_GHASH_ARM64_CE
0069 tristate "GHASH/AES-GCM using ARMv8 Crypto Extensions"
0070 depends on KERNEL_MODE_NEON
0071 select CRYPTO_HASH
0072 select CRYPTO_GF128MUL
0073 select CRYPTO_LIB_AES
0074 select CRYPTO_AEAD
0075
0076 config CRYPTO_POLYVAL_ARM64_CE
0077 tristate "POLYVAL using ARMv8 Crypto Extensions (for HCTR2)"
0078 depends on KERNEL_MODE_NEON
0079 select CRYPTO_POLYVAL
0080
0081 config CRYPTO_CRCT10DIF_ARM64_CE
0082 tristate "CRCT10DIF digest algorithm using PMULL instructions"
0083 depends on KERNEL_MODE_NEON && CRC_T10DIF
0084 select CRYPTO_HASH
0085
0086 config CRYPTO_AES_ARM64
0087 tristate "AES core cipher using scalar instructions"
0088 select CRYPTO_AES
0089
0090 config CRYPTO_AES_ARM64_CE
0091 tristate "AES core cipher using ARMv8 Crypto Extensions"
0092 depends on ARM64 && KERNEL_MODE_NEON
0093 select CRYPTO_ALGAPI
0094 select CRYPTO_LIB_AES
0095
0096 config CRYPTO_AES_ARM64_CE_CCM
0097 tristate "AES in CCM mode using ARMv8 Crypto Extensions"
0098 depends on ARM64 && KERNEL_MODE_NEON
0099 select CRYPTO_ALGAPI
0100 select CRYPTO_AES_ARM64_CE
0101 select CRYPTO_AEAD
0102 select CRYPTO_LIB_AES
0103
0104 config CRYPTO_AES_ARM64_CE_BLK
0105 tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using ARMv8 Crypto Extensions"
0106 depends on KERNEL_MODE_NEON
0107 select CRYPTO_SKCIPHER
0108 select CRYPTO_AES_ARM64_CE
0109
0110 config CRYPTO_AES_ARM64_NEON_BLK
0111 tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using NEON instructions"
0112 depends on KERNEL_MODE_NEON
0113 select CRYPTO_SKCIPHER
0114 select CRYPTO_LIB_AES
0115
0116 config CRYPTO_CHACHA20_NEON
0117 tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
0118 depends on KERNEL_MODE_NEON
0119 select CRYPTO_SKCIPHER
0120 select CRYPTO_LIB_CHACHA_GENERIC
0121 select CRYPTO_ARCH_HAVE_LIB_CHACHA
0122
0123 config CRYPTO_POLY1305_NEON
0124 tristate "Poly1305 hash function using scalar or NEON instructions"
0125 depends on KERNEL_MODE_NEON
0126 select CRYPTO_HASH
0127 select CRYPTO_ARCH_HAVE_LIB_POLY1305
0128
0129 config CRYPTO_NHPOLY1305_NEON
0130 tristate "NHPoly1305 hash function using NEON instructions (for Adiantum)"
0131 depends on KERNEL_MODE_NEON
0132 select CRYPTO_NHPOLY1305
0133
0134 config CRYPTO_AES_ARM64_BS
0135 tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm"
0136 depends on KERNEL_MODE_NEON
0137 select CRYPTO_SKCIPHER
0138 select CRYPTO_AES_ARM64_NEON_BLK
0139 select CRYPTO_LIB_AES
0140
0141 endif