1
0
mirror of https://git.code.sf.net/p/linux-ima/ima-evm-utils synced 2025-04-27 22:32:31 +02:00

added HMAC API error handling

Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
This commit is contained in:
Dmitry Kasatkin 2012-04-04 16:48:16 +03:00
parent 1e2934d9a3
commit d61b9c0be7

View File

@ -996,7 +996,11 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
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++) {
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_info("name: %s, size: %d\n", *xattrname, 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));
@ -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.mode = st.st_mode;
HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc));
HMAC_Final(&ctx, hash, &mdlen);
err = HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc));
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);
free(key);