SecurityPkg/Include/Library/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

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, Intel Corporation. All rights reserved.
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.


Typedef Documentation

typedef IN UINT8* InputParameterBlock

typedef IN UINT8 IN OUT UINT32 IN UINT8* OutputParameterBlock

typedef IN UINT8 IN OUT UINT32* OutputParameterBlockSize


Function Documentation

typedef EFI_STATUS ( EFIAPI *  TPM2_SUBMIT_COMMAND  ) 

This service enables the sending of commands to the TPM2.

Parameters:
[in] InputParameterBlockSize Size of the TPM2 input parameter block.
[in] InputParameterBlock Pointer to the TPM2 input parameter block.
[in,out] OutputParameterBlockSize Size of the TPM2 output parameter block.
[in] OutputParameterBlock Pointer to the TPM2 output parameter block.
Return values:
EFI_SUCCESS The command byte stream was successfully sent to the device and a response was successfully received.
EFI_DEVICE_ERROR The command was not successfully sent to the device or a response was not successfully received from the device.
EFI_BUFFER_TOO_SMALL The output parameter block is too small.
This service requests use TPM2.

Return values:
EFI_SUCCESS Get the control of TPM2 chip.
EFI_NOT_FOUND TPM2 not found.
EFI_DEVICE_ERROR Unexpected device behavior.

