Skip to content

Commit

Permalink
crypto: hash - Require export/import in ahash
Browse files Browse the repository at this point in the history
Export and import are mandatory in async hash. As drivers were
rewritten, drop empty wrappers and correct init of ahash transformation.

Signed-off-by: Kamil Konieczny <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
Kamil Konieczny authored and herbertx committed Feb 15, 2018
1 parent f1b2981 commit 6f221f7
Showing 1 changed file with 2 additions and 16 deletions.
18 changes: 2 additions & 16 deletions crypto/ahash.c
Original file line number Diff line number Diff line change
Expand Up @@ -446,24 +446,12 @@ static int ahash_def_finup(struct ahash_request *req)
return ahash_def_finup_finish1(req, err);
}

static int ahash_no_export(struct ahash_request *req, void *out)
{
return -ENOSYS;
}

static int ahash_no_import(struct ahash_request *req, const void *in)
{
return -ENOSYS;
}

static int crypto_ahash_init_tfm(struct crypto_tfm *tfm)
{
struct crypto_ahash *hash = __crypto_ahash_cast(tfm);
struct ahash_alg *alg = crypto_ahash_alg(hash);

hash->setkey = ahash_nosetkey;
hash->export = ahash_no_export;
hash->import = ahash_no_import;

if (tfm->__crt_alg->cra_type != &crypto_ahash_type)
return crypto_init_shash_ops_async(tfm);
Expand All @@ -473,16 +461,14 @@ static int crypto_ahash_init_tfm(struct crypto_tfm *tfm)
hash->final = alg->final;
hash->finup = alg->finup ?: ahash_def_finup;
hash->digest = alg->digest;
hash->export = alg->export;
hash->import = alg->import;

if (alg->setkey) {
hash->setkey = alg->setkey;
if (!(alg->halg.base.cra_flags & CRYPTO_ALG_OPTIONAL_KEY))
crypto_ahash_set_flags(hash, CRYPTO_TFM_NEED_KEY);
}
if (alg->export)
hash->export = alg->export;
if (alg->import)
hash->import = alg->import;

return 0;
}
Expand Down

0 comments on commit 6f221f7

Please sign in to comment.