audk/SecurityPkg/Include/Ppi/CcMeasurement.h

79 lines
2.4 KiB
C

/** @file
CC Measurement PPI services.
Copyright (c) 2024, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _CC_MEASUREMENT_PPI_H_
#define _CC_MEASUREMENT_PPI_H_
#include <Protocol/CcMeasurement.h>
typedef struct _EDKII_CC_PPI EDKII_CC_PPI;
//
// This bit is shall be set when HashData is the pre-hash digest.
//
#define EDKII_CC_PRE_HASH 0x0000000000000001
//
// This bit is shall be set when HashData is the pre-hash digest and log only.
//
#define EDKII_CC_PRE_HASH_LOG_ONLY 0x0000000000000002
/**
Do a hash operation on a data buffer, extend a specific RTMR with the hash result,
and build a GUIDed HOB recording the event which will be passed to the DXE phase and
added into the Event Log.
@param[in] This Indicates the calling context
@param[in] Flags Bitmap providing additional information
@param[in] HashData Physical address of the start of the data buffer to be hashed.
@param[in] HashDataLen The length, in bytes, of the buffer referenced by HashData.
@param[in] NewEventHdr Pointer to a CC_EVENT_HDR data structure.
@param[in] NewEventData Pointer to the new event data.
@retval EFI_SUCCESS Operation completed successfully.
@retval Others Other error as indicated
**/
typedef
EFI_STATUS
(EFIAPI *EDKII_CC_HASH_LOG_EXTEND_EVENT)(
IN EDKII_CC_PPI *This,
IN UINT64 Flags,
IN EFI_PHYSICAL_ADDRESS HashData,
IN UINTN HashDataLen,
IN CC_EVENT_HDR *NewEventHdr,
IN UINT8 *NewEventData
);
/**
The EDKII_CC_MEASUREMENT_PPI MapPcrToMrIndex function call provides callers
the info on TPM PCR <-> CC MR mapping information.
@param[in] This Indicates the calling context
@param[in] PcrIndex TPM PCR index.
@param[out] MrIndex CC MR index.
@retval EFI_SUCCESS The MrIndex is returned.
@retval Others Other error as indicated
**/
typedef
EFI_STATUS
(EFIAPI *EDKII_CC_MAP_PCR_TO_MR_INDEX)(
IN EDKII_CC_PPI *This,
IN TCG_PCRINDEX PcrIndex,
OUT EFI_CC_MR_INDEX *MrIndex
);
struct _EDKII_CC_PPI {
EDKII_CC_HASH_LOG_EXTEND_EVENT HashLogExtendEvent;
EDKII_CC_MAP_PCR_TO_MR_INDEX MapPcrToMrIndex;
};
extern EFI_GUID gEdkiiCcPpiGuid;
#endif