mirror of https://github.com/acidanthera/audk.git
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…
Reference in New Issue