mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
crypto: shash - Move finup/digest null checks to registration time
This patch moves the run-time null finup/digest checks to the shash_prepare_alg function which is run at registration time. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
99d27e1c59
commit
8267adab94
1 changed files with 6 additions and 4 deletions
|
@ -142,8 +142,7 @@ int crypto_shash_finup(struct shash_desc *desc, const u8 *data,
|
||||||
struct shash_alg *shash = crypto_shash_alg(tfm);
|
struct shash_alg *shash = crypto_shash_alg(tfm);
|
||||||
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
||||||
|
|
||||||
if (((unsigned long)data | (unsigned long)out) & alignmask ||
|
if (((unsigned long)data | (unsigned long)out) & alignmask)
|
||||||
!shash->finup)
|
|
||||||
return shash_finup_unaligned(desc, data, len, out);
|
return shash_finup_unaligned(desc, data, len, out);
|
||||||
|
|
||||||
return shash->finup(desc, data, len, out);
|
return shash->finup(desc, data, len, out);
|
||||||
|
@ -164,8 +163,7 @@ int crypto_shash_digest(struct shash_desc *desc, const u8 *data,
|
||||||
struct shash_alg *shash = crypto_shash_alg(tfm);
|
struct shash_alg *shash = crypto_shash_alg(tfm);
|
||||||
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
||||||
|
|
||||||
if (((unsigned long)data | (unsigned long)out) & alignmask ||
|
if (((unsigned long)data | (unsigned long)out) & alignmask)
|
||||||
!shash->digest)
|
|
||||||
return shash_digest_unaligned(desc, data, len, out);
|
return shash_digest_unaligned(desc, data, len, out);
|
||||||
|
|
||||||
return shash->digest(desc, data, len, out);
|
return shash->digest(desc, data, len, out);
|
||||||
|
@ -488,6 +486,10 @@ static int shash_prepare_alg(struct shash_alg *alg)
|
||||||
base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
|
base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
|
||||||
base->cra_flags |= CRYPTO_ALG_TYPE_SHASH;
|
base->cra_flags |= CRYPTO_ALG_TYPE_SHASH;
|
||||||
|
|
||||||
|
if (!alg->finup)
|
||||||
|
alg->finup = shash_finup_unaligned;
|
||||||
|
if (!alg->digest)
|
||||||
|
alg->digest = shash_digest_unaligned;
|
||||||
if (!alg->import)
|
if (!alg->import)
|
||||||
alg->import = shash_no_import;
|
alg->import = shash_no_import;
|
||||||
if (!alg->export)
|
if (!alg->export)
|
||||||
|
|
Loading…
Reference in a new issue