summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2016-07-12 05:17:33 (GMT)
committerHerbert Xu <herbert@gondor.apana.org.au>2016-07-18 09:35:38 (GMT)
commit7a530aa9cf3f282b6b123b9296dfce80ed8f068e (patch)
tree79da5ff76d31f64f052f684663d69c331b85d98b /crypto
parenta0129733a3f5eaa973c1ea76848d905b851548f1 (diff)
downloadlinux-7a530aa9cf3f282b6b123b9296dfce80ed8f068e.tar.xz
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')
-rw-r--r--crypto/aead.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/crypto/aead.c b/crypto/aead.c
index 9b18a1e..b155cbc 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;