mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-21 20:54:29 +02:00
UefiCpuPkg: Add NULL TdxMeasurementLib instance
Add NULL instance of TdxMeasurementLib. Cc: Ray Ni <ray.ni@intel.com> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Min Xu <min.m.xu@intel.com> Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
This commit is contained in:
parent
94bfc6f0cb
commit
d97f530413
@ -0,0 +1,85 @@
|
|||||||
|
/** @file
|
||||||
|
NULL instance of TdxMeasurementLib
|
||||||
|
Copyright (c) 2025, Intel Corporation. All rights reserved.<BR>
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <Base.h>
|
||||||
|
#include <PiPei.h>
|
||||||
|
#include <Library/TdxMeasurementLib.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
According to UEFI Spec 2.10 Section 38.4.1:
|
||||||
|
The following table shows the TPM PCR index mapping and CC event log measurement
|
||||||
|
register index interpretation for Intel TDX, where MRTD means Trust Domain Measurement
|
||||||
|
Register and RTMR means Runtime Measurement Register
|
||||||
|
// TPM PCR Index | CC Measurement Register Index | TDX-measurement register
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// 0 | 0 | MRTD
|
||||||
|
// 1, 7 | 1 | RTMR[0]
|
||||||
|
// 2~6 | 2 | RTMR[1]
|
||||||
|
// 8~15 | 3 | RTMR[2]
|
||||||
|
@param[in] PCRIndex Index of the TPM PCR
|
||||||
|
@retval UINT32 Index of the CC Event Log Measurement Register Index
|
||||||
|
@retval CC_MR_INDEX_INVALID Invalid MR Index
|
||||||
|
**/
|
||||||
|
UINT32
|
||||||
|
EFIAPI
|
||||||
|
TdxMeasurementMapPcrToMrIndex (
|
||||||
|
IN UINT32 PCRIndex
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return CC_MR_INDEX_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the sha384 of input Data and extend it to RTMR register.
|
||||||
|
*
|
||||||
|
* @param RtmrIndex Index of the RTMR register
|
||||||
|
* @param DataToHash Data to be hashed
|
||||||
|
* @param DataToHashLen Length of the data
|
||||||
|
* @param Digest Hash value of the input data
|
||||||
|
* @param DigestLen Length of the hash value
|
||||||
|
*
|
||||||
|
* @retval EFI_SUCCESS Successfully hash and extend to RTMR
|
||||||
|
* @retval Others Other errors as indicated
|
||||||
|
*/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
TdxMeasurementHashAndExtendToRtmr (
|
||||||
|
IN UINT32 RtmrIndex,
|
||||||
|
IN VOID *DataToHash,
|
||||||
|
IN UINTN DataToHashLen,
|
||||||
|
OUT UINT8 *Digest,
|
||||||
|
IN UINTN DigestLen
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build GuidHob for Tdx CC measurement event.
|
||||||
|
*
|
||||||
|
* @param RtmrIndex RTMR index
|
||||||
|
* @param EventType Event type
|
||||||
|
* @param EventData Event data
|
||||||
|
* @param EventSize Size of event data
|
||||||
|
* @param HashValue Hash value
|
||||||
|
* @param HashSize Size of hash
|
||||||
|
*
|
||||||
|
* @retval EFI_SUCCESS Successfully build the GuidHobs
|
||||||
|
* @retval Others Other error as indicated
|
||||||
|
*/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
TdxMeasurementBuildGuidHob (
|
||||||
|
UINT32 RtmrIndex,
|
||||||
|
UINT32 EventType,
|
||||||
|
UINT8 *EventData,
|
||||||
|
UINT32 EventSize,
|
||||||
|
UINT8 *HashValue,
|
||||||
|
UINT32 HashSize
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
## @file
|
||||||
|
# TdxMeasurementLib NULL instance
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025, Intel Corporation. All rights reserved.<BR>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = TdxMeasurementNullLib
|
||||||
|
FILE_GUID = 975d11ff-b11e-4cf4-b453-6d93a9ea8d7b
|
||||||
|
MODULE_TYPE = BASE
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = TdxMeasurementLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
TdxMeasurementLibNull.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
UefiCpuPkg/UefiCpuPkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
BaseLib
|
@ -62,6 +62,7 @@
|
|||||||
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||||
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
||||||
CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
|
CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
|
||||||
|
TdxMeasurementLib|UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
|
||||||
AmdSvsmLib|UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
|
AmdSvsmLib|UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
|
||||||
MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf
|
MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf
|
||||||
SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf
|
SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf
|
||||||
@ -171,6 +172,7 @@
|
|||||||
UefiCpuPkg/Library/SmmCpuFeaturesLib/StandaloneMmCpuFeaturesLib.inf
|
UefiCpuPkg/Library/SmmCpuFeaturesLib/StandaloneMmCpuFeaturesLib.inf
|
||||||
UefiCpuPkg/Library/SmmCpuSyncLib/SmmCpuSyncLib.inf
|
UefiCpuPkg/Library/SmmCpuSyncLib/SmmCpuSyncLib.inf
|
||||||
UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
|
UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
|
||||||
|
UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
|
||||||
UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
|
UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
|
||||||
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf
|
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf
|
||||||
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf
|
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf
|
||||||
|
Loading…
x
Reference in New Issue
Block a user