Referenced by AccessVariableStore(), AddDefaultUserProfile(), AddPubKeyInStore(), AddUserInfo(), AddUserProfile(), AddUserSelection(), AssignOpRegion(), AutenticatedVariableServiceInitialize(), AuthServiceInternalFindVariable(), AuthServiceInternalUpdateVariableWithTimeStamp(), AuthVariableLibInitialize(), AuthVariableLibProcessVariable(), AutoUpdateLangVariable(), BaseCrypto2Hash(), CallAddUser(), CheckConsole(), CheckCurrentUserAccessRight(), CleanCertsFromDb(), CreatePkX509SignatureList(), CreateTimeBasedPayload(), CreateUserProfile(), CredentialDelete(), CredentialDriverCallback(), CredentialEnroll(), CredentialUser(), DeleteCertsFromDb(), DeleteKeyExchangeKey(), DeletePlatformKey(), DeleteSignature(), DeleteUser(), DeleteVariable(), DelUserInfo(), DelUserProfile(), DetectTpmDevice(), DisplayLoadPermit(), DriverEntry(), DxeDeferImageLoadHandler(), DxeImageVerificationHandler(), DxeTpm2MeasureBootHandler(), DxeTpmMeasureBootHandler(), EnrollImageSignatureToSigDB(), EnrollKeyExchangeKey(), EnrollPlatformKey(), EnrollRsa2048ToKek(), EnrollSignatureDatabase(), EnrollX509HashtoSigDB(), EnrollX509ToKek(), EnrollX509toSigDB(), EsalGetNextVariableName(), EsalGetVariable(), EsalSetVariable(), ExecutePendingTpmRequest(), FileInfo(), FileSystemVolumeLabelInfo(), FilterSignatureList(), FindFiles(), FindFileSystem(), FindInfoByType(), FindUserInfo(), FindUserInfoByType(), FindUserProfileByInfo(), FirmwareVolmeInfoPpiNotifyCallback(), FlushHob2Nv(), FtwVariableSpace(), GenerateUserId(), GetAccessControl(), GetAccessRight(), GetAllUserInfo(), GetAvailableKeyIndex(), GetCertsFromDb(), GetEndPointer(), GetFileData(), GetFileType(), GetFvbHandleByAddress(), GetIdentifyType(), GetImageType(), GetLbaAndOffsetByAddress(), GetProcessorsCpuLocation(), GetToken(), GetTpmCapability(), GetTpmState(), GetTpmStatus(), GetUserInfo(), GetUserName(), GetVariableDataPtr(), GetVariableNamePtr(), GetVarStoreHeader(), Hash2DriverEntryPoint(), Hash2ServiceBindingCreateChild(), Hash2ServiceBindingDestroyChild(), HashAndExtend(), HashCompleteAndExtend(), HashInstanceLibSha1Constructor(), HashInstanceLibSha256Constructor(), HashLogExtendEvent(), HashStart(), HashUpdate(), IdentifyAndTypeUser(), IdentifyAutoLogonUser(), IdentifyByProviderId(), IdentifyOrTypeUser(), IdentifyUser(), InCustomMode(), InitCredentialTable(), InitFormBrowser(), InitializeTcgSmm(), InitiateTPerReset(), InitProviderInfo(), InitUserProfileDb(), InsertCertsToDb(), InstallAcpiTable(), InstallSecureBootConfigForm(), InstallTcg2(), InstallTcg2ConfigForm(), InstallTcgConfigForm(), InstallTrEE(), InstallTrEEConfigForm(), IsAllowedByDb(), IsBootOption(), IsCertHashFoundInDbx(), IsDevicePathInList(), IsForbiddenByDbx(), IsRdRandSupported(), IsSignatureFoundInDatabase(), IsTpmUsable(), IsValidVariableHeader(), IsX509CertInDbx(), LoadDeferredImage(), LoadDeferredImageInit(), LockTpmPhysicalPresence(), LogHashEvent(), MeasureAllBootVariables(), MeasureAllSecureVariables(), MeasureFvImage(), MeasureHandoffTables(), MeasureMainBios(), MeasurePeImageAndExtend(), MeasureSecureBootPolicy(), MeasureVariable(), MemoryClearCallback(), ModifyTable(), ModifyUserInfo(), ModifyUserName(), MorDriverEntryPoint(), MorLockDriverEntryPointSmm(), MorLockDriverInit(), OnExitBootServices(), OnExitBootServicesFailed(), OnReadyToBoot(), OpenFileByDevicePath(), OpenRoot(), P7CheckRevocation(), P7CheckTrust(), PassTimestampCheck(), PasswordProviderInit(), PeimEntryMA(), PeimEntryMP(), PhysicalPresenceCallback(), PhysicalPresencePpiNotifyCallback(), Pkcs7VerifyDriverEntry(), ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), PublishAcpiTable(), PublishTpm2(), PublishUserTable(), RdRandGenerateEntropy(), RdRandGetBytes(), RdRandGetSeed128(), RdRandGetWords(), ReadAndMeasureBootVariable(), ReadAndMeasureVariable(), ReadFileContent(), ReadUserKey(), ReadVariable(), Reclaim(), ReclaimForOS(), RngDriverEntry(), RngGetInfo(), RngGetRNG(), Rsa2048Sha256GuidedSectionHandler(), SaveAccessPolicy(), SaveIdentityPolicy(), SaveNvUserProfile(), SavePpRequest(), SaveSecureBootVariable(), SaveTcg2PCRBanksRequest(), SaveTcg2PpRequest(), SaveTcg2PpRequestParameter(), SaveTrEEPpRequest(), SecureBootCallback(), SecureBootConfigDriverEntryPoint(), SecureBootConfigDriverUnload(), SecureBootExtractConfig(), SecureBootHook(), SecureBootRouteConfig(), SelectUserToDelete(), SelectUserToModify(), SetCreateDate(), SetTpm2HashMask(), SetupEventLog(), SetUserName(), SetVariableCheckHandlerMor(), SignalEventUserProfileChanged(), Tcg2ConfigDriverEntryPoint(), Tcg2ConfigDriverUnload(), Tcg2ConfigPeimEntryPoint(), Tcg2ExecutePendingTpmRequest(), Tcg2ExecutePhysicalPresence(), Tcg2HashLogExtendEvent(), Tcg2MeasureGptTable(), Tcg2MeasurePeImage(), Tcg2PhysicalPresenceLibConstructor(), Tcg2PhysicalPresenceLibGetManagementFlags(), Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction(), Tcg2PhysicalPresenceLibNeedUserConfirm(), Tcg2PhysicalPresenceLibProcessRequest(), Tcg2PhysicalPresenceLibReturnOperationResponseToOsFunction(), Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction(), Tcg2ReadUserKey(), Tcg2SetActivePCRBanks(), Tcg2SubmitCommand(), Tcg2UserConfirm(), TcgConfigDriverEntryPoint(), TcgConfigDriverUnload(), TcgDxeHashLogExtendEvent(), TcgDxeHashLogExtendEventI(), TcgDxeLogEvent(), TcgDxeLogHashEvent(), TcgExtractConfig(), TcgMeasureGptTable(), TcgMeasurePeImage(), TcgPhysicalPresenceLibNeedUserConfirm(), TcgPhysicalPresenceLibProcessRequest(), TcgRouteConfig(), TisPcExecute(), TisPcPrepareCommand(), TisPcReceive(), TisPcRequestUseTpm(), TisPcSend(), TisTpmCommand(), TPerResetAtEndOfDxe(), Tpm12ForceClear(), Tpm12MeasureAndLogData(), Tpm12NvDefineSpace(), Tpm12NvReadValue(), Tpm12NvWriteValue(), Tpm12RequestUseTpm(), Tpm12SaveState(), Tpm12Startup(), Tpm12SubmitCommand(), Tpm12TisPcPrepareCommand(), Tpm12TisPcRequestUseTpm(), Tpm12TisTpmCommand(), Tpm20MeasureAndLogData(), Tpm2ChangeEPS(), Tpm2ChangePPS(), Tpm2Clear(), Tpm2ClearControl(), Tpm2CommandAllocPcr(), Tpm2CommandChangeEps(), Tpm2CommandClear(), Tpm2DictionaryAttackLockReset(), Tpm2DictionaryAttackParameters(), Tpm2EventSequenceComplete(), Tpm2FlushContext(), Tpm2GetCapability(), Tpm2GetCapabilityAlgorithmSet(), Tpm2GetCapabilityFamily(), Tpm2GetCapabilityFirmwareVersion(), Tpm2GetCapabilityInputBufferSize(), Tpm2GetCapabilityLockoutCounter(), Tpm2GetCapabilityLockoutInterval(), Tpm2GetCapabilityManufactureID(), Tpm2GetCapabilityMaxCommandResponseSize(), Tpm2GetCapabilityPcrs(), Tpm2GetCapabilitySupportedAlg(), Tpm2HashSequenceStart(), Tpm2HierarchyChangeAuth(), Tpm2HierarchyControl(), Tpm2InstanceLibDTpmConstructor(), Tpm2NvDefineSpace(), Tpm2NvGlobalWriteLock(), Tpm2NvRead(), Tpm2NvReadLock(), Tpm2NvReadPublic(), Tpm2NvUndefineSpace(), Tpm2NvWrite(), Tpm2NvWriteLock(), Tpm2PcrAllocate(), Tpm2PcrEvent(), Tpm2PcrExtend(), Tpm2PcrRead(), Tpm2PolicyCommandCode(), Tpm2PolicyGetDigest(), Tpm2PolicyOR(), Tpm2PolicySecret(), Tpm2RequestUseTpm(), Tpm2SelfTest(), Tpm2SequenceComplete(), Tpm2SequenceUpdate(), Tpm2SetAlgorithmSet(), Tpm2SetPrimaryPolicy(), Tpm2Shutdown(), Tpm2StartAuthSession(), Tpm2Startup(), Tpm2SubmitCommand(), Tpm2TestParms(), TpmCommandClear(), TpmCommandNoReturnData(), TpmCommContinueSelfTest(), TpmCommExtend(), TpmCommGetCapability(), TpmCommGetFlags(), TpmCommPhysicalPresence(), TpmCommStartup(), TpmMeasureAndLogData(), TpmPhysicalPresence(), TrEEConfigDriverEntryPoint(), TrEEConfigDriverUnload(), TrEEConfigPeimEntryPoint(), TrEEExecutePendingTpmRequest(), TrEEExecutePhysicalPresence(), TreeHashLogExtendEvent(), TrEEPhysicalPresenceLibNeedUserConfirm(), TrEEPhysicalPresenceLibProcessRequest(), TrEEReadUserKey(), TreeSubmitCommand(), UefiMain(), UpdateCredentialProvider(), UpdateDeletePage(), UpdateFileExplorer(), UpdatePlatformMode(), UpdateUserInfo(), UpdateVariable(), UsbProviderInit(), UserIdentifyManagerCallback(), UserIdentifyManagerInit(), UserProfileCreate(), UserProfileDelete(), UserProfileDeleteInfo(), UserProfileFind(), UserProfileGetInfo(), UserProfileGetNext(), UserProfileIdentify(), UserProfileManagerCallback(), UserProfileManagerInit(), UserProfileSetInfo(), VariableCommonInitialize(), VariableServiceInitialize(), VendorKeyIsModified(), VerifyBuffer(), VerifyTimeBasedPayload(), VerifyTimeBasedPayloadAndUpdate(), and VerifyVariable().

