summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2015-05-22 16:30:48 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2015-05-25 18:41:25 +0800
commit30e4c010aefdbb81b2aaf64758850432eb289f47 (patch)
tree430936c4d6c4aa50c14d3d37c438c54f73a526fd /crypto
parent445a8e0df3ef80f3696014187a463d6c0772331b (diff)
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')
-rw-r--r--crypto/aead.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/crypto/aead.c b/crypto/aead.c
index 5fa992ac219c..c1f73a9672a6 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)