SecurityPkg[all]  0.98
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tpm2DeviceLib.h File Reference

Data Structures

struct  TPM2_DEVICE_INTERFACE
 

Typedefs

typedef IN UINT8 * InputParameterBlock
 
typedef IN UINT8 IN OUT UINT32 * OutputParameterBlockSize
 
typedef IN UINT8 IN OUT UINT32
IN UINT8 * 
OutputParameterBlock
 

Enumerations

enum  TPM2_PTP_INTERFACE_TYPE { Tpm2PtpInterfaceTis, Tpm2PtpInterfaceFifo, Tpm2PtpInterfaceCrb, Tpm2PtpInterfaceMax }
 

Functions

EFI_STATUS EFIAPI Tpm2SubmitCommand (IN UINT32 InputParameterBlockSize, IN UINT8 *InputParameterBlock, IN OUT UINT32 *OutputParameterBlockSize, IN UINT8 *OutputParameterBlock)
 
EFI_STATUS EFIAPI Tpm2RequestUseTpm (VOID)
 
typedef EFI_STATUS (EFIAPI *TPM2_SUBMIT_COMMAND)(IN UINT32 InputParameterBlockSize
 
EFI_STATUS EFIAPI Tpm2RegisterTpm2DeviceLib (IN TPM2_DEVICE_INTERFACE *Tpm2Device)
 

Detailed Description

This library abstract how to access TPM2 hardware device.

Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Typedef Documentation

typedef IN UINT8* InputParameterBlock
typedef IN UINT8 IN OUT UINT32 IN UINT8* OutputParameterBlock
typedef IN UINT8 IN OUT UINT32* OutputParameterBlockSize

Enumeration Type Documentation

Enumerator
Tpm2PtpInterfaceTis 
Tpm2PtpInterfaceFifo 
Tpm2PtpInterfaceCrb 
Tpm2PtpInterfaceMax 

Function Documentation

typedef EFI_STATUS ( EFIAPI *  HASH_FINAL)

This service enables the sending of commands to the TPM2.

Parameters
[in]InputParameterBlockSizeSize of the TPM2 input parameter block.
[in]InputParameterBlockPointer to the TPM2 input parameter block.
[in,out]OutputParameterBlockSizeSize of the TPM2 output parameter block.
[in]OutputParameterBlockPointer to the TPM2 output parameter block.
Return values
EFI_SUCCESSThe command byte stream was successfully sent to the device and a response was successfully received.
EFI_DEVICE_ERRORThe command was not successfully sent to the device or a response was not successfully received from the device.
EFI_BUFFER_TOO_SMALLThe output parameter block is too small.

This service requests use TPM2.

Return values
EFI_SUCCESSGet the control of TPM2 chip.
EFI_NOT_FOUNDTPM2 not found.
EFI_DEVICE_ERRORUnexpected device behavior.

Update hash sequence data.

Parameters
HashHandleHash handle.
DataToHashData to be hashed.
DataToHashLenData size.
Return values
EFI_SUCCESSHash sequence updated.

Complete hash sequence complete.

Parameters
HashHandleHash handle.
DigestListDigest list.
Return values
EFI_SUCCESSHash sequence complete and DigestList is returned.
EFI_STATUS EFIAPI Tpm2RegisterTpm2DeviceLib ( IN TPM2_DEVICE_INTERFACE Tpm2Device)

This service register TPM2 device.

Parameters
Tpm2DeviceTPM2 device
Return values
EFI_SUCCESSThis TPM2 device is registered successfully.
EFI_UNSUPPORTEDSystem does not support register this TPM2 device.
EFI_ALREADY_STARTEDSystem already register this TPM2 device.
EFI_STATUS EFIAPI Tpm2RequestUseTpm ( VOID  )

This service requests use TPM2.

Return values
EFI_SUCCESSGet the control of TPM2 chip.
EFI_NOT_FOUNDTPM2 not found.
EFI_DEVICE_ERRORUnexpected device behavior.
EFI_STATUS EFIAPI Tpm2SubmitCommand ( IN UINT32  InputParameterBlockSize,
IN UINT8 *  InputParameterBlock,
IN OUT UINT32 *  OutputParameterBlockSize,
IN UINT8 *  OutputParameterBlock 
)

This service enables the sending of commands to the TPM2.

Parameters
[in]InputParameterBlockSizeSize of the TPM2 input parameter block.
[in]InputParameterBlockPointer to the TPM2 input parameter block.
[in,out]OutputParameterBlockSizeSize of the TPM2 output parameter block.
[in]OutputParameterBlockPointer to the TPM2 output parameter block.
Return values
EFI_SUCCESSThe command byte stream was successfully sent to the device and a response was successfully received.
EFI_DEVICE_ERRORThe command was not successfully sent to the device or a response was not successfully received from the device.
EFI_BUFFER_TOO_SMALLThe output parameter block is too small.