crypto: aead - Do not allow authsize=0 if auth. alg has digestsize>0

Return -EINVAL on an attempt to set the authsize to 0 with an auth.
algorithm with a non-zero digestsize (i.e. anything but digest_null)
as authenticating the data and then throwing away the result does not
make any sense at all.

The digestsize zero exception is for use with digest_null for testing
purposes only.

Signed-off-by: Pascal van Leeuwen <pvanleeuwen@verimatrix.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Pascal van Leeuwen 2019-08-09 17:51:07 +02:00 committed by Herbert Xu
parent 440dc9aab5
commit a62084d299
1 changed files with 2 additions and 1 deletions

View File

@ -70,7 +70,8 @@ int crypto_aead_setauthsize(struct crypto_aead *tfm, unsigned int authsize)
{ {
int err; int err;
if (authsize > crypto_aead_maxauthsize(tfm)) if ((!authsize && crypto_aead_maxauthsize(tfm)) ||
authsize > crypto_aead_maxauthsize(tfm))
return -EINVAL; return -EINVAL;
if (crypto_aead_alg(tfm)->setauthsize) { if (crypto_aead_alg(tfm)->setauthsize) {