diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2015-05-22 10:30:48 +0200 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-05-25 12:41:25 +0200 |
commit | 30e4c010aefdbb81b2aaf64758850432eb289f47 (patch) | |
tree | 430936c4d6c4aa50c14d3d37c438c54f73a526fd /crypto/aead.c | |
parent | crypto: testmgr - Added one larger ghash testvector (400 bytes) to the testmgr. (diff) | |
download | linux-30e4c010aefdbb81b2aaf64758850432eb289f47.tar.xz linux-30e4c010aefdbb81b2aaf64758850432eb289f47.zip |
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.c | 15 |
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) |