summaryrefslogtreecommitdiff
path: root/crypto/aead.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2015-05-22 08:30:48 (GMT)
committerHerbert Xu <herbert@gondor.apana.org.au>2015-05-25 10:41:25 (GMT)
commit30e4c010aefdbb81b2aaf64758850432eb289f47 (patch)
tree430936c4d6c4aa50c14d3d37c438c54f73a526fd /crypto/aead.c
parent445a8e0df3ef80f3696014187a463d6c0772331b (diff)
downloadlinux-30e4c010aefdbb81b2aaf64758850432eb289f47.tar.xz
crypto: aead - Add crypto_aead_alg_ivsize/maxauthsize
AEAD algorithm implementors need to figure out a given algorithm's IV size and maximum authentication size. During the transition this is difficult to do as an algorithm could be new style or old style. This patch creates two helpers to make this easier. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/aead.c')
-rw-r--r--crypto/aead.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/crypto/aead.c b/crypto/aead.c
index 5fa992a..c1f73a9 100644
--- a/crypto/aead.c
+++ b/crypto/aead.c
@@ -69,7 +69,7 @@ int crypto_aead_setauthsize(struct crypto_aead *tfm, unsigned int authsize)
{
int err;
- if (authsize > tfm->maxauthsize)
+ if (authsize > crypto_aead_maxauthsize(tfm))
return -EINVAL;
if (tfm->setauthsize) {
@@ -162,8 +162,6 @@ static int crypto_old_aead_init_tfm(struct crypto_tfm *tfm)
crt->givdecrypt = aead_null_givdecrypt;
}
crt->child = __crypto_aead_cast(tfm);
- crt->ivsize = alg->ivsize;
- crt->maxauthsize = alg->maxauthsize;
crt->authsize = alg->maxauthsize;
return 0;
@@ -182,8 +180,6 @@ static int crypto_aead_init_tfm(struct crypto_tfm *tfm)
aead->encrypt = alg->encrypt;
aead->decrypt = alg->decrypt;
aead->child = __crypto_aead_cast(tfm);
- aead->ivsize = alg->ivsize;
- aead->maxauthsize = alg->maxauthsize;
aead->authsize = alg->maxauthsize;
return 0;
@@ -418,13 +414,8 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
alg = crypto_spawn_aead_alg(spawn);
- if (alg->base.cra_aead.encrypt) {
- ivsize = alg->base.cra_aead.ivsize;
- maxauthsize = alg->base.cra_aead.maxauthsize;
- } else {
- ivsize = alg->ivsize;
- maxauthsize = alg->maxauthsize;
- }
+ ivsize = crypto_aead_alg_ivsize(alg);
+ maxauthsize = crypto_aead_alg_maxauthsize(alg);
err = -EINVAL;
if (!ivsize)