diff --git a/tpm.c b/tpm.c index 88920bb..99486b1 100644 --- a/tpm.c +++ b/tpm.c @@ -110,7 +110,7 @@ EFI_STATUS tpm_log_event(EFI_PHYSICAL_ADDRESS buf, UINTN size, UINT8 pcr, event->Header.HeaderSize = sizeof(EFI_TCG2_EVENT_HEADER); event->Header.HeaderVersion = 1; event->Header.PCRIndex = pcr; - event->Header.EventType = 0x0d; + event->Header.EventType = EV_IPL; event->Size = sizeof(*event) - sizeof(event->Event) + strlen(description) + 1; memcpy(event->Event, description, strlen(description) + 1); status = uefi_call_wrapper(tpm2->hash_log_extend_event, 5, tpm2, @@ -119,7 +119,7 @@ EFI_STATUS tpm_log_event(EFI_PHYSICAL_ADDRESS buf, UINTN size, UINT8 pcr, return status; } else { TCG_PCR_EVENT *event; - UINT32 algorithm, eventnum = 0; + UINT32 eventnum = 0; EFI_PHYSICAL_ADDRESS lastevent; status = LibLocateProtocol(&tpm_guid, (VOID **)&tpm); @@ -138,11 +138,10 @@ EFI_STATUS tpm_log_event(EFI_PHYSICAL_ADDRESS buf, UINTN size, UINT8 pcr, } event->PCRIndex = pcr; - event->EventType = 0x0d; + event->EventType = EV_IPL; event->EventSize = strlen(description) + 1; - algorithm = 0x00000004; status = uefi_call_wrapper(tpm->log_extend_event, 7, tpm, buf, - (UINT64)size, algorithm, event, + (UINT64)size, TPM_ALG_SHA, event, &eventnum, &lastevent); FreePool(event); return status; diff --git a/tpm.h b/tpm.h index 7c83644..27cb418 100644 --- a/tpm.h +++ b/tpm.h @@ -1,6 +1,9 @@ #define EFI_TPM_GUID {0xf541796d, 0xa62e, 0x4954, {0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd }}; #define EFI_TPM2_GUID {0x607f766c, 0x7455, 0x42be, {0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f }}; +#define TPM_ALG_SHA 0x00000004 +#define EV_IPL 0x0000000d + EFI_STATUS tpm_log_event(EFI_PHYSICAL_ADDRESS buf, UINTN size, UINT8 pcr, const CHAR8 *description);