// // Copyright (C) 2015 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // THIS CODE IS GENERATED - DO NOT MODIFY! #ifndef TRUNKS_TPM_GENERATED_H_ #define TRUNKS_TPM_GENERATED_H_ #include <string> #include <base/callback_forward.h> #include <base/macros.h> #include "trunks/trunks_export.h" namespace trunks { class AuthorizationDelegate; class CommandTransceiver; #if !defined(SHA1_DIGEST_SIZE) #define SHA1_DIGEST_SIZE 20 #endif #if !defined(SHA1_BLOCK_SIZE) #define SHA1_BLOCK_SIZE 64 #endif #if !defined(SHA1_DER_SIZE) #define SHA1_DER_SIZE 15 #endif #if !defined(SHA1_DER) #define SHA1_DER \ { \ 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, \ 0x00, 0x04, 0x14 \ } #endif #if !defined(SHA256_DIGEST_SIZE) #define SHA256_DIGEST_SIZE 32 #endif #if !defined(SHA256_BLOCK_SIZE) #define SHA256_BLOCK_SIZE 64 #endif #if !defined(SHA256_DER_SIZE) #define SHA256_DER_SIZE 19 #endif #if !defined(SHA256_DER) #define SHA256_DER \ { \ 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20 \ } #endif #if !defined(SHA384_DIGEST_SIZE) #define SHA384_DIGEST_SIZE 48 #endif #if !defined(SHA384_BLOCK_SIZE) #define SHA384_BLOCK_SIZE 128 #endif #if !defined(SHA384_DER_SIZE) #define SHA384_DER_SIZE 19 #endif #if !defined(SHA384_DER) #define SHA384_DER \ { \ 0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30 \ } #endif #if !defined(SHA512_DIGEST_SIZE) #define SHA512_DIGEST_SIZE 64 #endif #if !defined(SHA512_BLOCK_SIZE) #define SHA512_BLOCK_SIZE 128 #endif #if !defined(SHA512_DER_SIZE) #define SHA512_DER_SIZE 19 #endif #if !defined(SHA512_DER) #define SHA512_DER \ { \ 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40 \ } #endif #if !defined(SM3_256_DIGEST_SIZE) #define SM3_256_DIGEST_SIZE 32 #endif #if !defined(SM3_256_BLOCK_SIZE) #define SM3_256_BLOCK_SIZE 64 #endif #if !defined(SM3_256_DER_SIZE) #define SM3_256_DER_SIZE 18 #endif #if !defined(SM3_256_DER) #define SM3_256_DER \ { \ 0x30, 0x30, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x81, 0x1c, 0x81, 0x45, 0x01, \ 0x83, 0x11, 0x05, 0x00, 0x04, 0x20 \ } #endif #if !defined(MAX_SESSION_NUMBER) #define MAX_SESSION_NUMBER 3 #endif #if !defined(YES) #define YES 1 #endif #if !defined(NO) #define NO 0 #endif #if !defined(TRUE) #define TRUE 1 #endif #if !defined(FALSE) #define FALSE 0 #endif #if !defined(SET) #define SET 1 #endif #if !defined(CLEAR) #define CLEAR 0 #endif #if !defined(BIG_ENDIAN_TPM) #define BIG_ENDIAN_TPM NO #endif #if !defined(LITTLE_ENDIAN_TPM) #define LITTLE_ENDIAN_TPM YES #endif #if !defined(NO_AUTO_ALIGN) #define NO_AUTO_ALIGN NO #endif #if !defined(RSA_KEY_SIZES_BITS) #define RSA_KEY_SIZES_BITS \ { 1024, 2048 } #endif #if !defined(MAX_RSA_KEY_BITS) #define MAX_RSA_KEY_BITS 2048 #endif #if !defined(MAX_RSA_KEY_BYTES) #define MAX_RSA_KEY_BYTES ((MAX_RSA_KEY_BITS + 7) / 8) #endif #if !defined(ECC_CURVES) #define ECC_CURVES \ { \ trunks::TPM_ECC_NIST_P256, trunks::TPM_ECC_BN_P256, \ trunks::TPM_ECC_SM2_P256 \ } #endif #if !defined(ECC_KEY_SIZES_BITS) #define ECC_KEY_SIZES_BITS \ { 256 } #endif #if !defined(MAX_ECC_KEY_BITS) #define MAX_ECC_KEY_BITS 256 #endif #if !defined(MAX_ECC_KEY_BYTES) #define MAX_ECC_KEY_BYTES ((MAX_ECC_KEY_BITS + 7) / 8) #endif #if !defined(AES_KEY_SIZES_BITS) #define AES_KEY_SIZES_BITS \ { 128 } #endif #if !defined(MAX_AES_KEY_BITS) #define MAX_AES_KEY_BITS 128 #endif #if !defined(MAX_AES_BLOCK_SIZE_BYTES) #define MAX_AES_BLOCK_SIZE_BYTES 16 #endif #if !defined(MAX_AES_KEY_BYTES) #define MAX_AES_KEY_BYTES ((MAX_AES_KEY_BITS + 7) / 8) #endif #if !defined(SM4_KEY_SIZES_BITS) #define SM4_KEY_SIZES_BITS \ { 128 } #endif #if !defined(MAX_SM4_KEY_BITS) #define MAX_SM4_KEY_BITS 128 #endif #if !defined(MAX_SM4_BLOCK_SIZE_BYTES) #define MAX_SM4_BLOCK_SIZE_BYTES 16 #endif #if !defined(MAX_SM4_KEY_BYTES) #define MAX_SM4_KEY_BYTES ((MAX_SM4_KEY_BITS + 7) / 8) #endif #if !defined(MAX_SYM_KEY_BITS) #define MAX_SYM_KEY_BITS MAX_AES_KEY_BITS #endif #if !defined(MAX_SYM_KEY_BYTES) #define MAX_SYM_KEY_BYTES MAX_AES_KEY_BYTES #endif #if !defined(MAX_SYM_BLOCK_SIZE) #define MAX_SYM_BLOCK_SIZE MAX_AES_BLOCK_SIZE_BYTES #endif #if !defined(FIELD_UPGRADE_IMPLEMENTED) #define FIELD_UPGRADE_IMPLEMENTED NO #endif #if !defined(BSIZE) #define BSIZE trunks::UINT16 #endif #if !defined(BUFFER_ALIGNMENT) #define BUFFER_ALIGNMENT 4 #endif #if !defined(IMPLEMENTATION_PCR) #define IMPLEMENTATION_PCR 24 #endif #if !defined(PLATFORM_PCR) #define PLATFORM_PCR 24 #endif #if !defined(DRTM_PCR) #define DRTM_PCR 17 #endif #if !defined(HCRTM_PCR) #define HCRTM_PCR 0 #endif #if !defined(NUM_LOCALITIES) #define NUM_LOCALITIES 5 #endif #if !defined(MAX_HANDLE_NUM) #define MAX_HANDLE_NUM 3 #endif #if !defined(MAX_ACTIVE_SESSIONS) #define MAX_ACTIVE_SESSIONS 64 #endif #if !defined(CONTEXT_SLOT) #define CONTEXT_SLOT trunks::UINT16 #endif #if !defined(CONTEXT_COUNTER) #define CONTEXT_COUNTER trunks::UINT64 #endif #if !defined(MAX_LOADED_SESSIONS) #define MAX_LOADED_SESSIONS 3 #endif #if !defined(MAX_SESSION_NUM) #define MAX_SESSION_NUM 3 #endif #if !defined(MAX_LOADED_OBJECTS) #define MAX_LOADED_OBJECTS 3 #endif #if !defined(MIN_EVICT_OBJECTS) #define MIN_EVICT_OBJECTS 2 #endif #if !defined(PCR_SELECT_MIN) #define PCR_SELECT_MIN ((PLATFORM_PCR + 7) / 8) #endif #if !defined(PCR_SELECT_MAX) #define PCR_SELECT_MAX ((IMPLEMENTATION_PCR + 7) / 8) #endif #if !defined(NUM_POLICY_PCR_GROUP) #define NUM_POLICY_PCR_GROUP 1 #endif #if !defined(NUM_AUTHVALUE_PCR_GROUP) #define NUM_AUTHVALUE_PCR_GROUP 1 #endif #if !defined(MAX_CONTEXT_SIZE) #define MAX_CONTEXT_SIZE 4000 #endif #if !defined(MAX_DIGEST_BUFFER) #define MAX_DIGEST_BUFFER 1024 #endif #if !defined(MAX_NV_INDEX_SIZE) #define MAX_NV_INDEX_SIZE 2048 #endif #if !defined(MAX_NV_BUFFER_SIZE) #define MAX_NV_BUFFER_SIZE 1024 #endif #if !defined(MAX_CAP_BUFFER) #define MAX_CAP_BUFFER 1024 #endif #if !defined(NV_MEMORY_SIZE) #define NV_MEMORY_SIZE 16384 #endif #if !defined(NUM_STATIC_PCR) #define NUM_STATIC_PCR 16 #endif #if !defined(MAX_ALG_LIST_SIZE) #define MAX_ALG_LIST_SIZE 64 #endif #if !defined(TIMER_PRESCALE) #define TIMER_PRESCALE 100000 #endif #if !defined(PRIMARY_SEED_SIZE) #define PRIMARY_SEED_SIZE 32 #endif #if !defined(CONTEXT_ENCRYPT_ALG) #define CONTEXT_ENCRYPT_ALG trunks::TPM_ALG_AES #endif #if !defined(CONTEXT_ENCRYPT_KEY_BITS) #define CONTEXT_ENCRYPT_KEY_BITS MAX_SYM_KEY_BITS #endif #if !defined(CONTEXT_ENCRYPT_KEY_BYTES) #define CONTEXT_ENCRYPT_KEY_BYTES ((CONTEXT_ENCRYPT_KEY_BITS + 7) / 8) #endif #if !defined(CONTEXT_INTEGRITY_HASH_ALG) #define CONTEXT_INTEGRITY_HASH_ALG trunks::TPM_ALG_SHA256 #endif #if !defined(CONTEXT_INTEGRITY_HASH_SIZE) #define CONTEXT_INTEGRITY_HASH_SIZE SHA256_DIGEST_SIZE #endif #if !defined(PROOF_SIZE) #define PROOF_SIZE CONTEXT_INTEGRITY_HASH_SIZE #endif #if !defined(NV_CLOCK_UPDATE_INTERVAL) #define NV_CLOCK_UPDATE_INTERVAL 12 #endif #if !defined(NUM_POLICY_PCR) #define NUM_POLICY_PCR 1 #endif #if !defined(MAX_COMMAND_SIZE) #define MAX_COMMAND_SIZE 4096 #endif #if !defined(MAX_RESPONSE_SIZE) #define MAX_RESPONSE_SIZE 4096 #endif #if !defined(ORDERLY_BITS) #define ORDERLY_BITS 8 #endif #if !defined(MAX_ORDERLY_COUNT) #define MAX_ORDERLY_COUNT ((1 << ORDERLY_BITS) - 1) #endif #if !defined(ALG_ID_FIRST) #define ALG_ID_FIRST trunks::TPM_ALG_FIRST #endif #if !defined(ALG_ID_LAST) #define ALG_ID_LAST trunks::TPM_ALG_LAST #endif #if !defined(MAX_SYM_DATA) #define MAX_SYM_DATA 128 #endif #if !defined(MAX_RNG_ENTROPY_SIZE) #define MAX_RNG_ENTROPY_SIZE 64 #endif #if !defined(RAM_INDEX_SPACE) #define RAM_INDEX_SPACE 512 #endif #if !defined(RSA_DEFAULT_PUBLIC_EXPONENT) #define RSA_DEFAULT_PUBLIC_EXPONENT 0x00010001 #endif #if !defined(ENABLE_PCR_NO_INCREMENT) #define ENABLE_PCR_NO_INCREMENT YES #endif #if !defined(CRT_FORMAT_RSA) #define CRT_FORMAT_RSA YES #endif #if !defined(PRIVATE_VENDOR_SPECIFIC_BYTES) #define PRIVATE_VENDOR_SPECIFIC_BYTES \ ((MAX_RSA_KEY_BYTES / 2) * (3 + CRT_FORMAT_RSA * 2)) #endif #if !defined(MAX_CAP_DATA) #define MAX_CAP_DATA \ (MAX_CAP_BUFFER - sizeof(trunks::TPM_CAP) - sizeof(trunks::UINT32)) #endif #if !defined(MAX_CAP_ALGS) #define MAX_CAP_ALGS (trunks::TPM_ALG_LAST - trunks::TPM_ALG_FIRST + 1) #endif #if !defined(MAX_CAP_HANDLES) #define MAX_CAP_HANDLES (MAX_CAP_DATA / sizeof(trunks::TPM_HANDLE)) #endif #if !defined(MAX_CAP_CC) #define MAX_CAP_CC ((trunks::TPM_CC_LAST - trunks::TPM_CC_FIRST) + 1) #endif #if !defined(MAX_TPM_PROPERTIES) #define MAX_TPM_PROPERTIES (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PROPERTY)) #endif #if !defined(MAX_PCR_PROPERTIES) #define MAX_PCR_PROPERTIES \ (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PCR_SELECT)) #endif #if !defined(MAX_ECC_CURVES) #define MAX_ECC_CURVES (MAX_CAP_DATA / sizeof(trunks::TPM_ECC_CURVE)) #endif #if !defined(HASH_COUNT) #define HASH_COUNT 3 #endif typedef uint8_t UINT8; typedef uint8_t BYTE; typedef int8_t INT8; typedef int BOOL; typedef uint16_t UINT16; typedef int16_t INT16; typedef uint32_t UINT32; typedef int32_t INT32; typedef uint64_t UINT64; typedef int64_t INT64; typedef UINT32 TPM_ALGORITHM_ID; typedef UINT32 TPM_MODIFIER_INDICATOR; typedef UINT32 TPM_AUTHORIZATION_SIZE; typedef UINT32 TPM_PARAMETER_SIZE; typedef UINT16 TPM_KEY_SIZE; typedef UINT16 TPM_KEY_BITS; typedef UINT32 TPM_HANDLE; struct TPM2B_DIGEST; typedef TPM2B_DIGEST TPM2B_NONCE; typedef TPM2B_DIGEST TPM2B_AUTH; typedef TPM2B_DIGEST TPM2B_OPERAND; struct TPMS_SCHEME_SIGHASH; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_HMAC; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSASSA; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSAPSS; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECDSA; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_SM2; typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECSCHNORR; typedef BYTE TPMI_YES_NO; typedef TPM_HANDLE TPMI_DH_OBJECT; typedef TPM_HANDLE TPMI_DH_PERSISTENT; typedef TPM_HANDLE TPMI_DH_ENTITY; typedef TPM_HANDLE TPMI_DH_PCR; typedef TPM_HANDLE TPMI_SH_AUTH_SESSION; typedef TPM_HANDLE TPMI_SH_HMAC; typedef TPM_HANDLE TPMI_SH_POLICY; typedef TPM_HANDLE TPMI_DH_CONTEXT; typedef TPM_HANDLE TPMI_RH_HIERARCHY; typedef TPM_HANDLE TPMI_RH_ENABLES; typedef TPM_HANDLE TPMI_RH_HIERARCHY_AUTH; typedef TPM_HANDLE TPMI_RH_PLATFORM; typedef TPM_HANDLE TPMI_RH_OWNER; typedef TPM_HANDLE TPMI_RH_ENDORSEMENT; typedef TPM_HANDLE TPMI_RH_PROVISION; typedef TPM_HANDLE TPMI_RH_CLEAR; typedef TPM_HANDLE TPMI_RH_NV_AUTH; typedef TPM_HANDLE TPMI_RH_LOCKOUT; typedef TPM_HANDLE TPMI_RH_NV_INDEX; typedef UINT16 TPM_ALG_ID; typedef TPM_ALG_ID TPMI_ALG_HASH; typedef TPM_ALG_ID TPMI_ALG_ASYM; typedef TPM_ALG_ID TPMI_ALG_SYM; typedef TPM_ALG_ID TPMI_ALG_SYM_OBJECT; typedef TPM_ALG_ID TPMI_ALG_SYM_MODE; typedef TPM_ALG_ID TPMI_ALG_KDF; typedef TPM_ALG_ID TPMI_ALG_SIG_SCHEME; typedef TPM_ALG_ID TPMI_ECC_KEY_EXCHANGE; typedef UINT16 TPM_ST; typedef TPM_ST TPMI_ST_COMMAND_TAG; typedef TPM_ST TPMI_ST_ATTEST; typedef TPM_KEY_BITS TPMI_AES_KEY_BITS; typedef TPM_KEY_BITS TPMI_SM4_KEY_BITS; typedef TPM_ALG_ID TPMI_ALG_KEYEDHASH_SCHEME; typedef TPM_ALG_ID TPMI_ALG_ASYM_SCHEME; typedef TPM_ALG_ID TPMI_ALG_RSA_SCHEME; typedef TPM_ALG_ID TPMI_ALG_RSA_DECRYPT; typedef TPM_KEY_BITS TPMI_RSA_KEY_BITS; typedef TPM_ALG_ID TPMI_ALG_ECC_SCHEME; typedef UINT16 TPM_ECC_CURVE; typedef TPM_ECC_CURVE TPMI_ECC_CURVE; typedef TPM_ALG_ID TPMI_ALG_PUBLIC; typedef UINT32 TPMA_ALGORITHM; typedef UINT32 TPMA_OBJECT; typedef UINT8 TPMA_SESSION; typedef UINT8 TPMA_LOCALITY; typedef UINT32 TPMA_PERMANENT; typedef UINT32 TPMA_STARTUP_CLEAR; typedef UINT32 TPMA_MEMORY; typedef UINT32 TPM_CC; typedef TPM_CC TPMA_CC; typedef UINT32 TPM_NV_INDEX; typedef UINT32 TPMA_NV; typedef UINT32 TPM_SPEC; typedef UINT32 TPM_GENERATED; typedef UINT32 TPM_RC; typedef INT8 TPM_CLOCK_ADJUST; typedef UINT16 TPM_EO; typedef UINT16 TPM_SU; typedef UINT8 TPM_SE; typedef UINT32 TPM_CAP; typedef UINT32 TPM_PT; typedef UINT32 TPM_PT_PCR; typedef UINT32 TPM_PS; typedef UINT8 TPM_HT; typedef UINT32 TPM_RH; typedef TPM_HANDLE TPM_HC; constexpr TPM_SPEC TPM_SPEC_FAMILY = 0x322E3000; constexpr TPM_SPEC TPM_SPEC_LEVEL = 00; constexpr TPM_SPEC TPM_SPEC_VERSION = 99; constexpr TPM_SPEC TPM_SPEC_YEAR = 2013; constexpr TPM_SPEC TPM_SPEC_DAY_OF_YEAR = 304; constexpr TPM_GENERATED TPM_GENERATED_VALUE = 0xff544347; constexpr TPM_ALG_ID TPM_ALG_ERROR = 0x0000; constexpr TPM_ALG_ID TPM_ALG_FIRST = 0x0001; constexpr TPM_ALG_ID TPM_ALG_RSA = 0x0001; constexpr TPM_ALG_ID TPM_ALG_SHA = 0x0004; constexpr TPM_ALG_ID TPM_ALG_SHA1 = 0x0004; constexpr TPM_ALG_ID TPM_ALG_HMAC = 0x0005; constexpr TPM_ALG_ID TPM_ALG_AES = 0x0006; constexpr TPM_ALG_ID TPM_ALG_MGF1 = 0x0007; constexpr TPM_ALG_ID TPM_ALG_KEYEDHASH = 0x0008; constexpr TPM_ALG_ID TPM_ALG_XOR = 0x000A; constexpr TPM_ALG_ID TPM_ALG_SHA256 = 0x000B; constexpr TPM_ALG_ID TPM_ALG_SHA384 = 0x000C; constexpr TPM_ALG_ID TPM_ALG_SHA512 = 0x000D; constexpr TPM_ALG_ID TPM_ALG_NULL = 0x0010; constexpr TPM_ALG_ID TPM_ALG_SM3_256 = 0x0012; constexpr TPM_ALG_ID TPM_ALG_SM4 = 0x0013; constexpr TPM_ALG_ID TPM_ALG_RSASSA = 0x0014; constexpr TPM_ALG_ID TPM_ALG_RSAES = 0x0015; constexpr TPM_ALG_ID TPM_ALG_RSAPSS = 0x0016; constexpr TPM_ALG_ID TPM_ALG_OAEP = 0x0017; constexpr TPM_ALG_ID TPM_ALG_ECDSA = 0x0018; constexpr TPM_ALG_ID TPM_ALG_ECDH = 0x0019; constexpr TPM_ALG_ID TPM_ALG_ECDAA = 0x001A; constexpr TPM_ALG_ID TPM_ALG_SM2 = 0x001B; constexpr TPM_ALG_ID TPM_ALG_ECSCHNORR = 0x001C; constexpr TPM_ALG_ID TPM_ALG_ECMQV = 0x001D; constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_56a = 0x0020; constexpr TPM_ALG_ID TPM_ALG_KDF2 = 0x0021; constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_108 = 0x0022; constexpr TPM_ALG_ID TPM_ALG_ECC = 0x0023; constexpr TPM_ALG_ID TPM_ALG_SYMCIPHER = 0x0025; constexpr TPM_ALG_ID TPM_ALG_CTR = 0x0040; constexpr TPM_ALG_ID TPM_ALG_OFB = 0x0041; constexpr TPM_ALG_ID TPM_ALG_CBC = 0x0042; constexpr TPM_ALG_ID TPM_ALG_CFB = 0x0043; constexpr TPM_ALG_ID TPM_ALG_ECB = 0x0044; constexpr TPM_ALG_ID TPM_ALG_LAST = 0x0044; constexpr TPM_ECC_CURVE TPM_ECC_NONE = 0x0000; constexpr TPM_ECC_CURVE TPM_ECC_NIST_P192 = 0x0001; constexpr TPM_ECC_CURVE TPM_ECC_NIST_P224 = 0x0002; constexpr TPM_ECC_CURVE TPM_ECC_NIST_P256 = 0x0003; constexpr TPM_ECC_CURVE TPM_ECC_NIST_P384 = 0x0004; constexpr TPM_ECC_CURVE TPM_ECC_NIST_P521 = 0x0005; constexpr TPM_ECC_CURVE TPM_ECC_BN_P256 = 0x0010; constexpr TPM_ECC_CURVE TPM_ECC_BN_P638 = 0x0011; constexpr TPM_ECC_CURVE TPM_ECC_SM2_P256 = 0x0020; constexpr TPM_CC TPM_CC_FIRST = 0x0000011F; constexpr TPM_CC TPM_CC_PP_FIRST = 0x0000011F; constexpr TPM_CC TPM_CC_NV_UndefineSpaceSpecial = 0x0000011F; constexpr TPM_CC TPM_CC_EvictControl = 0x00000120; constexpr TPM_CC TPM_CC_HierarchyControl = 0x00000121; constexpr TPM_CC TPM_CC_NV_UndefineSpace = 0x00000122; constexpr TPM_CC TPM_CC_ChangeEPS = 0x00000124; constexpr TPM_CC TPM_CC_ChangePPS = 0x00000125; constexpr TPM_CC TPM_CC_Clear = 0x00000126; constexpr TPM_CC TPM_CC_ClearControl = 0x00000127; constexpr TPM_CC TPM_CC_ClockSet = 0x00000128; constexpr TPM_CC TPM_CC_HierarchyChangeAuth = 0x00000129; constexpr TPM_CC TPM_CC_NV_DefineSpace = 0x0000012A; constexpr TPM_CC TPM_CC_PCR_Allocate = 0x0000012B; constexpr TPM_CC TPM_CC_PCR_SetAuthPolicy = 0x0000012C; constexpr TPM_CC TPM_CC_PP_Commands = 0x0000012D; constexpr TPM_CC TPM_CC_SetPrimaryPolicy = 0x0000012E; constexpr TPM_CC TPM_CC_FieldUpgradeStart = 0x0000012F; constexpr TPM_CC TPM_CC_ClockRateAdjust = 0x00000130; constexpr TPM_CC TPM_CC_CreatePrimary = 0x00000131; constexpr TPM_CC TPM_CC_NV_GlobalWriteLock = 0x00000132; constexpr TPM_CC TPM_CC_PP_LAST = 0x00000132; constexpr TPM_CC TPM_CC_GetCommandAuditDigest = 0x00000133; constexpr TPM_CC TPM_CC_NV_Increment = 0x00000134; constexpr TPM_CC TPM_CC_NV_SetBits = 0x00000135; constexpr TPM_CC TPM_CC_NV_Extend = 0x00000136; constexpr TPM_CC TPM_CC_NV_Write = 0x00000137; constexpr TPM_CC TPM_CC_NV_WriteLock = 0x00000138; constexpr TPM_CC TPM_CC_DictionaryAttackLockReset = 0x00000139; constexpr TPM_CC TPM_CC_DictionaryAttackParameters = 0x0000013A; constexpr TPM_CC TPM_CC_NV_ChangeAuth = 0x0000013B; constexpr TPM_CC TPM_CC_PCR_Event = 0x0000013C; constexpr TPM_CC TPM_CC_PCR_Reset = 0x0000013D; constexpr TPM_CC TPM_CC_SequenceComplete = 0x0000013E; constexpr TPM_CC TPM_CC_SetAlgorithmSet = 0x0000013F; constexpr TPM_CC TPM_CC_SetCommandCodeAuditStatus = 0x00000140; constexpr TPM_CC TPM_CC_FieldUpgradeData = 0x00000141; constexpr TPM_CC TPM_CC_IncrementalSelfTest = 0x00000142; constexpr TPM_CC TPM_CC_SelfTest = 0x00000143; constexpr TPM_CC TPM_CC_Startup = 0x00000144; constexpr TPM_CC TPM_CC_Shutdown = 0x00000145; constexpr TPM_CC TPM_CC_StirRandom = 0x00000146; constexpr TPM_CC TPM_CC_ActivateCredential = 0x00000147; constexpr TPM_CC TPM_CC_Certify = 0x00000148; constexpr TPM_CC TPM_CC_PolicyNV = 0x00000149; constexpr TPM_CC TPM_CC_CertifyCreation = 0x0000014A; constexpr TPM_CC TPM_CC_Duplicate = 0x0000014B; constexpr TPM_CC TPM_CC_GetTime = 0x0000014C; constexpr TPM_CC TPM_CC_GetSessionAuditDigest = 0x0000014D; constexpr TPM_CC TPM_CC_NV_Read = 0x0000014E; constexpr TPM_CC TPM_CC_NV_ReadLock = 0x0000014F; constexpr TPM_CC TPM_CC_ObjectChangeAuth = 0x00000150; constexpr TPM_CC TPM_CC_PolicySecret = 0x00000151; constexpr TPM_CC TPM_CC_Rewrap = 0x00000152; constexpr TPM_CC TPM_CC_Create = 0x00000153; constexpr TPM_CC TPM_CC_ECDH_ZGen = 0x00000154; constexpr TPM_CC TPM_CC_HMAC = 0x00000155; constexpr TPM_CC TPM_CC_Import = 0x00000156; constexpr TPM_CC TPM_CC_Load = 0x00000157; constexpr TPM_CC TPM_CC_Quote = 0x00000158; constexpr TPM_CC TPM_CC_RSA_Decrypt = 0x00000159; constexpr TPM_CC TPM_CC_HMAC_Start = 0x0000015B; constexpr TPM_CC TPM_CC_SequenceUpdate = 0x0000015C; constexpr TPM_CC TPM_CC_Sign = 0x0000015D; constexpr TPM_CC TPM_CC_Unseal = 0x0000015E; constexpr TPM_CC TPM_CC_PolicySigned = 0x00000160; constexpr TPM_CC TPM_CC_ContextLoad = 0x00000161; constexpr TPM_CC TPM_CC_ContextSave = 0x00000162; constexpr TPM_CC TPM_CC_ECDH_KeyGen = 0x00000163; constexpr TPM_CC TPM_CC_EncryptDecrypt = 0x00000164; constexpr TPM_CC TPM_CC_FlushContext = 0x00000165; constexpr TPM_CC TPM_CC_LoadExternal = 0x00000167; constexpr TPM_CC TPM_CC_MakeCredential = 0x00000168; constexpr TPM_CC TPM_CC_NV_ReadPublic = 0x00000169; constexpr TPM_CC TPM_CC_PolicyAuthorize = 0x0000016A; constexpr TPM_CC TPM_CC_PolicyAuthValue = 0x0000016B; constexpr TPM_CC TPM_CC_PolicyCommandCode = 0x0000016C; constexpr TPM_CC TPM_CC_PolicyCounterTimer = 0x0000016D; constexpr TPM_CC TPM_CC_PolicyCpHash = 0x0000016E; constexpr TPM_CC TPM_CC_PolicyLocality = 0x0000016F; constexpr TPM_CC TPM_CC_PolicyNameHash = 0x00000170; constexpr TPM_CC TPM_CC_PolicyOR = 0x00000171; constexpr TPM_CC TPM_CC_PolicyTicket = 0x00000172; constexpr TPM_CC TPM_CC_ReadPublic = 0x00000173; constexpr TPM_CC TPM_CC_RSA_Encrypt = 0x00000174; constexpr TPM_CC TPM_CC_StartAuthSession = 0x00000176; constexpr TPM_CC TPM_CC_VerifySignature = 0x00000177; constexpr TPM_CC TPM_CC_ECC_Parameters = 0x00000178; constexpr TPM_CC TPM_CC_FirmwareRead = 0x00000179; constexpr TPM_CC TPM_CC_GetCapability = 0x0000017A; constexpr TPM_CC TPM_CC_GetRandom = 0x0000017B; constexpr TPM_CC TPM_CC_GetTestResult = 0x0000017C; constexpr TPM_CC TPM_CC_Hash = 0x0000017D; constexpr TPM_CC TPM_CC_PCR_Read = 0x0000017E; constexpr TPM_CC TPM_CC_PolicyPCR = 0x0000017F; constexpr TPM_CC TPM_CC_PolicyRestart = 0x00000180; constexpr TPM_CC TPM_CC_ReadClock = 0x00000181; constexpr TPM_CC TPM_CC_PCR_Extend = 0x00000182; constexpr TPM_CC TPM_CC_PCR_SetAuthValue = 0x00000183; constexpr TPM_CC TPM_CC_NV_Certify = 0x00000184; constexpr TPM_CC TPM_CC_EventSequenceComplete = 0x00000185; constexpr TPM_CC TPM_CC_HashSequenceStart = 0x00000186; constexpr TPM_CC TPM_CC_PolicyPhysicalPresence = 0x00000187; constexpr TPM_CC TPM_CC_PolicyDuplicationSelect = 0x00000188; constexpr TPM_CC TPM_CC_PolicyGetDigest = 0x00000189; constexpr TPM_CC TPM_CC_TestParms = 0x0000018A; constexpr TPM_CC TPM_CC_Commit = 0x0000018B; constexpr TPM_CC TPM_CC_PolicyPassword = 0x0000018C; constexpr TPM_CC TPM_CC_ZGen_2Phase = 0x0000018D; constexpr TPM_CC TPM_CC_EC_Ephemeral = 0x0000018E; constexpr TPM_CC TPM_CC_PolicyNvWritten = 0x0000018F; constexpr TPM_CC TPM_CC_LAST = 0x0000018F; constexpr TPM_RC TPM_RC_SUCCESS = 0x000; constexpr TPM_RC TPM_RC_BAD_TAG = 0x01E; constexpr TPM_RC RC_VER1 = 0x100; constexpr TPM_RC TPM_RC_INITIALIZE = RC_VER1 + 0x000; constexpr TPM_RC TPM_RC_FAILURE = RC_VER1 + 0x001; constexpr TPM_RC TPM_RC_SEQUENCE = RC_VER1 + 0x003; constexpr TPM_RC TPM_RC_PRIVATE = RC_VER1 + 0x00B; constexpr TPM_RC TPM_RC_HMAC = RC_VER1 + 0x019; constexpr TPM_RC TPM_RC_DISABLED = RC_VER1 + 0x020; constexpr TPM_RC TPM_RC_EXCLUSIVE = RC_VER1 + 0x021; constexpr TPM_RC TPM_RC_AUTH_TYPE = RC_VER1 + 0x024; constexpr TPM_RC TPM_RC_AUTH_MISSING = RC_VER1 + 0x025; constexpr TPM_RC TPM_RC_POLICY = RC_VER1 + 0x026; constexpr TPM_RC TPM_RC_PCR = RC_VER1 + 0x027; constexpr TPM_RC TPM_RC_PCR_CHANGED = RC_VER1 + 0x028; constexpr TPM_RC TPM_RC_UPGRADE = RC_VER1 + 0x02D; constexpr TPM_RC TPM_RC_TOO_MANY_CONTEXTS = RC_VER1 + 0x02E; constexpr TPM_RC TPM_RC_AUTH_UNAVAILABLE = RC_VER1 + 0x02F; constexpr TPM_RC TPM_RC_REBOOT = RC_VER1 + 0x030; constexpr TPM_RC TPM_RC_UNBALANCED = RC_VER1 + 0x031; constexpr TPM_RC TPM_RC_COMMAND_SIZE = RC_VER1 + 0x042; constexpr TPM_RC TPM_RC_COMMAND_CODE = RC_VER1 + 0x043; constexpr TPM_RC TPM_RC_AUTHSIZE = RC_VER1 + 0x044; constexpr TPM_RC TPM_RC_AUTH_CONTEXT = RC_VER1 + 0x045; constexpr TPM_RC TPM_RC_NV_RANGE = RC_VER1 + 0x046; constexpr TPM_RC TPM_RC_NV_SIZE = RC_VER1 + 0x047; constexpr TPM_RC TPM_RC_NV_LOCKED = RC_VER1 + 0x048; constexpr TPM_RC TPM_RC_NV_AUTHORIZATION = RC_VER1 + 0x049; constexpr TPM_RC TPM_RC_NV_UNINITIALIZED = RC_VER1 + 0x04A; constexpr TPM_RC TPM_RC_NV_SPACE = RC_VER1 + 0x04B; constexpr TPM_RC TPM_RC_NV_DEFINED = RC_VER1 + 0x04C; constexpr TPM_RC TPM_RC_BAD_CONTEXT = RC_VER1 + 0x050; constexpr TPM_RC TPM_RC_CPHASH = RC_VER1 + 0x051; constexpr TPM_RC TPM_RC_PARENT = RC_VER1 + 0x052; constexpr TPM_RC TPM_RC_NEEDS_TEST = RC_VER1 + 0x053; constexpr TPM_RC TPM_RC_NO_RESULT = RC_VER1 + 0x054; constexpr TPM_RC TPM_RC_SENSITIVE = RC_VER1 + 0x055; constexpr TPM_RC RC_MAX_FM0 = RC_VER1 + 0x07F; constexpr TPM_RC RC_FMT1 = 0x080; constexpr TPM_RC TPM_RC_ASYMMETRIC = RC_FMT1 + 0x001; constexpr TPM_RC TPM_RC_ATTRIBUTES = RC_FMT1 + 0x002; constexpr TPM_RC TPM_RC_HASH = RC_FMT1 + 0x003; constexpr TPM_RC TPM_RC_VALUE = RC_FMT1 + 0x004; constexpr TPM_RC TPM_RC_HIERARCHY = RC_FMT1 + 0x005; constexpr TPM_RC TPM_RC_KEY_SIZE = RC_FMT1 + 0x007; constexpr TPM_RC TPM_RC_MGF = RC_FMT1 + 0x008; constexpr TPM_RC TPM_RC_MODE = RC_FMT1 + 0x009; constexpr TPM_RC TPM_RC_TYPE = RC_FMT1 + 0x00A; constexpr TPM_RC TPM_RC_HANDLE = RC_FMT1 + 0x00B; constexpr TPM_RC TPM_RC_KDF = RC_FMT1 + 0x00C; constexpr TPM_RC TPM_RC_RANGE = RC_FMT1 + 0x00D; constexpr TPM_RC TPM_RC_AUTH_FAIL = RC_FMT1 + 0x00E; constexpr TPM_RC TPM_RC_NONCE = RC_FMT1 + 0x00F; constexpr TPM_RC TPM_RC_PP = RC_FMT1 + 0x010; constexpr TPM_RC TPM_RC_SCHEME = RC_FMT1 + 0x012; constexpr TPM_RC TPM_RC_SIZE = RC_FMT1 + 0x015; constexpr TPM_RC TPM_RC_SYMMETRIC = RC_FMT1 + 0x016; constexpr TPM_RC TPM_RC_TAG = RC_FMT1 + 0x017; constexpr TPM_RC TPM_RC_SELECTOR = RC_FMT1 + 0x018; constexpr TPM_RC TPM_RC_INSUFFICIENT = RC_FMT1 + 0x01A; constexpr TPM_RC TPM_RC_SIGNATURE = RC_FMT1 + 0x01B; constexpr TPM_RC TPM_RC_KEY = RC_FMT1 + 0x01C; constexpr TPM_RC TPM_RC_POLICY_FAIL = RC_FMT1 + 0x01D; constexpr TPM_RC TPM_RC_INTEGRITY = RC_FMT1 + 0x01F; constexpr TPM_RC TPM_RC_TICKET = RC_FMT1 + 0x020; constexpr TPM_RC TPM_RC_RESERVED_BITS = RC_FMT1 + 0x021; constexpr TPM_RC TPM_RC_BAD_AUTH = RC_FMT1 + 0x022; constexpr TPM_RC TPM_RC_EXPIRED = RC_FMT1 + 0x023; constexpr TPM_RC TPM_RC_POLICY_CC = RC_FMT1 + 0x024; constexpr TPM_RC TPM_RC_BINDING = RC_FMT1 + 0x025; constexpr TPM_RC TPM_RC_CURVE = RC_FMT1 + 0x026; constexpr TPM_RC TPM_RC_ECC_POINT = RC_FMT1 + 0x027; constexpr TPM_RC RC_WARN = 0x900; constexpr TPM_RC TPM_RC_CONTEXT_GAP = RC_WARN + 0x001; constexpr TPM_RC TPM_RC_OBJECT_MEMORY = RC_WARN + 0x002; constexpr TPM_RC TPM_RC_SESSION_MEMORY = RC_WARN + 0x003; constexpr TPM_RC TPM_RC_MEMORY = RC_WARN + 0x004; constexpr TPM_RC TPM_RC_SESSION_HANDLES = RC_WARN + 0x005; constexpr TPM_RC TPM_RC_OBJECT_HANDLES = RC_WARN + 0x006; constexpr TPM_RC TPM_RC_LOCALITY = RC_WARN + 0x007; constexpr TPM_RC TPM_RC_YIELDED = RC_WARN + 0x008; constexpr TPM_RC TPM_RC_CANCELED = RC_WARN + 0x009; constexpr TPM_RC TPM_RC_TESTING = RC_WARN + 0x00A; constexpr TPM_RC TPM_RC_REFERENCE_H0 = RC_WARN + 0x010; constexpr TPM_RC TPM_RC_REFERENCE_H1 = RC_WARN + 0x011; constexpr TPM_RC TPM_RC_REFERENCE_H2 = RC_WARN + 0x012; constexpr TPM_RC TPM_RC_REFERENCE_H3 = RC_WARN + 0x013; constexpr TPM_RC TPM_RC_REFERENCE_H4 = RC_WARN + 0x014; constexpr TPM_RC TPM_RC_REFERENCE_H5 = RC_WARN + 0x015; constexpr TPM_RC TPM_RC_REFERENCE_H6 = RC_WARN + 0x016; constexpr TPM_RC TPM_RC_REFERENCE_S0 = RC_WARN + 0x018; constexpr TPM_RC TPM_RC_REFERENCE_S1 = RC_WARN + 0x019; constexpr TPM_RC TPM_RC_REFERENCE_S2 = RC_WARN + 0x01A; constexpr TPM_RC TPM_RC_REFERENCE_S3 = RC_WARN + 0x01B; constexpr TPM_RC TPM_RC_REFERENCE_S4 = RC_WARN + 0x01C; constexpr TPM_RC TPM_RC_REFERENCE_S5 = RC_WARN + 0x01D; constexpr TPM_RC TPM_RC_REFERENCE_S6 = RC_WARN + 0x01E; constexpr TPM_RC TPM_RC_NV_RATE = RC_WARN + 0x020; constexpr TPM_RC TPM_RC_LOCKOUT = RC_WARN + 0x021; constexpr TPM_RC TPM_RC_RETRY = RC_WARN + 0x022; constexpr TPM_RC TPM_RC_NV_UNAVAILABLE = RC_WARN + 0x023; constexpr TPM_RC TPM_RC_NOT_USED = RC_WARN + 0x7F; constexpr TPM_RC TPM_RC_H = 0x000; constexpr TPM_RC TPM_RC_P = 0x040; constexpr TPM_RC TPM_RC_S = 0x800; constexpr TPM_RC TPM_RC_1 = 0x100; constexpr TPM_RC TPM_RC_2 = 0x200; constexpr TPM_RC TPM_RC_3 = 0x300; constexpr TPM_RC TPM_RC_4 = 0x400; constexpr TPM_RC TPM_RC_5 = 0x500; constexpr TPM_RC TPM_RC_6 = 0x600; constexpr TPM_RC TPM_RC_7 = 0x700; constexpr TPM_RC TPM_RC_8 = 0x800; constexpr TPM_RC TPM_RC_9 = 0x900; constexpr TPM_RC TPM_RC_A = 0xA00; constexpr TPM_RC TPM_RC_B = 0xB00; constexpr TPM_RC TPM_RC_C = 0xC00; constexpr TPM_RC TPM_RC_D = 0xD00; constexpr TPM_RC TPM_RC_E = 0xE00; constexpr TPM_RC TPM_RC_F = 0xF00; constexpr TPM_RC TPM_RC_N_MASK = 0xF00; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_SLOWER = -3; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_SLOWER = -2; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_SLOWER = -1; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_NO_CHANGE = 0; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_FASTER = 1; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_FASTER = 2; constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_FASTER = 3; constexpr TPM_EO TPM_EO_EQ = 0x0000; constexpr TPM_EO TPM_EO_NEQ = 0x0001; constexpr TPM_EO TPM_EO_SIGNED_GT = 0x0002; constexpr TPM_EO TPM_EO_UNSIGNED_GT = 0x0003; constexpr TPM_EO TPM_EO_SIGNED_LT = 0x0004; constexpr TPM_EO TPM_EO_UNSIGNED_LT = 0x0005; constexpr TPM_EO TPM_EO_SIGNED_GE = 0x0006; constexpr TPM_EO TPM_EO_UNSIGNED_GE = 0x0007; constexpr TPM_EO TPM_EO_SIGNED_LE = 0x0008; constexpr TPM_EO TPM_EO_UNSIGNED_LE = 0x0009; constexpr TPM_EO TPM_EO_BITSET = 0x000A; constexpr TPM_EO TPM_EO_BITCLEAR = 0x000B; constexpr TPM_ST TPM_ST_RSP_COMMAND = 0x00C4; constexpr TPM_ST TPM_ST_NULL = 0X8000; constexpr TPM_ST TPM_ST_NO_SESSIONS = 0x8001; constexpr TPM_ST TPM_ST_SESSIONS = 0x8002; constexpr TPM_ST TPM_ST_ATTEST_NV = 0x8014; constexpr TPM_ST TPM_ST_ATTEST_COMMAND_AUDIT = 0x8015; constexpr TPM_ST TPM_ST_ATTEST_SESSION_AUDIT = 0x8016; constexpr TPM_ST TPM_ST_ATTEST_CERTIFY = 0x8017; constexpr TPM_ST TPM_ST_ATTEST_QUOTE = 0x8018; constexpr TPM_ST TPM_ST_ATTEST_TIME = 0x8019; constexpr TPM_ST TPM_ST_ATTEST_CREATION = 0x801A; constexpr TPM_ST TPM_ST_CREATION = 0x8021; constexpr TPM_ST TPM_ST_VERIFIED = 0x8022; constexpr TPM_ST TPM_ST_AUTH_SECRET = 0x8023; constexpr TPM_ST TPM_ST_HASHCHECK = 0x8024; constexpr TPM_ST TPM_ST_AUTH_SIGNED = 0x8025; constexpr TPM_ST TPM_ST_FU_MANIFEST = 0x8029; constexpr TPM_SU TPM_SU_CLEAR = 0x0000; constexpr TPM_SU TPM_SU_STATE = 0x0001; constexpr TPM_SE TPM_SE_HMAC = 0x00; constexpr TPM_SE TPM_SE_POLICY = 0x01; constexpr TPM_SE TPM_SE_TRIAL = 0x03; constexpr TPM_CAP TPM_CAP_FIRST = 0x00000000; constexpr TPM_CAP TPM_CAP_ALGS = 0x00000000; constexpr TPM_CAP TPM_CAP_HANDLES = 0x00000001; constexpr TPM_CAP TPM_CAP_COMMANDS = 0x00000002; constexpr TPM_CAP TPM_CAP_PP_COMMANDS = 0x00000003; constexpr TPM_CAP TPM_CAP_AUDIT_COMMANDS = 0x00000004; constexpr TPM_CAP TPM_CAP_PCRS = 0x00000005; constexpr TPM_CAP TPM_CAP_TPM_PROPERTIES = 0x00000006; constexpr TPM_CAP TPM_CAP_PCR_PROPERTIES = 0x00000007; constexpr TPM_CAP TPM_CAP_ECC_CURVES = 0x00000008; constexpr TPM_CAP TPM_CAP_LAST = 0x00000008; constexpr TPM_CAP TPM_CAP_VENDOR_PROPERTY = 0x00000100; constexpr TPM_PT TPM_PT_NONE = 0x00000000; constexpr TPM_PT PT_GROUP = 0x00000100; constexpr TPM_PT PT_FIXED = PT_GROUP * 1; constexpr TPM_PT TPM_PT_FAMILY_INDICATOR = PT_FIXED + 0; constexpr TPM_PT TPM_PT_LEVEL = PT_FIXED + 1; constexpr TPM_PT TPM_PT_REVISION = PT_FIXED + 2; constexpr TPM_PT TPM_PT_DAY_OF_YEAR = PT_FIXED + 3; constexpr TPM_PT TPM_PT_YEAR = PT_FIXED + 4; constexpr TPM_PT TPM_PT_MANUFACTURER = PT_FIXED + 5; constexpr TPM_PT TPM_PT_VENDOR_STRING_1 = PT_FIXED + 6; constexpr TPM_PT TPM_PT_VENDOR_STRING_2 = PT_FIXED + 7; constexpr TPM_PT TPM_PT_VENDOR_STRING_3 = PT_FIXED + 8; constexpr TPM_PT TPM_PT_VENDOR_STRING_4 = PT_FIXED + 9; constexpr TPM_PT TPM_PT_VENDOR_TPM_TYPE = PT_FIXED + 10; constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_1 = PT_FIXED + 11; constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_2 = PT_FIXED + 12; constexpr TPM_PT TPM_PT_INPUT_BUFFER = PT_FIXED + 13; constexpr TPM_PT TPM_PT_HR_TRANSIENT_MIN = PT_FIXED + 14; constexpr TPM_PT TPM_PT_HR_PERSISTENT_MIN = PT_FIXED + 15; constexpr TPM_PT TPM_PT_HR_LOADED_MIN = PT_FIXED + 16; constexpr TPM_PT TPM_PT_ACTIVE_SESSIONS_MAX = PT_FIXED + 17; constexpr TPM_PT TPM_PT_PCR_COUNT = PT_FIXED + 18; constexpr TPM_PT TPM_PT_PCR_SELECT_MIN = PT_FIXED + 19; constexpr TPM_PT TPM_PT_CONTEXT_GAP_MAX = PT_FIXED + 20; constexpr TPM_PT TPM_PT_NV_COUNTERS_MAX = PT_FIXED + 22; constexpr TPM_PT TPM_PT_NV_INDEX_MAX = PT_FIXED + 23; constexpr TPM_PT TPM_PT_MEMORY = PT_FIXED + 24; constexpr TPM_PT TPM_PT_CLOCK_UPDATE = PT_FIXED + 25; constexpr TPM_PT TPM_PT_CONTEXT_HASH = PT_FIXED + 26; constexpr TPM_PT TPM_PT_CONTEXT_SYM = PT_FIXED + 27; constexpr TPM_PT TPM_PT_CONTEXT_SYM_SIZE = PT_FIXED + 28; constexpr TPM_PT TPM_PT_ORDERLY_COUNT = PT_FIXED + 29; constexpr TPM_PT TPM_PT_MAX_COMMAND_SIZE = PT_FIXED + 30; constexpr TPM_PT TPM_PT_MAX_RESPONSE_SIZE = PT_FIXED + 31; constexpr TPM_PT TPM_PT_MAX_DIGEST = PT_FIXED + 32; constexpr TPM_PT TPM_PT_MAX_OBJECT_CONTEXT = PT_FIXED + 33; constexpr TPM_PT TPM_PT_MAX_SESSION_CONTEXT = PT_FIXED + 34; constexpr TPM_PT TPM_PT_PS_FAMILY_INDICATOR = PT_FIXED + 35; constexpr TPM_PT TPM_PT_PS_LEVEL = PT_FIXED + 36; constexpr TPM_PT TPM_PT_PS_REVISION = PT_FIXED + 37; constexpr TPM_PT TPM_PT_PS_DAY_OF_YEAR = PT_FIXED + 38; constexpr TPM_PT TPM_PT_PS_YEAR = PT_FIXED + 39; constexpr TPM_PT TPM_PT_SPLIT_MAX = PT_FIXED + 40; constexpr TPM_PT TPM_PT_TOTAL_COMMANDS = PT_FIXED + 41; constexpr TPM_PT TPM_PT_LIBRARY_COMMANDS = PT_FIXED + 42; constexpr TPM_PT TPM_PT_VENDOR_COMMANDS = PT_FIXED + 43; constexpr TPM_PT TPM_PT_NV_BUFFER_MAX = PT_FIXED + 44; constexpr TPM_PT PT_VAR = PT_GROUP * 2; constexpr TPM_PT TPM_PT_PERMANENT = PT_VAR + 0; constexpr TPM_PT TPM_PT_STARTUP_CLEAR = PT_VAR + 1; constexpr TPM_PT TPM_PT_HR_NV_INDEX = PT_VAR + 2; constexpr TPM_PT TPM_PT_HR_LOADED = PT_VAR + 3; constexpr TPM_PT TPM_PT_HR_LOADED_AVAIL = PT_VAR + 4; constexpr TPM_PT TPM_PT_HR_ACTIVE = PT_VAR + 5; constexpr TPM_PT TPM_PT_HR_ACTIVE_AVAIL = PT_VAR + 6; constexpr TPM_PT TPM_PT_HR_TRANSIENT_AVAIL = PT_VAR + 7; constexpr TPM_PT TPM_PT_HR_PERSISTENT = PT_VAR + 8; constexpr TPM_PT TPM_PT_HR_PERSISTENT_AVAIL = PT_VAR + 9; constexpr TPM_PT TPM_PT_NV_COUNTERS = PT_VAR + 10; constexpr TPM_PT TPM_PT_NV_COUNTERS_AVAIL = PT_VAR + 11; constexpr TPM_PT TPM_PT_ALGORITHM_SET = PT_VAR + 12; constexpr TPM_PT TPM_PT_LOADED_CURVES = PT_VAR + 13; constexpr TPM_PT TPM_PT_LOCKOUT_COUNTER = PT_VAR + 14; constexpr TPM_PT TPM_PT_MAX_AUTH_FAIL = PT_VAR + 15; constexpr TPM_PT TPM_PT_LOCKOUT_INTERVAL = PT_VAR + 16; constexpr TPM_PT TPM_PT_LOCKOUT_RECOVERY = PT_VAR + 17; constexpr TPM_PT TPM_PT_NV_WRITE_RECOVERY = PT_VAR + 18; constexpr TPM_PT TPM_PT_AUDIT_COUNTER_0 = PT_VAR + 19; constexpr TPM_PT TPM_PT_AUDIT_COUNTER_1 = PT_VAR + 20; constexpr TPM_PT_PCR TPM_PT_PCR_FIRST = 0x00000000; constexpr TPM_PT_PCR TPM_PT_PCR_SAVE = 0x00000000; constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L0 = 0x00000001; constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L0 = 0x00000002; constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L1 = 0x00000003; constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L1 = 0x00000004; constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L2 = 0x00000005; constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L2 = 0x00000006; constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L3 = 0x00000007; constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L3 = 0x00000008; constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L4 = 0x00000009; constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L4 = 0x0000000A; constexpr TPM_PT_PCR TPM_PT_PCR_NO_INCREMENT = 0x00000011; constexpr TPM_PT_PCR TPM_PT_PCR_DRTM_RESET = 0x00000012; constexpr TPM_PT_PCR TPM_PT_PCR_POLICY = 0x00000013; constexpr TPM_PT_PCR TPM_PT_PCR_AUTH = 0x00000014; constexpr TPM_PT_PCR TPM_PT_PCR_LAST = 0x00000014; constexpr TPM_PS TPM_PS_MAIN = 0x00000000; constexpr TPM_PS TPM_PS_PC = 0x00000001; constexpr TPM_PS TPM_PS_PDA = 0x00000002; constexpr TPM_PS TPM_PS_CELL_PHONE = 0x00000003; constexpr TPM_PS TPM_PS_SERVER = 0x00000004; constexpr TPM_PS TPM_PS_PERIPHERAL = 0x00000005; constexpr TPM_PS TPM_PS_TSS = 0x00000006; constexpr TPM_PS TPM_PS_STORAGE = 0x00000007; constexpr TPM_PS TPM_PS_AUTHENTICATION = 0x00000008; constexpr TPM_PS TPM_PS_EMBEDDED = 0x00000009; constexpr TPM_PS TPM_PS_HARDCOPY = 0x0000000A; constexpr TPM_PS TPM_PS_INFRASTRUCTURE = 0x0000000B; constexpr TPM_PS TPM_PS_VIRTUALIZATION = 0x0000000C; constexpr TPM_PS TPM_PS_TNC = 0x0000000D; constexpr TPM_PS TPM_PS_MULTI_TENANT = 0x0000000E; constexpr TPM_PS TPM_PS_TC = 0x0000000F; constexpr TPM_HT TPM_HT_PCR = 0x00; constexpr TPM_HT TPM_HT_NV_INDEX = 0x01; constexpr TPM_HT TPM_HT_HMAC_SESSION = 0x02; constexpr TPM_HT TPM_HT_LOADED_SESSION = 0x02; constexpr TPM_HT TPM_HT_POLICY_SESSION = 0x03; constexpr TPM_HT TPM_HT_ACTIVE_SESSION = 0x03; constexpr TPM_HT TPM_HT_PERMANENT = 0x40; constexpr TPM_HT TPM_HT_TRANSIENT = 0x80; constexpr TPM_HT TPM_HT_PERSISTENT = 0x81; constexpr TPM_RH TPM_RH_FIRST = 0x40000000; constexpr TPM_RH TPM_RH_SRK = 0x40000000; constexpr TPM_RH TPM_RH_OWNER = 0x40000001; constexpr TPM_RH TPM_RH_REVOKE = 0x40000002; constexpr TPM_RH TPM_RH_TRANSPORT = 0x40000003; constexpr TPM_RH TPM_RH_OPERATOR = 0x40000004; constexpr TPM_RH TPM_RH_ADMIN = 0x40000005; constexpr TPM_RH TPM_RH_EK = 0x40000006; constexpr TPM_RH TPM_RH_NULL = 0x40000007; constexpr TPM_RH TPM_RH_UNASSIGNED = 0x40000008; constexpr TPM_RH TPM_RS_PW = 0x40000009; constexpr TPM_RH TPM_RH_LOCKOUT = 0x4000000A; constexpr TPM_RH TPM_RH_ENDORSEMENT = 0x4000000B; constexpr TPM_RH TPM_RH_PLATFORM = 0x4000000C; constexpr TPM_RH TPM_RH_PLATFORM_NV = 0x4000000D; constexpr TPM_RH TPM_RH_LAST = 0x4000000D; constexpr TPM_HC HR_HANDLE_MASK = 0x00FFFFFF; constexpr TPM_HC HR_RANGE_MASK = 0xFF000000; constexpr TPM_HC HR_SHIFT = 24; constexpr TPM_HC HR_PCR = (TPM_HT_PCR << HR_SHIFT); constexpr TPM_HC HR_HMAC_SESSION = (TPM_HT_HMAC_SESSION << HR_SHIFT); constexpr TPM_HC HR_POLICY_SESSION = (TPM_HT_POLICY_SESSION << HR_SHIFT); constexpr TPM_HC HR_TRANSIENT = (TPM_HT_TRANSIENT << HR_SHIFT); constexpr TPM_HC HR_PERSISTENT = (TPM_HT_PERSISTENT << HR_SHIFT); constexpr TPM_HC HR_NV_INDEX = (TPM_HT_NV_INDEX << HR_SHIFT); constexpr TPM_HC HR_PERMANENT = (TPM_HT_PERMANENT << HR_SHIFT); constexpr TPM_HC PCR_FIRST = (HR_PCR + 0); constexpr TPM_HC PCR_LAST = (PCR_FIRST + IMPLEMENTATION_PCR - 1); constexpr TPM_HC HMAC_SESSION_FIRST = (HR_HMAC_SESSION + 0); constexpr TPM_HC HMAC_SESSION_LAST = (HMAC_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1); constexpr TPM_HC LOADED_SESSION_LAST = HMAC_SESSION_LAST; constexpr TPM_HC POLICY_SESSION_FIRST = (HR_POLICY_SESSION + 0); constexpr TPM_HC POLICY_SESSION_LAST = (POLICY_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1); constexpr TPM_HC TRANSIENT_FIRST = (HR_TRANSIENT + 0); constexpr TPM_HC ACTIVE_SESSION_FIRST = POLICY_SESSION_FIRST; constexpr TPM_HC ACTIVE_SESSION_LAST = POLICY_SESSION_LAST; constexpr TPM_HC TRANSIENT_LAST = (TRANSIENT_FIRST + MAX_LOADED_OBJECTS - 1); constexpr TPM_HC PERSISTENT_FIRST = (HR_PERSISTENT + 0); constexpr TPM_HC PERSISTENT_LAST = (PERSISTENT_FIRST + 0x00FFFFFF); constexpr TPM_HC PLATFORM_PERSISTENT = (PERSISTENT_FIRST + 0x00800000); constexpr TPM_HC NV_INDEX_FIRST = (HR_NV_INDEX + 0); constexpr TPM_HC NV_INDEX_LAST = (NV_INDEX_FIRST + 0x00FFFFFF); constexpr TPM_HC PERMANENT_FIRST = TPM_RH_FIRST; constexpr TPM_HC PERMANENT_LAST = TPM_RH_LAST; struct TPMS_ALGORITHM_DESCRIPTION { TPM_ALG_ID alg; TPMA_ALGORITHM attributes; }; union TPMU_HA { BYTE sha1[SHA1_DIGEST_SIZE]; BYTE sha256[SHA256_DIGEST_SIZE]; BYTE sm3_256[SM3_256_DIGEST_SIZE]; BYTE sha384[SHA384_DIGEST_SIZE]; BYTE sha512[SHA512_DIGEST_SIZE]; }; struct TPMT_HA { TPMI_ALG_HASH hash_alg; TPMU_HA digest; }; struct TPM2B_DIGEST { UINT16 size; BYTE buffer[sizeof(TPMU_HA)]; }; struct TPM2B_DATA { UINT16 size; BYTE buffer[sizeof(TPMT_HA)]; }; struct TPM2B_EVENT { UINT16 size; BYTE buffer[1024]; }; struct TPM2B_MAX_BUFFER { UINT16 size; BYTE buffer[MAX_DIGEST_BUFFER]; }; struct TPM2B_MAX_NV_BUFFER { UINT16 size; BYTE buffer[MAX_NV_BUFFER_SIZE]; }; struct TPM2B_TIMEOUT { UINT16 size; BYTE buffer[sizeof(UINT64)]; }; struct TPM2B_IV { UINT16 size; BYTE buffer[MAX_SYM_BLOCK_SIZE]; }; union TPMU_NAME { TPMT_HA digest; TPM_HANDLE handle; }; struct TPM2B_NAME { UINT16 size; BYTE name[sizeof(TPMU_NAME)]; }; struct TPMS_PCR_SELECT { UINT8 sizeof_select; BYTE pcr_select[PCR_SELECT_MAX]; }; struct TPMS_PCR_SELECTION { TPMI_ALG_HASH hash; UINT8 sizeof_select; BYTE pcr_select[PCR_SELECT_MAX]; }; struct TPMT_TK_CREATION { TPM_ST tag; TPMI_RH_HIERARCHY hierarchy; TPM2B_DIGEST digest; }; struct TPMT_TK_VERIFIED { TPM_ST tag; TPMI_RH_HIERARCHY hierarchy; TPM2B_DIGEST digest; }; struct TPMT_TK_AUTH { TPMI_RH_HIERARCHY hierarchy; TPM2B_DIGEST digest; }; struct TPMT_TK_HASHCHECK { TPM_ST tag; TPMI_RH_HIERARCHY hierarchy; TPM2B_DIGEST digest; }; struct TPMS_ALG_PROPERTY { TPM_ALG_ID alg; TPMA_ALGORITHM alg_properties; }; struct TPMS_TAGGED_PROPERTY { TPM_PT property; UINT32 value; }; struct TPMS_TAGGED_PCR_SELECT { TPM_PT tag; UINT8 sizeof_select; BYTE pcr_select[PCR_SELECT_MAX]; }; struct TPML_CC { UINT32 count; TPM_CC command_codes[MAX_CAP_CC]; }; struct TPML_CCA { UINT32 count; TPMA_CC command_attributes[MAX_CAP_CC]; }; struct TPML_ALG { UINT32 count; TPM_ALG_ID algorithms[MAX_ALG_LIST_SIZE]; }; struct TPML_HANDLE { UINT32 count; TPM_HANDLE handle[MAX_CAP_HANDLES]; }; struct TPML_DIGEST { UINT32 count; TPM2B_DIGEST digests[8]; }; struct TPML_DIGEST_VALUES { UINT32 count; TPMT_HA digests[HASH_COUNT]; }; struct TPM2B_DIGEST_VALUES { UINT16 size; BYTE buffer[sizeof(TPML_DIGEST_VALUES)]; }; struct TPML_PCR_SELECTION { UINT32 count; TPMS_PCR_SELECTION pcr_selections[HASH_COUNT]; }; struct TPML_ALG_PROPERTY { UINT32 count; TPMS_ALG_PROPERTY alg_properties[MAX_CAP_ALGS]; }; struct TPML_TAGGED_TPM_PROPERTY { UINT32 count; TPMS_TAGGED_PROPERTY tpm_property[MAX_TPM_PROPERTIES]; }; struct TPML_TAGGED_PCR_PROPERTY { UINT32 count; TPMS_TAGGED_PCR_SELECT pcr_property[MAX_PCR_PROPERTIES]; }; struct TPML_ECC_CURVE { UINT32 count; TPM_ECC_CURVE ecc_curves[MAX_ECC_CURVES]; }; union TPMU_CAPABILITIES { TPML_ALG_PROPERTY algorithms; TPML_HANDLE handles; TPML_CCA command; TPML_CC pp_commands; TPML_CC audit_commands; TPML_PCR_SELECTION assigned_pcr; TPML_TAGGED_TPM_PROPERTY tpm_properties; TPML_TAGGED_PCR_PROPERTY pcr_properties; TPML_ECC_CURVE ecc_curves; }; struct TPMS_CAPABILITY_DATA { TPM_CAP capability; TPMU_CAPABILITIES data; }; struct TPMS_CLOCK_INFO { UINT64 clock; UINT32 reset_count; UINT32 restart_count; TPMI_YES_NO safe; }; struct TPMS_TIME_INFO { UINT64 time; TPMS_CLOCK_INFO clock_info; }; struct TPMS_TIME_ATTEST_INFO { TPMS_TIME_INFO time; UINT64 firmware_version; }; struct TPMS_CERTIFY_INFO { TPM2B_NAME name; TPM2B_NAME qualified_name; }; struct TPMS_QUOTE_INFO { TPML_PCR_SELECTION pcr_select; TPM2B_DIGEST pcr_digest; }; struct TPMS_COMMAND_AUDIT_INFO { UINT64 audit_counter; TPM_ALG_ID digest_alg; TPM2B_DIGEST audit_digest; TPM2B_DIGEST command_digest; }; struct TPMS_SESSION_AUDIT_INFO { TPMI_YES_NO exclusive_session; TPM2B_DIGEST session_digest; }; struct TPMS_CREATION_INFO { TPM2B_NAME object_name; TPM2B_DIGEST creation_hash; }; struct TPMS_NV_CERTIFY_INFO { TPM2B_NAME index_name; UINT16 offset; TPM2B_MAX_NV_BUFFER nv_contents; }; union TPMU_ATTEST { TPMS_CERTIFY_INFO certify; TPMS_CREATION_INFO creation; TPMS_QUOTE_INFO quote; TPMS_COMMAND_AUDIT_INFO command_audit; TPMS_SESSION_AUDIT_INFO session_audit; TPMS_TIME_ATTEST_INFO time; TPMS_NV_CERTIFY_INFO nv; }; struct TPMS_ATTEST { TPM_GENERATED magic; TPMI_ST_ATTEST type; TPM2B_NAME qualified_signer; TPM2B_DATA extra_data; TPMS_CLOCK_INFO clock_info; UINT64 firmware_version; TPMU_ATTEST attested; }; struct TPM2B_ATTEST { UINT16 size; BYTE attestation_data[sizeof(TPMS_ATTEST)]; }; struct TPMS_AUTH_COMMAND { TPMI_SH_AUTH_SESSION session_handle; TPM2B_NONCE nonce; TPMA_SESSION session_attributes; TPM2B_AUTH hmac; }; struct TPMS_AUTH_RESPONSE { TPM2B_NONCE nonce; TPMA_SESSION session_attributes; TPM2B_AUTH hmac; }; union TPMU_SYM_KEY_BITS { TPMI_AES_KEY_BITS aes; TPMI_SM4_KEY_BITS sm4; TPM_KEY_BITS sym; TPMI_ALG_HASH xor_; }; union TPMU_SYM_MODE { TPMI_ALG_SYM_MODE aes; TPMI_ALG_SYM_MODE sm4; TPMI_ALG_SYM_MODE sym; }; union TPMU_SYM_DETAILS {}; struct TPMT_SYM_DEF { TPMI_ALG_SYM algorithm; TPMU_SYM_KEY_BITS key_bits; TPMU_SYM_MODE mode; TPMU_SYM_DETAILS details; }; struct TPMT_SYM_DEF_OBJECT { TPMI_ALG_SYM_OBJECT algorithm; TPMU_SYM_KEY_BITS key_bits; TPMU_SYM_MODE mode; TPMU_SYM_DETAILS details; }; struct TPM2B_SYM_KEY { UINT16 size; BYTE buffer[MAX_SYM_KEY_BYTES]; }; struct TPMS_SYMCIPHER_PARMS { TPMT_SYM_DEF_OBJECT sym; }; struct TPM2B_SENSITIVE_DATA { UINT16 size; BYTE buffer[MAX_SYM_DATA]; }; struct TPMS_SENSITIVE_CREATE { TPM2B_AUTH user_auth; TPM2B_SENSITIVE_DATA data; }; struct TPM2B_SENSITIVE_CREATE { UINT16 size; TPMS_SENSITIVE_CREATE sensitive; }; struct TPMS_SCHEME_SIGHASH { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_XOR { TPMI_ALG_HASH hash_alg; TPMI_ALG_KDF kdf; }; union TPMU_SCHEME_KEYEDHASH { TPMS_SCHEME_HMAC hmac; TPMS_SCHEME_XOR xor_; }; struct TPMT_KEYEDHASH_SCHEME { TPMI_ALG_KEYEDHASH_SCHEME scheme; TPMU_SCHEME_KEYEDHASH details; }; struct TPMS_SCHEME_ECDAA { TPMI_ALG_HASH hash_alg; UINT16 count; }; union TPMU_SIG_SCHEME { TPMS_SCHEME_RSASSA rsassa; TPMS_SCHEME_RSAPSS rsapss; TPMS_SCHEME_ECDSA ecdsa; TPMS_SCHEME_SM2 sm2; TPMS_SCHEME_ECDAA ecdaa; TPMS_SCHEME_ECSCHNORR ec_schnorr; TPMS_SCHEME_HMAC hmac; TPMS_SCHEME_SIGHASH any; }; struct TPMT_SIG_SCHEME { TPMI_ALG_SIG_SCHEME scheme; TPMU_SIG_SCHEME details; }; struct TPMS_SCHEME_OAEP { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_ECDH { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_MGF1 { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_KDF1_SP800_56a { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_KDF2 { TPMI_ALG_HASH hash_alg; }; struct TPMS_SCHEME_KDF1_SP800_108 { TPMI_ALG_HASH hash_alg; }; union TPMU_KDF_SCHEME { TPMS_SCHEME_MGF1 mgf1; TPMS_SCHEME_KDF1_SP800_56a kdf1_sp800_56a; TPMS_SCHEME_KDF2 kdf2; TPMS_SCHEME_KDF1_SP800_108 kdf1_sp800_108; }; struct TPMT_KDF_SCHEME { TPMI_ALG_KDF scheme; TPMU_KDF_SCHEME details; }; union TPMU_ASYM_SCHEME { TPMS_SCHEME_RSASSA rsassa; TPMS_SCHEME_RSAPSS rsapss; TPMS_SCHEME_OAEP oaep; TPMS_SCHEME_ECDSA ecdsa; TPMS_SCHEME_SM2 sm2; TPMS_SCHEME_ECDAA ecdaa; TPMS_SCHEME_ECSCHNORR ec_schnorr; TPMS_SCHEME_ECDH ecdh; TPMS_SCHEME_SIGHASH any_sig; }; struct TPMT_ASYM_SCHEME { TPMI_ALG_ASYM_SCHEME scheme; TPMU_ASYM_SCHEME details; }; struct TPMT_RSA_SCHEME { TPMI_ALG_RSA_SCHEME scheme; TPMU_ASYM_SCHEME details; }; struct TPMT_RSA_DECRYPT { TPMI_ALG_RSA_DECRYPT scheme; TPMU_ASYM_SCHEME details; }; struct TPM2B_PUBLIC_KEY_RSA { UINT16 size; BYTE buffer[MAX_RSA_KEY_BYTES]; }; struct TPM2B_PRIVATE_KEY_RSA { UINT16 size; BYTE buffer[MAX_RSA_KEY_BYTES / 2]; }; struct TPM2B_ECC_PARAMETER { UINT16 size; BYTE buffer[MAX_ECC_KEY_BYTES]; }; struct TPMS_ECC_POINT { TPM2B_ECC_PARAMETER x; TPM2B_ECC_PARAMETER y; }; struct TPM2B_ECC_POINT { UINT16 size; TPMS_ECC_POINT point; }; struct TPMT_ECC_SCHEME { TPMI_ALG_ECC_SCHEME scheme; TPMU_SIG_SCHEME details; }; struct TPMS_ALGORITHM_DETAIL_ECC { TPM_ECC_CURVE curve_id; UINT16 key_size; TPMT_KDF_SCHEME kdf; TPMT_ECC_SCHEME sign; TPM2B_ECC_PARAMETER p; TPM2B_ECC_PARAMETER a; TPM2B_ECC_PARAMETER b; TPM2B_ECC_PARAMETER g_x; TPM2B_ECC_PARAMETER g_y; TPM2B_ECC_PARAMETER n; TPM2B_ECC_PARAMETER h; }; struct TPMS_SIGNATURE_RSASSA { TPMI_ALG_HASH hash; TPM2B_PUBLIC_KEY_RSA sig; }; struct TPMS_SIGNATURE_RSAPSS { TPMI_ALG_HASH hash; TPM2B_PUBLIC_KEY_RSA sig; }; struct TPMS_SIGNATURE_ECDSA { TPMI_ALG_HASH hash; TPM2B_ECC_PARAMETER signature_r; TPM2B_ECC_PARAMETER signature_s; }; union TPMU_SIGNATURE { TPMS_SIGNATURE_RSASSA rsassa; TPMS_SIGNATURE_RSAPSS rsapss; TPMS_SIGNATURE_ECDSA ecdsa; TPMS_SIGNATURE_ECDSA sm2; TPMS_SIGNATURE_ECDSA ecdaa; TPMS_SIGNATURE_ECDSA ecschnorr; TPMT_HA hmac; TPMS_SCHEME_SIGHASH any; }; struct TPMT_SIGNATURE { TPMI_ALG_SIG_SCHEME sig_alg; TPMU_SIGNATURE signature; }; union TPMU_ENCRYPTED_SECRET { BYTE ecc[sizeof(TPMS_ECC_POINT)]; BYTE rsa[MAX_RSA_KEY_BYTES]; BYTE symmetric[sizeof(TPM2B_DIGEST)]; BYTE keyed_hash[sizeof(TPM2B_DIGEST)]; }; struct TPM2B_ENCRYPTED_SECRET { UINT16 size; BYTE secret[sizeof(TPMU_ENCRYPTED_SECRET)]; }; struct TPMS_KEYEDHASH_PARMS { TPMT_KEYEDHASH_SCHEME scheme; }; struct TPMS_ASYM_PARMS { TPMT_SYM_DEF_OBJECT symmetric; TPMT_ASYM_SCHEME scheme; }; struct TPMS_RSA_PARMS { TPMT_SYM_DEF_OBJECT symmetric; TPMT_RSA_SCHEME scheme; TPMI_RSA_KEY_BITS key_bits; UINT32 exponent; }; struct TPMS_ECC_PARMS { TPMT_SYM_DEF_OBJECT symmetric; TPMT_ECC_SCHEME scheme; TPMI_ECC_CURVE curve_id; TPMT_KDF_SCHEME kdf; }; union TPMU_PUBLIC_PARMS { TPMS_KEYEDHASH_PARMS keyed_hash_detail; TPMS_SYMCIPHER_PARMS sym_detail; TPMS_RSA_PARMS rsa_detail; TPMS_ECC_PARMS ecc_detail; TPMS_ASYM_PARMS asym_detail; }; struct TPMT_PUBLIC_PARMS { TPMI_ALG_PUBLIC type; TPMU_PUBLIC_PARMS parameters; }; union TPMU_PUBLIC_ID { TPM2B_DIGEST keyed_hash; TPM2B_DIGEST sym; TPM2B_PUBLIC_KEY_RSA rsa; TPMS_ECC_POINT ecc; }; struct TPMT_PUBLIC { TPMI_ALG_PUBLIC type; TPMI_ALG_HASH name_alg; TPMA_OBJECT object_attributes; TPM2B_DIGEST auth_policy; TPMU_PUBLIC_PARMS parameters; TPMU_PUBLIC_ID unique; }; struct TPM2B_PUBLIC { UINT16 size; TPMT_PUBLIC public_area; }; struct TPM2B_PRIVATE_VENDOR_SPECIFIC { UINT16 size; BYTE buffer[PRIVATE_VENDOR_SPECIFIC_BYTES]; }; union TPMU_SENSITIVE_COMPOSITE { TPM2B_PRIVATE_KEY_RSA rsa; TPM2B_ECC_PARAMETER ecc; TPM2B_SENSITIVE_DATA bits; TPM2B_SYM_KEY sym; TPM2B_PRIVATE_VENDOR_SPECIFIC any; }; struct TPMT_SENSITIVE { TPMI_ALG_PUBLIC sensitive_type; TPM2B_AUTH auth_value; TPM2B_DIGEST seed_value; TPMU_SENSITIVE_COMPOSITE sensitive; }; struct TPM2B_SENSITIVE { UINT16 size; TPMT_SENSITIVE sensitive_area; }; struct _PRIVATE { TPM2B_DIGEST integrity_outer; TPM2B_DIGEST integrity_inner; TPMT_SENSITIVE sensitive; }; struct TPM2B_PRIVATE { UINT16 size; BYTE buffer[sizeof(_PRIVATE)]; }; struct _ID_OBJECT { TPM2B_DIGEST integrity_hmac; TPM2B_DIGEST enc_identity; }; struct TPM2B_ID_OBJECT { UINT16 size; BYTE credential[sizeof(_ID_OBJECT)]; }; struct TPMS_NV_PUBLIC { TPMI_RH_NV_INDEX nv_index; TPMI_ALG_HASH name_alg; TPMA_NV attributes; TPM2B_DIGEST auth_policy; UINT16 data_size; }; struct TPM2B_NV_PUBLIC { UINT16 size; TPMS_NV_PUBLIC nv_public; }; struct TPM2B_CONTEXT_SENSITIVE { UINT16 size; BYTE buffer[MAX_CONTEXT_SIZE]; }; struct TPMS_CONTEXT_DATA { TPM2B_DIGEST integrity; TPM2B_CONTEXT_SENSITIVE encrypted; }; struct TPM2B_CONTEXT_DATA { UINT16 size; BYTE buffer[sizeof(TPMS_CONTEXT_DATA)]; }; struct TPMS_CONTEXT { UINT64 sequence; TPMI_DH_CONTEXT saved_handle; TPMI_RH_HIERARCHY hierarchy; TPM2B_CONTEXT_DATA context_blob; }; struct TPMS_CREATION_DATA { TPML_PCR_SELECTION pcr_select; TPM2B_DIGEST pcr_digest; TPMA_LOCALITY locality; TPM_ALG_ID parent_name_alg; TPM2B_NAME parent_name; TPM2B_NAME parent_qualified_name; TPM2B_DATA outside_info; }; struct TPM2B_CREATION_DATA { UINT16 size; TPMS_CREATION_DATA creation_data; }; TRUNKS_EXPORT size_t GetNumberOfRequestHandles(TPM_CC command_code); TRUNKS_EXPORT size_t GetNumberOfResponseHandles(TPM_CC command_code); TRUNKS_EXPORT TPM_RC Serialize_uint8_t(const uint8_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_uint8_t(std::string* buffer, uint8_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_int8_t(const int8_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_int8_t(std::string* buffer, int8_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_int(const int& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_int(std::string* buffer, int* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_uint16_t(const uint16_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_uint16_t(std::string* buffer, uint16_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_int16_t(const int16_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_int16_t(std::string* buffer, int16_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_uint32_t(const uint32_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_uint32_t(std::string* buffer, uint32_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_int32_t(const int32_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_int32_t(std::string* buffer, int32_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_uint64_t(const uint64_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_uint64_t(std::string* buffer, uint64_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_int64_t(const int64_t& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_int64_t(std::string* buffer, int64_t* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_UINT8(const UINT8& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_UINT8(std::string* buffer, UINT8* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_BYTE(const BYTE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_BYTE(std::string* buffer, BYTE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_INT8(const INT8& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_INT8(std::string* buffer, INT8* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_BOOL(const BOOL& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_BOOL(std::string* buffer, BOOL* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_UINT16(const UINT16& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_UINT16(std::string* buffer, UINT16* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_INT16(const INT16& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_INT16(std::string* buffer, INT16* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_UINT32(const UINT32& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_UINT32(std::string* buffer, UINT32* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_INT32(const INT32& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_INT32(std::string* buffer, INT32* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_UINT64(const UINT64& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_UINT64(std::string* buffer, UINT64* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_INT64(const INT64& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_INT64(std::string* buffer, INT64* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_ALGORITHM_ID(const TPM_ALGORITHM_ID& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_ALGORITHM_ID(std::string* buffer, TPM_ALGORITHM_ID* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_MODIFIER_INDICATOR(const TPM_MODIFIER_INDICATOR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_MODIFIER_INDICATOR(std::string* buffer, TPM_MODIFIER_INDICATOR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_AUTHORIZATION_SIZE(const TPM_AUTHORIZATION_SIZE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_AUTHORIZATION_SIZE(std::string* buffer, TPM_AUTHORIZATION_SIZE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_PARAMETER_SIZE(const TPM_PARAMETER_SIZE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_PARAMETER_SIZE(std::string* buffer, TPM_PARAMETER_SIZE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_SIZE(const TPM_KEY_SIZE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_SIZE(std::string* buffer, TPM_KEY_SIZE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_BITS(const TPM_KEY_BITS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_BITS(std::string* buffer, TPM_KEY_BITS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_HANDLE(const TPM_HANDLE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_HANDLE(std::string* buffer, TPM_HANDLE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NONCE(const TPM2B_NONCE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_NONCE(std::string* buffer, TPM2B_NONCE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_AUTH(const TPM2B_AUTH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_AUTH(std::string* buffer, TPM2B_AUTH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_OPERAND(const TPM2B_OPERAND& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_OPERAND(std::string* buffer, TPM2B_OPERAND* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_HMAC(const TPMS_SCHEME_HMAC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_HMAC(std::string* buffer, TPMS_SCHEME_HMAC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_RSASSA(const TPMS_SCHEME_RSASSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSASSA(std::string* buffer, TPMS_SCHEME_RSASSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_RSAPSS(const TPMS_SCHEME_RSAPSS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSAPSS(std::string* buffer, TPMS_SCHEME_RSAPSS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDSA(const TPMS_SCHEME_ECDSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDSA(std::string* buffer, TPMS_SCHEME_ECDSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_SM2(const TPMS_SCHEME_SM2& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SM2(std::string* buffer, TPMS_SCHEME_SM2* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECSCHNORR(const TPMS_SCHEME_ECSCHNORR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECSCHNORR(std::string* buffer, TPMS_SCHEME_ECSCHNORR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_YES_NO(const TPMI_YES_NO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_YES_NO(std::string* buffer, TPMI_YES_NO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_OBJECT(const TPMI_DH_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_OBJECT(std::string* buffer, TPMI_DH_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_PERSISTENT(const TPMI_DH_PERSISTENT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PERSISTENT(std::string* buffer, TPMI_DH_PERSISTENT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_ENTITY(const TPMI_DH_ENTITY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_ENTITY(std::string* buffer, TPMI_DH_ENTITY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_PCR(const TPMI_DH_PCR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PCR(std::string* buffer, TPMI_DH_PCR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_AUTH_SESSION(const TPMI_SH_AUTH_SESSION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_AUTH_SESSION(std::string* buffer, TPMI_SH_AUTH_SESSION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_HMAC(const TPMI_SH_HMAC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_HMAC(std::string* buffer, TPMI_SH_HMAC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_POLICY(const TPMI_SH_POLICY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_POLICY(std::string* buffer, TPMI_SH_POLICY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_CONTEXT(const TPMI_DH_CONTEXT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_CONTEXT(std::string* buffer, TPMI_DH_CONTEXT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_HIERARCHY(const TPMI_RH_HIERARCHY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY(std::string* buffer, TPMI_RH_HIERARCHY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_ENABLES(const TPMI_RH_ENABLES& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENABLES(std::string* buffer, TPMI_RH_ENABLES* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_HIERARCHY_AUTH(const TPMI_RH_HIERARCHY_AUTH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY_AUTH(std::string* buffer, TPMI_RH_HIERARCHY_AUTH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PLATFORM(const TPMI_RH_PLATFORM& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PLATFORM(std::string* buffer, TPMI_RH_PLATFORM* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_OWNER(const TPMI_RH_OWNER& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_OWNER(std::string* buffer, TPMI_RH_OWNER* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_ENDORSEMENT(const TPMI_RH_ENDORSEMENT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENDORSEMENT(std::string* buffer, TPMI_RH_ENDORSEMENT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PROVISION(const TPMI_RH_PROVISION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PROVISION(std::string* buffer, TPMI_RH_PROVISION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_CLEAR(const TPMI_RH_CLEAR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_CLEAR(std::string* buffer, TPMI_RH_CLEAR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_AUTH(const TPMI_RH_NV_AUTH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_AUTH(std::string* buffer, TPMI_RH_NV_AUTH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_LOCKOUT(const TPMI_RH_LOCKOUT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_LOCKOUT(std::string* buffer, TPMI_RH_LOCKOUT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_INDEX(const TPMI_RH_NV_INDEX& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_INDEX(std::string* buffer, TPMI_RH_NV_INDEX* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_HASH(const TPMI_ALG_HASH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_HASH(std::string* buffer, TPMI_ALG_HASH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ASYM(const TPMI_ALG_ASYM& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM(std::string* buffer, TPMI_ALG_ASYM* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM(const TPMI_ALG_SYM& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM(std::string* buffer, TPMI_ALG_SYM* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM_OBJECT(const TPMI_ALG_SYM_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_OBJECT(std::string* buffer, TPMI_ALG_SYM_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM_MODE(const TPMI_ALG_SYM_MODE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_MODE(std::string* buffer, TPMI_ALG_SYM_MODE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_KDF(const TPMI_ALG_KDF& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_KDF(std::string* buffer, TPMI_ALG_KDF* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SIG_SCHEME(const TPMI_ALG_SIG_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SIG_SCHEME(std::string* buffer, TPMI_ALG_SIG_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ECC_KEY_EXCHANGE(const TPMI_ECC_KEY_EXCHANGE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_KEY_EXCHANGE(std::string* buffer, TPMI_ECC_KEY_EXCHANGE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ST_COMMAND_TAG(const TPMI_ST_COMMAND_TAG& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_COMMAND_TAG(std::string* buffer, TPMI_ST_COMMAND_TAG* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ST_ATTEST(const TPMI_ST_ATTEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_ATTEST(std::string* buffer, TPMI_ST_ATTEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_AES_KEY_BITS(const TPMI_AES_KEY_BITS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_AES_KEY_BITS(std::string* buffer, TPMI_AES_KEY_BITS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_SM4_KEY_BITS(const TPMI_SM4_KEY_BITS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_SM4_KEY_BITS(std::string* buffer, TPMI_SM4_KEY_BITS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_KEYEDHASH_SCHEME(const TPMI_ALG_KEYEDHASH_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_KEYEDHASH_SCHEME(std::string* buffer, TPMI_ALG_KEYEDHASH_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ASYM_SCHEME(const TPMI_ALG_ASYM_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM_SCHEME(std::string* buffer, TPMI_ALG_ASYM_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_RSA_SCHEME(const TPMI_ALG_RSA_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_SCHEME(std::string* buffer, TPMI_ALG_RSA_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_RSA_DECRYPT(const TPMI_ALG_RSA_DECRYPT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_DECRYPT(std::string* buffer, TPMI_ALG_RSA_DECRYPT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_RSA_KEY_BITS(const TPMI_RSA_KEY_BITS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_RSA_KEY_BITS(std::string* buffer, TPMI_RSA_KEY_BITS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ECC_SCHEME(const TPMI_ALG_ECC_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ECC_SCHEME(std::string* buffer, TPMI_ALG_ECC_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ECC_CURVE(const TPMI_ECC_CURVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_CURVE(std::string* buffer, TPMI_ECC_CURVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_PUBLIC(const TPMI_ALG_PUBLIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_PUBLIC(std::string* buffer, TPMI_ALG_PUBLIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_ALGORITHM(const TPMA_ALGORITHM& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_ALGORITHM(std::string* buffer, TPMA_ALGORITHM* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_OBJECT(const TPMA_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_OBJECT(std::string* buffer, TPMA_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_SESSION(const TPMA_SESSION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_SESSION(std::string* buffer, TPMA_SESSION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_LOCALITY(const TPMA_LOCALITY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_LOCALITY(std::string* buffer, TPMA_LOCALITY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_PERMANENT(const TPMA_PERMANENT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_PERMANENT(std::string* buffer, TPMA_PERMANENT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_STARTUP_CLEAR(const TPMA_STARTUP_CLEAR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_STARTUP_CLEAR(std::string* buffer, TPMA_STARTUP_CLEAR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_MEMORY(const TPMA_MEMORY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_MEMORY(std::string* buffer, TPMA_MEMORY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_CC(const TPMA_CC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_CC(std::string* buffer, TPMA_CC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_NV_INDEX(const TPM_NV_INDEX& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_NV_INDEX(std::string* buffer, TPM_NV_INDEX* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMA_NV(const TPMA_NV& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMA_NV(std::string* buffer, TPMA_NV* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_SPEC(const TPM_SPEC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_SPEC(std::string* buffer, TPM_SPEC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_GENERATED(const TPM_GENERATED& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_GENERATED(std::string* buffer, TPM_GENERATED* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_ALG_ID(const TPM_ALG_ID& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_ALG_ID(std::string* buffer, TPM_ALG_ID* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_ECC_CURVE(const TPM_ECC_CURVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_ECC_CURVE(std::string* buffer, TPM_ECC_CURVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_CC(const TPM_CC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_CC(std::string* buffer, TPM_CC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_RC(const TPM_RC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_RC(std::string* buffer, TPM_RC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_CLOCK_ADJUST(const TPM_CLOCK_ADJUST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_CLOCK_ADJUST(std::string* buffer, TPM_CLOCK_ADJUST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_EO(const TPM_EO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_EO(std::string* buffer, TPM_EO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_ST(const TPM_ST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_ST(std::string* buffer, TPM_ST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_SU(const TPM_SU& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_SU(std::string* buffer, TPM_SU* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_SE(const TPM_SE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_SE(std::string* buffer, TPM_SE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_CAP(const TPM_CAP& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_CAP(std::string* buffer, TPM_CAP* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_PT(const TPM_PT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_PT(std::string* buffer, TPM_PT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_PT_PCR(const TPM_PT_PCR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_PT_PCR(std::string* buffer, TPM_PT_PCR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_PS(const TPM_PS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_PS(std::string* buffer, TPM_PS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_HT(const TPM_HT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_HT(std::string* buffer, TPM_HT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_RH(const TPM_RH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_RH(std::string* buffer, TPM_RH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM_HC(const TPM_HC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM_HC(std::string* buffer, TPM_HC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALGORITHM_DESCRIPTION(const TPMS_ALGORITHM_DESCRIPTION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ALGORITHM_DESCRIPTION(std::string* buffer, TPMS_ALGORITHM_DESCRIPTION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_HA(const TPMT_HA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_HA(std::string* buffer, TPMT_HA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DIGEST(const TPM2B_DIGEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST(std::string* buffer, TPM2B_DIGEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_DIGEST Make_TPM2B_DIGEST(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST(const TPM2B_DIGEST& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DATA(const TPM2B_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_DATA(std::string* buffer, TPM2B_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_DATA Make_TPM2B_DATA(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_DATA(const TPM2B_DATA& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_EVENT(const TPM2B_EVENT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_EVENT(std::string* buffer, TPM2B_EVENT* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_EVENT Make_TPM2B_EVENT(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_EVENT(const TPM2B_EVENT& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_MAX_BUFFER(const TPM2B_MAX_BUFFER& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_BUFFER(std::string* buffer, TPM2B_MAX_BUFFER* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_MAX_BUFFER Make_TPM2B_MAX_BUFFER(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_BUFFER( const TPM2B_MAX_BUFFER& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_MAX_NV_BUFFER(const TPM2B_MAX_NV_BUFFER& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_NV_BUFFER(std::string* buffer, TPM2B_MAX_NV_BUFFER* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_MAX_NV_BUFFER Make_TPM2B_MAX_NV_BUFFER(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_NV_BUFFER( const TPM2B_MAX_NV_BUFFER& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_TIMEOUT(std::string* buffer, TPM2B_TIMEOUT* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_TIMEOUT Make_TPM2B_TIMEOUT(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_IV(const TPM2B_IV& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_IV(std::string* buffer, TPM2B_IV* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_IV Make_TPM2B_IV(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_IV(const TPM2B_IV& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NAME(const TPM2B_NAME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_NAME(std::string* buffer, TPM2B_NAME* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_NAME Make_TPM2B_NAME(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_NAME(const TPM2B_NAME& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_PCR_SELECT(const TPMS_PCR_SELECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECT(std::string* buffer, TPMS_PCR_SELECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_PCR_SELECTION(const TPMS_PCR_SELECTION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECTION(std::string* buffer, TPMS_PCR_SELECTION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_CREATION(const TPMT_TK_CREATION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_CREATION(std::string* buffer, TPMT_TK_CREATION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_VERIFIED(const TPMT_TK_VERIFIED& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_VERIFIED(std::string* buffer, TPMT_TK_VERIFIED* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_AUTH(const TPMT_TK_AUTH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_AUTH(std::string* buffer, TPMT_TK_AUTH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_HASHCHECK(const TPMT_TK_HASHCHECK& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_HASHCHECK(std::string* buffer, TPMT_TK_HASHCHECK* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALG_PROPERTY(const TPMS_ALG_PROPERTY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ALG_PROPERTY(std::string* buffer, TPMS_ALG_PROPERTY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_TAGGED_PROPERTY(const TPMS_TAGGED_PROPERTY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PROPERTY(std::string* buffer, TPMS_TAGGED_PROPERTY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_TAGGED_PCR_SELECT(const TPMS_TAGGED_PCR_SELECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PCR_SELECT(std::string* buffer, TPMS_TAGGED_PCR_SELECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_CC(const TPML_CC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_CC(std::string* buffer, TPML_CC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_CCA(const TPML_CCA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_CCA(std::string* buffer, TPML_CCA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG(const TPML_ALG& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_ALG(std::string* buffer, TPML_ALG* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_HANDLE(const TPML_HANDLE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_HANDLE(std::string* buffer, TPML_HANDLE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_DIGEST(const TPML_DIGEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST(std::string* buffer, TPML_DIGEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_DIGEST_VALUES(const TPML_DIGEST_VALUES& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST_VALUES(std::string* buffer, TPML_DIGEST_VALUES* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DIGEST_VALUES(const TPM2B_DIGEST_VALUES& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST_VALUES(std::string* buffer, TPM2B_DIGEST_VALUES* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_DIGEST_VALUES Make_TPM2B_DIGEST_VALUES(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST_VALUES( const TPM2B_DIGEST_VALUES& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPML_PCR_SELECTION(const TPML_PCR_SELECTION& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_PCR_SELECTION(std::string* buffer, TPML_PCR_SELECTION* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG_PROPERTY(const TPML_ALG_PROPERTY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_ALG_PROPERTY(std::string* buffer, TPML_ALG_PROPERTY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_TAGGED_TPM_PROPERTY(const TPML_TAGGED_TPM_PROPERTY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_TAGGED_TPM_PROPERTY(std::string* buffer, TPML_TAGGED_TPM_PROPERTY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_TAGGED_PCR_PROPERTY(const TPML_TAGGED_PCR_PROPERTY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_TAGGED_PCR_PROPERTY(std::string* buffer, TPML_TAGGED_PCR_PROPERTY* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPML_ECC_CURVE(const TPML_ECC_CURVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPML_ECC_CURVE(std::string* buffer, TPML_ECC_CURVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CAPABILITY_DATA(const TPMS_CAPABILITY_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CAPABILITY_DATA(std::string* buffer, TPMS_CAPABILITY_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CLOCK_INFO(const TPMS_CLOCK_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CLOCK_INFO(std::string* buffer, TPMS_CLOCK_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_TIME_INFO(const TPMS_TIME_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_INFO(std::string* buffer, TPMS_TIME_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_TIME_ATTEST_INFO(const TPMS_TIME_ATTEST_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_ATTEST_INFO(std::string* buffer, TPMS_TIME_ATTEST_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CERTIFY_INFO(const TPMS_CERTIFY_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CERTIFY_INFO(std::string* buffer, TPMS_CERTIFY_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_QUOTE_INFO(const TPMS_QUOTE_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_QUOTE_INFO(std::string* buffer, TPMS_QUOTE_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_COMMAND_AUDIT_INFO(const TPMS_COMMAND_AUDIT_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_COMMAND_AUDIT_INFO(std::string* buffer, TPMS_COMMAND_AUDIT_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SESSION_AUDIT_INFO(const TPMS_SESSION_AUDIT_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SESSION_AUDIT_INFO(std::string* buffer, TPMS_SESSION_AUDIT_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CREATION_INFO(const TPMS_CREATION_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_INFO(std::string* buffer, TPMS_CREATION_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_NV_CERTIFY_INFO(const TPMS_NV_CERTIFY_INFO& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_CERTIFY_INFO(std::string* buffer, TPMS_NV_CERTIFY_INFO* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ATTEST(const TPMS_ATTEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ATTEST(std::string* buffer, TPMS_ATTEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ATTEST(const TPM2B_ATTEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_ATTEST(std::string* buffer, TPM2B_ATTEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_ATTEST Make_TPM2B_ATTEST(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_ATTEST(const TPM2B_ATTEST& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_AUTH_COMMAND(const TPMS_AUTH_COMMAND& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_COMMAND(std::string* buffer, TPMS_AUTH_COMMAND* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_AUTH_RESPONSE(const TPMS_AUTH_RESPONSE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_RESPONSE(std::string* buffer, TPMS_AUTH_RESPONSE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_SYM_DEF(const TPMT_SYM_DEF& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF(std::string* buffer, TPMT_SYM_DEF* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_SYM_DEF_OBJECT(const TPMT_SYM_DEF_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF_OBJECT(std::string* buffer, TPMT_SYM_DEF_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_SYM_KEY(std::string* buffer, TPM2B_SYM_KEY* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_SYM_KEY Make_TPM2B_SYM_KEY(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SYMCIPHER_PARMS(const TPMS_SYMCIPHER_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SYMCIPHER_PARMS(std::string* buffer, TPMS_SYMCIPHER_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE_DATA(const TPM2B_SENSITIVE_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_DATA(std::string* buffer, TPM2B_SENSITIVE_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_SENSITIVE_DATA Make_TPM2B_SENSITIVE_DATA(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_SENSITIVE_DATA( const TPM2B_SENSITIVE_DATA& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SENSITIVE_CREATE(const TPMS_SENSITIVE_CREATE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SENSITIVE_CREATE(std::string* buffer, TPMS_SENSITIVE_CREATE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE_CREATE(const TPM2B_SENSITIVE_CREATE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_CREATE(std::string* buffer, TPM2B_SENSITIVE_CREATE* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_SENSITIVE_CREATE Make_TPM2B_SENSITIVE_CREATE(const TPMS_SENSITIVE_CREATE& inner); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_SIGHASH(const TPMS_SCHEME_SIGHASH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SIGHASH(std::string* buffer, TPMS_SCHEME_SIGHASH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_XOR(const TPMS_SCHEME_XOR& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_XOR(std::string* buffer, TPMS_SCHEME_XOR* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_KEYEDHASH_SCHEME(const TPMT_KEYEDHASH_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_KEYEDHASH_SCHEME(std::string* buffer, TPMT_KEYEDHASH_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDAA(const TPMS_SCHEME_ECDAA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDAA(std::string* buffer, TPMS_SCHEME_ECDAA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIG_SCHEME(const TPMT_SIG_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_SIG_SCHEME(std::string* buffer, TPMT_SIG_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_OAEP(const TPMS_SCHEME_OAEP& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_OAEP(std::string* buffer, TPMS_SCHEME_OAEP* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDH(const TPMS_SCHEME_ECDH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDH(std::string* buffer, TPMS_SCHEME_ECDH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_MGF1(const TPMS_SCHEME_MGF1& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_MGF1(std::string* buffer, TPMS_SCHEME_MGF1* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF1_SP800_56a(const TPMS_SCHEME_KDF1_SP800_56a& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_KDF1_SP800_56a(std::string* buffer, TPMS_SCHEME_KDF1_SP800_56a* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF2(const TPMS_SCHEME_KDF2& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_KDF2(std::string* buffer, TPMS_SCHEME_KDF2* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF1_SP800_108(const TPMS_SCHEME_KDF1_SP800_108& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_KDF1_SP800_108(std::string* buffer, TPMS_SCHEME_KDF1_SP800_108* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_KDF_SCHEME(const TPMT_KDF_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_KDF_SCHEME(std::string* buffer, TPMT_KDF_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_ASYM_SCHEME(const TPMT_ASYM_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_ASYM_SCHEME(std::string* buffer, TPMT_ASYM_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_SCHEME(const TPMT_RSA_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_SCHEME(std::string* buffer, TPMT_RSA_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_DECRYPT(const TPMT_RSA_DECRYPT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_DECRYPT(std::string* buffer, TPMT_RSA_DECRYPT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PUBLIC_KEY_RSA(const TPM2B_PUBLIC_KEY_RSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC_KEY_RSA(std::string* buffer, TPM2B_PUBLIC_KEY_RSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_PUBLIC_KEY_RSA Make_TPM2B_PUBLIC_KEY_RSA(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_PUBLIC_KEY_RSA( const TPM2B_PUBLIC_KEY_RSA& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE_KEY_RSA(const TPM2B_PRIVATE_KEY_RSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE_KEY_RSA(std::string* buffer, TPM2B_PRIVATE_KEY_RSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_PRIVATE_KEY_RSA Make_TPM2B_PRIVATE_KEY_RSA(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_KEY_RSA( const TPM2B_PRIVATE_KEY_RSA& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ECC_PARAMETER(const TPM2B_ECC_PARAMETER& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_PARAMETER(std::string* buffer, TPM2B_ECC_PARAMETER* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_ECC_PARAMETER Make_TPM2B_ECC_PARAMETER(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_ECC_PARAMETER( const TPM2B_ECC_PARAMETER& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_POINT(const TPMS_ECC_POINT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_POINT(std::string* buffer, TPMS_ECC_POINT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ECC_POINT(const TPM2B_ECC_POINT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_POINT(std::string* buffer, TPM2B_ECC_POINT* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_ECC_POINT Make_TPM2B_ECC_POINT(const TPMS_ECC_POINT& inner); TRUNKS_EXPORT TPM_RC Serialize_TPMT_ECC_SCHEME(const TPMT_ECC_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_ECC_SCHEME(std::string* buffer, TPMT_ECC_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALGORITHM_DETAIL_ECC(const TPMS_ALGORITHM_DETAIL_ECC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ALGORITHM_DETAIL_ECC(std::string* buffer, TPMS_ALGORITHM_DETAIL_ECC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_RSASSA(const TPMS_SIGNATURE_RSASSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSASSA(std::string* buffer, TPMS_SIGNATURE_RSASSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_RSAPSS(const TPMS_SIGNATURE_RSAPSS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSAPSS(std::string* buffer, TPMS_SIGNATURE_RSAPSS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_ECDSA(const TPMS_SIGNATURE_ECDSA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_ECDSA(std::string* buffer, TPMS_SIGNATURE_ECDSA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIGNATURE(const TPMT_SIGNATURE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_SIGNATURE(std::string* buffer, TPMT_SIGNATURE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ENCRYPTED_SECRET(const TPM2B_ENCRYPTED_SECRET& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_ENCRYPTED_SECRET(std::string* buffer, TPM2B_ENCRYPTED_SECRET* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_ENCRYPTED_SECRET Make_TPM2B_ENCRYPTED_SECRET(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_ENCRYPTED_SECRET( const TPM2B_ENCRYPTED_SECRET& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_KEYEDHASH_PARMS(const TPMS_KEYEDHASH_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_KEYEDHASH_PARMS(std::string* buffer, TPMS_KEYEDHASH_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ASYM_PARMS(const TPMS_ASYM_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ASYM_PARMS(std::string* buffer, TPMS_ASYM_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_RSA_PARMS(const TPMS_RSA_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_RSA_PARMS(std::string* buffer, TPMS_RSA_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_PARMS(const TPMS_ECC_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_PARMS(std::string* buffer, TPMS_ECC_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC_PARMS(const TPMT_PUBLIC_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC_PARMS(std::string* buffer, TPMT_PUBLIC_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC(const TPMT_PUBLIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC(std::string* buffer, TPMT_PUBLIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PUBLIC(const TPM2B_PUBLIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC(std::string* buffer, TPM2B_PUBLIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_PUBLIC Make_TPM2B_PUBLIC(const TPMT_PUBLIC& inner); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE_VENDOR_SPECIFIC( const TPM2B_PRIVATE_VENDOR_SPECIFIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE_VENDOR_SPECIFIC(std::string* buffer, TPM2B_PRIVATE_VENDOR_SPECIFIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_PRIVATE_VENDOR_SPECIFIC Make_TPM2B_PRIVATE_VENDOR_SPECIFIC(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_VENDOR_SPECIFIC( const TPM2B_PRIVATE_VENDOR_SPECIFIC& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMT_SENSITIVE(const TPMT_SENSITIVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMT_SENSITIVE(std::string* buffer, TPMT_SENSITIVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE(const TPM2B_SENSITIVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE(std::string* buffer, TPM2B_SENSITIVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_SENSITIVE Make_TPM2B_SENSITIVE(const TPMT_SENSITIVE& inner); TRUNKS_EXPORT TPM_RC Serialize__PRIVATE(const _PRIVATE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse__PRIVATE(std::string* buffer, _PRIVATE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE(const TPM2B_PRIVATE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE(std::string* buffer, TPM2B_PRIVATE* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_PRIVATE Make_TPM2B_PRIVATE(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE(const TPM2B_PRIVATE& tpm2b); TRUNKS_EXPORT TPM_RC Serialize__ID_OBJECT(const _ID_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse__ID_OBJECT(std::string* buffer, _ID_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ID_OBJECT(const TPM2B_ID_OBJECT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_ID_OBJECT(std::string* buffer, TPM2B_ID_OBJECT* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_ID_OBJECT Make_TPM2B_ID_OBJECT(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_ID_OBJECT( const TPM2B_ID_OBJECT& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_NV_PUBLIC(const TPMS_NV_PUBLIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_PUBLIC(std::string* buffer, TPMS_NV_PUBLIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NV_PUBLIC(const TPM2B_NV_PUBLIC& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_NV_PUBLIC(std::string* buffer, TPM2B_NV_PUBLIC* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_NV_PUBLIC Make_TPM2B_NV_PUBLIC(const TPMS_NV_PUBLIC& inner); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CONTEXT_SENSITIVE(const TPM2B_CONTEXT_SENSITIVE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_CONTEXT_SENSITIVE(std::string* buffer, TPM2B_CONTEXT_SENSITIVE* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_CONTEXT_SENSITIVE Make_TPM2B_CONTEXT_SENSITIVE(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_SENSITIVE( const TPM2B_CONTEXT_SENSITIVE& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT_DATA(const TPMS_CONTEXT_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT_DATA(std::string* buffer, TPMS_CONTEXT_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CONTEXT_DATA(const TPM2B_CONTEXT_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_CONTEXT_DATA(std::string* buffer, TPM2B_CONTEXT_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_CONTEXT_DATA Make_TPM2B_CONTEXT_DATA(const std::string& bytes); TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_DATA( const TPM2B_CONTEXT_DATA& tpm2b); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT(const TPMS_CONTEXT& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT(std::string* buffer, TPMS_CONTEXT* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMS_CREATION_DATA(const TPMS_CREATION_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_DATA(std::string* buffer, TPMS_CREATION_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CREATION_DATA(const TPM2B_CREATION_DATA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPM2B_CREATION_DATA(std::string* buffer, TPM2B_CREATION_DATA* value, std::string* value_bytes); TRUNKS_EXPORT TPM2B_CREATION_DATA Make_TPM2B_CREATION_DATA(const TPMS_CREATION_DATA& inner); TRUNKS_EXPORT TPM_RC Serialize_TPMU_HA(const TPMU_HA& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_HA(std::string* buffer, TPMU_HA* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_NAME(const TPMU_NAME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_NAME(std::string* buffer, TPMU_NAME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_CAPABILITIES(const TPMU_CAPABILITIES& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_CAPABILITIES(std::string* buffer, TPMU_CAPABILITIES* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_ATTEST(const TPMU_ATTEST& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_ATTEST(std::string* buffer, TPMU_ATTEST* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_KEY_BITS(const TPMU_SYM_KEY_BITS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_KEY_BITS(std::string* buffer, TPMU_SYM_KEY_BITS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_MODE(const TPMU_SYM_MODE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_MODE(std::string* buffer, TPMU_SYM_MODE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SCHEME_KEYEDHASH(const TPMU_SCHEME_KEYEDHASH& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SCHEME_KEYEDHASH(std::string* buffer, TPMU_SCHEME_KEYEDHASH* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIG_SCHEME(const TPMU_SIG_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SIG_SCHEME(std::string* buffer, TPMU_SIG_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_KDF_SCHEME(const TPMU_KDF_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_KDF_SCHEME(std::string* buffer, TPMU_KDF_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_ASYM_SCHEME(const TPMU_ASYM_SCHEME& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_ASYM_SCHEME(std::string* buffer, TPMU_ASYM_SCHEME* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIGNATURE(const TPMU_SIGNATURE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SIGNATURE(std::string* buffer, TPMU_SIGNATURE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_ENCRYPTED_SECRET(const TPMU_ENCRYPTED_SECRET& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_ENCRYPTED_SECRET(std::string* buffer, TPMU_ENCRYPTED_SECRET* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_ID(const TPMU_PUBLIC_ID& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_ID(std::string* buffer, TPMU_PUBLIC_ID* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_PARMS(const TPMU_PUBLIC_PARMS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_PARMS(std::string* buffer, TPMU_PUBLIC_PARMS* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SENSITIVE_COMPOSITE(const TPMU_SENSITIVE_COMPOSITE& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SENSITIVE_COMPOSITE(std::string* buffer, TPMU_SENSITIVE_COMPOSITE* value, std::string* value_bytes); TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_DETAILS(const TPMU_SYM_DETAILS& value, std::string* buffer); TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_DETAILS(std::string* buffer, TPMU_SYM_DETAILS* value, std::string* value_bytes); class TRUNKS_EXPORT Tpm { public: // Does not take ownership of |transceiver|. explicit Tpm(CommandTransceiver* transceiver) : transceiver_(transceiver) {} virtual ~Tpm() {} typedef base::Callback<void(TPM_RC response_code)> StartupResponse; static TPM_RC SerializeCommand_Startup( const TPM_SU& startup_type, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Startup( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void Startup(const TPM_SU& startup_type, AuthorizationDelegate* authorization_delegate, const StartupResponse& callback); virtual TPM_RC StartupSync(const TPM_SU& startup_type, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ShutdownResponse; static TPM_RC SerializeCommand_Shutdown( const TPM_SU& shutdown_type, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Shutdown( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void Shutdown(const TPM_SU& shutdown_type, AuthorizationDelegate* authorization_delegate, const ShutdownResponse& callback); virtual TPM_RC ShutdownSync(const TPM_SU& shutdown_type, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> SelfTestResponse; static TPM_RC SerializeCommand_SelfTest( const TPMI_YES_NO& full_test, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SelfTest( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void SelfTest(const TPMI_YES_NO& full_test, AuthorizationDelegate* authorization_delegate, const SelfTestResponse& callback); virtual TPM_RC SelfTestSync(const TPMI_YES_NO& full_test, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPML_ALG& to_do_list)> IncrementalSelfTestResponse; static TPM_RC SerializeCommand_IncrementalSelfTest( const TPML_ALG& to_test, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_IncrementalSelfTest( const std::string& response, TPML_ALG* to_do_list, AuthorizationDelegate* authorization_delegate); virtual void IncrementalSelfTest( const TPML_ALG& to_test, AuthorizationDelegate* authorization_delegate, const IncrementalSelfTestResponse& callback); virtual TPM_RC IncrementalSelfTestSync( const TPML_ALG& to_test, TPML_ALG* to_do_list, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_MAX_BUFFER& out_data, const TPM_RC& test_result)> GetTestResultResponse; static TPM_RC SerializeCommand_GetTestResult( std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetTestResult( const std::string& response, TPM2B_MAX_BUFFER* out_data, TPM_RC* test_result, AuthorizationDelegate* authorization_delegate); virtual void GetTestResult(AuthorizationDelegate* authorization_delegate, const GetTestResultResponse& callback); virtual TPM_RC GetTestResultSync( TPM2B_MAX_BUFFER* out_data, TPM_RC* test_result, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_SH_AUTH_SESSION& session_handle, const TPM2B_NONCE& nonce_tpm)> StartAuthSessionResponse; static TPM_RC SerializeCommand_StartAuthSession( const TPMI_DH_OBJECT& tpm_key, const std::string& tpm_key_name, const TPMI_DH_ENTITY& bind, const std::string& bind_name, const TPM2B_NONCE& nonce_caller, const TPM2B_ENCRYPTED_SECRET& encrypted_salt, const TPM_SE& session_type, const TPMT_SYM_DEF& symmetric, const TPMI_ALG_HASH& auth_hash, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_StartAuthSession( const std::string& response, TPMI_SH_AUTH_SESSION* session_handle, TPM2B_NONCE* nonce_tpm, AuthorizationDelegate* authorization_delegate); virtual void StartAuthSession(const TPMI_DH_OBJECT& tpm_key, const std::string& tpm_key_name, const TPMI_DH_ENTITY& bind, const std::string& bind_name, const TPM2B_NONCE& nonce_caller, const TPM2B_ENCRYPTED_SECRET& encrypted_salt, const TPM_SE& session_type, const TPMT_SYM_DEF& symmetric, const TPMI_ALG_HASH& auth_hash, AuthorizationDelegate* authorization_delegate, const StartAuthSessionResponse& callback); virtual TPM_RC StartAuthSessionSync( const TPMI_DH_OBJECT& tpm_key, const std::string& tpm_key_name, const TPMI_DH_ENTITY& bind, const std::string& bind_name, const TPM2B_NONCE& nonce_caller, const TPM2B_ENCRYPTED_SECRET& encrypted_salt, const TPM_SE& session_type, const TPMT_SYM_DEF& symmetric, const TPMI_ALG_HASH& auth_hash, TPMI_SH_AUTH_SESSION* session_handle, TPM2B_NONCE* nonce_tpm, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyRestartResponse; static TPM_RC SerializeCommand_PolicyRestart( const TPMI_SH_POLICY& session_handle, const std::string& session_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyRestart( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyRestart(const TPMI_SH_POLICY& session_handle, const std::string& session_handle_name, AuthorizationDelegate* authorization_delegate, const PolicyRestartResponse& callback); virtual TPM_RC PolicyRestartSync( const TPMI_SH_POLICY& session_handle, const std::string& session_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PRIVATE& out_private, const TPM2B_PUBLIC& out_public, const TPM2B_CREATION_DATA& creation_data, const TPM2B_DIGEST& creation_hash, const TPMT_TK_CREATION& creation_ticket)> CreateResponse; static TPM_RC SerializeCommand_Create( const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Create( const std::string& response, TPM2B_PRIVATE* out_private, TPM2B_PUBLIC* out_public, TPM2B_CREATION_DATA* creation_data, TPM2B_DIGEST* creation_hash, TPMT_TK_CREATION* creation_ticket, AuthorizationDelegate* authorization_delegate); virtual void Create(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, AuthorizationDelegate* authorization_delegate, const CreateResponse& callback); virtual TPM_RC CreateSync(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, TPM2B_PRIVATE* out_private, TPM2B_PUBLIC* out_public, TPM2B_CREATION_DATA* creation_data, TPM2B_DIGEST* creation_hash, TPMT_TK_CREATION* creation_ticket, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM_HANDLE& object_handle, const TPM2B_NAME& name)> LoadResponse; static TPM_RC SerializeCommand_Load( const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_PRIVATE& in_private, const TPM2B_PUBLIC& in_public, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Load( const std::string& response, TPM_HANDLE* object_handle, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); virtual void Load(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_PRIVATE& in_private, const TPM2B_PUBLIC& in_public, AuthorizationDelegate* authorization_delegate, const LoadResponse& callback); virtual TPM_RC LoadSync(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_PRIVATE& in_private, const TPM2B_PUBLIC& in_public, TPM_HANDLE* object_handle, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM_HANDLE& object_handle, const TPM2B_NAME& name)> LoadExternalResponse; static TPM_RC SerializeCommand_LoadExternal( const TPM2B_SENSITIVE& in_private, const TPM2B_PUBLIC& in_public, const TPMI_RH_HIERARCHY& hierarchy, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_LoadExternal( const std::string& response, TPM_HANDLE* object_handle, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); virtual void LoadExternal(const TPM2B_SENSITIVE& in_private, const TPM2B_PUBLIC& in_public, const TPMI_RH_HIERARCHY& hierarchy, AuthorizationDelegate* authorization_delegate, const LoadExternalResponse& callback); virtual TPM_RC LoadExternalSync( const TPM2B_SENSITIVE& in_private, const TPM2B_PUBLIC& in_public, const TPMI_RH_HIERARCHY& hierarchy, TPM_HANDLE* object_handle, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PUBLIC& out_public, const TPM2B_NAME& name, const TPM2B_NAME& qualified_name)> ReadPublicResponse; static TPM_RC SerializeCommand_ReadPublic( const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ReadPublic( const std::string& response, TPM2B_PUBLIC* out_public, TPM2B_NAME* name, TPM2B_NAME* qualified_name, AuthorizationDelegate* authorization_delegate); virtual void ReadPublic(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, AuthorizationDelegate* authorization_delegate, const ReadPublicResponse& callback); virtual TPM_RC ReadPublicSync(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, TPM2B_PUBLIC* out_public, TPM2B_NAME* name, TPM2B_NAME* qualified_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& cert_info)> ActivateCredentialResponse; static TPM_RC SerializeCommand_ActivateCredential( const TPMI_DH_OBJECT& activate_handle, const std::string& activate_handle_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ID_OBJECT& credential_blob, const TPM2B_ENCRYPTED_SECRET& secret, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ActivateCredential( const std::string& response, TPM2B_DIGEST* cert_info, AuthorizationDelegate* authorization_delegate); virtual void ActivateCredential(const TPMI_DH_OBJECT& activate_handle, const std::string& activate_handle_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ID_OBJECT& credential_blob, const TPM2B_ENCRYPTED_SECRET& secret, AuthorizationDelegate* authorization_delegate, const ActivateCredentialResponse& callback); virtual TPM_RC ActivateCredentialSync( const TPMI_DH_OBJECT& activate_handle, const std::string& activate_handle_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ID_OBJECT& credential_blob, const TPM2B_ENCRYPTED_SECRET& secret, TPM2B_DIGEST* cert_info, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ID_OBJECT& credential_blob, const TPM2B_ENCRYPTED_SECRET& secret)> MakeCredentialResponse; static TPM_RC SerializeCommand_MakeCredential( const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_DIGEST& credential, const TPM2B_NAME& object_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_MakeCredential( const std::string& response, TPM2B_ID_OBJECT* credential_blob, TPM2B_ENCRYPTED_SECRET* secret, AuthorizationDelegate* authorization_delegate); virtual void MakeCredential(const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_DIGEST& credential, const TPM2B_NAME& object_name, AuthorizationDelegate* authorization_delegate, const MakeCredentialResponse& callback); virtual TPM_RC MakeCredentialSync( const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_DIGEST& credential, const TPM2B_NAME& object_name, TPM2B_ID_OBJECT* credential_blob, TPM2B_ENCRYPTED_SECRET* secret, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_SENSITIVE_DATA& out_data)> UnsealResponse; static TPM_RC SerializeCommand_Unseal( const TPMI_DH_OBJECT& item_handle, const std::string& item_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Unseal( const std::string& response, TPM2B_SENSITIVE_DATA* out_data, AuthorizationDelegate* authorization_delegate); virtual void Unseal(const TPMI_DH_OBJECT& item_handle, const std::string& item_handle_name, AuthorizationDelegate* authorization_delegate, const UnsealResponse& callback); virtual TPM_RC UnsealSync(const TPMI_DH_OBJECT& item_handle, const std::string& item_handle_name, TPM2B_SENSITIVE_DATA* out_data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PRIVATE& out_private)> ObjectChangeAuthResponse; static TPM_RC SerializeCommand_ObjectChangeAuth( const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_AUTH& new_auth, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ObjectChangeAuth( const std::string& response, TPM2B_PRIVATE* out_private, AuthorizationDelegate* authorization_delegate); virtual void ObjectChangeAuth(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_AUTH& new_auth, AuthorizationDelegate* authorization_delegate, const ObjectChangeAuthResponse& callback); virtual TPM_RC ObjectChangeAuthSync( const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_AUTH& new_auth, TPM2B_PRIVATE* out_private, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DATA& encryption_key_out, const TPM2B_PRIVATE& duplicate, const TPM2B_ENCRYPTED_SECRET& out_sym_seed)> DuplicateResponse; static TPM_RC SerializeCommand_Duplicate( const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& new_parent_handle, const std::string& new_parent_handle_name, const TPM2B_DATA& encryption_key_in, const TPMT_SYM_DEF_OBJECT& symmetric_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Duplicate( const std::string& response, TPM2B_DATA* encryption_key_out, TPM2B_PRIVATE* duplicate, TPM2B_ENCRYPTED_SECRET* out_sym_seed, AuthorizationDelegate* authorization_delegate); virtual void Duplicate(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& new_parent_handle, const std::string& new_parent_handle_name, const TPM2B_DATA& encryption_key_in, const TPMT_SYM_DEF_OBJECT& symmetric_alg, AuthorizationDelegate* authorization_delegate, const DuplicateResponse& callback); virtual TPM_RC DuplicateSync(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& new_parent_handle, const std::string& new_parent_handle_name, const TPM2B_DATA& encryption_key_in, const TPMT_SYM_DEF_OBJECT& symmetric_alg, TPM2B_DATA* encryption_key_out, TPM2B_PRIVATE* duplicate, TPM2B_ENCRYPTED_SECRET* out_sym_seed, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PRIVATE& out_duplicate, const TPM2B_ENCRYPTED_SECRET& out_sym_seed)> RewrapResponse; static TPM_RC SerializeCommand_Rewrap( const TPMI_DH_OBJECT& old_parent, const std::string& old_parent_name, const TPMI_DH_OBJECT& new_parent, const std::string& new_parent_name, const TPM2B_PRIVATE& in_duplicate, const TPM2B_NAME& name, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Rewrap( const std::string& response, TPM2B_PRIVATE* out_duplicate, TPM2B_ENCRYPTED_SECRET* out_sym_seed, AuthorizationDelegate* authorization_delegate); virtual void Rewrap(const TPMI_DH_OBJECT& old_parent, const std::string& old_parent_name, const TPMI_DH_OBJECT& new_parent, const std::string& new_parent_name, const TPM2B_PRIVATE& in_duplicate, const TPM2B_NAME& name, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, AuthorizationDelegate* authorization_delegate, const RewrapResponse& callback); virtual TPM_RC RewrapSync(const TPMI_DH_OBJECT& old_parent, const std::string& old_parent_name, const TPMI_DH_OBJECT& new_parent, const std::string& new_parent_name, const TPM2B_PRIVATE& in_duplicate, const TPM2B_NAME& name, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, TPM2B_PRIVATE* out_duplicate, TPM2B_ENCRYPTED_SECRET* out_sym_seed, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PRIVATE& out_private)> ImportResponse; static TPM_RC SerializeCommand_Import( const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_DATA& encryption_key, const TPM2B_PUBLIC& object_public, const TPM2B_PRIVATE& duplicate, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, const TPMT_SYM_DEF_OBJECT& symmetric_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Import( const std::string& response, TPM2B_PRIVATE* out_private, AuthorizationDelegate* authorization_delegate); virtual void Import(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_DATA& encryption_key, const TPM2B_PUBLIC& object_public, const TPM2B_PRIVATE& duplicate, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, const TPMT_SYM_DEF_OBJECT& symmetric_alg, AuthorizationDelegate* authorization_delegate, const ImportResponse& callback); virtual TPM_RC ImportSync(const TPMI_DH_OBJECT& parent_handle, const std::string& parent_handle_name, const TPM2B_DATA& encryption_key, const TPM2B_PUBLIC& object_public, const TPM2B_PRIVATE& duplicate, const TPM2B_ENCRYPTED_SECRET& in_sym_seed, const TPMT_SYM_DEF_OBJECT& symmetric_alg, TPM2B_PRIVATE* out_private, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PUBLIC_KEY_RSA& out_data)> RSA_EncryptResponse; static TPM_RC SerializeCommand_RSA_Encrypt( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& message, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_RSA_Encrypt( const std::string& response, TPM2B_PUBLIC_KEY_RSA* out_data, AuthorizationDelegate* authorization_delegate); virtual void RSA_Encrypt(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& message, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, AuthorizationDelegate* authorization_delegate, const RSA_EncryptResponse& callback); virtual TPM_RC RSA_EncryptSync(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& message, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, TPM2B_PUBLIC_KEY_RSA* out_data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_PUBLIC_KEY_RSA& message)> RSA_DecryptResponse; static TPM_RC SerializeCommand_RSA_Decrypt( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& cipher_text, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_RSA_Decrypt( const std::string& response, TPM2B_PUBLIC_KEY_RSA* message, AuthorizationDelegate* authorization_delegate); virtual void RSA_Decrypt(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& cipher_text, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, AuthorizationDelegate* authorization_delegate, const RSA_DecryptResponse& callback); virtual TPM_RC RSA_DecryptSync(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_PUBLIC_KEY_RSA& cipher_text, const TPMT_RSA_DECRYPT& in_scheme, const TPM2B_DATA& label, TPM2B_PUBLIC_KEY_RSA* message, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ECC_POINT& z_point, const TPM2B_ECC_POINT& pub_point)> ECDH_KeyGenResponse; static TPM_RC SerializeCommand_ECDH_KeyGen( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ECDH_KeyGen( const std::string& response, TPM2B_ECC_POINT* z_point, TPM2B_ECC_POINT* pub_point, AuthorizationDelegate* authorization_delegate); virtual void ECDH_KeyGen(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, AuthorizationDelegate* authorization_delegate, const ECDH_KeyGenResponse& callback); virtual TPM_RC ECDH_KeyGenSync(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, TPM2B_ECC_POINT* z_point, TPM2B_ECC_POINT* pub_point, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ECC_POINT& out_point)> ECDH_ZGenResponse; static TPM_RC SerializeCommand_ECDH_ZGen( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ECC_POINT& in_point, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ECDH_ZGen( const std::string& response, TPM2B_ECC_POINT* out_point, AuthorizationDelegate* authorization_delegate); virtual void ECDH_ZGen(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ECC_POINT& in_point, AuthorizationDelegate* authorization_delegate, const ECDH_ZGenResponse& callback); virtual TPM_RC ECDH_ZGenSync(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_ECC_POINT& in_point, TPM2B_ECC_POINT* out_point, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMS_ALGORITHM_DETAIL_ECC& parameters)> ECC_ParametersResponse; static TPM_RC SerializeCommand_ECC_Parameters( const TPMI_ECC_CURVE& curve_id, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ECC_Parameters( const std::string& response, TPMS_ALGORITHM_DETAIL_ECC* parameters, AuthorizationDelegate* authorization_delegate); virtual void ECC_Parameters(const TPMI_ECC_CURVE& curve_id, AuthorizationDelegate* authorization_delegate, const ECC_ParametersResponse& callback); virtual TPM_RC ECC_ParametersSync( const TPMI_ECC_CURVE& curve_id, TPMS_ALGORITHM_DETAIL_ECC* parameters, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ECC_POINT& out_z1, const TPM2B_ECC_POINT& out_z2)> ZGen_2PhaseResponse; static TPM_RC SerializeCommand_ZGen_2Phase( const TPMI_DH_OBJECT& key_a, const std::string& key_a_name, const TPM2B_ECC_POINT& in_qs_b, const TPM2B_ECC_POINT& in_qe_b, const TPMI_ECC_KEY_EXCHANGE& in_scheme, const UINT16& counter, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ZGen_2Phase( const std::string& response, TPM2B_ECC_POINT* out_z1, TPM2B_ECC_POINT* out_z2, AuthorizationDelegate* authorization_delegate); virtual void ZGen_2Phase(const TPMI_DH_OBJECT& key_a, const std::string& key_a_name, const TPM2B_ECC_POINT& in_qs_b, const TPM2B_ECC_POINT& in_qe_b, const TPMI_ECC_KEY_EXCHANGE& in_scheme, const UINT16& counter, AuthorizationDelegate* authorization_delegate, const ZGen_2PhaseResponse& callback); virtual TPM_RC ZGen_2PhaseSync(const TPMI_DH_OBJECT& key_a, const std::string& key_a_name, const TPM2B_ECC_POINT& in_qs_b, const TPM2B_ECC_POINT& in_qe_b, const TPMI_ECC_KEY_EXCHANGE& in_scheme, const UINT16& counter, TPM2B_ECC_POINT* out_z1, TPM2B_ECC_POINT* out_z2, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_MAX_BUFFER& out_data, const TPM2B_IV& iv_out)> EncryptDecryptResponse; static TPM_RC SerializeCommand_EncryptDecrypt( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPMI_YES_NO& decrypt, const TPMI_ALG_SYM_MODE& mode, const TPM2B_IV& iv_in, const TPM2B_MAX_BUFFER& in_data, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_EncryptDecrypt( const std::string& response, TPM2B_MAX_BUFFER* out_data, TPM2B_IV* iv_out, AuthorizationDelegate* authorization_delegate); virtual void EncryptDecrypt(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPMI_YES_NO& decrypt, const TPMI_ALG_SYM_MODE& mode, const TPM2B_IV& iv_in, const TPM2B_MAX_BUFFER& in_data, AuthorizationDelegate* authorization_delegate, const EncryptDecryptResponse& callback); virtual TPM_RC EncryptDecryptSync( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPMI_YES_NO& decrypt, const TPMI_ALG_SYM_MODE& mode, const TPM2B_IV& iv_in, const TPM2B_MAX_BUFFER& in_data, TPM2B_MAX_BUFFER* out_data, TPM2B_IV* iv_out, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& out_hash, const TPMT_TK_HASHCHECK& validation)> HashResponse; static TPM_RC SerializeCommand_Hash( const TPM2B_MAX_BUFFER& data, const TPMI_ALG_HASH& hash_alg, const TPMI_RH_HIERARCHY& hierarchy, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Hash( const std::string& response, TPM2B_DIGEST* out_hash, TPMT_TK_HASHCHECK* validation, AuthorizationDelegate* authorization_delegate); virtual void Hash(const TPM2B_MAX_BUFFER& data, const TPMI_ALG_HASH& hash_alg, const TPMI_RH_HIERARCHY& hierarchy, AuthorizationDelegate* authorization_delegate, const HashResponse& callback); virtual TPM_RC HashSync(const TPM2B_MAX_BUFFER& data, const TPMI_ALG_HASH& hash_alg, const TPMI_RH_HIERARCHY& hierarchy, TPM2B_DIGEST* out_hash, TPMT_TK_HASHCHECK* validation, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& out_hmac)> HMACResponse; static TPM_RC SerializeCommand_HMAC( const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_ALG_HASH& hash_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_HMAC( const std::string& response, TPM2B_DIGEST* out_hmac, AuthorizationDelegate* authorization_delegate); virtual void HMAC(const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_ALG_HASH& hash_alg, AuthorizationDelegate* authorization_delegate, const HMACResponse& callback); virtual TPM_RC HMACSync(const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_ALG_HASH& hash_alg, TPM2B_DIGEST* out_hmac, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& random_bytes)> GetRandomResponse; static TPM_RC SerializeCommand_GetRandom( const UINT16& bytes_requested, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetRandom( const std::string& response, TPM2B_DIGEST* random_bytes, AuthorizationDelegate* authorization_delegate); virtual void GetRandom(const UINT16& bytes_requested, AuthorizationDelegate* authorization_delegate, const GetRandomResponse& callback); virtual TPM_RC GetRandomSync(const UINT16& bytes_requested, TPM2B_DIGEST* random_bytes, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> StirRandomResponse; static TPM_RC SerializeCommand_StirRandom( const TPM2B_SENSITIVE_DATA& in_data, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_StirRandom( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void StirRandom(const TPM2B_SENSITIVE_DATA& in_data, AuthorizationDelegate* authorization_delegate, const StirRandomResponse& callback); virtual TPM_RC StirRandomSync(const TPM2B_SENSITIVE_DATA& in_data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_DH_OBJECT& sequence_handle)> HMAC_StartResponse; static TPM_RC SerializeCommand_HMAC_Start( const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_HMAC_Start( const std::string& response, TPMI_DH_OBJECT* sequence_handle, AuthorizationDelegate* authorization_delegate); virtual void HMAC_Start(const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, AuthorizationDelegate* authorization_delegate, const HMAC_StartResponse& callback); virtual TPM_RC HMAC_StartSync(const TPMI_DH_OBJECT& handle, const std::string& handle_name, const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, TPMI_DH_OBJECT* sequence_handle, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_DH_OBJECT& sequence_handle)> HashSequenceStartResponse; static TPM_RC SerializeCommand_HashSequenceStart( const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_HashSequenceStart( const std::string& response, TPMI_DH_OBJECT* sequence_handle, AuthorizationDelegate* authorization_delegate); virtual void HashSequenceStart(const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, AuthorizationDelegate* authorization_delegate, const HashSequenceStartResponse& callback); virtual TPM_RC HashSequenceStartSync( const TPM2B_AUTH& auth, const TPMI_ALG_HASH& hash_alg, TPMI_DH_OBJECT* sequence_handle, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> SequenceUpdateResponse; static TPM_RC SerializeCommand_SequenceUpdate( const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SequenceUpdate( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void SequenceUpdate(const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, AuthorizationDelegate* authorization_delegate, const SequenceUpdateResponse& callback); virtual TPM_RC SequenceUpdateSync( const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& result, const TPMT_TK_HASHCHECK& validation)> SequenceCompleteResponse; static TPM_RC SerializeCommand_SequenceComplete( const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_RH_HIERARCHY& hierarchy, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SequenceComplete( const std::string& response, TPM2B_DIGEST* result, TPMT_TK_HASHCHECK* validation, AuthorizationDelegate* authorization_delegate); virtual void SequenceComplete(const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_RH_HIERARCHY& hierarchy, AuthorizationDelegate* authorization_delegate, const SequenceCompleteResponse& callback); virtual TPM_RC SequenceCompleteSync( const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, const TPMI_RH_HIERARCHY& hierarchy, TPM2B_DIGEST* result, TPMT_TK_HASHCHECK* validation, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPML_DIGEST_VALUES& results)> EventSequenceCompleteResponse; static TPM_RC SerializeCommand_EventSequenceComplete( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_EventSequenceComplete( const std::string& response, TPML_DIGEST_VALUES* results, AuthorizationDelegate* authorization_delegate); virtual void EventSequenceComplete( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, AuthorizationDelegate* authorization_delegate, const EventSequenceCompleteResponse& callback); virtual TPM_RC EventSequenceCompleteSync( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPMI_DH_OBJECT& sequence_handle, const std::string& sequence_handle_name, const TPM2B_MAX_BUFFER& buffer, TPML_DIGEST_VALUES* results, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& certify_info, const TPMT_SIGNATURE& signature)> CertifyResponse; static TPM_RC SerializeCommand_Certify( const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Certify( const std::string& response, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void Certify(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, AuthorizationDelegate* authorization_delegate, const CertifyResponse& callback); virtual TPM_RC CertifySync(const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& certify_info, const TPMT_SIGNATURE& signature)> CertifyCreationResponse; static TPM_RC SerializeCommand_CertifyCreation( const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPM2B_DATA& qualifying_data, const TPM2B_DIGEST& creation_hash, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_CREATION& creation_ticket, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_CertifyCreation( const std::string& response, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void CertifyCreation(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPM2B_DATA& qualifying_data, const TPM2B_DIGEST& creation_hash, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_CREATION& creation_ticket, AuthorizationDelegate* authorization_delegate, const CertifyCreationResponse& callback); virtual TPM_RC CertifyCreationSync( const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPM2B_DATA& qualifying_data, const TPM2B_DIGEST& creation_hash, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_CREATION& creation_ticket, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& quoted, const TPMT_SIGNATURE& signature)> QuoteResponse; static TPM_RC SerializeCommand_Quote( const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const TPML_PCR_SELECTION& pcrselect, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Quote( const std::string& response, TPM2B_ATTEST* quoted, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void Quote(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const TPML_PCR_SELECTION& pcrselect, AuthorizationDelegate* authorization_delegate, const QuoteResponse& callback); virtual TPM_RC QuoteSync(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const TPML_PCR_SELECTION& pcrselect, TPM2B_ATTEST* quoted, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& audit_info, const TPMT_SIGNATURE& signature)> GetSessionAuditDigestResponse; static TPM_RC SerializeCommand_GetSessionAuditDigest( const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_SH_HMAC& session_handle, const std::string& session_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetSessionAuditDigest( const std::string& response, TPM2B_ATTEST* audit_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void GetSessionAuditDigest( const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_SH_HMAC& session_handle, const std::string& session_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, AuthorizationDelegate* authorization_delegate, const GetSessionAuditDigestResponse& callback); virtual TPM_RC GetSessionAuditDigestSync( const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_SH_HMAC& session_handle, const std::string& session_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, TPM2B_ATTEST* audit_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& audit_info, const TPMT_SIGNATURE& signature)> GetCommandAuditDigestResponse; static TPM_RC SerializeCommand_GetCommandAuditDigest( const TPMI_RH_ENDORSEMENT& privacy_handle, const std::string& privacy_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetCommandAuditDigest( const std::string& response, TPM2B_ATTEST* audit_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void GetCommandAuditDigest( const TPMI_RH_ENDORSEMENT& privacy_handle, const std::string& privacy_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, AuthorizationDelegate* authorization_delegate, const GetCommandAuditDigestResponse& callback); virtual TPM_RC GetCommandAuditDigestSync( const TPMI_RH_ENDORSEMENT& privacy_handle, const std::string& privacy_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, TPM2B_ATTEST* audit_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& time_info, const TPMT_SIGNATURE& signature)> GetTimeResponse; static TPM_RC SerializeCommand_GetTime( const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetTime( const std::string& response, TPM2B_ATTEST* time_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void GetTime(const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, AuthorizationDelegate* authorization_delegate, const GetTimeResponse& callback); virtual TPM_RC GetTimeSync(const TPMI_RH_ENDORSEMENT& privacy_admin_handle, const std::string& privacy_admin_handle_name, const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, TPM2B_ATTEST* time_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const UINT32& param_size_out, const TPM2B_ECC_POINT& k, const TPM2B_ECC_POINT& l, const TPM2B_ECC_POINT& e, const UINT16& counter)> CommitResponse; static TPM_RC SerializeCommand_Commit( const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const UINT32& param_size, const TPM2B_ECC_POINT& p1, const TPM2B_SENSITIVE_DATA& s2, const TPM2B_ECC_PARAMETER& y2, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Commit( const std::string& response, UINT32* param_size_out, TPM2B_ECC_POINT* k, TPM2B_ECC_POINT* l, TPM2B_ECC_POINT* e, UINT16* counter, AuthorizationDelegate* authorization_delegate); virtual void Commit(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const UINT32& param_size, const TPM2B_ECC_POINT& p1, const TPM2B_SENSITIVE_DATA& s2, const TPM2B_ECC_PARAMETER& y2, AuthorizationDelegate* authorization_delegate, const CommitResponse& callback); virtual TPM_RC CommitSync(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const UINT32& param_size, const TPM2B_ECC_POINT& p1, const TPM2B_SENSITIVE_DATA& s2, const TPM2B_ECC_PARAMETER& y2, UINT32* param_size_out, TPM2B_ECC_POINT* k, TPM2B_ECC_POINT* l, TPM2B_ECC_POINT* e, UINT16* counter, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const UINT32& param_size_out, const TPM2B_ECC_POINT& q, const UINT16& counter)> EC_EphemeralResponse; static TPM_RC SerializeCommand_EC_Ephemeral( const UINT32& param_size, const TPMI_ECC_CURVE& curve_id, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_EC_Ephemeral( const std::string& response, UINT32* param_size_out, TPM2B_ECC_POINT* q, UINT16* counter, AuthorizationDelegate* authorization_delegate); virtual void EC_Ephemeral(const UINT32& param_size, const TPMI_ECC_CURVE& curve_id, AuthorizationDelegate* authorization_delegate, const EC_EphemeralResponse& callback); virtual TPM_RC EC_EphemeralSync( const UINT32& param_size, const TPMI_ECC_CURVE& curve_id, UINT32* param_size_out, TPM2B_ECC_POINT* q, UINT16* counter, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMT_TK_VERIFIED& validation)> VerifySignatureResponse; static TPM_RC SerializeCommand_VerifySignature( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIGNATURE& signature, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_VerifySignature( const std::string& response, TPMT_TK_VERIFIED* validation, AuthorizationDelegate* authorization_delegate); virtual void VerifySignature(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIGNATURE& signature, AuthorizationDelegate* authorization_delegate, const VerifySignatureResponse& callback); virtual TPM_RC VerifySignatureSync( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIGNATURE& signature, TPMT_TK_VERIFIED* validation, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMT_SIGNATURE& signature)> SignResponse; static TPM_RC SerializeCommand_Sign( const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_HASHCHECK& validation, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Sign( const std::string& response, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void Sign(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_HASHCHECK& validation, AuthorizationDelegate* authorization_delegate, const SignResponse& callback); virtual TPM_RC SignSync(const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& digest, const TPMT_SIG_SCHEME& in_scheme, const TPMT_TK_HASHCHECK& validation, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> SetCommandCodeAuditStatusResponse; static TPM_RC SerializeCommand_SetCommandCodeAuditStatus( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_ALG_HASH& audit_alg, const TPML_CC& set_list, const TPML_CC& clear_list, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SetCommandCodeAuditStatus( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void SetCommandCodeAuditStatus( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_ALG_HASH& audit_alg, const TPML_CC& set_list, const TPML_CC& clear_list, AuthorizationDelegate* authorization_delegate, const SetCommandCodeAuditStatusResponse& callback); virtual TPM_RC SetCommandCodeAuditStatusSync( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_ALG_HASH& audit_alg, const TPML_CC& set_list, const TPML_CC& clear_list, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PCR_ExtendResponse; static TPM_RC SerializeCommand_PCR_Extend( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPML_DIGEST_VALUES& digests, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_Extend( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PCR_Extend(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPML_DIGEST_VALUES& digests, AuthorizationDelegate* authorization_delegate, const PCR_ExtendResponse& callback); virtual TPM_RC PCR_ExtendSync(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPML_DIGEST_VALUES& digests, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPML_DIGEST_VALUES& digests)> PCR_EventResponse; static TPM_RC SerializeCommand_PCR_Event( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_EVENT& event_data, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_Event( const std::string& response, TPML_DIGEST_VALUES* digests, AuthorizationDelegate* authorization_delegate); virtual void PCR_Event(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_EVENT& event_data, AuthorizationDelegate* authorization_delegate, const PCR_EventResponse& callback); virtual TPM_RC PCR_EventSync(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_EVENT& event_data, TPML_DIGEST_VALUES* digests, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const UINT32& pcr_update_counter, const TPML_PCR_SELECTION& pcr_selection_out, const TPML_DIGEST& pcr_values)> PCR_ReadResponse; static TPM_RC SerializeCommand_PCR_Read( const TPML_PCR_SELECTION& pcr_selection_in, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_Read( const std::string& response, UINT32* pcr_update_counter, TPML_PCR_SELECTION* pcr_selection_out, TPML_DIGEST* pcr_values, AuthorizationDelegate* authorization_delegate); virtual void PCR_Read(const TPML_PCR_SELECTION& pcr_selection_in, AuthorizationDelegate* authorization_delegate, const PCR_ReadResponse& callback); virtual TPM_RC PCR_ReadSync(const TPML_PCR_SELECTION& pcr_selection_in, UINT32* pcr_update_counter, TPML_PCR_SELECTION* pcr_selection_out, TPML_DIGEST* pcr_values, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_YES_NO& allocation_success, const UINT32& max_pcr, const UINT32& size_needed, const UINT32& size_available)> PCR_AllocateResponse; static TPM_RC SerializeCommand_PCR_Allocate( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPML_PCR_SELECTION& pcr_allocation, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_Allocate( const std::string& response, TPMI_YES_NO* allocation_success, UINT32* max_pcr, UINT32* size_needed, UINT32* size_available, AuthorizationDelegate* authorization_delegate); virtual void PCR_Allocate(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPML_PCR_SELECTION& pcr_allocation, AuthorizationDelegate* authorization_delegate, const PCR_AllocateResponse& callback); virtual TPM_RC PCR_AllocateSync( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPML_PCR_SELECTION& pcr_allocation, TPMI_YES_NO* allocation_success, UINT32* max_pcr, UINT32* size_needed, UINT32* size_available, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PCR_SetAuthPolicyResponse; static TPM_RC SerializeCommand_PCR_SetAuthPolicy( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPMI_DH_PCR& pcr_num, const std::string& pcr_num_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& policy_digest, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_SetAuthPolicy( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PCR_SetAuthPolicy(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPMI_DH_PCR& pcr_num, const std::string& pcr_num_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& policy_digest, AuthorizationDelegate* authorization_delegate, const PCR_SetAuthPolicyResponse& callback); virtual TPM_RC PCR_SetAuthPolicySync( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const TPMI_DH_PCR& pcr_num, const std::string& pcr_num_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& policy_digest, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PCR_SetAuthValueResponse; static TPM_RC SerializeCommand_PCR_SetAuthValue( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_DIGEST& auth, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_SetAuthValue( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PCR_SetAuthValue(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_DIGEST& auth, AuthorizationDelegate* authorization_delegate, const PCR_SetAuthValueResponse& callback); virtual TPM_RC PCR_SetAuthValueSync( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, const TPM2B_DIGEST& auth, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PCR_ResetResponse; static TPM_RC SerializeCommand_PCR_Reset( const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PCR_Reset( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PCR_Reset(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, AuthorizationDelegate* authorization_delegate, const PCR_ResetResponse& callback); virtual TPM_RC PCR_ResetSync(const TPMI_DH_PCR& pcr_handle, const std::string& pcr_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_TIMEOUT& timeout, const TPMT_TK_AUTH& policy_ticket)> PolicySignedResponse; static TPM_RC SerializeCommand_PolicySigned( const TPMI_DH_OBJECT& auth_object, const std::string& auth_object_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, const TPMT_SIGNATURE& auth, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicySigned( const std::string& response, TPM2B_TIMEOUT* timeout, TPMT_TK_AUTH* policy_ticket, AuthorizationDelegate* authorization_delegate); virtual void PolicySigned(const TPMI_DH_OBJECT& auth_object, const std::string& auth_object_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, const TPMT_SIGNATURE& auth, AuthorizationDelegate* authorization_delegate, const PolicySignedResponse& callback); virtual TPM_RC PolicySignedSync( const TPMI_DH_OBJECT& auth_object, const std::string& auth_object_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, const TPMT_SIGNATURE& auth, TPM2B_TIMEOUT* timeout, TPMT_TK_AUTH* policy_ticket, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_TIMEOUT& timeout, const TPMT_TK_AUTH& policy_ticket)> PolicySecretResponse; static TPM_RC SerializeCommand_PolicySecret( const TPMI_DH_ENTITY& auth_handle, const std::string& auth_handle_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicySecret( const std::string& response, TPM2B_TIMEOUT* timeout, TPMT_TK_AUTH* policy_ticket, AuthorizationDelegate* authorization_delegate); virtual void PolicySecret(const TPMI_DH_ENTITY& auth_handle, const std::string& auth_handle_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, AuthorizationDelegate* authorization_delegate, const PolicySecretResponse& callback); virtual TPM_RC PolicySecretSync( const TPMI_DH_ENTITY& auth_handle, const std::string& auth_handle_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NONCE& nonce_tpm, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const INT32& expiration, TPM2B_TIMEOUT* timeout, TPMT_TK_AUTH* policy_ticket, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyTicketResponse; static TPM_RC SerializeCommand_PolicyTicket( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_TIMEOUT& timeout, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& auth_name, const TPMT_TK_AUTH& ticket, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyTicket( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyTicket(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_TIMEOUT& timeout, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& auth_name, const TPMT_TK_AUTH& ticket, AuthorizationDelegate* authorization_delegate, const PolicyTicketResponse& callback); virtual TPM_RC PolicyTicketSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_TIMEOUT& timeout, const TPM2B_DIGEST& cp_hash_a, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& auth_name, const TPMT_TK_AUTH& ticket, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyORResponse; static TPM_RC SerializeCommand_PolicyOR( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPML_DIGEST& p_hash_list, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyOR( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyOR(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPML_DIGEST& p_hash_list, AuthorizationDelegate* authorization_delegate, const PolicyORResponse& callback); virtual TPM_RC PolicyORSync(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPML_DIGEST& p_hash_list, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyPCRResponse; static TPM_RC SerializeCommand_PolicyPCR( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& pcr_digest, const TPML_PCR_SELECTION& pcrs, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyPCR( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyPCR(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& pcr_digest, const TPML_PCR_SELECTION& pcrs, AuthorizationDelegate* authorization_delegate, const PolicyPCRResponse& callback); virtual TPM_RC PolicyPCRSync(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& pcr_digest, const TPML_PCR_SELECTION& pcrs, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyLocalityResponse; static TPM_RC SerializeCommand_PolicyLocality( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMA_LOCALITY& locality, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyLocality( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyLocality(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMA_LOCALITY& locality, AuthorizationDelegate* authorization_delegate, const PolicyLocalityResponse& callback); virtual TPM_RC PolicyLocalitySync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMA_LOCALITY& locality, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyNVResponse; static TPM_RC SerializeCommand_PolicyNV( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyNV( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyNV(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, AuthorizationDelegate* authorization_delegate, const PolicyNVResponse& callback); virtual TPM_RC PolicyNVSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyCounterTimerResponse; static TPM_RC SerializeCommand_PolicyCounterTimer( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyCounterTimer( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyCounterTimer(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, AuthorizationDelegate* authorization_delegate, const PolicyCounterTimerResponse& callback); virtual TPM_RC PolicyCounterTimerSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_OPERAND& operand_b, const UINT16& offset, const TPM_EO& operation, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyCommandCodeResponse; static TPM_RC SerializeCommand_PolicyCommandCode( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM_CC& code, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyCommandCode( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyCommandCode(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM_CC& code, AuthorizationDelegate* authorization_delegate, const PolicyCommandCodeResponse& callback); virtual TPM_RC PolicyCommandCodeSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM_CC& code, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyPhysicalPresenceResponse; static TPM_RC SerializeCommand_PolicyPhysicalPresence( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyPhysicalPresence( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyPhysicalPresence( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate, const PolicyPhysicalPresenceResponse& callback); virtual TPM_RC PolicyPhysicalPresenceSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyCpHashResponse; static TPM_RC SerializeCommand_PolicyCpHash( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& cp_hash_a, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyCpHash( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyCpHash(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& cp_hash_a, AuthorizationDelegate* authorization_delegate, const PolicyCpHashResponse& callback); virtual TPM_RC PolicyCpHashSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& cp_hash_a, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyNameHashResponse; static TPM_RC SerializeCommand_PolicyNameHash( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& name_hash, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyNameHash( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyNameHash(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& name_hash, AuthorizationDelegate* authorization_delegate, const PolicyNameHashResponse& callback); virtual TPM_RC PolicyNameHashSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& name_hash, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyDuplicationSelectResponse; static TPM_RC SerializeCommand_PolicyDuplicationSelect( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NAME& object_name, const TPM2B_NAME& new_parent_name, const TPMI_YES_NO& include_object, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyDuplicationSelect( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyDuplicationSelect( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NAME& object_name, const TPM2B_NAME& new_parent_name, const TPMI_YES_NO& include_object, AuthorizationDelegate* authorization_delegate, const PolicyDuplicationSelectResponse& callback); virtual TPM_RC PolicyDuplicationSelectSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_NAME& object_name, const TPM2B_NAME& new_parent_name, const TPMI_YES_NO& include_object, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyAuthorizeResponse; static TPM_RC SerializeCommand_PolicyAuthorize( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& approved_policy, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& key_sign, const TPMT_TK_VERIFIED& check_ticket, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyAuthorize( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyAuthorize(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& approved_policy, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& key_sign, const TPMT_TK_VERIFIED& check_ticket, AuthorizationDelegate* authorization_delegate, const PolicyAuthorizeResponse& callback); virtual TPM_RC PolicyAuthorizeSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPM2B_DIGEST& approved_policy, const TPM2B_NONCE& policy_ref, const TPM2B_NAME& key_sign, const TPMT_TK_VERIFIED& check_ticket, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyAuthValueResponse; static TPM_RC SerializeCommand_PolicyAuthValue( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyAuthValue( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyAuthValue(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate, const PolicyAuthValueResponse& callback); virtual TPM_RC PolicyAuthValueSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyPasswordResponse; static TPM_RC SerializeCommand_PolicyPassword( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyPassword( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyPassword(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate, const PolicyPasswordResponse& callback); virtual TPM_RC PolicyPasswordSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_DIGEST& policy_digest)> PolicyGetDigestResponse; static TPM_RC SerializeCommand_PolicyGetDigest( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyGetDigest( const std::string& response, TPM2B_DIGEST* policy_digest, AuthorizationDelegate* authorization_delegate); virtual void PolicyGetDigest(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, AuthorizationDelegate* authorization_delegate, const PolicyGetDigestResponse& callback); virtual TPM_RC PolicyGetDigestSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, TPM2B_DIGEST* policy_digest, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PolicyNvWrittenResponse; static TPM_RC SerializeCommand_PolicyNvWritten( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMI_YES_NO& written_set, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PolicyNvWritten( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PolicyNvWritten(const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMI_YES_NO& written_set, AuthorizationDelegate* authorization_delegate, const PolicyNvWrittenResponse& callback); virtual TPM_RC PolicyNvWrittenSync( const TPMI_SH_POLICY& policy_session, const std::string& policy_session_name, const TPMI_YES_NO& written_set, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM_HANDLE& object_handle, const TPM2B_PUBLIC& out_public, const TPM2B_CREATION_DATA& creation_data, const TPM2B_DIGEST& creation_hash, const TPMT_TK_CREATION& creation_ticket, const TPM2B_NAME& name)> CreatePrimaryResponse; static TPM_RC SerializeCommand_CreatePrimary( const TPMI_RH_HIERARCHY& primary_handle, const std::string& primary_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_CreatePrimary( const std::string& response, TPM_HANDLE* object_handle, TPM2B_PUBLIC* out_public, TPM2B_CREATION_DATA* creation_data, TPM2B_DIGEST* creation_hash, TPMT_TK_CREATION* creation_ticket, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); virtual void CreatePrimary(const TPMI_RH_HIERARCHY& primary_handle, const std::string& primary_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, AuthorizationDelegate* authorization_delegate, const CreatePrimaryResponse& callback); virtual TPM_RC CreatePrimarySync( const TPMI_RH_HIERARCHY& primary_handle, const std::string& primary_handle_name, const TPM2B_SENSITIVE_CREATE& in_sensitive, const TPM2B_PUBLIC& in_public, const TPM2B_DATA& outside_info, const TPML_PCR_SELECTION& creation_pcr, TPM_HANDLE* object_handle, TPM2B_PUBLIC* out_public, TPM2B_CREATION_DATA* creation_data, TPM2B_DIGEST* creation_hash, TPMT_TK_CREATION* creation_ticket, TPM2B_NAME* name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> HierarchyControlResponse; static TPM_RC SerializeCommand_HierarchyControl( const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPMI_RH_ENABLES& enable, const TPMI_YES_NO& state, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_HierarchyControl( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void HierarchyControl(const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPMI_RH_ENABLES& enable, const TPMI_YES_NO& state, AuthorizationDelegate* authorization_delegate, const HierarchyControlResponse& callback); virtual TPM_RC HierarchyControlSync( const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPMI_RH_ENABLES& enable, const TPMI_YES_NO& state, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> SetPrimaryPolicyResponse; static TPM_RC SerializeCommand_SetPrimaryPolicy( const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& hash_alg, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SetPrimaryPolicy( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void SetPrimaryPolicy(const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& hash_alg, AuthorizationDelegate* authorization_delegate, const SetPrimaryPolicyResponse& callback); virtual TPM_RC SetPrimaryPolicySync( const TPMI_RH_HIERARCHY& auth_handle, const std::string& auth_handle_name, const TPM2B_DIGEST& auth_policy, const TPMI_ALG_HASH& hash_alg, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ChangePPSResponse; static TPM_RC SerializeCommand_ChangePPS( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ChangePPS( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void ChangePPS(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate, const ChangePPSResponse& callback); virtual TPM_RC ChangePPSSync(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ChangeEPSResponse; static TPM_RC SerializeCommand_ChangeEPS( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ChangeEPS( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void ChangeEPS(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate, const ChangeEPSResponse& callback); virtual TPM_RC ChangeEPSSync(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ClearResponse; static TPM_RC SerializeCommand_Clear( const TPMI_RH_CLEAR& auth_handle, const std::string& auth_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_Clear( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void Clear(const TPMI_RH_CLEAR& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate, const ClearResponse& callback); virtual TPM_RC ClearSync(const TPMI_RH_CLEAR& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ClearControlResponse; static TPM_RC SerializeCommand_ClearControl( const TPMI_RH_CLEAR& auth, const std::string& auth_name, const TPMI_YES_NO& disable, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ClearControl( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void ClearControl(const TPMI_RH_CLEAR& auth, const std::string& auth_name, const TPMI_YES_NO& disable, AuthorizationDelegate* authorization_delegate, const ClearControlResponse& callback); virtual TPM_RC ClearControlSync( const TPMI_RH_CLEAR& auth, const std::string& auth_name, const TPMI_YES_NO& disable, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> HierarchyChangeAuthResponse; static TPM_RC SerializeCommand_HierarchyChangeAuth( const TPMI_RH_HIERARCHY_AUTH& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& new_auth, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_HierarchyChangeAuth( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void HierarchyChangeAuth( const TPMI_RH_HIERARCHY_AUTH& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& new_auth, AuthorizationDelegate* authorization_delegate, const HierarchyChangeAuthResponse& callback); virtual TPM_RC HierarchyChangeAuthSync( const TPMI_RH_HIERARCHY_AUTH& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& new_auth, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> DictionaryAttackLockResetResponse; static TPM_RC SerializeCommand_DictionaryAttackLockReset( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_DictionaryAttackLockReset( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void DictionaryAttackLockReset( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, AuthorizationDelegate* authorization_delegate, const DictionaryAttackLockResetResponse& callback); virtual TPM_RC DictionaryAttackLockResetSync( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> DictionaryAttackParametersResponse; static TPM_RC SerializeCommand_DictionaryAttackParameters( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, const UINT32& new_max_tries, const UINT32& new_recovery_time, const UINT32& lockout_recovery, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_DictionaryAttackParameters( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void DictionaryAttackParameters( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, const UINT32& new_max_tries, const UINT32& new_recovery_time, const UINT32& lockout_recovery, AuthorizationDelegate* authorization_delegate, const DictionaryAttackParametersResponse& callback); virtual TPM_RC DictionaryAttackParametersSync( const TPMI_RH_LOCKOUT& lock_handle, const std::string& lock_handle_name, const UINT32& new_max_tries, const UINT32& new_recovery_time, const UINT32& lockout_recovery, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> PP_CommandsResponse; static TPM_RC SerializeCommand_PP_Commands( const TPMI_RH_PLATFORM& auth, const std::string& auth_name, const TPML_CC& set_list, const TPML_CC& clear_list, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_PP_Commands( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void PP_Commands(const TPMI_RH_PLATFORM& auth, const std::string& auth_name, const TPML_CC& set_list, const TPML_CC& clear_list, AuthorizationDelegate* authorization_delegate, const PP_CommandsResponse& callback); virtual TPM_RC PP_CommandsSync(const TPMI_RH_PLATFORM& auth, const std::string& auth_name, const TPML_CC& set_list, const TPML_CC& clear_list, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> SetAlgorithmSetResponse; static TPM_RC SerializeCommand_SetAlgorithmSet( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const UINT32& algorithm_set, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_SetAlgorithmSet( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void SetAlgorithmSet(const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const UINT32& algorithm_set, AuthorizationDelegate* authorization_delegate, const SetAlgorithmSetResponse& callback); virtual TPM_RC SetAlgorithmSetSync( const TPMI_RH_PLATFORM& auth_handle, const std::string& auth_handle_name, const UINT32& algorithm_set, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> FieldUpgradeStartResponse; static TPM_RC SerializeCommand_FieldUpgradeStart( const TPMI_RH_PLATFORM& authorization, const std::string& authorization_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& fu_digest, const TPMT_SIGNATURE& manifest_signature, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_FieldUpgradeStart( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void FieldUpgradeStart(const TPMI_RH_PLATFORM& authorization, const std::string& authorization_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& fu_digest, const TPMT_SIGNATURE& manifest_signature, AuthorizationDelegate* authorization_delegate, const FieldUpgradeStartResponse& callback); virtual TPM_RC FieldUpgradeStartSync( const TPMI_RH_PLATFORM& authorization, const std::string& authorization_name, const TPMI_DH_OBJECT& key_handle, const std::string& key_handle_name, const TPM2B_DIGEST& fu_digest, const TPMT_SIGNATURE& manifest_signature, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMT_HA& next_digest, const TPMT_HA& first_digest)> FieldUpgradeDataResponse; static TPM_RC SerializeCommand_FieldUpgradeData( const TPM2B_MAX_BUFFER& fu_data, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_FieldUpgradeData( const std::string& response, TPMT_HA* next_digest, TPMT_HA* first_digest, AuthorizationDelegate* authorization_delegate); virtual void FieldUpgradeData(const TPM2B_MAX_BUFFER& fu_data, AuthorizationDelegate* authorization_delegate, const FieldUpgradeDataResponse& callback); virtual TPM_RC FieldUpgradeDataSync( const TPM2B_MAX_BUFFER& fu_data, TPMT_HA* next_digest, TPMT_HA* first_digest, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_MAX_BUFFER& fu_data)> FirmwareReadResponse; static TPM_RC SerializeCommand_FirmwareRead( const UINT32& sequence_number, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_FirmwareRead( const std::string& response, TPM2B_MAX_BUFFER* fu_data, AuthorizationDelegate* authorization_delegate); virtual void FirmwareRead(const UINT32& sequence_number, AuthorizationDelegate* authorization_delegate, const FirmwareReadResponse& callback); virtual TPM_RC FirmwareReadSync( const UINT32& sequence_number, TPM2B_MAX_BUFFER* fu_data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMS_CONTEXT& context)> ContextSaveResponse; static TPM_RC SerializeCommand_ContextSave( const TPMI_DH_CONTEXT& save_handle, const std::string& save_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ContextSave( const std::string& response, TPMS_CONTEXT* context, AuthorizationDelegate* authorization_delegate); virtual void ContextSave(const TPMI_DH_CONTEXT& save_handle, const std::string& save_handle_name, AuthorizationDelegate* authorization_delegate, const ContextSaveResponse& callback); virtual TPM_RC ContextSaveSync(const TPMI_DH_CONTEXT& save_handle, const std::string& save_handle_name, TPMS_CONTEXT* context, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_DH_CONTEXT& loaded_handle)> ContextLoadResponse; static TPM_RC SerializeCommand_ContextLoad( const TPMS_CONTEXT& context, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ContextLoad( const std::string& response, TPMI_DH_CONTEXT* loaded_handle, AuthorizationDelegate* authorization_delegate); virtual void ContextLoad(const TPMS_CONTEXT& context, AuthorizationDelegate* authorization_delegate, const ContextLoadResponse& callback); virtual TPM_RC ContextLoadSync(const TPMS_CONTEXT& context, TPMI_DH_CONTEXT* loaded_handle, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> FlushContextResponse; static TPM_RC SerializeCommand_FlushContext( const TPMI_DH_CONTEXT& flush_handle, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_FlushContext( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void FlushContext(const TPMI_DH_CONTEXT& flush_handle, AuthorizationDelegate* authorization_delegate, const FlushContextResponse& callback); virtual TPM_RC FlushContextSync( const TPMI_DH_CONTEXT& flush_handle, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> EvictControlResponse; static TPM_RC SerializeCommand_EvictControl( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_PERSISTENT& persistent_handle, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_EvictControl( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void EvictControl(const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_PERSISTENT& persistent_handle, AuthorizationDelegate* authorization_delegate, const EvictControlResponse& callback); virtual TPM_RC EvictControlSync( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPMI_DH_OBJECT& object_handle, const std::string& object_handle_name, const TPMI_DH_PERSISTENT& persistent_handle, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMS_TIME_INFO& current_time)> ReadClockResponse; static TPM_RC SerializeCommand_ReadClock( std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ReadClock( const std::string& response, TPMS_TIME_INFO* current_time, AuthorizationDelegate* authorization_delegate); virtual void ReadClock(AuthorizationDelegate* authorization_delegate, const ReadClockResponse& callback); virtual TPM_RC ReadClockSync(TPMS_TIME_INFO* current_time, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ClockSetResponse; static TPM_RC SerializeCommand_ClockSet( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const UINT64& new_time, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ClockSet( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void ClockSet(const TPMI_RH_PROVISION& auth, const std::string& auth_name, const UINT64& new_time, AuthorizationDelegate* authorization_delegate, const ClockSetResponse& callback); virtual TPM_RC ClockSetSync(const TPMI_RH_PROVISION& auth, const std::string& auth_name, const UINT64& new_time, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> ClockRateAdjustResponse; static TPM_RC SerializeCommand_ClockRateAdjust( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPM_CLOCK_ADJUST& rate_adjust, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_ClockRateAdjust( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void ClockRateAdjust(const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPM_CLOCK_ADJUST& rate_adjust, AuthorizationDelegate* authorization_delegate, const ClockRateAdjustResponse& callback); virtual TPM_RC ClockRateAdjustSync( const TPMI_RH_PROVISION& auth, const std::string& auth_name, const TPM_CLOCK_ADJUST& rate_adjust, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPMI_YES_NO& more_data, const TPMS_CAPABILITY_DATA& capability_data)> GetCapabilityResponse; static TPM_RC SerializeCommand_GetCapability( const TPM_CAP& capability, const UINT32& property, const UINT32& property_count, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_GetCapability( const std::string& response, TPMI_YES_NO* more_data, TPMS_CAPABILITY_DATA* capability_data, AuthorizationDelegate* authorization_delegate); virtual void GetCapability(const TPM_CAP& capability, const UINT32& property, const UINT32& property_count, AuthorizationDelegate* authorization_delegate, const GetCapabilityResponse& callback); virtual TPM_RC GetCapabilitySync( const TPM_CAP& capability, const UINT32& property, const UINT32& property_count, TPMI_YES_NO* more_data, TPMS_CAPABILITY_DATA* capability_data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> TestParmsResponse; static TPM_RC SerializeCommand_TestParms( const TPMT_PUBLIC_PARMS& parameters, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_TestParms( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void TestParms(const TPMT_PUBLIC_PARMS& parameters, AuthorizationDelegate* authorization_delegate, const TestParmsResponse& callback); virtual TPM_RC TestParmsSync(const TPMT_PUBLIC_PARMS& parameters, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_DefineSpaceResponse; static TPM_RC SerializeCommand_NV_DefineSpace( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& auth, const TPM2B_NV_PUBLIC& public_info, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_DefineSpace( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_DefineSpace(const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& auth, const TPM2B_NV_PUBLIC& public_info, AuthorizationDelegate* authorization_delegate, const NV_DefineSpaceResponse& callback); virtual TPM_RC NV_DefineSpaceSync( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPM2B_AUTH& auth, const TPM2B_NV_PUBLIC& public_info, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_UndefineSpaceResponse; static TPM_RC SerializeCommand_NV_UndefineSpace( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_UndefineSpace( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_UndefineSpace(const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate, const NV_UndefineSpaceResponse& callback); virtual TPM_RC NV_UndefineSpaceSync( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_UndefineSpaceSpecialResponse; static TPM_RC SerializeCommand_NV_UndefineSpaceSpecial( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_RH_PLATFORM& platform, const std::string& platform_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_UndefineSpaceSpecial( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_UndefineSpaceSpecial( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_RH_PLATFORM& platform, const std::string& platform_name, AuthorizationDelegate* authorization_delegate, const NV_UndefineSpaceSpecialResponse& callback); virtual TPM_RC NV_UndefineSpaceSpecialSync( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPMI_RH_PLATFORM& platform, const std::string& platform_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_NV_PUBLIC& nv_public, const TPM2B_NAME& nv_name)> NV_ReadPublicResponse; static TPM_RC SerializeCommand_NV_ReadPublic( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_ReadPublic( const std::string& response, TPM2B_NV_PUBLIC* nv_public, TPM2B_NAME* nv_name, AuthorizationDelegate* authorization_delegate); virtual void NV_ReadPublic(const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate, const NV_ReadPublicResponse& callback); virtual TPM_RC NV_ReadPublicSync( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, TPM2B_NV_PUBLIC* nv_public, TPM2B_NAME* nv_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_WriteResponse; static TPM_RC SerializeCommand_NV_Write( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, const UINT16& offset, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_Write( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_Write(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, const UINT16& offset, AuthorizationDelegate* authorization_delegate, const NV_WriteResponse& callback); virtual TPM_RC NV_WriteSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, const UINT16& offset, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_IncrementResponse; static TPM_RC SerializeCommand_NV_Increment( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_Increment( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_Increment(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate, const NV_IncrementResponse& callback); virtual TPM_RC NV_IncrementSync( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_ExtendResponse; static TPM_RC SerializeCommand_NV_Extend( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_Extend( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_Extend(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, AuthorizationDelegate* authorization_delegate, const NV_ExtendResponse& callback); virtual TPM_RC NV_ExtendSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_MAX_NV_BUFFER& data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_SetBitsResponse; static TPM_RC SerializeCommand_NV_SetBits( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT64& bits, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_SetBits( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_SetBits(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT64& bits, AuthorizationDelegate* authorization_delegate, const NV_SetBitsResponse& callback); virtual TPM_RC NV_SetBitsSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT64& bits, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_WriteLockResponse; static TPM_RC SerializeCommand_NV_WriteLock( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_WriteLock( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_WriteLock(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate, const NV_WriteLockResponse& callback); virtual TPM_RC NV_WriteLockSync( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_GlobalWriteLockResponse; static TPM_RC SerializeCommand_NV_GlobalWriteLock( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_GlobalWriteLock( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_GlobalWriteLock(const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate, const NV_GlobalWriteLockResponse& callback); virtual TPM_RC NV_GlobalWriteLockSync( const TPMI_RH_PROVISION& auth_handle, const std::string& auth_handle_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_MAX_NV_BUFFER& data)> NV_ReadResponse; static TPM_RC SerializeCommand_NV_Read( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT16& size, const UINT16& offset, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_Read( const std::string& response, TPM2B_MAX_NV_BUFFER* data, AuthorizationDelegate* authorization_delegate); virtual void NV_Read(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT16& size, const UINT16& offset, AuthorizationDelegate* authorization_delegate, const NV_ReadResponse& callback); virtual TPM_RC NV_ReadSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const UINT16& size, const UINT16& offset, TPM2B_MAX_NV_BUFFER* data, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_ReadLockResponse; static TPM_RC SerializeCommand_NV_ReadLock( const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_ReadLock( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_ReadLock(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate, const NV_ReadLockResponse& callback); virtual TPM_RC NV_ReadLockSync(const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code)> NV_ChangeAuthResponse; static TPM_RC SerializeCommand_NV_ChangeAuth( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_AUTH& new_auth, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_ChangeAuth( const std::string& response, AuthorizationDelegate* authorization_delegate); virtual void NV_ChangeAuth(const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_AUTH& new_auth, AuthorizationDelegate* authorization_delegate, const NV_ChangeAuthResponse& callback); virtual TPM_RC NV_ChangeAuthSync( const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_AUTH& new_auth, AuthorizationDelegate* authorization_delegate); typedef base::Callback<void(TPM_RC response_code, const TPM2B_ATTEST& certify_info, const TPMT_SIGNATURE& signature)> NV_CertifyResponse; static TPM_RC SerializeCommand_NV_Certify( const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const UINT16& size, const UINT16& offset, std::string* serialized_command, AuthorizationDelegate* authorization_delegate); static TPM_RC ParseResponse_NV_Certify( const std::string& response, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); virtual void NV_Certify(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const UINT16& size, const UINT16& offset, AuthorizationDelegate* authorization_delegate, const NV_CertifyResponse& callback); virtual TPM_RC NV_CertifySync(const TPMI_DH_OBJECT& sign_handle, const std::string& sign_handle_name, const TPMI_RH_NV_AUTH& auth_handle, const std::string& auth_handle_name, const TPMI_RH_NV_INDEX& nv_index, const std::string& nv_index_name, const TPM2B_DATA& qualifying_data, const TPMT_SIG_SCHEME& in_scheme, const UINT16& size, const UINT16& offset, TPM2B_ATTEST* certify_info, TPMT_SIGNATURE* signature, AuthorizationDelegate* authorization_delegate); private: CommandTransceiver* transceiver_; DISALLOW_COPY_AND_ASSIGN(Tpm); }; } // namespace trunks #endif // TRUNKS_TPM_GENERATED_H_