From b7c51c9cf4864df6aabb99a1ae843becd577237c Mon Sep 17 00:00:00 2001 From: raywu Date: Fri, 15 Jun 2018 00:00:50 +0800 Subject: init. 1AQQW051 --- Core/EM/TCG2/TisLib/TcgCommon.h | 305 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 Core/EM/TCG2/TisLib/TcgCommon.h (limited to 'Core/EM/TCG2/TisLib/TcgCommon.h') diff --git a/Core/EM/TCG2/TisLib/TcgCommon.h b/Core/EM/TCG2/TisLib/TcgCommon.h new file mode 100644 index 0000000..4565f79 --- /dev/null +++ b/Core/EM/TCG2/TisLib/TcgCommon.h @@ -0,0 +1,305 @@ +/*++ + + Copyright (c) 2005 Intel Corporation. All rights reserved + This software and associated documentation (if any) is furnished + under a license and may only be used or copied in accordance + with the terms of the license. Except as permitted by such + license, no part of this software or documentation may be + reproduced, stored in a retrieval system, or transmitted in any + form or by any means without the express written consent of + Intel Corporation. + + + Module Name: + + TcgCommon.h + + Abstract: + + Header file for TcgCommon.c + + --*/ +//************************************************************************* +// $Header: /Alaska/SOURCE/Modules/TCG2/Libraries/TisLib/TcgCommon.h 1 4/21/14 2:14p Fredericko $ +// +// $Revision: 1 $ +// +// $Date: 4/21/14 2:14p $ +//************************************************************************* +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/TCG2/Libraries/TisLib/TcgCommon.h $ +// +// 1 4/21/14 2:14p Fredericko +// +// 1 10/08/13 11:58a Fredericko +// Initial Check-In for Tpm-Next module +// +// 2 10/03/13 12:32p Fredericko +// Sha256 support policy update +// +// 1 7/10/13 5:50p Fredericko +// [TAG] EIP120969 +// [Category] New Feature +// [Description] TCG (TPM20) +// [Files] TisLib.cif +// TisLib.mak +// TcgTpm12.h +// TpmLib.h +// TcgCommon.h +// ZTEICTcmOrdinals.h +// TpmLib.c +// TcgCommon.c +// TisLib.sdl +// sha1.h +// INTTcgAcpi.h +// TcgPc.h +// TcmPc.h +// TcgEfiTpm.h +// TcgEFI12.h +// +// 13 3/19/12 6:14p Fredericko +// +// 12 3/29/11 12:24p Fredericko +// +// 11 3/28/11 12:18p Fredericko +// [TAG] EIP 54642 +// [Category] Improvement +// [Description] 1. Checkin Files related to TCG function override +// 2. Include TCM and TPM auto detection +// [Files] Affects all TCG files +// +// 10 5/19/10 5:10p Fredericko +// Included File Header +// Included File Revision History +// EIP 37653 +// +//************************************************************************* +//************************************************************************* +// +// +// Name: TcgCommon.h +// +// Description: +// Header file for TcgCommon.c +// +// +//************************************************************************* +#ifndef _TCG_COMMON_H_ +#define _TCG_COMMON_H_ + +#include +#include "TcgPc.h" +#include "TcgEfiTpm.h" +#include "Sha.h" +#include +#include "..\Common\Tpm20Includes\Tpm20.h" +//#include "TcgMisc.h" + +#define TcgCommonN2HS( v16 ) TcgCommonH2NS( v16 ) +#define TcgCommonN2HL( v32 ) TcgCommonH2NL( v32 ) +#define EFI_TPL_DRIVER 6 +#define EFI_TPL_APPLICATION 4 +#define EFI_TPL_CALLBACK 8 +#define EFI_TPL_NOTIFY 16 +#define EFI_TPL_HIGH_LEVEL 31 +#define STRING_TOKEN( x ) x + + +#define GET_HOB_TYPE( Hob ) ((Hob).Header->HobType) +#define GET_HOB_LENGTH( Hob ) ((Hob).Header->HobLength) +#define GET_NEXT_HOB( Hob ) ((Hob).Raw + GET_HOB_LENGTH( Hob )) +#define END_OF_HOB_LIST( Hob ) (GET_HOB_TYPE( Hob ) ==\ + EFI_HOB_TYPE_END_OF_HOB_LIST) + +#define TCGPASSTHROUGH( cb, in, out ) \ + TcgCommonPassThrough( \ + cb, \ + sizeof (in) / sizeof (*(in)), \ + (in), \ + sizeof (out) / sizeof (*(out)), \ + (out) \ + ) + + +extern +UINT16 +__stdcall TcgCommonH2NS ( + IN UINT16 Val ); + +extern +UINT32 +__stdcall TcgCommonH2NL ( + IN UINT32 Val ); + +VOID* GetHob ( + IN UINT16 Type, + IN VOID *HobStart ); + +BOOLEAN CompareGuid ( + EFI_GUID *G1, + EFI_GUID *G2 ); + +EFI_STATUS GetNextGuidHob ( + IN OUT VOID **HobStart, + IN EFI_GUID * Guid, + OUT VOID **Buffer, + OUT UINTN*BufferSize OPTIONAL ); + +extern +EFI_STATUS +__stdcall TcgCommonPassThrough ( + IN VOID *CallbackContext, + IN UINT32 NoInputBuffers, + IN TPM_TRANSMIT_BUFFER *InputBuffers, + IN UINT32 NoOutputBuffers, + IN OUT TPM_TRANSMIT_BUFFER *OutputBuffers ); + +extern +VOID +__stdcall TcgCommonCopyMem ( + IN VOID *CallbackContext, + OUT VOID *Dest, + IN VOID *Src, + IN UINTN Len ); + +extern +EFI_STATUS +__stdcall TcgCommonLogEvent( + IN VOID *CallbackContext, + IN TCG_PCR_EVENT *EvtLog, + IN OUT UINT32 *TableSize, + IN UINT32 MaxSize, + IN TCG_PCR_EVENT *NewEntry, + IN UINT8 HashAlgorithm ); + +extern +EFI_STATUS +__stdcall TcmCommonLogEvent ( + IN VOID *CallbackContext, + IN TCM_PCR_EVENT *EvtLog, + IN OUT UINT32 *TableSize, + IN UINT32 MaxSize, + IN TCM_PCR_EVENT *NewEntry ); + +extern +EFI_STATUS +__stdcall TcgCommonSha1Start ( + IN VOID *CallbackContext, + IN TCG_ALGORITHM_ID AlgId, + OUT UINT32 *MaxBytes ); + +extern +EFI_STATUS +__stdcall TcgCommonSha1Update ( + IN VOID *CallbackContext, + IN VOID *Data, + IN UINT32 DataLen, + IN UINT32 MaxBytes ); + +extern +EFI_STATUS +__stdcall TcgCommonSha1CompleteExtend ( + IN VOID *CallbackContext, + IN VOID *Data, + IN UINT32 DataLen, + IN TPM_PCRINDEX PCRIndex, + OUT TCG_DIGEST *Digest, + OUT TCG_DIGEST *NewPCRValue ); + + +EFI_STATUS +__stdcall TcmCommonSha1CompleteExtend( + IN VOID *CallbackContext, + IN VOID *Data, + IN UINT32 DataLen, + IN TPM_PCRINDEX PCRIndex, + OUT TCM_DIGEST *Digest, + OUT TCM_DIGEST *NewPCRValue ); + +extern +EFI_STATUS +__stdcall TcgCommonExtend ( + IN VOID *CallbackContext, + IN TPM_PCRINDEX PCRIndex, + IN TCG_DIGEST *Digest, + OUT TCG_DIGEST *NewPCRValue ); + +EFI_STATUS +__stdcall TcmCommonExtend( + IN VOID *CallbackContext, + IN TPM_PCRINDEX PCRIndex, + IN TCM_DIGEST *Digest, + OUT TCM_DIGEST *NewPCRValue ); + +extern +EFI_STATUS +__stdcall SHA1HashAll ( + IN VOID *CallbackContext, + IN VOID *HashData, + IN UINTN HashDataLen, + OUT TCG_DIGEST *Digest + ); + +EFI_STATUS +__stdcall SHA2HashAll( + IN VOID *CallbackContext, + IN VOID *HashData, + IN UINTN HashDataLen, + OUT TCG_DIGEST *Digest + ); + +EFI_STATUS EfiLibGetSystemConfigurationTable( + IN EFI_GUID *TableGuid, + IN OUT VOID **Table ); + +#pragma pack(push,1) + +typedef union { + UINT8 sha1[SHA1_DIGEST_SIZE]; + UINT8 sha256[SHA256_DIGEST_SIZE]; +} TPM_COMM_DIGEST_UNION; + +typedef struct{ + UINT16 HashAlgId; + TPM_COMM_DIGEST_UNION Digest; +}TPM_COMM_DIGEST; + +#define HASH_ALG_COUNT 2 + +typedef struct { + UINT32 Count; + TPM_COMM_DIGEST Digests[HASH_ALG_COUNT]; +}TPM_COMM_DIGEST_LIST; + +typedef struct { + TPMI_DH_PCR pcrHandle; + TPM_COMM_DIGEST_LIST DigestValue; +} PCR_Extend_In; + +typedef struct { + TPMI_ST_COMMAND_TAG Tag; + UINT32 CommandSize; + TPM_CC CommandCode; + PCR_Extend_In inputParameters; + UINT32 authorizationSize; + TPMS_AUTH_SESSION_COMMAND pwapAuth; +} TPM2_PCRExtend_cmd_t; + +typedef struct { + TPMI_ST_COMMAND_TAG Tag; + UINT32 RespondSize; + TPM_RC ResponseCode; + UINT32 parameterSize; + TPMS_AUTH_SESSION_RESPONSE pwapAuth; +} TPM2_PCRExtend_res_t; + + +#pragma pack(pop) + +extern +BOOLEAN +__stdcall AutoSupportType ( + ); + +#endif -- cgit v1.2.3