summaryrefslogtreecommitdiffstats
path: root/crypto/aead.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2016-07-12 13:17:33 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2016-07-18 17:35:38 +0800
commit7a530aa9cf3f282b6b123b9296dfce80ed8f068e (patch)
tree79da5ff76d31f64f052f684663d69c331b85d98b /crypto/aead.c
parenta0129733a3f5eaa973c1ea76848d905b851548f1 (diff)
downloadlinux-7a530aa9cf3f282b6b123b9296dfce80ed8f068e.tar.bz2
crypto: aead - Add chunk size
This patch adds a chunk size parameter to aead algorithms, just like the chunk size for skcipher algorithms. However, unlike skcipher we do not currently export this to AEAD users. It is only meant to be used by AEAD implementors for now. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/aead.c')
-rw-r--r--crypto/aead.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/crypto/aead.c b/crypto/aead.c
index 9b18a1e40d6a..b155cbc3a0dd 100644
--- a/crypto/aead.c
+++ b/crypto/aead.c
@@ -346,9 +346,13 @@ static int aead_prepare_alg(struct aead_alg *alg)
{
struct crypto_alg *base = &alg->base;
- if (max(alg->maxauthsize, alg->ivsize) > PAGE_SIZE / 8)
+ if (max3(alg->maxauthsize, alg->ivsize, alg->chunksize) >
+ PAGE_SIZE / 8)
return -EINVAL;
+ if (!alg->chunksize)
+ alg->chunksize = base->cra_blocksize;
+
base->cra_type = &crypto_aead_type;
base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
base->cra_flags |= CRYPTO_ALG_TYPE_AEAD;