]>
Commit | Line | Data |
---|---|---|
a13947b2 QZ |
1 | /** @file\r |
2 | This library is used by other modules to measure Firmware to TPM.\r | |
3 | \r | |
4 | Copyright (c) 2020, Intel Corporation. All rights reserved. <BR>\r | |
5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
6 | \r | |
7 | **/\r | |
8 | \r | |
9 | #ifndef _TCG_EVENTLOGRECORD_LIB_H_\r | |
10 | #define _TCG_EVENTLOGRECORD_LIB_H_\r | |
11 | \r | |
12 | #include <Uefi.h>\r | |
13 | \r | |
14 | #pragma pack (1)\r | |
15 | \r | |
c411b485 | 16 | #define PLATFORM_FIRMWARE_BLOB_DESC "Fv(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)"\r |
a13947b2 | 17 | typedef struct {\r |
c411b485 MK |
18 | UINT8 BlobDescriptionSize;\r |
19 | UINT8 BlobDescription[sizeof (PLATFORM_FIRMWARE_BLOB_DESC)];\r | |
20 | EFI_PHYSICAL_ADDRESS BlobBase;\r | |
21 | UINT64 BlobLength;\r | |
a13947b2 QZ |
22 | } PLATFORM_FIRMWARE_BLOB2_STRUCT;\r |
23 | \r | |
24 | #define HANDOFF_TABLE_POINTER_DESC "1234567890ABCDEF"\r | |
25 | typedef struct {\r | |
c411b485 MK |
26 | UINT8 TableDescriptionSize;\r |
27 | UINT8 TableDescription[sizeof (HANDOFF_TABLE_POINTER_DESC)];\r | |
28 | UINT64 NumberOfTables;\r | |
29 | EFI_CONFIGURATION_TABLE TableEntry[1];\r | |
a13947b2 QZ |
30 | } HANDOFF_TABLE_POINTERS2_STRUCT;\r |
31 | \r | |
32 | #pragma pack ()\r | |
33 | \r | |
34 | /**\r | |
35 | Get the FvName from the FV header.\r | |
36 | \r | |
37 | Causion: The FV is untrusted input.\r | |
38 | \r | |
39 | @param[in] FvBase Base address of FV image.\r | |
40 | @param[in] FvLength Length of FV image.\r | |
41 | \r | |
42 | @return FvName pointer\r | |
43 | @retval NULL FvName is NOT found\r | |
44 | **/\r | |
45 | VOID *\r | |
46 | TpmMeasurementGetFvName (\r | |
c411b485 MK |
47 | IN EFI_PHYSICAL_ADDRESS FvBase,\r |
48 | IN UINT64 FvLength\r | |
a13947b2 QZ |
49 | );\r |
50 | \r | |
51 | /**\r | |
52 | Measure a FirmwareBlob.\r | |
53 | \r | |
54 | @param[in] PcrIndex PCR Index.\r | |
55 | @param[in] Description Description for this FirmwareBlob.\r | |
56 | @param[in] FirmwareBlobBase Base address of this FirmwareBlob.\r | |
57 | @param[in] FirmwareBlobLength Size in bytes of this FirmwareBlob.\r | |
58 | \r | |
59 | @retval EFI_SUCCESS Operation completed successfully.\r | |
60 | @retval EFI_UNSUPPORTED TPM device not available.\r | |
61 | @retval EFI_OUT_OF_RESOURCES Out of memory.\r | |
62 | @retval EFI_DEVICE_ERROR The operation was unsuccessful.\r | |
63 | */\r | |
64 | EFI_STATUS\r | |
65 | EFIAPI\r | |
66 | MeasureFirmwareBlob (\r | |
c411b485 MK |
67 | IN UINT32 PcrIndex,\r |
68 | IN CHAR8 *Description OPTIONAL,\r | |
69 | IN EFI_PHYSICAL_ADDRESS FirmwareBlobBase,\r | |
70 | IN UINT64 FirmwareBlobLength\r | |
a13947b2 QZ |
71 | );\r |
72 | \r | |
73 | /**\r | |
74 | Measure a HandoffTable.\r | |
75 | \r | |
76 | @param[in] PcrIndex PcrIndex of the measurement.\r | |
77 | @param[in] Description Description for this HandoffTable.\r | |
78 | @param[in] TableGuid GUID of this HandoffTable.\r | |
79 | @param[in] TableAddress Base address of this HandoffTable.\r | |
80 | @param[in] TableLength Size in bytes of this HandoffTable.\r | |
81 | \r | |
82 | @retval EFI_SUCCESS Operation completed successfully.\r | |
83 | @retval EFI_UNSUPPORTED TPM device not available.\r | |
84 | @retval EFI_OUT_OF_RESOURCES Out of memory.\r | |
85 | @retval EFI_DEVICE_ERROR The operation was unsuccessful.\r | |
86 | */\r | |
87 | EFI_STATUS\r | |
88 | EFIAPI\r | |
89 | MeasureHandoffTable (\r | |
c411b485 MK |
90 | IN UINT32 PcrIndex,\r |
91 | IN CHAR8 *Description OPTIONAL,\r | |
92 | IN EFI_GUID *TableGuid,\r | |
93 | IN VOID *TableAddress,\r | |
94 | IN UINTN TableLength\r | |
a13947b2 QZ |
95 | );\r |
96 | \r | |
97 | #endif\r |