lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220815190608.47182-8-elliott@hpe.com>
Date:   Mon, 15 Aug 2022 14:06:07 -0500
From:   Robert Elliott <elliott@....com>
To:     herbert@...dor.apana.org.au, davem@...emloft.net,
        linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     toshi.kani@....com, Robert Elliott <elliott@....com>
Subject: [PATCH 7/8] crypto: Kconfig - sort the digests

Sort the entries in Digests by their displayed names.
In particular, keep the optimized CPU implementations next to the
generic implementations.

Signed-off-by: Robert Elliott <elliott@....com>
---
 crypto/Kconfig | 299 ++++++++++++++++++++++++-------------------------
 1 file changed, 149 insertions(+), 150 deletions(-)

diff --git a/crypto/Kconfig b/crypto/Kconfig
index 0116729ea369..f5cfb73e2423 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -632,6 +632,58 @@ menu "Hash modes"
 
 menu "Digests"
 
+config CRYPTO_BLAKE2B
+	tristate "BLAKE2b"
+	select CRYPTO_HASH
+	help
+	  BLAKE2b cryptographic hash function (RFC 7693)
+
+	  BLAKE2b is optimized for 64-bit platforms and can produce digests
+	  of any size between 1 and 64 bytes. The keyed hash is also implemented.
+
+	  This module provides the following algorithms:
+	  - blake2b-160
+	  - blake2b-256
+	  - blake2b-384
+	  - blake2b-512
+
+	  See https://blake2.net for further information.
+
+	  Used by the btrfs filesystem.
+
+config CRYPTO_BLAKE2S
+	tristate "BLAKE2s"
+	select CRYPTO_LIB_BLAKE2S_GENERIC
+	select CRYPTO_HASH
+	help
+	  BLAKE2s cryptographic hash function (RFC 7693)
+
+	  BLAKE2s is optimized for 8 to 32-bit platforms and can produce
+	  digests of any size between 1 and 32 bytes. The keyed hash is
+	  also implemented.
+
+	  This module provides the following algorithms:
+	  - blake2s-128
+	  - blake2s-160
+	  - blake2s-224
+	  - blake2s-256
+
+	  Used by Wireguard.
+
+	  See https://blake2.net for further information.
+
+config CRYPTO_BLAKE2S_X86
+	tristate "BLAKE2s (x86_64 with SSSE3/AVX-512)"
+	depends on X86 && 64BIT
+	select CRYPTO_LIB_BLAKE2S_GENERIC
+	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
+	help
+	  BLAKE2s cryptographic hash function (RFC 7693)
+
+	  Architecture: x86_64 using:
+	  * SSSE3 (Supplemental SSE3)
+	  * AVX-512 (Advanced Vector Extensions-512)
+
 config CRYPTO_CRC32C
 	tristate "CRC32c"
 	select CRYPTO_HASH
@@ -726,69 +778,6 @@ menu "Digests"
 
 	  It is available with IBM z13 or later.
 
-config CRYPTO_XXHASH
-	tristate "xxHash"
-	select CRYPTO_HASH
-	select XXHASH
-	help
-	  xxHash non-cryptographic hash algorithm
-
-	  Extremely fast, working at speeds close to RAM limits.
-
-	  Used by the btrfs filesystem.
-
-config CRYPTO_BLAKE2B
-	tristate "BLAKE2b"
-	select CRYPTO_HASH
-	help
-	  BLAKE2b cryptographic hash function (RFC 7693)
-
-	  BLAKE2b is optimized for 64-bit platforms and can produce digests
-	  of any size between 1 and 64 bytes. The keyed hash is also implemented.
-
-	  This module provides the following algorithms:
-	  - blake2b-160
-	  - blake2b-256
-	  - blake2b-384
-	  - blake2b-512
-
-	  See https://blake2.net for further information.
-
-	  Used by the btrfs filesystem.
-
-config CRYPTO_BLAKE2S
-	tristate "BLAKE2s"
-	select CRYPTO_LIB_BLAKE2S_GENERIC
-	select CRYPTO_HASH
-	help
-	  BLAKE2s cryptographic hash function (RFC 7693)
-
-	  BLAKE2s is optimized for 8 to 32-bit platforms and can produce
-	  digests of any size between 1 and 32 bytes. The keyed hash is
-	  also implemented.
-
-	  This module provides the following algorithms:
-	  - blake2s-128
-	  - blake2s-160
-	  - blake2s-224
-	  - blake2s-256
-
-	  Used by Wireguard.
-
-	  See https://blake2.net for further information.
-
-config CRYPTO_BLAKE2S_X86
-	tristate "BLAKE2s (x86_64 with SSSE3/AVX-512)"
-	depends on X86 && 64BIT
-	select CRYPTO_LIB_BLAKE2S_GENERIC
-	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
-	help
-	  BLAKE2s cryptographic hash function (RFC 7693)
-
-	  Architecture: x86_64 using:
-	  * SSSE3 (Supplemental SSE3)
-	  * AVX-512 (Advanced Vector Extensions-512)
-
 config CRYPTO_CRCT10DIF
 	tristate "CRCT10DIF"
 	select CRYPTO_HASH