EFI_STATUS EFIAPI Tpm2RegisterTpm2DeviceLib ( IN TPM2_DEVICE_INTERFACE Tpm2Device  ) 

This service register TPM2 device.

Parameters:
Tpm2Device TPM2 device
Return values:
EFI_SUCCESS This TPM2 device is registered successfully.
EFI_UNSUPPORTED System does not support register this TPM2 device.
EFI_ALREADY_STARTED System already register this TPM2 device.

References InternalGetTpm2DeviceInterface(), and mInternalTpm2DeviceInterfaceGuid.

Referenced by Tpm2InstanceLibDTpmConstructor().

EFI_STATUS EFIAPI Tpm2RequestUseTpm ( VOID   ) 

This service requests use TPM2.

Return values:
EFI_SUCCESS Get the control of TPM2 chip.
EFI_NOT_FOUND TPM2 not found.
EFI_DEVICE_ERROR Unexpected device behavior.

References DTpm2RequestUseTpm(), EFI_STATUS(), InternalGetTpm2DeviceInterface(), mTcg2Protocol, mTreeProtocol, and TPM2_DEVICE_INTERFACE::Tpm2RequestUseTpm.

Referenced by DriverEntry(), and PeimEntryMA().

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] InputParameterBlockSize Size of the TPM2 input parameter block.
[in] InputParameterBlock Pointer to the TPM2 input parameter block.
[in,out] OutputParameterBlockSize Size of the TPM2 output parameter block.
[in] OutputParameterBlock Pointer to the TPM2 output parameter block.
Return values:
EFI_SUCCESS The command byte stream was successfully sent to the device and a response was successfully received.
EFI_DEVICE_ERROR The command was not successfully sent to the device or a response was not successfully received from the device.
EFI_BUFFER_TOO_SMALL The output parameter block is too small.

