public inbox for linux-crypto@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Elliott <elliott@hpe.com>
To: herbert@gondor.apana.org.au, davem@davemloft.net,
	ebiggers@kernel.org, linux-crypto@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Robert Elliott <elliott@hpe.com>
Subject: [PATCH v2 10/10] crypto: Kconfig - add submenus
Date: Wed, 17 Aug 2022 18:20:57 -0500	[thread overview]
Message-ID: <20220817232057.73643-11-elliott@hpe.com> (raw)
In-Reply-To: <20220817232057.73643-1-elliott@hpe.com>

Convert each comment section into a submenu:
Cryptographic API
    Crypto core or helper
    Public-key cryptography
    AEAD (Authenticated Encryption with Associated Data) ciphers
    Block modes
    Hash modes
    Digests
    Ciphers
    Compression
    Random Number Generation
    User-space interface

That helps find entries (e.g., searching for a name like SHA512 doesn't
just report the location is Main menu -> Cryptography API, leaving you
to wade through 153 entries; it points you to the Digests page).

Move a few of the entries so they fall into the correct submenu
and are better sorted.

Signed-off-by: Robert Elliott <elliott@hpe.com>
---
 crypto/Kconfig | 131 +++++++++++++++++++++++++++++--------------------
 1 file changed, 77 insertions(+), 54 deletions(-)

diff --git a/crypto/Kconfig b/crypto/Kconfig
index b61626bf8ee2..3d59f843eb4c 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -21,7 +21,7 @@ menuconfig CRYPTO
 
 if CRYPTO
 
-comment "Crypto core or helper"
+menu "Crypto core or helper"
 
 config CRYPTO_FIPS
 	bool "FIPS 200 compliance"
@@ -214,7 +214,9 @@ menuconfig CRYPTO
 config CRYPTO_ENGINE
 	tristate
 
-comment "Public-key cryptography"
+endmenu
+
+menu "Public-key cryptography"
 
 config CRYPTO_RSA
 	tristate "RSA algorithm"
@@ -295,7 +297,9 @@ menuconfig CRYPTO
 	select CRYPTO_KPP
 	select CRYPTO_LIB_CURVE25519_GENERIC
 
-comment "Authenticated Encryption with Associated Data"
+endmenu
+
+menu "AEAD (Authenticated Encryption with Associated Data) ciphers"
 
 config CRYPTO_CCM
 	tristate "CCM support"
@@ -364,7 +368,39 @@ menuconfig CRYPTO
 	  a sequence number xored with a salt.  This is the default
 	  algorithm for CBC.
 
-comment "Block modes"
+	  This is required for IPsec ESP (XFRM_ESP).
+
+config CRYPTO_ESSIV
+	tristate "ESSIV support for block encryption"
+	select CRYPTO_AUTHENC
+	help
+	  Encrypted salt-sector initialization vector (ESSIV) is an IV
+	  generation method that is used in some cases by fscrypt and/or
+	  dm-crypt. It uses the hash of the block encryption key as the
+	  symmetric key for a block encryption pass applied to the input
+	  IV, making low entropy IV sources more suitable for block
+	  encryption.
+
+	  This driver implements a crypto API template that can be
+	  instantiated either as an skcipher or as an AEAD (depending on the
+	  type of the first template argument), and which defers encryption
+	  and decryption requests to the encapsulated cipher after applying
+	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
+	  that the keys are presented in the same format used by the authenc
+	  template, and that the IV appears at the end of the authenticated
+	  associated data (AAD) region (which is how dm-crypt uses it.)
+
+	  Note that the use of ESSIV is not recommended for new deployments,
+	  and so this only needs to be enabled when interoperability with
+	  existing encrypted volumes of filesystems is required, or when
+	  building for a particular system that requires it (e.g., when
+	  the SoC in question has accelerated CBC but not XTS, making CBC
+	  combined with ESSIV the only feasible mode for h/w accelerated
+	  block encryption)
+
+endmenu
+
+menu "Block modes"
 
 config CRYPTO_CBC
 	tristate "CBC support"
@@ -494,35 +530,9 @@ menuconfig CRYPTO
 
 	  If unsure, say N.
 
-config CRYPTO_ESSIV
-	tristate "ESSIV support for block encryption"
-	select CRYPTO_AUTHENC
-	help
-	  Encrypted salt-sector initialization vector (ESSIV) is an IV
-	  generation method that is used in some cases by fscrypt and/or
-	  dm-crypt. It uses the hash of the block encryption key as the
-	  symmetric key for a block encryption pass applied to the input
-	  IV, making low entropy IV sources more suitable for block
-	  encryption.
+endmenu
 
