mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-04-28 06:33:36 +02:00
added HMAC API error handling
Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
This commit is contained in:
parent
1e2934d9a3
commit
d61b9c0be7
24
src/evmctl.c
24
src/evmctl.c
@ -996,7 +996,11 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
|
|||||||
|
|
||||||
log_info("generation: %u\n", generation);
|
log_info("generation: %u\n", generation);
|
||||||
|
|
||||||
HMAC_Init(&ctx, evmkey, sizeof(evmkey), EVP_sha1());
|
err = HMAC_Init(&ctx, evmkey, sizeof(evmkey), EVP_sha1());
|
||||||
|
if (!err) {
|
||||||
|
log_errno("HMAC_Init() failed");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
for (xattrname = evm_config_xattrnames; *xattrname != NULL; xattrname++) {
|
for (xattrname = evm_config_xattrnames; *xattrname != NULL; xattrname++) {
|
||||||
err = getxattr(file, *xattrname, xattr_value, sizeof(xattr_value));
|
err = getxattr(file, *xattrname, xattr_value, sizeof(xattr_value));
|
||||||
@ -1007,7 +1011,11 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
|
|||||||
/*log_debug("name: %s, value: %s, size: %d\n", *xattrname, xattr_value, err);*/
|
/*log_debug("name: %s, value: %s, size: %d\n", *xattrname, xattr_value, err);*/
|
||||||
log_info("name: %s, size: %d\n", *xattrname, err);
|
log_info("name: %s, size: %d\n", *xattrname, err);
|
||||||
log_debug_dump(xattr_value, err);
|
log_debug_dump(xattr_value, err);
|
||||||
HMAC_Update(&ctx, xattr_value, err);
|
err = HMAC_Update(&ctx, xattr_value, err);
|
||||||
|
if (!err) {
|
||||||
|
log_errno("HMAC_Update() failed");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&hmac_misc, 0, sizeof(hmac_misc));
|
memset(&hmac_misc, 0, sizeof(hmac_misc));
|
||||||
@ -1017,8 +1025,16 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
|
|||||||
hmac_misc.gid = st.st_gid;
|
hmac_misc.gid = st.st_gid;
|
||||||
hmac_misc.mode = st.st_mode;
|
hmac_misc.mode = st.st_mode;
|
||||||
|
|
||||||
HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc));
|
err = HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc));
|
||||||
HMAC_Final(&ctx, hash, &mdlen);
|
if (!err) {
|
||||||
|
log_errno("HMAC_Update() failed");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
err = HMAC_Final(&ctx, hash, &mdlen);
|
||||||
|
if (!err) {
|
||||||
|
log_errno("HMAC_Final() failed");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
HMAC_CTX_cleanup(&ctx);
|
HMAC_CTX_cleanup(&ctx);
|
||||||
|
|
||||||
free(key);
|
free(key);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user