]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ubifs: use crypto_shash_tfm_digest() in ubifs_hmac_wkm()
authorEric Biggers <ebiggers@google.com>
Sun, 29 Oct 2023 05:03:55 +0000 (22:03 -0700)
committerRichard Weinberger <richard@nod.at>
Fri, 5 Jan 2024 15:29:53 +0000 (16:29 +0100)
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>
fs/ubifs/auth.c

index 0d561ecb686943e7063c167ba096030bb95b8e3d..5c414d896c9bd48bfec69c0d13e49b208f932fe7 100644 (file)
@@ -507,28 +507,13 @@ out:
  */
 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";
 
        if (!ubifs_authenticated(c))
                return 0;
 
-       shash->tfm = c->hmac_tfm;
-
-       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;
+       return crypto_shash_tfm_digest(c->hmac_tfm, well_known_message,
+                                      sizeof(well_known_message) - 1, hmac);
 }
 
 /*