-	  This driver implements a crypto API template that can be
-	  instantiated either as an skcipher or as an AEAD (depending on the
-	  type of the first template argument), and which defers encryption
-	  and decryption requests to the encapsulated cipher after applying
-	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
-	  that the keys are presented in the same format used by the authenc
-	  template, and that the IV appears at the end of the authenticated
-	  associated data (AAD) region (which is how dm-crypt uses it.)
-
-	  Note that the use of ESSIV is not recommended for new deployments,
-	  and so this only needs to be enabled when interoperability with
-	  existing encrypted volumes of filesystems is required, or when
-	  building for a particular system that requires it (e.g., when
-	  the SoC in question has accelerated CBC but not XTS, making CBC
-	  combined with ESSIV the only feasible mode for h/w accelerated
-	  block encryption)
-
-comment "Hash modes"
+menu "Hash modes"
 
 config CRYPTO_CMAC
 	tristate "CMAC support"
@@ -564,7 +574,9 @@ menuconfig CRYPTO
 	  See also:
 	  <https://fastcrypto.org/vmac>
 
-comment "Digest"
+endmenu
+
+menu "Digests"
 
 config CRYPTO_CRC32C
 	tristate "CRC32c CRC algorithm"
@@ -583,13 +595,18 @@ menuconfig CRYPTO
 	  CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
 	  Shash crypto api wrappers to crc32_le function.
 
-config CRYPTO_XXHASH
-	tristate "xxHash hash algorithm"
+config CRYPTO_CRCT10DIF
+	tristate "CRCT10DIF algorithm"
 	select CRYPTO_HASH
-	select XXHASH
 	help
-	  xxHash non-cryptographic hash algorithm. Extremely fast, working at
-	  speeds close to RAM limits.
+	  CRC T10 Data Integrity Field computation is being cast as
+	  a crypto transform.  This allows for faster crc t10 diff
+	  transforms to be used if they are available.
+
+config CRYPTO_CRC64_ROCKSOFT
+	tristate "Rocksoft Model CRC64 algorithm"
+	depends on CRC64
+	select CRYPTO_HASH
 
 config CRYPTO_BLAKE2B
 	tristate "BLAKE2b digest algorithm"
@@ -626,19 +643,6 @@ menuconfig CRYPTO
 
 	  See https://blake2.net for further information.
 
-config CRYPTO_CRCT10DIF
-	tristate "CRCT10DIF algorithm"
-	select CRYPTO_HASH
-	help
-	  CRC T10 Data Integrity Field computation is being cast as
-	  a crypto transform.  This allows for faster crc t10 diff
-	  transforms to be used if they are available.
-
-config CRYPTO_CRC64_ROCKSOFT
-	tristate "Rocksoft Model CRC64 algorithm"
-	depends on CRC64
-	select CRYPTO_HASH
-
 config CRYPTO_GHASH
 	tristate "GHASH hash function"
 	select CRYPTO_GF128MUL
@@ -776,7 +780,17 @@ menuconfig CRYPTO
 	  See also:
 	  <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
 
-comment "Ciphers"
+config CRYPTO_XXHASH
+	tristate "xxHash hash algorithm"
+	select CRYPTO_HASH
+	select XXHASH
+	help
+	  xxHash non-cryptographic hash algorithm. Extremely fast, working at
+	  speeds close to RAM limits.
+
+endmenu
+
+menu "Ciphers"
 
 config CRYPTO_AES
 	tristate "AES cipher algorithms"
@@ -1050,7 +1064,9 @@ menuconfig CRYPTO
 	  Common parts of the Twofish cipher algorithm shared by the
 	  generic c and the assembler implementations.
 
-comment "Compression"
+endmenu
+
+menu "Compression"
 
 config CRYPTO_DEFLATE
 	tristate "Deflate compression algorithm"
@@ -1109,7 +1125,9 @@ menuconfig CRYPTO
 	help
 	  This is the zstd algorithm.
 
-comment "Random Number Generation"
+endmenu
+
+menu "Random Number Generation"
 
 config CRYPTO_ANSI_CPRNG
 	tristate "Pseudo Random Number Generation for Cryptographic modules"
@@ -1166,6 +1184,8 @@ menuconfig CRYPTO_DRBG_MENU
 	  random numbers. This Jitterentropy RNG registers with
 	  the kernel crypto API and can be used by any caller.
 
+endmenu
+
 config CRYPTO_KDF800108_CTR
 	tristate
 	select CRYPTO_HMAC
@@ -1174,6 +1194,7 @@ menuconfig CRYPTO_DRBG_MENU
 config CRYPTO_USER_API
 	tristate
 
+menu "User-space interface"
 config CRYPTO_USER_API_HASH
 	tristate "User-space interface for hash algorithms"
 	depends on NET
@@ -1242,6 +1263,8 @@ menuconfig CRYPTO_DRBG_MENU
 	  - encrypt/decrypt/sign/verify numbers for asymmetric operations
 	  - generate/seed numbers for rng operations
 
