aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security/integrity/evm/evm_crypto.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/security/integrity/evm/evm_crypto.c b/security/integrity/evm/evm_crypto.c
index 5dd5b140242c..4ad657d88097 100644
--- a/security/integrity/evm/evm_crypto.c
+++ b/security/integrity/evm/evm_crypto.c
@@ -41,6 +41,12 @@ static struct shash_desc *init_desc(void)
41 hmac_tfm = NULL; 41 hmac_tfm = NULL;
42 return ERR_PTR(rc); 42 return ERR_PTR(rc);
43 } 43 }
44 rc = crypto_shash_setkey(hmac_tfm, evmkey, evmkey_len);
45 if (rc) {
46 crypto_free_shash(hmac_tfm);
47 hmac_tfm = NULL;
48 return ERR_PTR(rc);
49 }
44 } 50 }
45 51
46 desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac_tfm), 52 desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac_tfm),
@@ -51,11 +57,7 @@ static struct shash_desc *init_desc(void)
51 desc->tfm = hmac_tfm; 57 desc->tfm = hmac_tfm;
52 desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP; 58 desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
53 59
54 rc = crypto_shash_setkey(hmac_tfm, evmkey, evmkey_len);
55 if (rc)
56 goto out;
57 rc = crypto_shash_init(desc); 60 rc = crypto_shash_init(desc);
58out:
59 if (rc) { 61 if (rc) {
60 kfree(desc); 62 kfree(desc);
61 return ERR_PTR(rc); 63 return ERR_PTR(rc);