mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
ubifs: use crypto_shash_tfm_digest() in ubifs_hmac_wkm()
Simplify ubifs_hmac_wkm() by using crypto_shash_tfm_digest() instead of an alloc+init+update+final sequence. This should also improve performance. Signed-off-by: Eric Biggers <ebiggers@google.com> Tested-by: Zhihao Cheng <chengzhihao1@huawei.com> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
861deac3b0
commit
738fadaa54
@ -507,28 +507,13 @@ out:
|
|||||||
*/
|
*/
|
||||||
int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac)
|
int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac)
|
||||||
{
|
{
|
||||||
SHASH_DESC_ON_STACK(shash, c->hmac_tfm);
|
|
||||||
int err;
|
|
||||||
const char well_known_message[] = "UBIFS";
|
const char well_known_message[] = "UBIFS";
|
||||||
|
|
||||||
if (!ubifs_authenticated(c))
|
if (!ubifs_authenticated(c))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
shash->tfm = c->hmac_tfm;
|
return crypto_shash_tfm_digest(c->hmac_tfm, well_known_message,
|
||||||
|
sizeof(well_known_message) - 1, hmac);
|
||||||
err = crypto_shash_init(shash);
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
err = crypto_shash_update(shash, well_known_message,
|
|
||||||
sizeof(well_known_message) - 1);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
err = crypto_shash_final(shash, hmac);
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user