+endmenu
+
 config CRYPTO_HASH_INFO
 	bool
 
-- 
2.37.1


  parent reply	other threads:[~2022-08-17 23:21 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-15 19:06 [PATCH 0/8] crypto: Kconfig - simplify menus and help text Robert Elliott
2022-08-15 19:06 ` [PATCH 1/8] crypto: Kconfig - add submenus Robert Elliott
2022-08-15 19:06 ` [PATCH 2/8] crypto: Kconfig - simplify public-key entries Robert Elliott
2022-08-15 19:06 ` [PATCH 3/8] crypto: Kconfig - simplify user-space interface entries Robert Elliott
2022-08-15 19:06 ` [PATCH 4/8] crypto: Kconfig - simplify AEAD and block mode entries Robert Elliott
2022-08-15 19:06 ` [PATCH 5/8] crypto: Kconfig - simplify hash mode and digest entries Robert Elliott
2022-08-15 19:06 ` [PATCH 6/8] crypto: Kconfig - simplify cipher, compression, and RNG entries Robert Elliott
2022-08-15 19:06 ` [PATCH 7/8] crypto: Kconfig - sort the digests Robert Elliott
2022-08-15 19:06 ` [PATCH 8/8] crypto: Kconfig - sort the ciphers Robert Elliott
2022-08-15 21:36   ` Eric Biggers
2022-08-16  3:13     ` Elliott, Robert (Servers)
2022-08-17 23:20   ` [PATCH v2 00/10] crypto: Kconfig - simplify menus and help text Robert Elliott
2022-08-17 23:20     ` [PATCH v2 01/10] crypto: Kconfig - move mips entries to a submenu Robert Elliott
2022-08-17 23:20     ` [PATCH v2 02/10] crypto: Kconfig - move powerpc " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 03/10] crypto: Kconfig - move s390 " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 04/10] crypto: Kconfig - move sparc " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 05/10] crypto: Kconfig - move x86 " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 06/10] crypto: Kconfig - remove AES_ARM64 selection by SA2UL entry Robert Elliott
2022-08-17 23:20     ` [PATCH v2 07/10] crypto: Kconfig - move arm and arm64 menus to Crypto API page Robert Elliott
2022-08-17 23:20     ` [PATCH v2 08/10] crypto: Kconfig - sort the arm64 entries Robert Elliott
2022-08-17 23:20     ` [PATCH v2 09/10] crypto: Kconfig - sort the arm entries Robert Elliott
2022-08-17 23:20     ` Robert Elliott [this message]
2022-08-18  4:43       ` [PATCH v2 10/10] crypto: Kconfig - add submenus Eric Biggers
2022-08-18  5:44         ` Elliott, Robert (Servers)
2022-08-18  0:42     ` [PATCH v2 00/10] crypto: Kconfig - simplify menus and help text Nayna
2022-08-18  2:13       ` Elliott, Robert (Servers)
2022-08-18  2:43         ` Elliott, Robert (Servers)
2022-08-18  2:47     ` Eric Biggers
2022-08-18  3:00       ` Elliott, Robert (Servers)
2022-08-18  4:28         ` Eric Biggers
2022-08-20 18:41     ` [PATCH v3 00/17] " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 01/17] crypto: Kconfig - move mips entries to a submenu Robert Elliott
2022-08-20 18:41       ` [PATCH v3 02/17] crypto: Kconfig - move powerpc " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 03/17] crypto: Kconfig - move s390 " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 04/17] crypto: Kconfig - move sparc " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 05/17] crypto: Kconfig - move x86 " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 06/17] crypto: Kconfig - remove AES_ARM64 ref by SA2UL Robert Elliott
2022-08-20 18:41       ` [PATCH v3 07/17] crypto: Kconfig - submenus for arm and arm64 Robert Elliott
2022-08-20 18:41       ` [PATCH v3 08/17] crypto: Kconfig - sort the arm64 entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 09/17] crypto: Kconfig - sort the arm entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 10/17] crypto: Kconfig - add submenus Robert Elliott
2022-08-20 18:41       ` [PATCH v3 11/17] crypto: Kconfig - simplify public-key entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 12/17] crypto: Kconfig - simplify CRC entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 13/17] crypto: Kconfig - simplify aead entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 14/17] crypto: Kconfig - simplify hash entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 15/17] crypto: Kconfig - simplify userspace entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 16/17] crypto: Kconfig - simplify cipher entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 17/17] crypto: Kconfig - simplify compression/RNG entries Robert Elliott
2022-08-26 11:08       ` [PATCH v3 00/17] crypto: Kconfig - simplify menus and help text Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220817232057.73643-11-elliott@hpe.com \
    --to=elliott@hpe.com \
    --cc=davem@davemloft.net \
    --cc=ebiggers@kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox