Compare commits

...

7 Commits

Author SHA1 Message Date
Marc-Andre Lureau
4eabafcb07
Merge 80ef24a8c8 into e02951cd05 2025-08-05 10:54:47 -04:00
Stefan Berger
e02951cd05 tpm2: Add or remove empty lines to reduce diffs
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
Stefan Berger
7eb43b9ebe tpm2: Remove commented-out blocks
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
Stefan Berger
8fd1293d60 tpm2: Sync defines for unsupported AC_GetCapability
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
Stefan Berger
bee52fbed3 tpm2: Add definitions for new algorithms and curves
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
Stefan Berger
3edd48d6b1 tpm2: Sync with new defines on symmetric algorithms' sizes
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
Stefan Berger
8c89e53ed4 tpm2: Move defines for commands from TpmAlgorithmDefines to TpmTypes.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2025-08-05 10:47:24 -04:00
13 changed files with 388 additions and 328 deletions

View File

@ -5059,41 +5059,6 @@ SetCapability_COMMAND_DESCRIPTOR_t _SetCapabilityData = {
#define _SetCapabilityDataAddress 0
#endif // CC_SetCapability
#if CC_AC_GetCapability
#include "AC_GetCapability_fp.h"
typedef TPM_RC (AC_GetCapability_Entry)(
AC_GetCapability_In *in,
AC_GetCapability_Out *out
);
typedef const struct {
AC_GetCapability_Entry *entry;
UINT16 inSize;
UINT16 outSize;
UINT16 offsetOfTypes;
UINT16 paramOffsets[3];
BYTE types[7];
} AC_GetCapability_COMMAND_DESCRIPTOR_t;
AC_GetCapability_COMMAND_DESCRIPTOR_t _AC_GetCapabilityData = {
/* entry */ &TPM2_AC_GetCapability,
/* inSize */ (UINT16)(sizeof(AC_GetCapability_In)),
/* outSize */ (UINT16)(sizeof(AC_GetCapability_Out)),
/* offsetOfTypes */ offsetof(AC_GetCapability_COMMAND_DESCRIPTOR_t, types),
/* offsets */ {(UINT16)(offsetof(AC_GetCapability_In, capability)),
(UINT16)(offsetof(AC_GetCapability_In, count)),
(UINT16)(offsetof(AC_GetCapability_Out, capabilitiesData))},
/* types */ {TPMI_RH_AC_H_UNMARSHAL,
TPM_AT_P_UNMARSHAL,
UINT32_P_UNMARSHAL,
END_OF_LIST,
TPMI_YES_NO_P_MARSHAL,
TPML_AC_CAPABILITIES_P_MARSHAL,
END_OF_LIST}
};
#define _AC_GetCapabilityDataAddress (&_AC_GetCapabilityData)
#else
#define _AC_GetCapabilityDataAddress 0
#endif
#if CC_AC_Send
#include "AC_Send_fp.h"
@ -5618,7 +5583,7 @@ COMMAND_DESCRIPTOR_t* s_CommandDataArray[] = {
(COMMAND_DESCRIPTOR_t*)_EncryptDecrypt2DataAddress,
#endif // CC_EncryptDecrypt2
#if (PAD_LIST || CC_AC_GetCapability)
(COMMAND_DESCRIPTOR_t*)_AC_GetCapabilityDataAddress,
(COMMAND_DESCRIPTOR_t*)_GetCapabilityDataAddress,
#endif // CC_AC_GetCapability
#if (PAD_LIST || CC_AC_Send)
(COMMAND_DESCRIPTOR_t*)_AC_SendDataAddress,

View File

@ -59,6 +59,7 @@
/* */
/********************************************************************************/
//* Includes and Typedefs
#include "Tpm.h"
#include "Marshal.h"

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
//** Description
// This file contains internal global type definitions and data declarations that

View File

@ -154,9 +154,7 @@ TPM2B_EMPTY c_SHA3_384_digest = {{0, {0}}};
TPM2B_EMPTY c_SHA3_512_digest = {{0, {0}}};
#endif
// libtpms added begin
#if SMAC_IMPLEMENTED && ALG_CMAC
#if SMAC_IMPLEMENTED && ALG_CMAC // libtpms added begin
TPM2B_TYPE(AES128, 16);
static TPM2B_AES128 cmac_aeskey = {{16, {
0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
@ -213,6 +211,5 @@ static const struct CMACTest {
.key = NULL,
}
};
#endif
// libtpms added end
#endif // libtpms added end

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
#ifndef _MANUFACTURE_FP_H_
#define _MANUFACTURE_FP_H_

View File

@ -333,46 +333,3 @@ bool _rpc__Signal_IsPowerOn(void)
}
/* libtpms added end */
#if 0
/* D.4 TPMCmdp.c */
/* D.4.1. Description */
/* This file contains the functions that process the commands received on the control port or the
command port of the simulator. The control port is used to allow simulation of hardware events
(such as, _TPM_Hash_Start()) to test the simulated TPM's reaction to those events. This improves
code coverage of the testing. */
/* D.4.2. Includes and Data Definitions */
#include <stdlib.h>
#include <stdio.h>
#include <setjmp.h>
#include <stdbool.h>
#include "TpmBuildSwitches.h"
#ifdef TPM_WINDOWS
#include <windows.h>
#include <winsock.h>
#endif
//#include "Platform_fp.h"
#include "PlatformACT_fp.h"
#include "ExecCommand_fp.h"
#include "Manufacture_fp.h"
#include "_TPM_Init_fp.h"
#include "_TPM_Hash_Start_fp.h"
#include "_TPM_Hash_Data_fp.h"
#include "_TPM_Hash_End_fp.h"
#include "TpmFail_fp.h"
#include "TpmTcpProtocol.h"
#include "Simulator_fp.h"
#ifdef TPM_WINDOWS
#include "TcpServer_fp.h" /* kgold */
#endif
#ifdef TPM_POSIX
#include "TcpServerPosix_fp.h" /* kgold */
#endif
#include "TpmProfile.h" /* kgold */
#define TPM_RH_ACT_0 0x40000110
#endif

View File

@ -58,182 +58,128 @@
/* */
/********************************************************************************/
// FILE GENERATED BY TpmExtractCode: DO NOT EDIT
#ifndef _TPM_INCLUDE_PRIVATE_TPMALGORITHMDEFINES_H_
#define _TPM_INCLUDE_PRIVATE_TPMALGORITHMDEFINES_H_
#include "TpmProfile.h"
#include "MinMax.h"
#include "TPMB.h"
#if ALG_ECC
// Table "Defines for NIST_P192 ECC Values" (TCG Algorithm Registry)
# define NIST_P192_ID TPM_ECC_NIST_P192
# define NIST_P192_KEY_SIZE 192
// Table "Defines for NIST_P224 ECC Values" (TCG Algorithm Registry)
# define NIST_P224_ID TPM_ECC_NIST_P224
# define NIST_P224_KEY_SIZE 224
// Table "Defines for NIST_P256 ECC Values" (TCG Algorithm Registry)
# define NIST_P256_ID TPM_ECC_NIST_P256
# define NIST_P256_KEY_SIZE 256
// Table "Defines for NIST_P384 ECC Values" (TCG Algorithm Registry)
# define NIST_P384_ID TPM_ECC_NIST_P384
# define NIST_P384_KEY_SIZE 384
// Table "Defines for NIST_P521 ECC Values" (TCG Algorithm Registry)
# define NIST_P521_ID TPM_ECC_NIST_P521
# define NIST_P521_KEY_SIZE 521
// Table "Defines for BN_P256 ECC Values" (TCG Algorithm Registry)
# define BN_P256_ID TPM_ECC_BN_P256
# define BN_P256_KEY_SIZE 256
// Table "Defines for BN_P638 ECC Values" (TCG Algorithm Registry)
# define BN_P638_ID TPM_ECC_BN_P638
# define BN_P638_KEY_SIZE 638
// Table "Defines for SM2_P256 ECC Values" (TCG Algorithm Registry)
# define SM2_P256_ID TPM_ECC_SM2_P256
# define SM2_P256_KEY_SIZE 256
// Table "Defines for BP_P256_R1 ECC Values" (TCG Algorithm Registry)
# define BP_P256_R1_ID TPM_ECC_BP_P256_R1
# define BP_P256_R1_KEY_SIZE 256
// Table "Defines for BP_P384_R1 ECC Values" (TCG Algorithm Registry)
# define BP_P384_R1_ID TPM_ECC_BP_P384_R1
# define BP_P384_R1_KEY_SIZE 384
// Table "Defines for BP_P512_R1 ECC Values" (TCG Algorithm Registry)
# define BP_P512_R1_ID TPM_ECC_BP_P512_R1
# define BP_P512_R1_KEY_SIZE 512
// Table "Defines for CURVE_25519 ECC Values" (TCG Algorithm Registry)
# define CURVE_25519_ID TPM_ECC_CURVE_25519
# define CURVE_25519_KEY_SIZE 256
// Table "Defines for CURVE_448 ECC Values" (TCG Algorithm Registry)
# define CURVE_448_ID TPM_ECC_CURVE_448
# define CURVE_448_KEY_SIZE 448
// Derived ECC Value
# define ECC_CURVES \
{ \
TPM_ECC_NIST_P192, TPM_ECC_NIST_P224, TPM_ECC_NIST_P256, \
TPM_ECC_NIST_P384, TPM_ECC_NIST_P521, TPM_ECC_BN_P256, \
TPM_ECC_BN_P638, TPM_ECC_SM2_P256}
TPM_ECC_BN_P638, TPM_ECC_SM2_P256, TPM_ECC_BP_P256_R1, \
TPM_ECC_BP_P384_R1, TPM_ECC_BP_P512_R1, TPM_ECC_CURVE_25519, \
TPM_ECC_CURVE_448 \
}
# define ECC_CURVE_COUNT \
(ECC_NIST_P192 + ECC_NIST_P224 + ECC_NIST_P256 + ECC_NIST_P384 + ECC_NIST_P521 \
+ ECC_BN_P256 + ECC_BN_P638 + ECC_SM2_P256)
+ ECC_BN_P256 + ECC_BN_P638 + ECC_SM2_P256 + ECC_BP_P256_R1 + ECC_BP_P384_R1 \
+ ECC_BP_P512_R1 + ECC_CURVE_25519 + ECC_CURVE_448)
// Avoid expanding MAX_ECC_KEY_BITS into a long expression, the compiler slows down
// and on some compilers runs out of heap space.
#define MAX_ECC_KEY_BITS \
MAX(ECC_BN_P256 * 256, MAX(ECC_BN_P638 * 638, \
MAX(ECC_NIST_P192 * 192, MAX(ECC_NIST_P224 * 224, \
MAX(ECC_NIST_P256 * 256, MAX(ECC_NIST_P384 * 384, \
MAX(ECC_NIST_P521 * 521, MAX(ECC_SM2_P256 * 256, \
0))))))))
#define MAX_ECC_KEY_BYTES BITS_TO_BYTES(MAX_ECC_KEY_BITS)
// 638
# if ECC_BN_P638
# define MAX_ECC_KEY_BITS BN_P638_KEY_SIZE
// 521
# elif ECC_NIST_P521
# define MAX_ECC_KEY_BITS NIST_P521_KEY_SIZE
# elif ECC_BP_P512_R1
# define MAX_ECC_KEY_BITS BP_P512_R1_KEY_SIZE
// 448
# elif ECC_CURVE_448
# define MAX_ECC_KEY_BITS CURVE_448_KEY_SIZE
// 384
# elif ECC_NIST_P384
# define MAX_ECC_KEY_BITS NIST_P384_KEY_SIZE
# elif ECC_BP_P384_R1
# define MAX_ECC_KEY_BITS BP_P384_R1_KEY_SIZE
// 256
# elif ECC_NIST_P256
# define MAX_ECC_KEY_BITS NIST_P256_KEY_SIZE
# elif TPM_ECC_BN_P256
# define MAX_ECC_KEY_BITS BN_P256_KEY_SIZE
# elif TPM_ECC_SM2_P256
# define MAX_ECC_KEY_BITS SM2_P256_KEY_SIZE
# elif TPM_ECC_CURVE_25519
# define MAX_ECC_KEY_BITS CURVE_25519_KEY_SIZE
# elif TPM_ECC_BP_P256_R1
# define MAX_ECC_KEY_BITS BP_P256_R1_KEY_SIZE
// 224
# elif ECC_NIST_P224
# define MAX_ECC_KEY_BITS NIST_P224_KEY_SIZE
// 192
# elif ECC_NIST_P192
# define MAX_ECC_KEY_BITS NIST_P192_KEY_SIZE
# else
# error ALG_ECC enabled, but no ECC Curves Enabled
# endif
# define MAX_ECC_KEY_BYTES ((MAX_ECC_KEY_BITS + 7) / 8)
#endif // ALG_ECC
// Additional values for benefit of code
#if COMPRESSED_LISTS
#define ADD_FILL 0
#else
#define ADD_FILL 1
#endif
// Size the array of library commands based on whether or not the array is packed (only defined
// commands) or dense (having entries for unimplemented commands)
#define LIBRARY_COMMAND_ARRAY_SIZE (0 \
+ (ADD_FILL || CC_NV_UndefineSpaceSpecial) /* 0x0000011F */ \
+ (ADD_FILL || CC_EvictControl) /* 0x00000120 */ \
+ (ADD_FILL || CC_HierarchyControl) /* 0x00000121 */ \
+ (ADD_FILL || CC_NV_UndefineSpace) /* 0x00000122 */ \
+ ADD_FILL /* 0x00000123 */ \
+ (ADD_FILL || CC_ChangeEPS) /* 0x00000124 */ \
+ (ADD_FILL || CC_ChangePPS) /* 0x00000125 */ \
+ (ADD_FILL || CC_Clear) /* 0x00000126 */ \
+ (ADD_FILL || CC_ClearControl) /* 0x00000127 */ \
+ (ADD_FILL || CC_ClockSet) /* 0x00000128 */ \
+ (ADD_FILL || CC_HierarchyChangeAuth) /* 0x00000129 */ \
+ (ADD_FILL || CC_NV_DefineSpace) /* 0x0000012A */ \
+ (ADD_FILL || CC_PCR_Allocate) /* 0x0000012B */ \
+ (ADD_FILL || CC_PCR_SetAuthPolicy) /* 0x0000012C */ \
+ (ADD_FILL || CC_PP_Commands) /* 0x0000012D */ \
+ (ADD_FILL || CC_SetPrimaryPolicy) /* 0x0000012E */ \
+ (ADD_FILL || CC_FieldUpgradeStart) /* 0x0000012F */ \
+ (ADD_FILL || CC_ClockRateAdjust) /* 0x00000130 */ \
+ (ADD_FILL || CC_CreatePrimary) /* 0x00000131 */ \
+ (ADD_FILL || CC_NV_GlobalWriteLock) /* 0x00000132 */ \
+ (ADD_FILL || CC_GetCommandAuditDigest) /* 0x00000133 */ \
+ (ADD_FILL || CC_NV_Increment) /* 0x00000134 */ \
+ (ADD_FILL || CC_NV_SetBits) /* 0x00000135 */ \
+ (ADD_FILL || CC_NV_Extend) /* 0x00000136 */ \
+ (ADD_FILL || CC_NV_Write) /* 0x00000137 */ \
+ (ADD_FILL || CC_NV_WriteLock) /* 0x00000138 */ \
+ (ADD_FILL || CC_DictionaryAttackLockReset) /* 0x00000139 */ \
+ (ADD_FILL || CC_DictionaryAttackParameters) /* 0x0000013A */ \
+ (ADD_FILL || CC_NV_ChangeAuth) /* 0x0000013B */ \
+ (ADD_FILL || CC_PCR_Event) /* 0x0000013C */ \
+ (ADD_FILL || CC_PCR_Reset) /* 0x0000013D */ \
+ (ADD_FILL || CC_SequenceComplete) /* 0x0000013E */ \
+ (ADD_FILL || CC_SetAlgorithmSet) /* 0x0000013F */ \
+ (ADD_FILL || CC_SetCommandCodeAuditStatus) /* 0x00000140 */ \
+ (ADD_FILL || CC_FieldUpgradeData) /* 0x00000141 */ \
+ (ADD_FILL || CC_IncrementalSelfTest) /* 0x00000142 */ \
+ (ADD_FILL || CC_SelfTest) /* 0x00000143 */ \
+ (ADD_FILL || CC_Startup) /* 0x00000144 */ \
+ (ADD_FILL || CC_Shutdown) /* 0x00000145 */ \
+ (ADD_FILL || CC_StirRandom) /* 0x00000146 */ \
+ (ADD_FILL || CC_ActivateCredential) /* 0x00000147 */ \
+ (ADD_FILL || CC_Certify) /* 0x00000148 */ \
+ (ADD_FILL || CC_PolicyNV) /* 0x00000149 */ \
+ (ADD_FILL || CC_CertifyCreation) /* 0x0000014A */ \
+ (ADD_FILL || CC_Duplicate) /* 0x0000014B */ \
+ (ADD_FILL || CC_GetTime) /* 0x0000014C */ \
+ (ADD_FILL || CC_GetSessionAuditDigest) /* 0x0000014D */ \
+ (ADD_FILL || CC_NV_Read) /* 0x0000014E */ \
+ (ADD_FILL || CC_NV_ReadLock) /* 0x0000014F */ \
+ (ADD_FILL || CC_ObjectChangeAuth) /* 0x00000150 */ \
+ (ADD_FILL || CC_PolicySecret) /* 0x00000151 */ \
+ (ADD_FILL || CC_Rewrap) /* 0x00000152 */ \
+ (ADD_FILL || CC_Create) /* 0x00000153 */ \
+ (ADD_FILL || CC_ECDH_ZGen) /* 0x00000154 */ \
+ (ADD_FILL || CC_HMAC || CC_MAC) /* 0x00000155 */ \
+ (ADD_FILL || CC_Import) /* 0x00000156 */ \
+ (ADD_FILL || CC_Load) /* 0x00000157 */ \
+ (ADD_FILL || CC_Quote) /* 0x00000158 */ \
+ (ADD_FILL || CC_RSA_Decrypt) /* 0x00000159 */ \
+ ADD_FILL /* 0x0000015A */ \
+ (ADD_FILL || CC_HMAC_Start || CC_MAC_Start) /* 0x0000015B */ \
+ (ADD_FILL || CC_SequenceUpdate) /* 0x0000015C */ \
+ (ADD_FILL || CC_Sign) /* 0x0000015D */ \
+ (ADD_FILL || CC_Unseal) /* 0x0000015E */ \
+ ADD_FILL /* 0x0000015F */ \
+ (ADD_FILL || CC_PolicySigned) /* 0x00000160 */ \
+ (ADD_FILL || CC_ContextLoad) /* 0x00000161 */ \
+ (ADD_FILL || CC_ContextSave) /* 0x00000162 */ \
+ (ADD_FILL || CC_ECDH_KeyGen) /* 0x00000163 */ \
+ (ADD_FILL || CC_EncryptDecrypt) /* 0x00000164 */ \
+ (ADD_FILL || CC_FlushContext) /* 0x00000165 */ \
+ ADD_FILL /* 0x00000166 */ \
+ (ADD_FILL || CC_LoadExternal) /* 0x00000167 */ \
+ (ADD_FILL || CC_MakeCredential) /* 0x00000168 */ \
+ (ADD_FILL || CC_NV_ReadPublic) /* 0x00000169 */ \
+ (ADD_FILL || CC_PolicyAuthorize) /* 0x0000016A */ \
+ (ADD_FILL || CC_PolicyAuthValue) /* 0x0000016B */ \
+ (ADD_FILL || CC_PolicyCommandCode) /* 0x0000016C */ \
+ (ADD_FILL || CC_PolicyCounterTimer) /* 0x0000016D */ \
+ (ADD_FILL || CC_PolicyCpHash) /* 0x0000016E */ \
+ (ADD_FILL || CC_PolicyLocality) /* 0x0000016F */ \
+ (ADD_FILL || CC_PolicyNameHash) /* 0x00000170 */ \
+ (ADD_FILL || CC_PolicyOR) /* 0x00000171 */ \
+ (ADD_FILL || CC_PolicyTicket) /* 0x00000172 */ \
+ (ADD_FILL || CC_ReadPublic) /* 0x00000173 */ \
+ (ADD_FILL || CC_RSA_Encrypt) /* 0x00000174 */ \
+ ADD_FILL /* 0x00000175 */ \
+ (ADD_FILL || CC_StartAuthSession) /* 0x00000176 */ \
+ (ADD_FILL || CC_VerifySignature) /* 0x00000177 */ \
+ (ADD_FILL || CC_ECC_Parameters) /* 0x00000178 */ \
+ (ADD_FILL || CC_FirmwareRead) /* 0x00000179 */ \
+ (ADD_FILL || CC_GetCapability) /* 0x0000017A */ \
+ (ADD_FILL || CC_GetRandom) /* 0x0000017B */ \
+ (ADD_FILL || CC_GetTestResult) /* 0x0000017C */ \
+ (ADD_FILL || CC_Hash) /* 0x0000017D */ \
+ (ADD_FILL || CC_PCR_Read) /* 0x0000017E */ \
+ (ADD_FILL || CC_PolicyPCR) /* 0x0000017F */ \
+ (ADD_FILL || CC_PolicyRestart) /* 0x00000180 */ \
+ (ADD_FILL || CC_ReadClock) /* 0x00000181 */ \
+ (ADD_FILL || CC_PCR_Extend) /* 0x00000182 */ \
+ (ADD_FILL || CC_PCR_SetAuthValue) /* 0x00000183 */ \
+ (ADD_FILL || CC_NV_Certify) /* 0x00000184 */ \
+ (ADD_FILL || CC_EventSequenceComplete) /* 0x00000185 */ \
+ (ADD_FILL || CC_HashSequenceStart) /* 0x00000186 */ \
+ (ADD_FILL || CC_PolicyPhysicalPresence) /* 0x00000187 */ \
+ (ADD_FILL || CC_PolicyDuplicationSelect) /* 0x00000188 */ \
+ (ADD_FILL || CC_PolicyGetDigest) /* 0x00000189 */ \
+ (ADD_FILL || CC_TestParms) /* 0x0000018A */ \
+ (ADD_FILL || CC_Commit) /* 0x0000018B */ \
+ (ADD_FILL || CC_PolicyPassword) /* 0x0000018C */ \
+ (ADD_FILL || CC_ZGen_2Phase) /* 0x0000018D */ \
+ (ADD_FILL || CC_EC_Ephemeral) /* 0x0000018E */ \
+ (ADD_FILL || CC_PolicyNvWritten) /* 0x0000018F */ \
+ (ADD_FILL || CC_PolicyTemplate) /* 0x00000190 */ \
+ (ADD_FILL || CC_CreateLoaded) /* 0x00000191 */ \
+ (ADD_FILL || CC_PolicyAuthorizeNV) /* 0x00000192 */ \
+ (ADD_FILL || CC_EncryptDecrypt2) /* 0x00000193 */ \
+ (ADD_FILL || CC_AC_GetCapability) /* 0x00000194 */ \
+ (ADD_FILL || CC_AC_Send) /* 0x00000195 */ \
+ (ADD_FILL || CC_Policy_AC_SendSelect) /* 0x00000196 */ \
+ (ADD_FILL || CC_CertifyX509) /* 0x00000197 */ \
+ (ADD_FILL || CC_ACT_SetTimeout) /* 0x00000198 */ \
+ (ADD_FILL || CC_ECC_Encrypt) /* 0x00000199 */ \
+ (ADD_FILL || CC_ECC_Decrypt) /* 0x0000019A */ \
+ (ADD_FILL || CC_PolicyCapability) /* 0x0000019B */ \
+ (ADD_FILL || CC_PolicyParameters) /* 0x0000019C */ \
+ (ADD_FILL || CC_NV_DefineSpace2) /* 0x0000019D */ \
+ (ADD_FILL || CC_NV_ReadPublic2) /* 0x0000019E */ \
+ (ADD_FILL || CC_SetCapability) /* 0x0000019F */ \
)
#define VENDOR_COMMAND_ARRAY_SIZE (0 + CC_Vendor_TCG_Test)
#define COMMAND_COUNT (LIBRARY_COMMAND_ARRAY_SIZE + VENDOR_COMMAND_ARRAY_SIZE)
#if ALG_RSA
// Table "Defines for RSA Asymmetric Cipher Algorithm Constants" (TCG Algorithm Registry)
# define RSA_KEY_SIZES_BITS \
@ -259,114 +205,61 @@
#endif // ALG_RSA
// Table "Defines for AES Symmetric Cipher Algorithm Constants" (TCG Algorithm Registry)
#define AES_KEY_SIZES_BITS (128 * AES_128), (192 * AES_192), (256 * AES_256)
#define MAX_AES_KEY_BITS AES_MAX_KEY_SIZE_BITS
#define MAX_AES_KEY_BYTES ((AES_MAX_KEY_SIZE_BITS + 7) / 8)
#define AES_128_BLOCK_SIZE_BYTES (AES_128 * 16)
#define AES_192_BLOCK_SIZE_BYTES (AES_192 * 16)
#define AES_256_BLOCK_SIZE_BYTES (AES_256 * 16)
#define AES_BLOCK_SIZES \
AES_128_BLOCK_SIZE_BYTES, AES_192_BLOCK_SIZE_BYTES, \
AES_256_BLOCK_SIZE_BYTES
#if ALG_AES
# define AES_MAX_BLOCK_SIZE 16
#else
# define AES_MAX_BLOCK_SIZE 0
#endif
#define MAX_AES_BLOCK_SIZE_BYTES AES_MAX_BLOCK_SIZE
#if AES_256
# define AES_MAX_KEY_SIZE_BITS 256
#elif AES_192
# define AES_MAX_KEY_SIZE_BITS 192
#elif AES_128
# define AES_MAX_KEY_SIZE_BITS 128
#else
# define AES_MAX_KEY_SIZE_BITS 0
#endif
#define AES_KEY_SIZES_BITS (AES_128 * 128), (AES_192 * 192), (AES_256 * 256)
#define AES_MAX_KEY_SIZE_BITS \
MAX((AES_256 * 256), MAX((AES_192 * 192), (AES_128 * 128)))
#define MAX_AES_KEY_BITS AES_MAX_KEY_SIZE_BITS
#define MAX_AES_KEY_BYTES BITS_TO_BYTES(MAX_AES_KEY_BITS)
#define AES_BLOCK_SIZES (AES_128 * 128 / 8), (AES_192 * 128 / 8), (AES_256 * 128 / 8)
#define MAX_AES_BLOCK_SIZE_BYTES \
MAX((AES_256 * 128 / 8), MAX((AES_192 * 128 / 8), (AES_128 * 128 / 8)))
#define AES_MAX_BLOCK_SIZE MAX_AES_BLOCK_SIZE_BYTES
// Table "Defines for SM4 Symmetric Cipher Algorithm Constants" (TCG Algorithm Registry)
#define SM4_KEY_SIZES_BITS (SM4_128 * 128)
#if SM4_128
# define SM4_MAX_KEY_SIZE_BITS 128
#else
# define SM4_MAX_KEY_SIZE_BITS 0
#endif
#define SM4_MAX_KEY_SIZE_BITS (SM4_128 * 128)
#define MAX_SM4_KEY_BITS SM4_MAX_KEY_SIZE_BITS
#define MAX_SM4_KEY_BYTES BITS_TO_BYTES(SM4_MAX_KEY_SIZE_BITS)
#define SM4_128_BLOCK_SIZE_BYTES (SM4_128 * 16)
#define SM4_BLOCK_SIZES SM4_128_BLOCK_SIZE_BYTES
#if ALG_SM4
# define SM4_MAX_BLOCK_SIZE 16
#else
# define SM4_MAX_BLOCK_SIZE 0
#endif
#define MAX_SM4_BLOCK_SIZE_BYTES SM4_MAX_BLOCK_SIZE
#define MAX_SM4_KEY_BYTES BITS_TO_BYTES(MAX_SM4_KEY_BITS)
#define SM4_BLOCK_SIZES (SM4_128 * 128 / 8)
#define MAX_SM4_BLOCK_SIZE_BYTES (SM4_128 * 128 / 8)
#define SM4_MAX_BLOCK_SIZE MAX_SM4_BLOCK_SIZE_BYTES
// Table "Defines for CAMELLIA Symmetric Cipher Algorithm Constants" (TCG Algorithm Registry)
#define CAMELLIA_KEY_SIZES_BITS \
(CAMELLIA_128 * 128), (CAMELLIA_192 * 192), (CAMELLIA_256 * 256)
#if CAMELLIA_256
# define CAMELLIA_MAX_KEY_SIZE_BITS 256
#elif CAMELLIA_192
# define CAMELLIA_MAX_KEY_SIZE_BITS 192
#elif CAMELLIA_128
# define CAMELLIA_MAX_KEY_SIZE_BITS 128
#else
# define CAMELLIA_MAX_KEY_SIZE_BITS 0
#endif
#define CAMELLIA_MAX_KEY_SIZE_BITS \
MAX((CAMELLIA_256 * 256), MAX((CAMELLIA_192 * 192), (CAMELLIA_128 * 128)))
#define MAX_CAMELLIA_KEY_BITS CAMELLIA_MAX_KEY_SIZE_BITS
#define MAX_CAMELLIA_KEY_BYTES ((CAMELLIA_MAX_KEY_SIZE_BITS + 7) / 8)
#define CAMELLIA_128_BLOCK_SIZE_BYTES (CAMELLIA_128 * 16)
#define CAMELLIA_192_BLOCK_SIZE_BYTES (CAMELLIA_192 * 16)
#define CAMELLIA_256_BLOCK_SIZE_BYTES (CAMELLIA_256 * 16)
#define MAX_CAMELLIA_KEY_BYTES BITS_TO_BYTES(MAX_CAMELLIA_KEY_BITS)
#define CAMELLIA_BLOCK_SIZES \
CAMELLIA_128_BLOCK_SIZE_BYTES, CAMELLIA_192_BLOCK_SIZE_BYTES, \
CAMELLIA_256_BLOCK_SIZE_BYTES
#if ALG_CAMELLIA
# define CAMELLIA_MAX_BLOCK_SIZE 16
#else
# define CAMELLIA_MAX_BLOCK_SIZE 0
#endif
#define MAX_CAMELLIA_BLOCK_SIZE_BYTES CAMELLIA_MAX_BLOCK_SIZE
(CAMELLIA_128 * 128 / 8), (CAMELLIA_192 * 128 / 8), (CAMELLIA_256 * 128 / 8)
#define MAX_CAMELLIA_BLOCK_SIZE_BYTES \
MAX((CAMELLIA_256 * 128 / 8), \
MAX((CAMELLIA_192 * 128 / 8), (CAMELLIA_128 * 128 / 8)))
#define CAMELLIA_MAX_BLOCK_SIZE MAX_CAMELLIA_BLOCK_SIZE_BYTES
// libtpms added begin
#define TDES_KEY_SIZES_BITS (128 * TDES_128), (192 * TDES_192)
#if TDES_192
# define TDES_MAX_KEY_SIZE_BITS 192
#elif TDES_128
# define TDES_MAX_KEY_SIZE_BITS 128
#else
# define TDES_MAX_KEY_SIZE_BITS 0
#endif
#define MAX_TDES_KEY_BITS TDES_MAX_KEY_SIZE_BITS
#define MAX_TDES_KEY_BYTES ((TDES_MAX_KEY_SIZE_BITS + 7) / 8)
#define TDES_128_BLOCK_SIZE_BYTES (TDES_128 * 8)
#define TDES_192_BLOCK_SIZE_BYTES (TDES_192 * 8)
#define TDES_BLOCK_SIZES \
TDES_128_BLOCK_SIZE_BYTES, TDES_192_BLOCK_SIZE_BYTES
#if ALG_TDES
# define TDES_MAX_BLOCK_SIZE 8
#else
# define TDES_MAX_BLOCK_SIZE 0
#endif
#define MAX_TDES_BLOCK_SIZE_BYTES TDES_MAX_BLOCK_SIZE
#define TDES_KEY_SIZES_BITS (TDES_128 * 128), (TDES_192 * 192)
#define TDES_MAX_KEY_SIZE_BITS \
MAX((TDES_192 * 192), (TDES_128 * 128))
#define MAX_TDES_KEY_BITS TDES_MAX_KEY_SIZE_BITS
#define MAX_TDES_KEY_BYTES BITS_TO_BYTES(MAX_TDES_KEY_BITS)
#define TDES_BLOCK_SIZES (TDES_128 * 8), (TDES_192 * 8)
#define MAX_TDES_BLOCK_SIZE_BYTES MAX((TDES_192 * 8), (TDES_128 * 8))
#define TDES_MAX_BLOCK_SIZE MAX_TDES_BLOCK_SIZE_BYTES
// libtpms added end
// Derived Symmetric Values
#define SYM_COUNT ALG_AES + ALG_SM4 + ALG_CAMELLIA + ALG_TDES // libtpms changed begin
#define MAX_SYM_BLOCK_SIZE \
(MAX(AES_MAX_BLOCK_SIZE, MAX(CAMELLIA_MAX_BLOCK_SIZE, \
MAX(SM4_MAX_BLOCK_SIZE, MAX(TDES_MAX_BLOCK_SIZE, \
0)))))
#define MAX_SYM_KEY_BITS \
(MAX(AES_MAX_KEY_SIZE_BITS, MAX(CAMELLIA_MAX_KEY_SIZE_BITS, \
MAX(SM4_MAX_KEY_SIZE_BITS, MAX(TDES_MAX_KEY_SIZE_BITS, \
0)))))
MAX(TDES_MAX_BLOCK_SIZE, \
MAX(CAMELLIA_MAX_BLOCK_SIZE, MAX(SM4_MAX_BLOCK_SIZE, AES_MAX_BLOCK_SIZE)))
#define MAX_SYM_KEY_BITS \
MAX(CAMELLIA_MAX_KEY_SIZE_BITS, MAX(SM4_MAX_KEY_SIZE_BITS, AES_MAX_KEY_SIZE_BITS))
#define MAX_SYM_KEY_BYTES ((MAX_SYM_KEY_BITS + 7) / 8)
#if MAX_SYM_KEY_BITS == 0 || MAX_SYM_BLOCK_SIZE == 0
# error Bad size for MAX_SYM_KEY_BITS or MAX_SYM_BLOCK
#endif
#endif // libtpms changed end
// Table "Defines for SHA1 Hash Values" (TCG Algorithm Registry)
#define SHA1_DIGEST_SIZE 20

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
// this file defines the desired command list that should be built into the
// Tpm Core Lib.

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
// clang-format off
// clang-format off to preserve define alignment breaking sections.

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
// FILE GENERATED BY TpmExtractCode: DO NOT EDIT
#ifndef _TPM_INCLUDE_PRIVATE_TPMTYPES_H_
@ -118,6 +119,8 @@ typedef UINT16 TPM_ALG_ID;
#define TPM_ALG_SHA384 (TPM_ALG_ID)(ALG_SHA384_VALUE)
#define ALG_SHA512_VALUE 0x000D
#define TPM_ALG_SHA512 (TPM_ALG_ID)(ALG_SHA512_VALUE)
#define ALG_SHA256_192_VALUE 0x000E
#define TPM_ALG_SHA256_192 (TPM_ALG_ID)(ALG_SHA256_192_VALUE)
#define ALG_NULL_VALUE 0x0010
#define TPM_ALG_NULL (TPM_ALG_ID)(ALG_NULL_VALUE)
#define ALG_SM3_256_VALUE 0x0012
@ -162,6 +165,16 @@ typedef UINT16 TPM_ALG_ID;
#define TPM_ALG_SHA3_384 (TPM_ALG_ID)(ALG_SHA3_384_VALUE)
#define ALG_SHA3_512_VALUE 0x0029
#define TPM_ALG_SHA3_512 (TPM_ALG_ID)(ALG_SHA3_512_VALUE)
#define ALG_SHAKE128_VALUE 0x002A
#define TPM_ALG_SHAKE128 (TPM_ALG_ID)(ALG_SHAKE128_VALUE)
#define ALG_SHAKE256_VALUE 0x002B
#define TPM_ALG_SHAKE256 (TPM_ALG_ID)(ALG_SHAKE256_VALUE)
#define ALG_SHAKE256_192_VALUE 0x002C
#define TPM_ALG_SHAKE256_192 (TPM_ALG_ID)(ALG_SHAKE256_192_VALUE)
#define ALG_SHAKE256_256_VALUE 0x002D
#define TPM_ALG_SHAKE256_256 (TPM_ALG_ID)(ALG_SHAKE256_256_VALUE)
#define ALG_SHAKE256_512_VALUE 0x002E
#define TPM_ALG_SHAKE256_512 (TPM_ALG_ID)(ALG_SHAKE256_512_VALUE)
#define ALG_CMAC_VALUE 0x003F
#define TPM_ALG_CMAC (TPM_ALG_ID)(ALG_CMAC_VALUE)
#define ALG_CTR_VALUE 0x0040
@ -174,10 +187,28 @@ typedef UINT16 TPM_ALG_ID;
#define TPM_ALG_CFB (TPM_ALG_ID)(ALG_CFB_VALUE)
#define ALG_ECB_VALUE 0x0044
#define TPM_ALG_ECB (TPM_ALG_ID)(ALG_ECB_VALUE)
#define ALG_CCM_VALUE 0x0050
#define TPM_ALG_CCM (TPM_ALG_ID)(ALG_CCM_VALUE)
#define ALG_GCM_VALUE 0x0051
#define TPM_ALG_GCM (TPM_ALG_ID)(ALG_GCM_VALUE)
#define ALG_KW_VALUE 0x0052
#define TPM_ALG_KW (TPM_ALG_ID)(ALG_KW_VALUE)
#define ALG_KWP_VALUE 0x0053
#define TPM_ALG_KWP (TPM_ALG_ID)(ALG_KWP_VALUE)
#define ALG_EAX_VALUE 0x0054
#define TPM_ALG_EAX (TPM_ALG_ID)(ALG_EAX_VALUE)
#define ALG_EDDSA_VALUE 0x0060
#define TPM_ALG_EDDSA (TPM_ALG_ID)(ALG_EDDSA_VALUE)
#define ALG_EDDSA_PH_VALUE 0x0061
#define TPM_ALG_EDDSA_PH (TPM_ALG_ID)(ALG_EDDSA_PH_VALUE)
#define ALG_LMS_VALUE 0x0070
#define TPM_ALG_LMS (TPM_ALG_ID)(ALG_LMS_VALUE)
#define ALG_XMSS_VALUE 0x0071
#define TPM_ALG_XMSS (TPM_ALG_ID)(ALG_XMSS_VALUE)
// Values derived from Table "Definition of TPM_ALG_ID Constants" (Part 2: Structures)
#define ALG_FIRST_VALUE 0x0001
#define TPM_ALG_FIRST (TPM_ALG_ID)(ALG_FIRST_VALUE)
#define ALG_LAST_VALUE 0x0044
#define ALG_LAST_VALUE 0x0071
#define TPM_ALG_LAST (TPM_ALG_ID)(ALG_LAST_VALUE)
// Table "Definition of TPM_ECC_CURVE Constants" (Part 2: Structures)
@ -193,6 +224,11 @@ typedef UINT16 TPM_ECC_CURVE;
#define TPM_ECC_BN_P256 (TPM_ECC_CURVE)(0x0010)
#define TPM_ECC_BN_P638 (TPM_ECC_CURVE)(0x0011)
#define TPM_ECC_SM2_P256 (TPM_ECC_CURVE)(0x0020)
#define TPM_ECC_BP_P256_R1 (TPM_ECC_CURVE)(0x0030)
#define TPM_ECC_BP_P384_R1 (TPM_ECC_CURVE)(0x0031)
#define TPM_ECC_BP_P512_R1 (TPM_ECC_CURVE)(0x0032)
#define TPM_ECC_CURVE_25519 (TPM_ECC_CURVE)(0x0040)
#define TPM_ECC_CURVE_448 (TPM_ECC_CURVE)(0x0041)
// Table "Definition of TPM_CC Constants" (Part 2: Structures)
typedef UINT32 TPM_CC;
@ -329,6 +365,154 @@ typedef UINT32 TPM_CC;
#define CC_VEND (TPM_CC)(0x20000000)
#define TPM_CC_Vendor_TCG_Test (TPM_CC)(0x20000000)
// This large macro is needed to determine the maximum commandIndex. This value
// is needed in order to size typdef'ed structures. As a consequence, the
// computation cannot be deferred until the command array is instanced and
// so that the number of entires can be determine by
// sizeof(array)/sizeof(entry).
//
// Size the array of library commands based on whether or not the array is
// packed (only defined commands) or dense
// (having entries for unimplemented commands). This overly large macro
// computes the size of the array and sets some global constants
#if COMPRESSED_LISTS
# define ADD_FILL 0
#else
# define ADD_FILL 1
#endif
#define LIBRARY_COMMAND_ARRAY_SIZE \
(0 + (ADD_FILL || CC_NV_UndefineSpaceSpecial) /* 0x0000011F */ \
+ (ADD_FILL || CC_EvictControl) /* 0x00000120 */ \
+ (ADD_FILL || CC_HierarchyControl) /* 0x00000121 */ \
+ (ADD_FILL || CC_NV_UndefineSpace) /* 0x00000122 */ \
+ ADD_FILL /* 0x00000123 */ \
+ (ADD_FILL || CC_ChangeEPS) /* 0x00000124 */ \
+ (ADD_FILL || CC_ChangePPS) /* 0x00000125 */ \
+ (ADD_FILL || CC_Clear) /* 0x00000126 */ \
+ (ADD_FILL || CC_ClearControl) /* 0x00000127 */ \
+ (ADD_FILL || CC_ClockSet) /* 0x00000128 */ \
+ (ADD_FILL || CC_HierarchyChangeAuth) /* 0x00000129 */ \
+ (ADD_FILL || CC_NV_DefineSpace) /* 0x0000012A */ \
+ (ADD_FILL || CC_PCR_Allocate) /* 0x0000012B */ \
+ (ADD_FILL || CC_PCR_SetAuthPolicy) /* 0x0000012C */ \
+ (ADD_FILL || CC_PP_Commands) /* 0x0000012D */ \
+ (ADD_FILL || CC_SetPrimaryPolicy) /* 0x0000012E */ \
+ (ADD_FILL || CC_FieldUpgradeStart) /* 0x0000012F */ \
+ (ADD_FILL || CC_ClockRateAdjust) /* 0x00000130 */ \
+ (ADD_FILL || CC_CreatePrimary) /* 0x00000131 */ \
+ (ADD_FILL || CC_NV_GlobalWriteLock) /* 0x00000132 */ \
+ (ADD_FILL || CC_GetCommandAuditDigest) /* 0x00000133 */ \
+ (ADD_FILL || CC_NV_Increment) /* 0x00000134 */ \
+ (ADD_FILL || CC_NV_SetBits) /* 0x00000135 */ \
+ (ADD_FILL || CC_NV_Extend) /* 0x00000136 */ \
+ (ADD_FILL || CC_NV_Write) /* 0x00000137 */ \
+ (ADD_FILL || CC_NV_WriteLock) /* 0x00000138 */ \
+ (ADD_FILL || CC_DictionaryAttackLockReset) /* 0x00000139 */ \
+ (ADD_FILL || CC_DictionaryAttackParameters) /* 0x0000013A */ \
+ (ADD_FILL || CC_NV_ChangeAuth) /* 0x0000013B */ \
+ (ADD_FILL || CC_PCR_Event) /* 0x0000013C */ \
+ (ADD_FILL || CC_PCR_Reset) /* 0x0000013D */ \
+ (ADD_FILL || CC_SequenceComplete) /* 0x0000013E */ \
+ (ADD_FILL || CC_SetAlgorithmSet) /* 0x0000013F */ \
+ (ADD_FILL || CC_SetCommandCodeAuditStatus) /* 0x00000140 */ \
+ (ADD_FILL || CC_FieldUpgradeData) /* 0x00000141 */ \
+ (ADD_FILL || CC_IncrementalSelfTest) /* 0x00000142 */ \
+ (ADD_FILL || CC_SelfTest) /* 0x00000143 */ \
+ (ADD_FILL || CC_Startup) /* 0x00000144 */ \
+ (ADD_FILL || CC_Shutdown) /* 0x00000145 */ \
+ (ADD_FILL || CC_StirRandom) /* 0x00000146 */ \
+ (ADD_FILL || CC_ActivateCredential) /* 0x00000147 */ \
+ (ADD_FILL || CC_Certify) /* 0x00000148 */ \
+ (ADD_FILL || CC_PolicyNV) /* 0x00000149 */ \
+ (ADD_FILL || CC_CertifyCreation) /* 0x0000014A */ \
+ (ADD_FILL || CC_Duplicate) /* 0x0000014B */ \
+ (ADD_FILL || CC_GetTime) /* 0x0000014C */ \
+ (ADD_FILL || CC_GetSessionAuditDigest) /* 0x0000014D */ \
+ (ADD_FILL || CC_NV_Read) /* 0x0000014E */ \
+ (ADD_FILL || CC_NV_ReadLock) /* 0x0000014F */ \
+ (ADD_FILL || CC_ObjectChangeAuth) /* 0x00000150 */ \
+ (ADD_FILL || CC_PolicySecret) /* 0x00000151 */ \
+ (ADD_FILL || CC_Rewrap) /* 0x00000152 */ \
+ (ADD_FILL || CC_Create) /* 0x00000153 */ \
+ (ADD_FILL || CC_ECDH_ZGen) /* 0x00000154 */ \
+ (ADD_FILL || (CC_HMAC || CC_MAC)) /* 0x00000155 */ \
+ (ADD_FILL || CC_Import) /* 0x00000156 */ \
+ (ADD_FILL || CC_Load) /* 0x00000157 */ \
+ (ADD_FILL || CC_Quote) /* 0x00000158 */ \
+ (ADD_FILL || CC_RSA_Decrypt) /* 0x00000159 */ \
+ ADD_FILL /* 0x0000015A */ \
+ (ADD_FILL || (CC_HMAC_Start || CC_MAC_Start)) /* 0x0000015B */ \
+ (ADD_FILL || CC_SequenceUpdate) /* 0x0000015C */ \
+ (ADD_FILL || CC_Sign) /* 0x0000015D */ \
+ (ADD_FILL || CC_Unseal) /* 0x0000015E */ \
+ ADD_FILL /* 0x0000015F */ \
+ (ADD_FILL || CC_PolicySigned) /* 0x00000160 */ \
+ (ADD_FILL || CC_ContextLoad) /* 0x00000161 */ \
+ (ADD_FILL || CC_ContextSave) /* 0x00000162 */ \
+ (ADD_FILL || CC_ECDH_KeyGen) /* 0x00000163 */ \
+ (ADD_FILL || CC_EncryptDecrypt) /* 0x00000164 */ \
+ (ADD_FILL || CC_FlushContext) /* 0x00000165 */ \
+ ADD_FILL /* 0x00000166 */ \
+ (ADD_FILL || CC_LoadExternal) /* 0x00000167 */ \
+ (ADD_FILL || CC_MakeCredential) /* 0x00000168 */ \
+ (ADD_FILL || CC_NV_ReadPublic) /* 0x00000169 */ \
+ (ADD_FILL || CC_PolicyAuthorize) /* 0x0000016A */ \
+ (ADD_FILL || CC_PolicyAuthValue) /* 0x0000016B */ \
+ (ADD_FILL || CC_PolicyCommandCode) /* 0x0000016C */ \
+ (ADD_FILL || CC_PolicyCounterTimer) /* 0x0000016D */ \
+ (ADD_FILL || CC_PolicyCpHash) /* 0x0000016E */ \
+ (ADD_FILL || CC_PolicyLocality) /* 0x0000016F */ \
+ (ADD_FILL || CC_PolicyNameHash) /* 0x00000170 */ \
+ (ADD_FILL || CC_PolicyOR) /* 0x00000171 */ \
+ (ADD_FILL || CC_PolicyTicket) /* 0x00000172 */ \
+ (ADD_FILL || CC_ReadPublic) /* 0x00000173 */ \
+ (ADD_FILL || CC_RSA_Encrypt) /* 0x00000174 */ \
+ ADD_FILL /* 0x00000175 */ \
+ (ADD_FILL || CC_StartAuthSession) /* 0x00000176 */ \
+ (ADD_FILL || CC_VerifySignature) /* 0x00000177 */ \
+ (ADD_FILL || CC_ECC_Parameters) /* 0x00000178 */ \
+ (ADD_FILL || CC_FirmwareRead) /* 0x00000179 */ \
+ (ADD_FILL || CC_GetCapability) /* 0x0000017A */ \
+ (ADD_FILL || CC_GetRandom) /* 0x0000017B */ \
+ (ADD_FILL || CC_GetTestResult) /* 0x0000017C */ \
+ (ADD_FILL || CC_Hash) /* 0x0000017D */ \
+ (ADD_FILL || CC_PCR_Read) /* 0x0000017E */ \
+ (ADD_FILL || CC_PolicyPCR) /* 0x0000017F */ \
+ (ADD_FILL || CC_PolicyRestart) /* 0x00000180 */ \
+ (ADD_FILL || CC_ReadClock) /* 0x00000181 */ \
+ (ADD_FILL || CC_PCR_Extend) /* 0x00000182 */ \
+ (ADD_FILL || CC_PCR_SetAuthValue) /* 0x00000183 */ \
+ (ADD_FILL || CC_NV_Certify) /* 0x00000184 */ \
+ (ADD_FILL || CC_EventSequenceComplete) /* 0x00000185 */ \
+ (ADD_FILL || CC_HashSequenceStart) /* 0x00000186 */ \
+ (ADD_FILL || CC_PolicyPhysicalPresence) /* 0x00000187 */ \
+ (ADD_FILL || CC_PolicyDuplicationSelect) /* 0x00000188 */ \
+ (ADD_FILL || CC_PolicyGetDigest) /* 0x00000189 */ \
+ (ADD_FILL || CC_TestParms) /* 0x0000018A */ \
+ (ADD_FILL || CC_Commit) /* 0x0000018B */ \
+ (ADD_FILL || CC_PolicyPassword) /* 0x0000018C */ \
+ (ADD_FILL || CC_ZGen_2Phase) /* 0x0000018D */ \
+ (ADD_FILL || CC_EC_Ephemeral) /* 0x0000018E */ \
+ (ADD_FILL || CC_PolicyNvWritten) /* 0x0000018F */ \
+ (ADD_FILL || CC_PolicyTemplate) /* 0x00000190 */ \
+ (ADD_FILL || CC_CreateLoaded) /* 0x00000191 */ \
+ (ADD_FILL || CC_PolicyAuthorizeNV) /* 0x00000192 */ \
+ (ADD_FILL || CC_EncryptDecrypt2) /* 0x00000193 */ \
+ (ADD_FILL || CC_AC_GetCapability) /* 0x00000194 */ \
+ (ADD_FILL || CC_AC_Send) /* 0x00000195 */ \
+ (ADD_FILL || CC_Policy_AC_SendSelect) /* 0x00000196 */ \
+ (ADD_FILL || CC_CertifyX509) /* 0x00000197 */ \
+ (ADD_FILL || CC_ACT_SetTimeout) /* 0x00000198 */ \
+ (ADD_FILL || CC_ECC_Encrypt) /* 0x00000199 */ \
+ (ADD_FILL || CC_ECC_Decrypt) /* 0x0000019A */ \
+ (ADD_FILL || CC_PolicyCapability) /* 0x0000019B */ \
+ (ADD_FILL || CC_PolicyParameters) /* 0x0000019C */ \
+ (ADD_FILL || CC_NV_DefineSpace2) /* 0x0000019D */ \
+ (ADD_FILL || CC_NV_ReadPublic2) /* 0x0000019E */ \
+ (ADD_FILL || CC_SetCapability) /* 0x0000019F */ \
)
#define VENDOR_COMMAND_ARRAY_SIZE (CC_Vendor_TCG_Test)
#define COMMAND_COUNT (LIBRARY_COMMAND_ARRAY_SIZE + VENDOR_COMMAND_ARRAY_SIZE)
// Table "Definition of TPM_RC Constants" (Part 2: Structures)
typedef UINT32 TPM_RC;
@ -1449,6 +1633,9 @@ typedef union
#if ALG_SHA256
BYTE sha256[SHA256_DIGEST_SIZE];
#endif // ALG_SHA256
#if ALG_SHA256_192
BYTE sha256_192[SHA256_192_DIGEST_SIZE];
#endif // ALG_SHA256_192
#if ALG_SHA3_256
BYTE sha3_256[SHA3_256_DIGEST_SIZE];
#endif // ALG_SHA3_256
@ -1464,6 +1651,15 @@ typedef union
#if ALG_SHA512
BYTE sha512[SHA512_DIGEST_SIZE];
#endif // ALG_SHA512
#if ALG_SHAKE256_192
BYTE shake256_192[SHAKE256_192_DIGEST_SIZE];
#endif // ALG_SHAKE256_192
#if ALG_SHAKE256_256
BYTE shake256_256[SHAKE256_256_DIGEST_SIZE];
#endif // ALG_SHAKE256_256
#if ALG_SHAKE256_512
BYTE shake256_512[SHAKE256_512_DIGEST_SIZE];
#endif // ALG_SHAKE256_512
#if ALG_SM3_256
BYTE sm3_256[SM3_256_DIGEST_SIZE];
#endif // ALG_SM3_256
@ -2071,6 +2267,10 @@ typedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_ECDSA;
#define TYPE_OF_TPMS_SIG_SCHEME_ECDSA TPMS_SCHEME_HASH
typedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_ECSCHNORR;
#define TYPE_OF_TPMS_SIG_SCHEME_ECSCHNORR TPMS_SCHEME_HASH
typedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_EDDSA;
#define TYPE_OF_TPMS_SIG_SCHEME_EDDSA TPMS_SCHEME_HASH
typedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_EDDSA_PH;
#define TYPE_OF_TPMS_SIG_SCHEME_EDDSA_PH TPMS_SCHEME_HASH
typedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_SM2;
#define TYPE_OF_TPMS_SIG_SCHEME_SM2 TPMS_SCHEME_HASH
@ -2097,6 +2297,18 @@ typedef union
#if ALG_ECSCHNORR
TPMS_SIG_SCHEME_ECSCHNORR ecschnorr;
#endif // ALG_ECSCHNORR
#if ALG_EDDSA
TPMS_SIG_SCHEME_EDDSA eddsa;
#endif // ALG_EDDSA
#if ALG_EDDSA_PH
TPMS_SIG_SCHEME_EDDSA_PH eddsa_ph;
#endif // ALG_EDDSA_PH
#if ALG_LMS
TPMS_SIG_SCHEME_LMS lms;
#endif // ALG_LMS
#if ALG_XMSS
TPMS_SIG_SCHEME_XMSS xmss;
#endif // ALG_XMSS
TPMS_SCHEME_HASH any;
} TPMU_SIG_SCHEME;
@ -2187,6 +2399,18 @@ typedef union
#if ALG_ECMQV
TPMS_KEY_SCHEME_ECMQV ecmqv;
#endif // ALG_ECMQV
#if ALG_EDDSA
TPMS_SIG_SCHEME_EDDSA eddsa;
#endif // ALG_EDDSA
#if ALG_EDDSA_PH
TPMS_SIG_SCHEME_EDDSA_PH eddsa_ph;
#endif // ALG_EDDSA_PH
#if ALG_LMS
TPMS_SIG_SCHEME_LMS lms;
#endif // ALG_LMS
#if ALG_XMSS
TPMS_SIG_SCHEME_XMSS xmss;
#endif // ALG_XMSS
} TPMU_ASYM_SCHEME;
typedef struct
@ -2301,6 +2525,10 @@ typedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_ECDSA;
#define TYPE_OF_TPMS_SIGNATURE_ECDSA TPMS_SIGNATURE_ECC
typedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_ECSCHNORR;
#define TYPE_OF_TPMS_SIGNATURE_ECSCHNORR TPMS_SIGNATURE_ECC
typedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_EDDSA;
#define TYPE_OF_TPMS_SIGNATURE_EDDSA TPMS_SIGNATURE_ECC
typedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_EDDSA_PH;
#define TYPE_OF_TPMS_SIGNATURE_EDDSA_PH TPMS_SIGNATURE_ECC
typedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_SM2;
#define TYPE_OF_TPMS_SIGNATURE_SM2 TPMS_SIGNATURE_ECC
@ -2327,6 +2555,18 @@ typedef union
#if ALG_ECSCHNORR
TPMS_SIGNATURE_ECSCHNORR ecschnorr;
#endif // ALG_ECSCHNORR
#if ALG_EDDSA
TPMS_SIGNATURE_EDDSA eddsa;
#endif // ALG_EDDSA
#if ALG_EDDSA_PH
TPMS_SIGNATURE_EDDSA_PH eddsa_ph;
#endif // ALG_EDDSA_PH
#if ALG_LMS
TPMS_SIGNATURE_LMS lms;
#endif // ALG_LMS
#if ALG_XMSS
TPMS_SIGNATURE_XMSS xmss;
#endif // ALG_XMSS
TPMS_SCHEME_HASH any;
} TPMU_SIGNATURE;

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
#ifndef _VENDORINFO_H
#define _VENDORINFO_H

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
// common headers for simulator implementation files
#ifndef SIMULATOR_PRIVATE_H

View File

@ -58,6 +58,7 @@
/* */
/********************************************************************************/
// This file represents the functional interface that all platform libraries must
// provide because they are called by the Core TPM library.
#ifndef _TPM_TO_PLATFORM_INTERFACE_H_