mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-20 12:14:27 +02:00
SecurityPkg/PeiTpmMeasurementLib: Add PEI instance.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2841 Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Qi Zhang <qi1.zhang@intel.com> Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Qi Zhang <qi1.zhang@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
parent
1f6fe5cb03
commit
98625337e4
@ -0,0 +1,74 @@
|
|||||||
|
/** @file
|
||||||
|
This library is used by other modules to measure data to TPM.
|
||||||
|
|
||||||
|
Copyright (c) 2020, Intel Corporation. All rights reserved. <BR>
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <PiPei.h>
|
||||||
|
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Library/PeiServicesLib.h>
|
||||||
|
#include <Library/PeiServicesTablePointerLib.h>
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/HobLib.h>
|
||||||
|
#include <Library/TpmMeasurementLib.h>
|
||||||
|
|
||||||
|
#include <Ppi/Tcg.h>
|
||||||
|
#include <IndustryStandard/UefiTcgPlatform.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
Tpm measure and log data, and extend the measurement result into a specific PCR.
|
||||||
|
|
||||||
|
@param[in] PcrIndex PCR Index.
|
||||||
|
@param[in] EventType Event type.
|
||||||
|
@param[in] EventLog Measurement event log.
|
||||||
|
@param[in] LogLen Event log length in bytes.
|
||||||
|
@param[in] HashData The start of the data buffer to be hashed, extended.
|
||||||
|
@param[in] HashDataLen The length, in bytes, of the buffer referenced by HashData
|
||||||
|
|
||||||
|
@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
|
||||||
|
TpmMeasureAndLogData (
|
||||||
|
IN UINT32 PcrIndex,
|
||||||
|
IN UINT32 EventType,
|
||||||
|
IN VOID *EventLog,
|
||||||
|
IN UINT32 LogLen,
|
||||||
|
IN VOID *HashData,
|
||||||
|
IN UINT64 HashDataLen
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EDKII_TCG_PPI *TcgPpi;
|
||||||
|
TCG_PCR_EVENT_HDR TcgEventHdr;
|
||||||
|
|
||||||
|
Status = PeiServicesLocatePpi (
|
||||||
|
&gEdkiiTcgPpiGuid,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
(VOID**)&TcgPpi
|
||||||
|
);
|
||||||
|
if (EFI_ERROR(Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
TcgEventHdr.PCRIndex = PcrIndex;
|
||||||
|
TcgEventHdr.EventType = EventType;
|
||||||
|
TcgEventHdr.EventSize = LogLen;
|
||||||
|
|
||||||
|
Status = TcgPpi->HashLogExtendEvent (
|
||||||
|
TcgPpi,
|
||||||
|
0,
|
||||||
|
HashData,
|
||||||
|
(UINTN)HashDataLen,
|
||||||
|
&TcgEventHdr,
|
||||||
|
EventLog
|
||||||
|
);
|
||||||
|
return Status;
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
## @file
|
||||||
|
# Provides TPM measurement functions for TPM1.2 and TPM 2.0
|
||||||
|
#
|
||||||
|
# This library provides TpmMeasureAndLogData() to measure and log data, and
|
||||||
|
# extend the measurement result into a specific PCR.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = PeiTpmMeasurementLib
|
||||||
|
FILE_GUID = 9A62C49D-C45A-4322-9F3C-45958DF0056B
|
||||||
|
MODULE_TYPE = PEIM
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = TpmMeasurementLib|PEIM
|
||||||
|
MODULE_UNI_FILE = PeiTpmMeasurementLib.uni
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
PeiTpmMeasurementLib.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
|
SecurityPkg/SecurityPkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
BaseLib
|
||||||
|
BaseMemoryLib
|
||||||
|
HobLib
|
||||||
|
DebugLib
|
||||||
|
PcdLib
|
||||||
|
PrintLib
|
||||||
|
PeiServicesLib
|
||||||
|
PeiServicesTablePointerLib
|
||||||
|
|
||||||
|
[Ppis]
|
||||||
|
gEdkiiTcgPpiGuid ## CONSUMES
|
||||||
|
|
||||||
|
[Depex]
|
||||||
|
gEfiPeiMasterBootModePpiGuid AND
|
||||||
|
gEfiTpmDeviceSelectedGuid
|
@ -0,0 +1,17 @@
|
|||||||
|
// /** @file
|
||||||
|
// Provides TPM measurement functions for TPM1.2 and TPM 2.0
|
||||||
|
//
|
||||||
|
// This library provides TpmMeasureAndLogData() to to measure and log data, and
|
||||||
|
// extend the measurement result into a specific PCR.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
//
|
||||||
|
// **/
|
||||||
|
|
||||||
|
|
||||||
|
#string STR_MODULE_ABSTRACT #language en-US "Provides TPM measurement functions for TPM1.2 and TPM 2.0"
|
||||||
|
|
||||||
|
#string STR_MODULE_DESCRIPTION #language en-US "This library provides TpmMeasureAndLogData() to to measure and log data, and extend the measurement result into a specific PCR."
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user