mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
crypto: ahash - Set default reqsize from ahash_alg
Add a reqsize field to struct ahash_alg and use it to set the default reqsize so that algorithms with a static reqsize are not forced to create an init_tfm function. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
439963cdc3
commit
9e01aaa103
|
@ -879,6 +879,7 @@ static int crypto_ahash_init_tfm(struct crypto_tfm *tfm)
|
|||
struct ahash_alg *alg = crypto_ahash_alg(hash);
|
||||
|
||||
crypto_ahash_set_statesize(hash, alg->halg.statesize);
|
||||
crypto_ahash_set_reqsize(hash, alg->reqsize);
|
||||
|
||||
if (tfm->__crt_alg->cra_type == &crypto_shash_type)
|
||||
return crypto_init_ahash_using_shash(tfm);
|
||||
|
@ -1044,6 +1045,9 @@ static int ahash_prepare_alg(struct ahash_alg *alg)
|
|||
if (alg->halg.statesize == 0)
|
||||
return -EINVAL;
|
||||
|
||||
if (alg->reqsize && alg->reqsize < alg->halg.statesize)
|
||||
return -EINVAL;
|
||||
|
||||
err = hash_prepare_alg(&alg->halg);
|
||||
if (err)
|
||||
return err;
|
||||
|
|
|
@ -135,6 +135,7 @@ struct ahash_request {
|
|||
* This is a counterpart to @init_tfm, used to remove
|
||||
* various changes set in @init_tfm.
|
||||
* @clone_tfm: Copy transform into new object, may allocate memory.
|
||||
* @reqsize: Size of the request context.
|
||||
* @halg: see struct hash_alg_common
|
||||
*/
|
||||
struct ahash_alg {
|
||||
|
@ -151,6 +152,8 @@ struct ahash_alg {
|
|||
void (*exit_tfm)(struct crypto_ahash *tfm);
|
||||
int (*clone_tfm)(struct crypto_ahash *dst, struct crypto_ahash *src);
|
||||
|
||||
unsigned int reqsize;
|
||||
|
||||
struct hash_alg_common halg;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user