2013-09-18 07:31:18 +02:00
|
|
|
/** @file
|
|
|
|
This library is used by other modules to send TPM12 command.
|
|
|
|
|
2015-01-08 06:41:56 +01:00
|
|
|
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved. <BR>
|
2013-09-18 07:31:18 +02:00
|
|
|
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
|
|
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef _TPM12_COMMAND_LIB_H_
|
|
|
|
#define _TPM12_COMMAND_LIB_H_
|
|
|
|
|
|
|
|
#include <IndustryStandard/Tpm12.h>
|
|
|
|
|
|
|
|
/**
|
|
|
|
Send Startup command to TPM1.2.
|
|
|
|
|
|
|
|
@param TpmSt Startup Type.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully.
|
|
|
|
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
|
|
|
**/
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
Tpm12Startup (
|
|
|
|
IN TPM_STARTUP_TYPE TpmSt
|
|
|
|
);
|
|
|
|
|
2013-10-21 07:56:07 +02:00
|
|
|
/**
|
|
|
|
Send SaveState command to TPM1.2.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully.
|
|
|
|
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
|
|
|
**/
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
Tpm12SaveState (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-09-18 07:31:18 +02:00
|
|
|
/**
|
|
|
|
Send ForceClear command to TPM1.2.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully.
|
|
|
|
@retval EFI_DEVICE_ERROR Unexpected device behavior.
|
|
|
|
**/
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
Tpm12ForceClear (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2015-01-08 06:41:56 +01:00
|
|
|
#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
|
|
|
|
);
|
|
|
|
|
2013-09-18 07:31:18 +02:00
|
|
|
#endif
|