tpm.h

来自「IBM开发的TPM的驱动, 有少量的例子可以供参考」· C头文件 代码 · 共 44 行

H
44
字号
/****************************************************************************//*                                                                          *//*  TPM.H  24 Apr 2003                                                      *//*                                                                          *//*                           Copyright (C) 2004 IBM                         *//*                                                                          *//****************************************************************************/#ifndef TPM_H#define TPM_H#define ERR_MASK             0x80000000	/* mask to define error state */#define ERR_BAD_RESP         0x80001000	/* response from TPM not formatted correctly */#define ERR_HMAC_FAIL        0x80001001	/* HMAC authorization verification failed */#define ERR_NULL_ARG         0x80001002	/* An argument was NULL that shouldn't be */#define ERR_BAD_ARG          0x80001003	/* An argument had an invalid value */#define ERR_CRYPT_ERR        0x80001004	/* An error occurred in an OpenSSL library call */#define ERR_IO               0x80001005	/* An I/O Error occured */#define ERR_MEM_ERR          0x80001006	/* A memory allocation error occurred */#define TPM_MAX_BUFF_SIZE              4096#define TPM_HASH_SIZE                  20#define TPM_NONCE_SIZE                 20#define TPM_U16_SIZE                   2#define TPM_U32_SIZE                   4#define TPM_PARAMSIZE_OFFSET           TPM_U16_SIZE#define TPM_RETURN_OFFSET              ( TPM_U16_SIZE + TPM_U32_SIZE )#define TPM_DATA_OFFSET                ( TPM_RETURN_OFFSET + TPM_U32_SIZE )#define STORE32(buffer,offset,value)  { *(uint32_t *)&buffer[offset] = htonl(value); }#define STORE16(buffer,offset,value)  { *(uint16_t *)&buffer[offset] = htons(value); }#define STORE32N(buffer,offset,value) { *(uint32_t *)&buffer[offset] = value; }#define STORE16N(buffer,offset,value) { *(uint16_t *)&buffer[offset] = value; }#define LOAD32(buffer,offset)         ( ntohl(*(uint32_t *)&buffer[offset]) )#define LOAD16(buffer,offset)         ( ntohs(*(uint16_t *)&buffer[offset]) )#define LOAD32N(buffer,offset)        ( *(uint32_t *)&buffer[offset] )#define LOAD16N(buffer,offset)        ( *(uint16_t *)&buffer[offset] )#define ADD32(buffer,offset,value)    { STORE32(buffer,offset,( LOAD32(buffer,offset) + value ) )  }#endif

⌨️ 快捷键说明

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