12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /** @file
- This library is used by other modules to measure Firmware to TPM.
- Copyright (c) 2020, Intel Corporation. All rights reserved. <BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef _TCG_EVENTLOGRECORD_LIB_H_
- #define _TCG_EVENTLOGRECORD_LIB_H_
- #include <Uefi.h>
- #pragma pack (1)
- #define PLATFORM_FIRMWARE_BLOB_DESC "Fv(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)"
- typedef struct {
- UINT8 BlobDescriptionSize;
- UINT8 BlobDescription[sizeof (PLATFORM_FIRMWARE_BLOB_DESC)];
- EFI_PHYSICAL_ADDRESS BlobBase;
- UINT64 BlobLength;
- } PLATFORM_FIRMWARE_BLOB2_STRUCT;
- #define HANDOFF_TABLE_POINTER_DESC "1234567890ABCDEF"
- typedef struct {
- UINT8 TableDescriptionSize;
- UINT8 TableDescription[sizeof (HANDOFF_TABLE_POINTER_DESC)];
- UINT64 NumberOfTables;
- EFI_CONFIGURATION_TABLE TableEntry[1];
- } HANDOFF_TABLE_POINTERS2_STRUCT;
- #pragma pack ()
- /**
- Get the FvName from the FV header.
- Causion: The FV is untrusted input.
- @param[in] FvBase Base address of FV image.
- @param[in] FvLength Length of FV image.
- @return FvName pointer
- @retval NULL FvName is NOT found
- **/
- VOID *
- TpmMeasurementGetFvName (
- IN EFI_PHYSICAL_ADDRESS FvBase,
- IN UINT64 FvLength
- );
- /**
- Measure a FirmwareBlob.
- @param[in] PcrIndex PCR Index.
- @param[in] Description Description for this FirmwareBlob.
- @param[in] FirmwareBlobBase Base address of this FirmwareBlob.
- @param[in] FirmwareBlobLength Size in bytes of this FirmwareBlob.
- @retval EFI_SUCCESS Operation completed successfully.
- @retval EFI_UNSUPPORTED TPM device not available.
- @retval EFI_OUT_OF_RESOURCES Out of memory.
- @retval EFI_DEVICE_ERROR The operation was unsuccessful.
- */
- EFI_STATUS
- EFIAPI
- MeasureFirmwareBlob (
- IN UINT32 PcrIndex,
- IN CHAR8 *Description OPTIONAL,
- IN EFI_PHYSICAL_ADDRESS FirmwareBlobBase,
- IN UINT64 FirmwareBlobLength
- );
- /**
- Measure a HandoffTable.
- @param[in] PcrIndex PcrIndex of the measurement.
- @param[in] Description Description for this HandoffTable.
- @param[in] TableGuid GUID of this HandoffTable.
- @param[in] TableAddress Base address of this HandoffTable.
- @param[in] TableLength Size in bytes of this HandoffTable.
- @retval EFI_SUCCESS Operation completed successfully.
- @retval EFI_UNSUPPORTED TPM device not available.
- @retval EFI_OUT_OF_RESOURCES Out of memory.
- @retval EFI_DEVICE_ERROR The operation was unsuccessful.
- */
- EFI_STATUS
- EFIAPI
- MeasureHandoffTable (
- IN UINT32 PcrIndex,
- IN CHAR8 *Description OPTIONAL,
- IN EFI_GUID *TableGuid,
- IN VOID *TableAddress,
- IN UINTN TableLength
- );
- #endif
|