projects
/
profile
/
ivi
/
kernel-x86-ivi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
evm: key must be set once during initialization
[profile/ivi/kernel-x86-ivi.git]
/
security
/
integrity
/
evm
/
evm_crypto.c
diff --git
a/security/integrity/evm/evm_crypto.c
b/security/integrity/evm/evm_crypto.c
index
847a2d7
..
3b9f5a0
100644
(file)
--- a/
security/integrity/evm/evm_crypto.c
+++ b/
security/integrity/evm/evm_crypto.c
@@
-52,6
+52,14
@@
static struct shash_desc *init_desc(const char type)
*tfm = NULL;
return ERR_PTR(rc);
}
*tfm = NULL;
return ERR_PTR(rc);
}
+ if (type == EVM_XATTR_HMAC) {
+ rc = crypto_shash_setkey(*tfm, evmkey, evmkey_len);
+ if (rc) {
+ crypto_free_shash(*tfm);
+ *tfm = NULL;
+ return ERR_PTR(rc);
+ }
+ }
}
desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(*tfm),
}
desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(*tfm),
@@
-62,14
+70,7
@@
static struct shash_desc *init_desc(const char type)
desc->tfm = *tfm;
desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
desc->tfm = *tfm;
desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
- if (type == EVM_XATTR_HMAC) {
- rc = crypto_shash_setkey(*tfm, evmkey, evmkey_len);
- if (rc)
- goto out;
- }
-
rc = crypto_shash_init(desc);
rc = crypto_shash_init(desc);
-out:
if (rc) {
kfree(desc);
return ERR_PTR(rc);
if (rc) {
kfree(desc);
return ERR_PTR(rc);