Add TPM12 NV related function.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com> Reviewed-by: "Dong, Guo" <guo.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16590 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
This library is used by other modules to send TPM12 command.
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved. <BR>
|
||||
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved. <BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -55,4 +55,87 @@ Tpm12ForceClear (
|
||||
VOID
|
||||
);
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
UINT16 sizeOfSelect;
|
||||
UINT8 pcrSelect[3];
|
||||
} TPM12_PCR_SELECTION;
|
||||
|
||||
typedef struct {
|
||||
TPM12_PCR_SELECTION pcrSelection;
|
||||
TPM_LOCALITY_SELECTION localityAtRelease;
|
||||
TPM_COMPOSITE_HASH digestAtRelease;
|
||||
} TPM12_PCR_INFO_SHORT;
|
||||
|
||||
typedef struct {
|
||||
TPM_STRUCTURE_TAG tag;
|
||||
TPM_NV_INDEX nvIndex;
|
||||
TPM12_PCR_INFO_SHORT pcrInfoRead;
|
||||
TPM12_PCR_INFO_SHORT pcrInfoWrite;
|
||||
TPM_NV_ATTRIBUTES permission;
|
||||
BOOLEAN bReadSTClear;
|
||||
BOOLEAN bWriteSTClear;
|
||||
BOOLEAN bWriteDefine;
|
||||
UINT32 dataSize;
|
||||
} TPM12_NV_DATA_PUBLIC;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/**
|
||||
Send NV DefineSpace command to TPM1.2.
|
||||
|
||||
@param PubInfo The public parameters of the NV area.
|
||||
@param EncAuth The encrypted AuthData, only valid if the attributes require subsequent authorization.
|
||||
|
||||
@retval EFI_SUCCESS Operation completed successfully.
|
||||
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Tpm12NvDefineSpace (
|
||||
IN TPM12_NV_DATA_PUBLIC *PubInfo,
|
||||
IN TPM_ENCAUTH *EncAuth
|
||||
);
|
||||
|
||||
/**
|
||||
Send NV ReadValue command to TPM1.2.
|
||||
|
||||
@param NvIndex The index of the area to set.
|
||||
@param Offset The offset into the area.
|
||||
@param DataSize The size of the data area.
|
||||
@param Data The data to set the area to.
|
||||
|
||||
@retval EFI_SUCCESS Operation completed successfully.
|
||||
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Tpm12NvReadValue (
|
||||
IN TPM_NV_INDEX NvIndex,
|
||||
IN UINT32 Offset,
|
||||
IN OUT UINT32 *DataSize,
|
||||
OUT UINT8 *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Send NV WriteValue command to TPM1.2.
|
||||
|
||||
@param NvIndex The index of the area to set.
|
||||
@param Offset The offset into the NV Area.
|
||||
@param DataSize The size of the data parameter.
|
||||
@param Data The data to set the area to.
|
||||
|
||||
@retval EFI_SUCCESS Operation completed successfully.
|
||||
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
Tpm12NvWriteValue (
|
||||
IN TPM_NV_INDEX NvIndex,
|
||||
IN UINT32 Offset,
|
||||
IN UINT32 DataSize,
|
||||
IN UINT8 *Data
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user