]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - arch/arm/crypto/Kconfig
crypto: Kconfig - simplify CRC entries
[thirdparty/linux.git] / arch / arm / crypto / Kconfig
index 149a5bd6b88c195b74c82f01d9044a9b618866b1..75684521f581279bb6a34f269e2f03bff8c3311e 100644 (file)
@@ -1,13 +1,58 @@
 # SPDX-License-Identifier: GPL-2.0
 
-menuconfig ARM_CRYPTO
-       bool "ARM Accelerated Cryptographic Algorithms"
-       depends on ARM
+menu "Accelerated Cryptographic Algorithms for CPU (arm)"
+
+config CRYPTO_CURVE25519_NEON
+       tristate "Public key crypto: Curve25519 (NEON)"
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_LIB_CURVE25519_GENERIC
+       select CRYPTO_ARCH_HAVE_LIB_CURVE25519
        help
-         Say Y here to choose from a selection of cryptographic algorithms
-         implemented using ARM specific CPU features or instructions.
+         Curve25519 algorithm
+
+         Architecture: arm with
+         - NEON (Advanced SIMD) extensions
 
-if ARM_CRYPTO
+config CRYPTO_GHASH_ARM_CE
+       tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions"
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_HASH
+       select CRYPTO_CRYPTD
+       select CRYPTO_GF128MUL
+       help
+         Use an implementation of GHASH (used by the GCM AEAD chaining mode)
+         that uses the 64x64 to 128 bit polynomial multiplication (vmull.p64)
+         that is part of the ARMv8 Crypto Extensions, or a slower variant that
+         uses the vmull.p8 instruction that is part of the basic NEON ISA.
+
+config CRYPTO_NHPOLY1305_NEON
+       tristate "NEON accelerated NHPoly1305 hash function (for Adiantum)"
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_NHPOLY1305
+
+config CRYPTO_POLY1305_ARM
+       tristate "Accelerated scalar and SIMD Poly1305 hash implementations"
+       select CRYPTO_HASH
+       select CRYPTO_ARCH_HAVE_LIB_POLY1305
+
+config CRYPTO_BLAKE2S_ARM
+       bool "BLAKE2s digest algorithm (ARM)"
+       select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
+       help
+         BLAKE2s digest algorithm optimized with ARM scalar instructions.  This
+         is faster than the generic implementations of BLAKE2s and BLAKE2b, but
+         slower than the NEON implementation of BLAKE2b.  (There is no NEON
+         implementation of BLAKE2s, since NEON doesn't really help with it.)
+
+config CRYPTO_BLAKE2B_NEON
+       tristate "BLAKE2b digest algorithm (ARM NEON)"
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_BLAKE2B
+       help
+         BLAKE2b digest algorithm optimized with ARM NEON instructions.
+         On ARM processors that have NEON support but not the ARMv8
+         Crypto Extensions, typically this BLAKE2b implementation is
+         much faster than SHA-2 and slightly faster than SHA-1.
 
 config CRYPTO_SHA1_ARM
        tristate "SHA1 digest algorithm (ARM-asm)"
@@ -62,25 +107,6 @@ config CRYPTO_SHA512_ARM
          SHA-512 secure hash standard (DFIPS 180-2) implemented
          using optimized ARM assembler and NEON, when available.
 
-config CRYPTO_BLAKE2S_ARM
-       bool "BLAKE2s digest algorithm (ARM)"
-       select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
-       help
-         BLAKE2s digest algorithm optimized with ARM scalar instructions.  This
-         is faster than the generic implementations of BLAKE2s and BLAKE2b, but
-         slower than the NEON implementation of BLAKE2b.  (There is no NEON
-         implementation of BLAKE2s, since NEON doesn't really help with it.)
-
-config CRYPTO_BLAKE2B_NEON
-       tristate "BLAKE2b digest algorithm (ARM NEON)"
-       depends on KERNEL_MODE_NEON
-       select CRYPTO_BLAKE2B
-       help
-         BLAKE2b digest algorithm optimized with ARM NEON instructions.
-         On ARM processors that have NEON support but not the ARMv8
-         Crypto Extensions, typically this BLAKE2b implementation is
-         much faster than SHA-2 and slightly faster than SHA-1.
-
 config CRYPTO_AES_ARM
        tristate "Scalar AES cipher for ARM"
        select CRYPTO_ALGAPI
@@ -125,49 +151,35 @@ config CRYPTO_AES_ARM_CE
          Use an implementation of AES in CBC, CTR and XTS modes that uses
          ARMv8 Crypto Extensions
 
-config CRYPTO_GHASH_ARM_CE
-       tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions"
-       depends on KERNEL_MODE_NEON
-       select CRYPTO_HASH
-       select CRYPTO_CRYPTD
-       select CRYPTO_GF128MUL
-       help
-         Use an implementation of GHASH (used by the GCM AEAD chaining mode)
-         that uses the 64x64 to 128 bit polynomial multiplication (vmull.p64)
-         that is part of the ARMv8 Crypto Extensions, or a slower variant that
-         uses the vmull.p8 instruction that is part of the basic NEON ISA.
-
-config CRYPTO_CRCT10DIF_ARM_CE
-       tristate "CRCT10DIF digest algorithm using PMULL instructions"
-       depends on KERNEL_MODE_NEON
-       depends on CRC_T10DIF
-       select CRYPTO_HASH
+config CRYPTO_CHACHA20_NEON
+       tristate "NEON and scalar accelerated ChaCha stream cipher algorithms"
+       select CRYPTO_SKCIPHER
+       select CRYPTO_ARCH_HAVE_LIB_CHACHA
 
 config CRYPTO_CRC32_ARM_CE
-       tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions"
+       tristate "CRC32C and CRC32"
        depends on KERNEL_MODE_NEON
        depends on CRC32
        select CRYPTO_HASH
+       help
+         CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+         and CRC32 CRC algorithm (IEEE 802.3)
 
-config CRYPTO_CHACHA20_NEON
-       tristate "NEON and scalar accelerated ChaCha stream cipher algorithms"
-       select CRYPTO_SKCIPHER
-       select CRYPTO_ARCH_HAVE_LIB_CHACHA
+         Architecture: arm using:
+         - CRC and/or PMULL instructions
 
-config CRYPTO_POLY1305_ARM
-       tristate "Accelerated scalar and SIMD Poly1305 hash implementations"
-       select CRYPTO_HASH
-       select CRYPTO_ARCH_HAVE_LIB_POLY1305
+         Drivers: crc32-arm-ce and crc32c-arm-ce
 
-config CRYPTO_NHPOLY1305_NEON
-       tristate "NEON accelerated NHPoly1305 hash function (for Adiantum)"
+config CRYPTO_CRCT10DIF_ARM_CE
+       tristate "CRCT10DIF"
        depends on KERNEL_MODE_NEON
-       select CRYPTO_NHPOLY1305
+       depends on CRC_T10DIF
+       select CRYPTO_HASH
+       help
+         CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
 
-config CRYPTO_CURVE25519_NEON
-       tristate "NEON accelerated Curve25519 scalar multiplication library"
-       depends on KERNEL_MODE_NEON
-       select CRYPTO_LIB_CURVE25519_GENERIC
-       select CRYPTO_ARCH_HAVE_LIB_CURVE25519
+         Architecture: arm using:
+         - PMULL (Polynomial Multiply Long) instructions
+
+endmenu
 
-endif