⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcg.h

📁 xen 3.2.2 源码
💻 H
📖 第 1 页 / 共 2 页
字号:
// ===================================================================// // Copyright (c) 2005, Intel Corp.// All rights reserved.//// Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met:////   * Redistributions of source code must retain the above copyright //     notice, this list of conditions and the following disclaimer.//   * Redistributions in binary form must reproduce the above //     copyright notice, this list of conditions and the following //     disclaimer in the documentation and/or other materials provided //     with the distribution.//   * Neither the name of Intel Corporation nor the names of its //     contributors may be used to endorse or promote products derived//     from this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED// OF THE POSSIBILITY OF SUCH DAMAGE.// ===================================================================// // tcg.h// //  This file contains all the structure and type definitions//// ==================================================================#ifndef __TCG_H__#define __TCG_H__// This pragma is used to disallow structure padding#pragma pack(push, 1)// *************************** TYPEDEFS *********************************typedef unsigned char BYTE;typedef unsigned char BOOL;typedef unsigned short UINT16;typedef unsigned int UINT32;typedef unsigned long long UINT64;typedef UINT32 TPM_RESULT;typedef UINT32 TPM_PCRINDEX;typedef UINT32 TPM_DIRINDEX;typedef UINT32 TPM_HANDLE;typedef TPM_HANDLE TPM_AUTHHANDLE;typedef TPM_HANDLE TCPA_HASHHANDLE;typedef TPM_HANDLE TCPA_HMACHANDLE;typedef TPM_HANDLE TCPA_ENCHANDLE;typedef TPM_HANDLE TPM_KEY_HANDLE;typedef TPM_HANDLE TCPA_ENTITYHANDLE;typedef UINT32 TPM_RESOURCE_TYPE;typedef UINT32 TPM_COMMAND_CODE;typedef UINT16 TPM_PROTOCOL_ID;typedef BYTE TPM_AUTH_DATA_USAGE;typedef UINT16 TPM_ENTITY_TYPE;typedef UINT32 TPM_ALGORITHM_ID;typedef UINT16 TPM_KEY_USAGE;typedef UINT16 TPM_STARTUP_TYPE;typedef UINT32 TPM_CAPABILITY_AREA;typedef UINT16 TPM_ENC_SCHEME;typedef UINT16 TPM_SIG_SCHEME;typedef UINT16 TPM_MIGRATE_SCHEME;typedef UINT16 TPM_PHYSICAL_PRESENCE;typedef UINT32 TPM_KEY_FLAGS;#define TPM_DIGEST_SIZE 20  // Don't change thistypedef BYTE TPM_AUTHDATA[TPM_DIGEST_SIZE];typedef TPM_AUTHDATA TPM_SECRET;typedef TPM_AUTHDATA TPM_ENCAUTH;typedef BYTE TPM_PAYLOAD_TYPE;typedef UINT16 TPM_TAG;// Data Types of the TCStypedef UINT32 TCS_AUTHHANDLE;  // Handle addressing a authorization sessiontypedef UINT32 TCS_CONTEXT_HANDLE; // Basic context handletypedef UINT32 TCS_KEY_HANDLE;  // Basic key handle// ************************* STRUCTURES **********************************typedef struct TPM_VERSION {  BYTE major;  BYTE minor;  BYTE revMajor;  BYTE revMinor;} TPM_VERSION; static const TPM_VERSION TPM_STRUCT_VER_1_1 = { 1,1,0,0 };typedef struct TPM_DIGEST {  BYTE digest[TPM_DIGEST_SIZE];} TPM_DIGEST;typedef TPM_DIGEST TPM_PCRVALUE;typedef TPM_DIGEST TPM_COMPOSITE_HASH;typedef TPM_DIGEST TPM_DIRVALUE;typedef TPM_DIGEST TPM_HMAC;typedef TPM_DIGEST TPM_CHOSENID_HASH;typedef struct TPM_NONCE {  BYTE nonce[TPM_DIGEST_SIZE];} TPM_NONCE;typedef struct TPM_KEY_PARMS {  TPM_ALGORITHM_ID algorithmID;  TPM_ENC_SCHEME encScheme;  TPM_SIG_SCHEME sigScheme;  UINT32 parmSize;  BYTE* parms;} TPM_KEY_PARMS;typedef struct TPM_RSA_KEY_PARMS {    UINT32 keyLength;   UINT32 numPrimes;   UINT32 exponentSize;  BYTE* exponent;} TPM_RSA_KEY_PARMS;typedef struct TPM_STORE_PUBKEY {  UINT32 keyLength;  BYTE* key;} TPM_STORE_PUBKEY;typedef struct TPM_PUBKEY {  TPM_KEY_PARMS algorithmParms;  TPM_STORE_PUBKEY pubKey;} TPM_PUBKEY;typedef struct TPM_KEY {  TPM_VERSION         ver;  TPM_KEY_USAGE       keyUsage;  TPM_KEY_FLAGS       keyFlags;  TPM_AUTH_DATA_USAGE authDataUsage;  TPM_KEY_PARMS       algorithmParms;   UINT32              PCRInfoSize;  BYTE*               PCRInfo; // this should be a TPM_PCR_INFO, or NULL  TPM_STORE_PUBKEY    pubKey;  UINT32              encDataSize;  BYTE*               encData;} TPM_KEY;typedef struct TPM_PCR_SELECTION {   UINT16 sizeOfSelect;        /// in bytes  BYTE* pcrSelect;} TPM_PCR_SELECTION;typedef struct TPM_PCR_COMPOSITE {   TPM_PCR_SELECTION select;  UINT32 valueSize;  TPM_PCRVALUE* pcrValue;} TPM_PCR_COMPOSITE;typedef struct TPM_PCR_INFO {  TPM_PCR_SELECTION pcrSelection;  TPM_COMPOSITE_HASH digestAtRelease;  TPM_COMPOSITE_HASH digestAtCreation;} TPM_PCR_INFO;typedef struct TPM_BOUND_DATA {  TPM_VERSION ver;  TPM_PAYLOAD_TYPE payload;  BYTE* payloadData;} TPM_BOUND_DATA;typedef struct TPM_STORED_DATA {   TPM_VERSION ver;  UINT32 sealInfoSize;  BYTE* sealInfo;  UINT32 encDataSize;  BYTE* encData;} TPM_STORED_DATA;typedef struct TCS_AUTH {  TCS_AUTHHANDLE  AuthHandle;  TPM_NONCE   NonceOdd;   // system   TPM_NONCE   NonceEven;   // TPM   BOOL   fContinueAuthSession;  TPM_AUTHDATA  HMAC;} TCS_AUTH;// structures for dealing with sizes followed by buffers in all the// TCG structure.typedef struct pack_buf_t {  UINT32 size;  BYTE * data;} pack_buf_t;typedef struct pack_constbuf_t {  UINT32 size;  const BYTE* data;} pack_constbuf_t;// **************************** CONSTANTS *********************************// BOOL values#define TRUE 0x01#define FALSE 0x00#define TCPA_MAX_BUFFER_LENGTH 0x2000//// TPM_COMMAND_CODE values#define TPM_PROTECTED_ORDINAL 0x00000000UL#define TPM_UNPROTECTED_ORDINAL 0x80000000UL#define TPM_CONNECTION_ORDINAL 0x40000000UL#define TPM_VENDOR_ORDINAL 0x20000000UL#define TPM_ORD_OIAP                     (10UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_OSAP                     (11UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ChangeAuth               (12UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_TakeOwnership            (13UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ChangeAuthAsymStart      (14UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ChangeAuthAsymFinish     (15UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ChangeAuthOwner          (16UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_Extend                   (20UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_PcrRead                  (21UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_Quote                    (22UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_Seal                     (23UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_Unseal                   (24UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_DirWriteAuth             (25UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_DirRead                  (26UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_UnBind                   (30UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_CreateWrapKey            (31UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_LoadKey                  (32UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_GetPubKey                (33UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_EvictKey                 (34UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_CreateMigrationBlob      (40UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ReWrapKey                (41UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ConvertMigrationBlob     (42UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_AuthorizeMigrationKey    (43UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_CreateMaintenanceArchive (44UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_LoadMaintenanceArchive   (45UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_KillMaintenanceFeature   (46UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_LoadManuMaintPub         (47UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_ReadManuMaintPub         (48UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_CertifyKey               (50UL + TPM_PROTECTED_ORDINAL)#define TPM_ORD_Sign                     (60UL + TPM_PROTECTED_ORDINAL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -