Re: [PATCH] crypto: expose needs_key in procfs

From: Eric Biggers
Date: Tue Mar 02 2021 - 01:42:06 EST


On Mon, Mar 01, 2021 at 05:59:17PM +0100, Christoph Böhmwalder wrote:
> Currently, it is not apparent for userspace users which hash algorithms
> require a key and which don't. We have /proc/crypto, so add a field
> with this information there.
>
> Signed-off-by: Christoph Böhmwalder <christoph.boehmwalder@xxxxxxxxxx>
>
> ---
> crypto/shash.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/crypto/shash.c b/crypto/shash.c
> index 2e3433ad9762..d3127a0618f2 100644
> --- a/crypto/shash.c
> +++ b/crypto/shash.c
> @@ -477,6 +477,9 @@ static void crypto_shash_show(struct seq_file *m, struct crypto_alg *alg)
> seq_printf(m, "type : shash\n");
> seq_printf(m, "blocksize : %u\n", alg->cra_blocksize);
> seq_printf(m, "digestsize : %u\n", salg->digestsize);
> + seq_printf(m, "needs key : %s\n",
> + crypto_shash_alg_needs_key(salg) ?
> + "yes" : "no");
> }
>

Do you have a specific use case in mind for this information? Normally, users
should already know which algorithm they want to use (or set of algorithms they
might want to use).

Also, what about algorithms of type "ahash"? Shouldn't this field be added for
them too?

Also, what about algorithms such as blake2b-256 which optionally take a key (as
indicated by CRYPTO_ALG_OPTIONAL_KEY being set)? So it's not really "yes" or
"no"; there is a third state as well.

- Eric