References DTpm2SubmitCommand(), EFI_STATUS(), InternalGetTpm2DeviceInterface(), mTcg2Protocol, mTreeProtocol, and TPM2_DEVICE_INTERFACE::Tpm2SubmitCommand.

Referenced by Tcg2SubmitCommand(), Tpm2ChangeEPS(), Tpm2ChangePPS(), Tpm2Clear(), Tpm2ClearControl(), Tpm2DictionaryAttackLockReset(), Tpm2DictionaryAttackParameters(), Tpm2EventSequenceComplete(), Tpm2FlushContext(), Tpm2GetCapability(), Tpm2HashSequenceStart(), Tpm2HierarchyChangeAuth(), Tpm2HierarchyControl(), Tpm2NvDefineSpace(), Tpm2NvGlobalWriteLock(), Tpm2NvRead(), Tpm2NvReadLock(), Tpm2NvReadPublic(), Tpm2NvUndefineSpace(), Tpm2NvWrite(), Tpm2NvWriteLock(), Tpm2PcrAllocate(), Tpm2PcrEvent(), Tpm2PcrExtend(), Tpm2PcrRead(), Tpm2PolicyCommandCode(), Tpm2PolicyGetDigest(), Tpm2PolicyOR(), Tpm2PolicySecret(), Tpm2SelfTest(), Tpm2SequenceComplete(), Tpm2SequenceUpdate(), Tpm2SetAlgorithmSet(), Tpm2SetPrimaryPolicy(), Tpm2Shutdown(), Tpm2StartAuthSession(), Tpm2Startup(), Tpm2TestParms(), and TreeSubmitCommand().


Generated on Thu Sep 24 23:44:24 2015 for SecurityPkg[ALL] by  doxygen 1.5.7.1