ima: extend the measurement entry specific pcr
Extend the PCR supplied as a parameter, instead of assuming that the measurement entry uses the default configured PCR. Signed-off-by: Eric Richter <erichte@linux.vnet.ibm.com> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
This commit is contained in:
@@ -90,14 +90,14 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ima_pcr_extend(const u8 *hash)
|
static int ima_pcr_extend(const u8 *hash, int pcr)
|
||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
if (!ima_used_chip)
|
if (!ima_used_chip)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
result = tpm_pcr_extend(TPM_ANY_NUM, CONFIG_IMA_MEASURE_PCR_IDX, hash);
|
result = tpm_pcr_extend(TPM_ANY_NUM, pcr, hash);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
pr_err("Error Communicating to TPM chip, result: %d\n", result);
|
pr_err("Error Communicating to TPM chip, result: %d\n", result);
|
||||||
return result;
|
return result;
|
||||||
@@ -136,7 +136,7 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
|
|||||||
if (violation) /* invalidate pcr */
|
if (violation) /* invalidate pcr */
|
||||||
memset(digest, 0xff, sizeof(digest));
|
memset(digest, 0xff, sizeof(digest));
|
||||||
|
|
||||||
tpmresult = ima_pcr_extend(digest);
|
tpmresult = ima_pcr_extend(digest, entry->pcr);
|
||||||
if (tpmresult != 0) {
|
if (tpmresult != 0) {
|
||||||
snprintf(tpm_audit_cause, AUDIT_CAUSE_LEN_MAX, "TPM_error(%d)",
|
snprintf(tpm_audit_cause, AUDIT_CAUSE_LEN_MAX, "TPM_error(%d)",
|
||||||
tpmresult);
|
tpmresult);
|
||||||
|
Reference in New Issue
Block a user