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

📄 bsg.h

📁 xen虚拟机源代码安装包
💻 H
字号:
// ===================================================================// // 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.// ===================================================================// // bsg.h// //  This file contains API's for the TPM Byte Stream functions//// ==================================================================#ifndef __BSG_H__#define __BSG_H__#include <stdarg.h>#include "buffer.h"typedef unsigned int BSG_UINT32;typedef unsigned char BSG_BYTE;// forward declstruct pack_const_tuple_t;struct pack_tuple_t;/** * Byte stream generator */// this has to be manually kept in sync with the// s_fmt array!!// but now we have a self-check function which can make sure things are well// (if used!) typedef enum BSG_Type{   BSG_TYPE_FIRST = 1,  BSG_TYPE_UINT32 = 1, // start at 1 so that Type 0 only serves as an                       // unused/special value  BSG_TYPE_UINT16,  BSG_TYPE_BYTE,  BSG_TYPE_BOOL,  BSG_TPM_SIZE32_DATA,  // a 32 bit unsigned size, followed by                        // a pointer to that much data. can pass a                        // struct pack_buf_t as the param  BSG_TPM_TAG,  BSG_TPM_HANDLE,  BSG_TPM_RESULT,  BSG_TPM_RESOURCE_TYPE,  BSG_TPM_COMMAND_CODE,  BSG_TPM_AUTH_DATA_USAGE,  BSG_TPM_ALGORITHM_ID,  BSG_TPM_PROTOCOL_ID,  BSG_TPM_KEY_USAGE,  BSG_TPM_ENC_SCHEME,  BSG_TPM_SIG_SCHEME,  BSG_TPM_MIGRATE_SCHEME,  BSG_TPM_KEY_FLAGS,  BSG_TPM_AUTHDATA,  BSG_TPM_SECRET,  BSG_TPM_ENCAUTH,  BSG_TPM_PAYLOAD_TYPE,    BSG_TPM_VERSION,  BSG_TPM_DIGEST,  BSG_TPM_COMPOSITE_HASH,  BSG_TPM_CHOSENID_HASH,  BSG_TPM_NONCE,  BSG_TPM_KEY_HANDLE,  BSG_TPM_KEY_HANDLE_LIST,  BSG_TPM_KEY_PARMS,  BSG_TPM_RSA_KEY_PARMS,  BSG_TPM_STORE_PUBKEY,  BSG_TPM_PUBKEY,  BSG_TPM_KEY,    BSG_TPM_MIGRATIONKEYAUTH,  BSG_TCPA_AUDIT_EVENT,  BSG_TCPA_EVENT_CERT,  BSG_TPM_PCR_SELECTION,  BSG_TPM_PCR_COMPOSITE,  BSG_TPM_PCR_INFO,  BSG_TPM_STORED_DATA,  BSG_TPM_SYMMETRIC_KEY,  BSG_TPM_STORE_PRIVKEY,  BSG_TPM_STORE_ASYMKEY,  BSG_TPM_MIGRATE_ASYMKEY,  BSG_TPM_QUOTE_INFO,  BSG_TPM_IDENTITY_CONTENTS,  BSG_TPM_PCRVALUE,  BSG_TCPA_PCR_FLAGS,  BSG_TCS_AUTH,    // this is the BSG_TPM_KEY struct without the encData field  BSG_TPM_KEY_NONSENSITIVE,    BSG_PACKED,    BSG_TYPE_MAX} BSG_Type;struct pack_const_tuple_t {  BSG_Type type;  const void * addr;};typedef struct pack_tuple_t {  BSG_Type type;  void * addr;} pack_tuple_t;int BSG_Pack(BSG_Type type, const void* src, BSG_BYTE* dst);int BSG_Unpack(BSG_Type type, const BSG_BYTE* src, void* dst);void BSG_Destroy(BSG_Type type, void* src);// wrappers of Pack and PackList which malloc the ouput buffer. to be freed// by the caller later. returns size of allocated buffer, or -1 in case// allocation failedint BSG_PackMalloc (BSG_Type type, const void* src, BSG_BYTE** o_dst);int BSG_PackListMalloc (BSG_BYTE** outBuffer, int ParamCount, ... );// a va_list version of PackListint BSG_PackList(BSG_BYTE* outBuffer, int ParamCount, ... );int BSG_UnpackList(const BSG_BYTE* inBuffer, int ParamCount, ... );void BSG_DestroyList(int ParamCount, ... );// wrapper of PackList which uses a buffer_tTPM_RESULT BSG_PackListBuf (buffer_t * o_buf, int ParamCount, ...);// and a tuple versionTPM_RESULT BSG_DestroyTuple (int numParams, pack_tuple_t params[]);void BSG_PackConst(BSG_UINT32 val, int size, BSG_BYTE* dst);BSG_UINT32 BSG_UnpackConst(const BSG_BYTE* src, int size);BOOL BSG_static_selfcheck ();#endif

⌨️ 快捷键说明

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