@@ -819,6 +808,14 @@ menu "Digests"
 	  Architecture: powerpc64 using AltiVec extensions
 	  Enable on POWER8 and newer processors for improved performance.
 
+config CRYPTO_VPMSUM_TESTER
+	tristate "CRC32C and CRC32T10DIF vpmsum hardware acceleration tester (powerpc64)"
+	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
+	help
+	  Stress test for CRC32c and CRCT10DIF algorithms implemented with
+	  powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
+	  Unless you are testing these algorithms, you don't need this.
+
 config CRYPTO_CRC64_ROCKSOFT
 	tristate "CRC64 based on the Rocksoft Model CRC Algorithm"
 	depends on CRC64
@@ -830,14 +827,6 @@ menu "Digests"
 
 	  See https://zlib.net/crc_v3.txt
 
-config CRYPTO_VPMSUM_TESTER
-	tristate "CRC32C and CRC32T10DIF vpmsum hardware acceleration tester (powerpc64)"
-	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
-	help
-	  Stress test for CRC32c and CRCT10DIF algorithms implemented with
-	  powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
-	  Unless you are testing these algorithms, you don't need this.
-
 config CRYPTO_GHASH
 	tristate "GHASH"
 	select CRYPTO_GF128MUL
@@ -845,37 +834,26 @@ menu "Digests"
 	help
 	  GCM GHASH function (NIST SP800-38D)
 
-config CRYPTO_POLY1305
-	tristate "Poly1305"
-	select CRYPTO_HASH
-	select CRYPTO_LIB_POLY1305_GENERIC
-	help
-	  Poly1305 authenticator algorithm (RFC7539)
-
-	  Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
-	  It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
-	  in IETF protocols. This is the portable C implementation of Poly1305.
-
-config CRYPTO_POLY1305_X86_64
-	tristate "Poly1305 (x86_64 with SSE2/AVX2)"
+config CRYPTO_GHASH_CLMUL_NI_INTEL
+	tristate "GHASH (x86_64 with CLMUL-NI)"
 	depends on X86 && 64BIT
-	select CRYPTO_LIB_POLY1305_GENERIC
-	select CRYPTO_ARCH_HAVE_LIB_POLY1305
+	select CRYPTO_CRYPTD
 	help
-	  Poly1305 authenticator algorithm (RFC7539)
+	  GCM GHASH hash function (NIST SP800-38D)
 
 	  Architecture: x86_64 using:
-	  * SSE2 (Streaming SIMD Extensions 2)
-	  * AVX2 (Advanced Vector Extensions 2)
+	  * CLMUL-NI (carry-less multiplication new instructions)
 
-config CRYPTO_POLY1305_MIPS
-	tristate "Poly1305 (MIPS)"
-	depends on MIPS
-	select CRYPTO_ARCH_HAVE_LIB_POLY1305
+config CRYPTO_GHASH_S390
+	tristate "GHASH (s390)"
+	depends on S390
+	select CRYPTO_HASH
 	help
-	  Poly1305 authenticator algorithm (RFC7539)
+	  GCM GHASH hash function (NIST SP800-38D)
 
-	  Architecture: mips
+	  Architecture: s390
+
+	  It is available as of z196.
 
 config CRYPTO_MD4
 	tristate "MD4"
@@ -930,6 +908,38 @@ menu "Digests"
 	  This algorithm is required for TKIP, but it should not be used for
 	  other purposes because of the weakness of the algorithm.
 
+config CRYPTO_POLY1305
+	tristate "Poly1305"
+	select CRYPTO_HASH
+	select CRYPTO_LIB_POLY1305_GENERIC
+	help
+	  Poly1305 authenticator algorithm (RFC7539)
+
+	  Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
+	  It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
+	  in IETF protocols. This is the portable C implementation of Poly1305.
+
+config CRYPTO_POLY1305_X86_64
+	tristate "Poly1305 (x86_64 with SSE2/AVX2)"
+	depends on X86 && 64BIT
+	select CRYPTO_LIB_POLY1305_GENERIC
+	select CRYPTO_ARCH_HAVE_LIB_POLY1305
+	help
+	  Poly1305 authenticator algorithm
+
+	  Architecture: x86_64 using:
+	  * SSE2 (Streaming SIMD Extensions 2)
+	  * AVX2 (Advanced Vector Extensions 2)
+
+config CRYPTO_POLY1305_MIPS
+	tristate "Poly1305 (MIPS)"
+	depends on MIPS
+	select CRYPTO_ARCH_HAVE_LIB_POLY1305
+	help
+	  Poly1305 authenticator algorithm
+
+	  Architecture: mips
+
 config CRYPTO_RMD160
 	tristate "RIPEMD-160"
 	select CRYPTO_HASH
@@ -968,44 +978,6 @@ menu "Digests"
 	  * AVX2 (Advanced Vector Extensions 2)
 	  * SHA-NI (SHA Extensions New Instructions)
 
-config CRYPTO_SHA256_SSSE3
-	tristate "SHA224 and SHA256 (x86_64 with SSSE3/AVX/AVX2/SHA-NI)"
-	depends on X86 && 64BIT
-	select CRYPTO_SHA256
-	select CRYPTO_HASH
-	help
-	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
-
-	  Architecture: x86_64 using:
-	  * SSSE3 (Supplemental SSE3)
-	  * AVX (Advanced Vector Extensions)
-	  * AVX2 (Advanced Vector Extensions 2)
-	  * SHA-NI (SHA Extensions New Instructions)
-
-config CRYPTO_SHA512_SSSE3
-	tristate "SHA384 and SHA512 (x86_64 with SSSE3/AVX/AVX2)"
-	depends on X86 && 64BIT
-	select CRYPTO_SHA512
-	select CRYPTO_HASH
-	help
-	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
-
-	  Architecture: x86_64 using:
-	  * SSSE3 (Supplemental SSE3)
-	  * AVX (Advanced Vector Extensions)
-	  * AVX2 (Advanced Vector Extensions 2)
-
-config CRYPTO_SHA512_S390
-	tristate "SHA384 and SHA512 (s390)"
-	depends on S390
-	select CRYPTO_HASH
-	help
-	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
-
-	  Architecture: s390
-
-	  It is available as of z10.
-
 config CRYPTO_SHA1_OCTEON
 	tristate "SHA1 (OCTEON)"
 	depends on CPU_CAVIUM_OCTEON
@@ -1063,6 +1035,20 @@ menu "Digests"
 	  This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
 	  Used by the btrfs filesystem, Ceph, NFS, and SMB.
 
+config CRYPTO_SHA256_SSSE3
+	tristate "SHA224 and SHA256 (x86_64 with SSSE3/AVX/AVX2/SHA-NI)"
+	depends on X86 && 64BIT
+	select CRYPTO_SHA256
+	select CRYPTO_HASH
+	help
+	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
+
+	  Architecture: x86_64 using:
+	  * SSSE3 (Supplemental SSE3)
+	  * AVX (Advanced Vector Extensions)
+	  * AVX2 (Advanced Vector Extensions 2)
+	  * SHA-NI (SHA Extensions New Instructions)
+
 config CRYPTO_SHA256_PPC_SPE
 	tristate "SHA224 and SHA256 (PPC SPE)"
 	depends on PPC && SPE
@@ -1110,6 +1096,30 @@ menu "Digests"
 	help
 	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
 
+config CRYPTO_SHA512_SSSE3
+	tristate "SHA384 and SHA512 (x86_64 with SSSE3/AVX/AVX2)"
+	depends on X86 && 64BIT
+	select CRYPTO_SHA512
+	select CRYPTO_HASH
+	help
+	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
+
+	  Architecture: x86_64 using:
+	  * SSSE3 (Supplemental SSE3)
+	  * AVX (Advanced Vector Extensions)
+	  * AVX2 (Advanced Vector Extensions 2)
+
+config CRYPTO_SHA512_S390
+	tristate "SHA384 and SHA512 (s390)"
+	depends on S390
+	select CRYPTO_HASH
+	help
+	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
+
+	  Architecture: s390
+
+	  It is available as of z10.
+
 config CRYPTO_SHA512_OCTEON
 	tristate "SHA384 and SHA512 (OCTEON)"
 	depends on CPU_CAVIUM_OCTEON
@@ -1213,27 +1223,16 @@ menu "Digests"
 	  See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html
 	  for further information.
 
-config CRYPTO_GHASH_CLMUL_NI_INTEL
-	tristate "GHASH (x86_64 with CLMUL-NI)"
-	depends on X86 && 64BIT
-	select CRYPTO_CRYPTD
-	help
-	  GCM GHASH hash function (NIST SP800-38D)
-
-	  Architecture: x86_64 using:
-	  * CLMUL-NI (carry-less multiplication new instructions)
-
-config CRYPTO_GHASH_S390
-	tristate "GHASH (s390)"
-	depends on S390
+config CRYPTO_XXHASH
+	tristate "xxHash"
 	select CRYPTO_HASH
+	select XXHASH
 	help
-	  GCM GHASH hash function (NIST SP800-38D)
-
-	  Architecture: s390
+	  xxHash non-cryptographic hash algorithm
 
-	  It is available as of z196.
+	  Extremely fast, working at speeds close to RAM limits.
 
+	  Used by the btrfs filesystem.
 endmenu
 
 menu "Ciphers"
-- 
2.37.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