[PATCH] tpmevlogdump: add pcr_index usage
Ivan Hu
ivan.hu at canonical.com
Tue Jul 14 06:29:38 UTC 2020
Base on "TCG PC Client Specific Platform Firmware Profile Specification"
table 1.
https://trustedcomputinggroup.org/resource/pc-client-specific-platform-firmware-profile-specification/
Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
src/tpm/tpmevlogdump/tpmevlogdump.c | 60 ++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 2 deletions(-)
diff --git a/src/tpm/tpmevlogdump/tpmevlogdump.c b/src/tpm/tpmevlogdump/tpmevlogdump.c
index 998b48eb..dd5e3a5b 100644
--- a/src/tpm/tpmevlogdump/tpmevlogdump.c
+++ b/src/tpm/tpmevlogdump/tpmevlogdump.c
@@ -198,6 +198,60 @@ static uint8_t tpmevlogdump_get_hash_size (TPM2_ALG_ID hash)
return sz;
}
+static char *tpmevlogdump_pcrindex_to_string (uint32_t pcr)
+{
+
+ char *str;
+
+ switch (pcr) {
+ case 0:
+ str = "SRTM, BIOS, Host Platform Extensions, Embedded Option ROMs and PI Drivers";
+ break;
+ case 1:
+ str = "Host Platform Configuration";
+ break;
+ case 2:
+ str = "UEFI driver and application Code";
+ break;
+ case 3:
+ str = "UEFI driver and application Configuration and Data";
+ break;
+ case 4:
+ str = "UEFI Boot Manager Code and Boot Attempts";
+ break;
+ case 5:
+ str = "Boot Manager Code Configuration and Data and GPT/Partition Table";
+ break;
+ case 6:
+ str = "Host Platform Manufacturer Specific";
+ break;
+ case 7:
+ str = "Secure Boot Policy";
+ break;
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ str = "Defined for use by the Static OS";
+ break;
+ case 16:
+ str = "Debug";
+ break;
+ case 23:
+ str = "Application Support";
+ break;
+ default:
+ str = "Unknown";
+ break;
+ }
+
+ return str;
+}
+
static size_t tpmevlogdump_specid_event_dump(fwts_framework *fw, uint8_t *data, size_t len)
{
@@ -212,7 +266,8 @@ static size_t tpmevlogdump_specid_event_dump(fwts_framework *fw, uint8_t *data,
return 0;
}
fwts_pc_client_pcr_event *pc_event = (fwts_pc_client_pcr_event *)pdata;
- fwts_log_info_verbatim(fw, "PCRIndex: 0x%8.8" PRIx32, pc_event->pcr_index);
+ str_info = tpmevlogdump_pcrindex_to_string(pc_event->pcr_index);
+ fwts_log_info_verbatim(fw, "PCRIndex: 0x%8.8" PRIx32 "(%s)", pc_event->pcr_index, str_info);
str_info = tpmevlogdump_evtype_to_string(pc_event->event_type);
fwts_log_info_verbatim(fw, "EventType: 0x%8.8" PRIx32 "(%s)", pc_event->event_type, str_info);
tpmevlogdump_data_hexdump(fw, pc_event->digest, sizeof(pc_event->digest), "Digest");
@@ -283,7 +338,8 @@ static size_t tpmevlogdump_event_v2_dump(fwts_framework *fw, uint8_t *data, size
return 0;
}
fwts_tcg_pcr_event2 *pcr_event2 = (fwts_tcg_pcr_event2 *)pdata;
- fwts_log_info_verbatim(fw, "PCRIndex: 0x%8.8" PRIx32, pcr_event2->pcr_index);
+ str_info = tpmevlogdump_pcrindex_to_string(pcr_event2->pcr_index);
+ fwts_log_info_verbatim(fw, "PCRIndex: 0x%8.8" PRIx32 "(%s)", pcr_event2->pcr_index, str_info);
str_info = tpmevlogdump_evtype_to_string(pcr_event2->event_type);
fwts_log_info_verbatim(fw, "EventType: 0x%8.8" PRIx32 "(%s)", pcr_event2->event_type, str_info);
fwts_log_info_verbatim(fw, "Digests Count : 0x%8.8" PRIx32, pcr_event2->digests_count);
--
2.17.1
More information about the fwts-devel
mailing list