1 // 2 // Copyright (C) 2015 The Android Open Source Project 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 // THIS CODE IS GENERATED - DO NOT MODIFY! 18 19 #ifndef TRUNKS_TPM_GENERATED_H_ 20 #define TRUNKS_TPM_GENERATED_H_ 21 22 #include <string> 23 24 #include <base/callback_forward.h> 25 #include <base/macros.h> 26 27 #include "trunks/trunks_export.h" 28 29 namespace trunks { 30 31 class AuthorizationDelegate; 32 class CommandTransceiver; 33 34 #if !defined(SHA1_DIGEST_SIZE) 35 #define SHA1_DIGEST_SIZE 20 36 #endif 37 #if !defined(SHA1_BLOCK_SIZE) 38 #define SHA1_BLOCK_SIZE 64 39 #endif 40 #if !defined(SHA1_DER_SIZE) 41 #define SHA1_DER_SIZE 15 42 #endif 43 #if !defined(SHA1_DER) 44 #define SHA1_DER \ 45 { \ 46 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, \ 47 0x00, 0x04, 0x14 \ 48 } 49 #endif 50 #if !defined(SHA256_DIGEST_SIZE) 51 #define SHA256_DIGEST_SIZE 32 52 #endif 53 #if !defined(SHA256_BLOCK_SIZE) 54 #define SHA256_BLOCK_SIZE 64 55 #endif 56 #if !defined(SHA256_DER_SIZE) 57 #define SHA256_DER_SIZE 19 58 #endif 59 #if !defined(SHA256_DER) 60 #define SHA256_DER \ 61 { \ 62 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 63 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20 \ 64 } 65 #endif 66 #if !defined(SHA384_DIGEST_SIZE) 67 #define SHA384_DIGEST_SIZE 48 68 #endif 69 #if !defined(SHA384_BLOCK_SIZE) 70 #define SHA384_BLOCK_SIZE 128 71 #endif 72 #if !defined(SHA384_DER_SIZE) 73 #define SHA384_DER_SIZE 19 74 #endif 75 #if !defined(SHA384_DER) 76 #define SHA384_DER \ 77 { \ 78 0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 79 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30 \ 80 } 81 #endif 82 #if !defined(SHA512_DIGEST_SIZE) 83 #define SHA512_DIGEST_SIZE 64 84 #endif 85 #if !defined(SHA512_BLOCK_SIZE) 86 #define SHA512_BLOCK_SIZE 128 87 #endif 88 #if !defined(SHA512_DER_SIZE) 89 #define SHA512_DER_SIZE 19 90 #endif 91 #if !defined(SHA512_DER) 92 #define SHA512_DER \ 93 { \ 94 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \ 95 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40 \ 96 } 97 #endif 98 #if !defined(SM3_256_DIGEST_SIZE) 99 #define SM3_256_DIGEST_SIZE 32 100 #endif 101 #if !defined(SM3_256_BLOCK_SIZE) 102 #define SM3_256_BLOCK_SIZE 64 103 #endif 104 #if !defined(SM3_256_DER_SIZE) 105 #define SM3_256_DER_SIZE 18 106 #endif 107 #if !defined(SM3_256_DER) 108 #define SM3_256_DER \ 109 { \ 110 0x30, 0x30, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x81, 0x1c, 0x81, 0x45, 0x01, \ 111 0x83, 0x11, 0x05, 0x00, 0x04, 0x20 \ 112 } 113 #endif 114 #if !defined(MAX_SESSION_NUMBER) 115 #define MAX_SESSION_NUMBER 3 116 #endif 117 #if !defined(YES) 118 #define YES 1 119 #endif 120 #if !defined(NO) 121 #define NO 0 122 #endif 123 #if !defined(TRUE) 124 #define TRUE 1 125 #endif 126 #if !defined(FALSE) 127 #define FALSE 0 128 #endif 129 #if !defined(SET) 130 #define SET 1 131 #endif 132 #if !defined(CLEAR) 133 #define CLEAR 0 134 #endif 135 #if !defined(BIG_ENDIAN_TPM) 136 #define BIG_ENDIAN_TPM NO 137 #endif 138 #if !defined(LITTLE_ENDIAN_TPM) 139 #define LITTLE_ENDIAN_TPM YES 140 #endif 141 #if !defined(NO_AUTO_ALIGN) 142 #define NO_AUTO_ALIGN NO 143 #endif 144 #if !defined(RSA_KEY_SIZES_BITS) 145 #define RSA_KEY_SIZES_BITS \ 146 { 1024, 2048 } 147 #endif 148 #if !defined(MAX_RSA_KEY_BITS) 149 #define MAX_RSA_KEY_BITS 2048 150 #endif 151 #if !defined(MAX_RSA_KEY_BYTES) 152 #define MAX_RSA_KEY_BYTES ((MAX_RSA_KEY_BITS + 7) / 8) 153 #endif 154 #if !defined(ECC_CURVES) 155 #define ECC_CURVES \ 156 { \ 157 trunks::TPM_ECC_NIST_P256, trunks::TPM_ECC_BN_P256, \ 158 trunks::TPM_ECC_SM2_P256 \ 159 } 160 #endif 161 #if !defined(ECC_KEY_SIZES_BITS) 162 #define ECC_KEY_SIZES_BITS \ 163 { 256 } 164 #endif 165 #if !defined(MAX_ECC_KEY_BITS) 166 #define MAX_ECC_KEY_BITS 256 167 #endif 168 #if !defined(MAX_ECC_KEY_BYTES) 169 #define MAX_ECC_KEY_BYTES ((MAX_ECC_KEY_BITS + 7) / 8) 170 #endif 171 #if !defined(AES_KEY_SIZES_BITS) 172 #define AES_KEY_SIZES_BITS \ 173 { 128 } 174 #endif 175 #if !defined(MAX_AES_KEY_BITS) 176 #define MAX_AES_KEY_BITS 128 177 #endif 178 #if !defined(MAX_AES_BLOCK_SIZE_BYTES) 179 #define MAX_AES_BLOCK_SIZE_BYTES 16 180 #endif 181 #if !defined(MAX_AES_KEY_BYTES) 182 #define MAX_AES_KEY_BYTES ((MAX_AES_KEY_BITS + 7) / 8) 183 #endif 184 #if !defined(SM4_KEY_SIZES_BITS) 185 #define SM4_KEY_SIZES_BITS \ 186 { 128 } 187 #endif 188 #if !defined(MAX_SM4_KEY_BITS) 189 #define MAX_SM4_KEY_BITS 128 190 #endif 191 #if !defined(MAX_SM4_BLOCK_SIZE_BYTES) 192 #define MAX_SM4_BLOCK_SIZE_BYTES 16 193 #endif 194 #if !defined(MAX_SM4_KEY_BYTES) 195 #define MAX_SM4_KEY_BYTES ((MAX_SM4_KEY_BITS + 7) / 8) 196 #endif 197 #if !defined(MAX_SYM_KEY_BITS) 198 #define MAX_SYM_KEY_BITS MAX_AES_KEY_BITS 199 #endif 200 #if !defined(MAX_SYM_KEY_BYTES) 201 #define MAX_SYM_KEY_BYTES MAX_AES_KEY_BYTES 202 #endif 203 #if !defined(MAX_SYM_BLOCK_SIZE) 204 #define MAX_SYM_BLOCK_SIZE MAX_AES_BLOCK_SIZE_BYTES 205 #endif 206 #if !defined(FIELD_UPGRADE_IMPLEMENTED) 207 #define FIELD_UPGRADE_IMPLEMENTED NO 208 #endif 209 #if !defined(BSIZE) 210 #define BSIZE trunks::UINT16 211 #endif 212 #if !defined(BUFFER_ALIGNMENT) 213 #define BUFFER_ALIGNMENT 4 214 #endif 215 #if !defined(IMPLEMENTATION_PCR) 216 #define IMPLEMENTATION_PCR 24 217 #endif 218 #if !defined(PLATFORM_PCR) 219 #define PLATFORM_PCR 24 220 #endif 221 #if !defined(DRTM_PCR) 222 #define DRTM_PCR 17 223 #endif 224 #if !defined(HCRTM_PCR) 225 #define HCRTM_PCR 0 226 #endif 227 #if !defined(NUM_LOCALITIES) 228 #define NUM_LOCALITIES 5 229 #endif 230 #if !defined(MAX_HANDLE_NUM) 231 #define MAX_HANDLE_NUM 3 232 #endif 233 #if !defined(MAX_ACTIVE_SESSIONS) 234 #define MAX_ACTIVE_SESSIONS 64 235 #endif 236 #if !defined(CONTEXT_SLOT) 237 #define CONTEXT_SLOT trunks::UINT16 238 #endif 239 #if !defined(CONTEXT_COUNTER) 240 #define CONTEXT_COUNTER trunks::UINT64 241 #endif 242 #if !defined(MAX_LOADED_SESSIONS) 243 #define MAX_LOADED_SESSIONS 3 244 #endif 245 #if !defined(MAX_SESSION_NUM) 246 #define MAX_SESSION_NUM 3 247 #endif 248 #if !defined(MAX_LOADED_OBJECTS) 249 #define MAX_LOADED_OBJECTS 3 250 #endif 251 #if !defined(MIN_EVICT_OBJECTS) 252 #define MIN_EVICT_OBJECTS 2 253 #endif 254 #if !defined(PCR_SELECT_MIN) 255 #define PCR_SELECT_MIN ((PLATFORM_PCR + 7) / 8) 256 #endif 257 #if !defined(PCR_SELECT_MAX) 258 #define PCR_SELECT_MAX ((IMPLEMENTATION_PCR + 7) / 8) 259 #endif 260 #if !defined(NUM_POLICY_PCR_GROUP) 261 #define NUM_POLICY_PCR_GROUP 1 262 #endif 263 #if !defined(NUM_AUTHVALUE_PCR_GROUP) 264 #define NUM_AUTHVALUE_PCR_GROUP 1 265 #endif 266 #if !defined(MAX_CONTEXT_SIZE) 267 #define MAX_CONTEXT_SIZE 4000 268 #endif 269 #if !defined(MAX_DIGEST_BUFFER) 270 #define MAX_DIGEST_BUFFER 1024 271 #endif 272 #if !defined(MAX_NV_INDEX_SIZE) 273 #define MAX_NV_INDEX_SIZE 2048 274 #endif 275 #if !defined(MAX_NV_BUFFER_SIZE) 276 #define MAX_NV_BUFFER_SIZE 1024 277 #endif 278 #if !defined(MAX_CAP_BUFFER) 279 #define MAX_CAP_BUFFER 1024 280 #endif 281 #if !defined(NV_MEMORY_SIZE) 282 #define NV_MEMORY_SIZE 16384 283 #endif 284 #if !defined(NUM_STATIC_PCR) 285 #define NUM_STATIC_PCR 16 286 #endif 287 #if !defined(MAX_ALG_LIST_SIZE) 288 #define MAX_ALG_LIST_SIZE 64 289 #endif 290 #if !defined(TIMER_PRESCALE) 291 #define TIMER_PRESCALE 100000 292 #endif 293 #if !defined(PRIMARY_SEED_SIZE) 294 #define PRIMARY_SEED_SIZE 32 295 #endif 296 #if !defined(CONTEXT_ENCRYPT_ALG) 297 #define CONTEXT_ENCRYPT_ALG trunks::TPM_ALG_AES 298 #endif 299 #if !defined(CONTEXT_ENCRYPT_KEY_BITS) 300 #define CONTEXT_ENCRYPT_KEY_BITS MAX_SYM_KEY_BITS 301 #endif 302 #if !defined(CONTEXT_ENCRYPT_KEY_BYTES) 303 #define CONTEXT_ENCRYPT_KEY_BYTES ((CONTEXT_ENCRYPT_KEY_BITS + 7) / 8) 304 #endif 305 #if !defined(CONTEXT_INTEGRITY_HASH_ALG) 306 #define CONTEXT_INTEGRITY_HASH_ALG trunks::TPM_ALG_SHA256 307 #endif 308 #if !defined(CONTEXT_INTEGRITY_HASH_SIZE) 309 #define CONTEXT_INTEGRITY_HASH_SIZE SHA256_DIGEST_SIZE 310 #endif 311 #if !defined(PROOF_SIZE) 312 #define PROOF_SIZE CONTEXT_INTEGRITY_HASH_SIZE 313 #endif 314 #if !defined(NV_CLOCK_UPDATE_INTERVAL) 315 #define NV_CLOCK_UPDATE_INTERVAL 12 316 #endif 317 #if !defined(NUM_POLICY_PCR) 318 #define NUM_POLICY_PCR 1 319 #endif 320 #if !defined(MAX_COMMAND_SIZE) 321 #define MAX_COMMAND_SIZE 4096 322 #endif 323 #if !defined(MAX_RESPONSE_SIZE) 324 #define MAX_RESPONSE_SIZE 4096 325 #endif 326 #if !defined(ORDERLY_BITS) 327 #define ORDERLY_BITS 8 328 #endif 329 #if !defined(MAX_ORDERLY_COUNT) 330 #define MAX_ORDERLY_COUNT ((1 << ORDERLY_BITS) - 1) 331 #endif 332 #if !defined(ALG_ID_FIRST) 333 #define ALG_ID_FIRST trunks::TPM_ALG_FIRST 334 #endif 335 #if !defined(ALG_ID_LAST) 336 #define ALG_ID_LAST trunks::TPM_ALG_LAST 337 #endif 338 #if !defined(MAX_SYM_DATA) 339 #define MAX_SYM_DATA 128 340 #endif 341 #if !defined(MAX_RNG_ENTROPY_SIZE) 342 #define MAX_RNG_ENTROPY_SIZE 64 343 #endif 344 #if !defined(RAM_INDEX_SPACE) 345 #define RAM_INDEX_SPACE 512 346 #endif 347 #if !defined(RSA_DEFAULT_PUBLIC_EXPONENT) 348 #define RSA_DEFAULT_PUBLIC_EXPONENT 0x00010001 349 #endif 350 #if !defined(ENABLE_PCR_NO_INCREMENT) 351 #define ENABLE_PCR_NO_INCREMENT YES 352 #endif 353 #if !defined(CRT_FORMAT_RSA) 354 #define CRT_FORMAT_RSA YES 355 #endif 356 #if !defined(PRIVATE_VENDOR_SPECIFIC_BYTES) 357 #define PRIVATE_VENDOR_SPECIFIC_BYTES \ 358 ((MAX_RSA_KEY_BYTES / 2) * (3 + CRT_FORMAT_RSA * 2)) 359 #endif 360 #if !defined(MAX_CAP_DATA) 361 #define MAX_CAP_DATA \ 362 (MAX_CAP_BUFFER - sizeof(trunks::TPM_CAP) - sizeof(trunks::UINT32)) 363 #endif 364 #if !defined(MAX_CAP_ALGS) 365 #define MAX_CAP_ALGS (trunks::TPM_ALG_LAST - trunks::TPM_ALG_FIRST + 1) 366 #endif 367 #if !defined(MAX_CAP_HANDLES) 368 #define MAX_CAP_HANDLES (MAX_CAP_DATA / sizeof(trunks::TPM_HANDLE)) 369 #endif 370 #if !defined(MAX_CAP_CC) 371 #define MAX_CAP_CC ((trunks::TPM_CC_LAST - trunks::TPM_CC_FIRST) + 1) 372 #endif 373 #if !defined(MAX_TPM_PROPERTIES) 374 #define MAX_TPM_PROPERTIES (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PROPERTY)) 375 #endif 376 #if !defined(MAX_PCR_PROPERTIES) 377 #define MAX_PCR_PROPERTIES \ 378 (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PCR_SELECT)) 379 #endif 380 #if !defined(MAX_ECC_CURVES) 381 #define MAX_ECC_CURVES (MAX_CAP_DATA / sizeof(trunks::TPM_ECC_CURVE)) 382 #endif 383 #if !defined(HASH_COUNT) 384 #define HASH_COUNT 3 385 #endif 386 387 typedef uint8_t UINT8; 388 typedef uint8_t BYTE; 389 typedef int8_t INT8; 390 typedef int BOOL; 391 typedef uint16_t UINT16; 392 typedef int16_t INT16; 393 typedef uint32_t UINT32; 394 typedef int32_t INT32; 395 typedef uint64_t UINT64; 396 typedef int64_t INT64; 397 typedef UINT32 TPM_ALGORITHM_ID; 398 typedef UINT32 TPM_MODIFIER_INDICATOR; 399 typedef UINT32 TPM_AUTHORIZATION_SIZE; 400 typedef UINT32 TPM_PARAMETER_SIZE; 401 typedef UINT16 TPM_KEY_SIZE; 402 typedef UINT16 TPM_KEY_BITS; 403 typedef UINT32 TPM_HANDLE; 404 struct TPM2B_DIGEST; 405 typedef TPM2B_DIGEST TPM2B_NONCE; 406 typedef TPM2B_DIGEST TPM2B_AUTH; 407 typedef TPM2B_DIGEST TPM2B_OPERAND; 408 struct TPMS_SCHEME_SIGHASH; 409 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_HMAC; 410 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSASSA; 411 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSAPSS; 412 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECDSA; 413 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_SM2; 414 typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECSCHNORR; 415 typedef BYTE TPMI_YES_NO; 416 typedef TPM_HANDLE TPMI_DH_OBJECT; 417 typedef TPM_HANDLE TPMI_DH_PERSISTENT; 418 typedef TPM_HANDLE TPMI_DH_ENTITY; 419 typedef TPM_HANDLE TPMI_DH_PCR; 420 typedef TPM_HANDLE TPMI_SH_AUTH_SESSION; 421 typedef TPM_HANDLE TPMI_SH_HMAC; 422 typedef TPM_HANDLE TPMI_SH_POLICY; 423 typedef TPM_HANDLE TPMI_DH_CONTEXT; 424 typedef TPM_HANDLE TPMI_RH_HIERARCHY; 425 typedef TPM_HANDLE TPMI_RH_ENABLES; 426 typedef TPM_HANDLE TPMI_RH_HIERARCHY_AUTH; 427 typedef TPM_HANDLE TPMI_RH_PLATFORM; 428 typedef TPM_HANDLE TPMI_RH_OWNER; 429 typedef TPM_HANDLE TPMI_RH_ENDORSEMENT; 430 typedef TPM_HANDLE TPMI_RH_PROVISION; 431 typedef TPM_HANDLE TPMI_RH_CLEAR; 432 typedef TPM_HANDLE TPMI_RH_NV_AUTH; 433 typedef TPM_HANDLE TPMI_RH_LOCKOUT; 434 typedef TPM_HANDLE TPMI_RH_NV_INDEX; 435 typedef UINT16 TPM_ALG_ID; 436 typedef TPM_ALG_ID TPMI_ALG_HASH; 437 typedef TPM_ALG_ID TPMI_ALG_ASYM; 438 typedef TPM_ALG_ID TPMI_ALG_SYM; 439 typedef TPM_ALG_ID TPMI_ALG_SYM_OBJECT; 440 typedef TPM_ALG_ID TPMI_ALG_SYM_MODE; 441 typedef TPM_ALG_ID TPMI_ALG_KDF; 442 typedef TPM_ALG_ID TPMI_ALG_SIG_SCHEME; 443 typedef TPM_ALG_ID TPMI_ECC_KEY_EXCHANGE; 444 typedef UINT16 TPM_ST; 445 typedef TPM_ST TPMI_ST_COMMAND_TAG; 446 typedef TPM_ST TPMI_ST_ATTEST; 447 typedef TPM_KEY_BITS TPMI_AES_KEY_BITS; 448 typedef TPM_KEY_BITS TPMI_SM4_KEY_BITS; 449 typedef TPM_ALG_ID TPMI_ALG_KEYEDHASH_SCHEME; 450 typedef TPM_ALG_ID TPMI_ALG_ASYM_SCHEME; 451 typedef TPM_ALG_ID TPMI_ALG_RSA_SCHEME; 452 typedef TPM_ALG_ID TPMI_ALG_RSA_DECRYPT; 453 typedef TPM_KEY_BITS TPMI_RSA_KEY_BITS; 454 typedef TPM_ALG_ID TPMI_ALG_ECC_SCHEME; 455 typedef UINT16 TPM_ECC_CURVE; 456 typedef TPM_ECC_CURVE TPMI_ECC_CURVE; 457 typedef TPM_ALG_ID TPMI_ALG_PUBLIC; 458 typedef UINT32 TPMA_ALGORITHM; 459 typedef UINT32 TPMA_OBJECT; 460 typedef UINT8 TPMA_SESSION; 461 typedef UINT8 TPMA_LOCALITY; 462 typedef UINT32 TPMA_PERMANENT; 463 typedef UINT32 TPMA_STARTUP_CLEAR; 464 typedef UINT32 TPMA_MEMORY; 465 typedef UINT32 TPM_CC; 466 typedef TPM_CC TPMA_CC; 467 typedef UINT32 TPM_NV_INDEX; 468 typedef UINT32 TPMA_NV; 469 typedef UINT32 TPM_SPEC; 470 typedef UINT32 TPM_GENERATED; 471 typedef UINT32 TPM_RC; 472 typedef INT8 TPM_CLOCK_ADJUST; 473 typedef UINT16 TPM_EO; 474 typedef UINT16 TPM_SU; 475 typedef UINT8 TPM_SE; 476 typedef UINT32 TPM_CAP; 477 typedef UINT32 TPM_PT; 478 typedef UINT32 TPM_PT_PCR; 479 typedef UINT32 TPM_PS; 480 typedef UINT8 TPM_HT; 481 typedef UINT32 TPM_RH; 482 typedef TPM_HANDLE TPM_HC; 483 484 constexpr TPM_SPEC TPM_SPEC_FAMILY = 0x322E3000; 485 constexpr TPM_SPEC TPM_SPEC_LEVEL = 00; 486 constexpr TPM_SPEC TPM_SPEC_VERSION = 99; 487 constexpr TPM_SPEC TPM_SPEC_YEAR = 2013; 488 constexpr TPM_SPEC TPM_SPEC_DAY_OF_YEAR = 304; 489 constexpr TPM_GENERATED TPM_GENERATED_VALUE = 0xff544347; 490 constexpr TPM_ALG_ID TPM_ALG_ERROR = 0x0000; 491 constexpr TPM_ALG_ID TPM_ALG_FIRST = 0x0001; 492 constexpr TPM_ALG_ID TPM_ALG_RSA = 0x0001; 493 constexpr TPM_ALG_ID TPM_ALG_SHA = 0x0004; 494 constexpr TPM_ALG_ID TPM_ALG_SHA1 = 0x0004; 495 constexpr TPM_ALG_ID TPM_ALG_HMAC = 0x0005; 496 constexpr TPM_ALG_ID TPM_ALG_AES = 0x0006; 497 constexpr TPM_ALG_ID TPM_ALG_MGF1 = 0x0007; 498 constexpr TPM_ALG_ID TPM_ALG_KEYEDHASH = 0x0008; 499 constexpr TPM_ALG_ID TPM_ALG_XOR = 0x000A; 500 constexpr TPM_ALG_ID TPM_ALG_SHA256 = 0x000B; 501 constexpr TPM_ALG_ID TPM_ALG_SHA384 = 0x000C; 502 constexpr TPM_ALG_ID TPM_ALG_SHA512 = 0x000D; 503 constexpr TPM_ALG_ID TPM_ALG_NULL = 0x0010; 504 constexpr TPM_ALG_ID TPM_ALG_SM3_256 = 0x0012; 505 constexpr TPM_ALG_ID TPM_ALG_SM4 = 0x0013; 506 constexpr TPM_ALG_ID TPM_ALG_RSASSA = 0x0014; 507 constexpr TPM_ALG_ID TPM_ALG_RSAES = 0x0015; 508 constexpr TPM_ALG_ID TPM_ALG_RSAPSS = 0x0016; 509 constexpr TPM_ALG_ID TPM_ALG_OAEP = 0x0017; 510 constexpr TPM_ALG_ID TPM_ALG_ECDSA = 0x0018; 511 constexpr TPM_ALG_ID TPM_ALG_ECDH = 0x0019; 512 constexpr TPM_ALG_ID TPM_ALG_ECDAA = 0x001A; 513 constexpr TPM_ALG_ID TPM_ALG_SM2 = 0x001B; 514 constexpr TPM_ALG_ID TPM_ALG_ECSCHNORR = 0x001C; 515 constexpr TPM_ALG_ID TPM_ALG_ECMQV = 0x001D; 516 constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_56a = 0x0020; 517 constexpr TPM_ALG_ID TPM_ALG_KDF2 = 0x0021; 518 constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_108 = 0x0022; 519 constexpr TPM_ALG_ID TPM_ALG_ECC = 0x0023; 520 constexpr TPM_ALG_ID TPM_ALG_SYMCIPHER = 0x0025; 521 constexpr TPM_ALG_ID TPM_ALG_CTR = 0x0040; 522 constexpr TPM_ALG_ID TPM_ALG_OFB = 0x0041; 523 constexpr TPM_ALG_ID TPM_ALG_CBC = 0x0042; 524 constexpr TPM_ALG_ID TPM_ALG_CFB = 0x0043; 525 constexpr TPM_ALG_ID TPM_ALG_ECB = 0x0044; 526 constexpr TPM_ALG_ID TPM_ALG_LAST = 0x0044; 527 constexpr TPM_ECC_CURVE TPM_ECC_NONE = 0x0000; 528 constexpr TPM_ECC_CURVE TPM_ECC_NIST_P192 = 0x0001; 529 constexpr TPM_ECC_CURVE TPM_ECC_NIST_P224 = 0x0002; 530 constexpr TPM_ECC_CURVE TPM_ECC_NIST_P256 = 0x0003; 531 constexpr TPM_ECC_CURVE TPM_ECC_NIST_P384 = 0x0004; 532 constexpr TPM_ECC_CURVE TPM_ECC_NIST_P521 = 0x0005; 533 constexpr TPM_ECC_CURVE TPM_ECC_BN_P256 = 0x0010; 534 constexpr TPM_ECC_CURVE TPM_ECC_BN_P638 = 0x0011; 535 constexpr TPM_ECC_CURVE TPM_ECC_SM2_P256 = 0x0020; 536 constexpr TPM_CC TPM_CC_FIRST = 0x0000011F; 537 constexpr TPM_CC TPM_CC_PP_FIRST = 0x0000011F; 538 constexpr TPM_CC TPM_CC_NV_UndefineSpaceSpecial = 0x0000011F; 539 constexpr TPM_CC TPM_CC_EvictControl = 0x00000120; 540 constexpr TPM_CC TPM_CC_HierarchyControl = 0x00000121; 541 constexpr TPM_CC TPM_CC_NV_UndefineSpace = 0x00000122; 542 constexpr TPM_CC TPM_CC_ChangeEPS = 0x00000124; 543 constexpr TPM_CC TPM_CC_ChangePPS = 0x00000125; 544 constexpr TPM_CC TPM_CC_Clear = 0x00000126; 545 constexpr TPM_CC TPM_CC_ClearControl = 0x00000127; 546 constexpr TPM_CC TPM_CC_ClockSet = 0x00000128; 547 constexpr TPM_CC TPM_CC_HierarchyChangeAuth = 0x00000129; 548 constexpr TPM_CC TPM_CC_NV_DefineSpace = 0x0000012A; 549 constexpr TPM_CC TPM_CC_PCR_Allocate = 0x0000012B; 550 constexpr TPM_CC TPM_CC_PCR_SetAuthPolicy = 0x0000012C; 551 constexpr TPM_CC TPM_CC_PP_Commands = 0x0000012D; 552 constexpr TPM_CC TPM_CC_SetPrimaryPolicy = 0x0000012E; 553 constexpr TPM_CC TPM_CC_FieldUpgradeStart = 0x0000012F; 554 constexpr TPM_CC TPM_CC_ClockRateAdjust = 0x00000130; 555 constexpr TPM_CC TPM_CC_CreatePrimary = 0x00000131; 556 constexpr TPM_CC TPM_CC_NV_GlobalWriteLock = 0x00000132; 557 constexpr TPM_CC TPM_CC_PP_LAST = 0x00000132; 558 constexpr TPM_CC TPM_CC_GetCommandAuditDigest = 0x00000133; 559 constexpr TPM_CC TPM_CC_NV_Increment = 0x00000134; 560 constexpr TPM_CC TPM_CC_NV_SetBits = 0x00000135; 561 constexpr TPM_CC TPM_CC_NV_Extend = 0x00000136; 562 constexpr TPM_CC TPM_CC_NV_Write = 0x00000137; 563 constexpr TPM_CC TPM_CC_NV_WriteLock = 0x00000138; 564 constexpr TPM_CC TPM_CC_DictionaryAttackLockReset = 0x00000139; 565 constexpr TPM_CC TPM_CC_DictionaryAttackParameters = 0x0000013A; 566 constexpr TPM_CC TPM_CC_NV_ChangeAuth = 0x0000013B; 567 constexpr TPM_CC TPM_CC_PCR_Event = 0x0000013C; 568 constexpr TPM_CC TPM_CC_PCR_Reset = 0x0000013D; 569 constexpr TPM_CC TPM_CC_SequenceComplete = 0x0000013E; 570 constexpr TPM_CC TPM_CC_SetAlgorithmSet = 0x0000013F; 571 constexpr TPM_CC TPM_CC_SetCommandCodeAuditStatus = 0x00000140; 572 constexpr TPM_CC TPM_CC_FieldUpgradeData = 0x00000141; 573 constexpr TPM_CC TPM_CC_IncrementalSelfTest = 0x00000142; 574 constexpr TPM_CC TPM_CC_SelfTest = 0x00000143; 575 constexpr TPM_CC TPM_CC_Startup = 0x00000144; 576 constexpr TPM_CC TPM_CC_Shutdown = 0x00000145; 577 constexpr TPM_CC TPM_CC_StirRandom = 0x00000146; 578 constexpr TPM_CC TPM_CC_ActivateCredential = 0x00000147; 579 constexpr TPM_CC TPM_CC_Certify = 0x00000148; 580 constexpr TPM_CC TPM_CC_PolicyNV = 0x00000149; 581 constexpr TPM_CC TPM_CC_CertifyCreation = 0x0000014A; 582 constexpr TPM_CC TPM_CC_Duplicate = 0x0000014B; 583 constexpr TPM_CC TPM_CC_GetTime = 0x0000014C; 584 constexpr TPM_CC TPM_CC_GetSessionAuditDigest = 0x0000014D; 585 constexpr TPM_CC TPM_CC_NV_Read = 0x0000014E; 586 constexpr TPM_CC TPM_CC_NV_ReadLock = 0x0000014F; 587 constexpr TPM_CC TPM_CC_ObjectChangeAuth = 0x00000150; 588 constexpr TPM_CC TPM_CC_PolicySecret = 0x00000151; 589 constexpr TPM_CC TPM_CC_Rewrap = 0x00000152; 590 constexpr TPM_CC TPM_CC_Create = 0x00000153; 591 constexpr TPM_CC TPM_CC_ECDH_ZGen = 0x00000154; 592 constexpr TPM_CC TPM_CC_HMAC = 0x00000155; 593 constexpr TPM_CC TPM_CC_Import = 0x00000156; 594 constexpr TPM_CC TPM_CC_Load = 0x00000157; 595 constexpr TPM_CC TPM_CC_Quote = 0x00000158; 596 constexpr TPM_CC TPM_CC_RSA_Decrypt = 0x00000159; 597 constexpr TPM_CC TPM_CC_HMAC_Start = 0x0000015B; 598 constexpr TPM_CC TPM_CC_SequenceUpdate = 0x0000015C; 599 constexpr TPM_CC TPM_CC_Sign = 0x0000015D; 600 constexpr TPM_CC TPM_CC_Unseal = 0x0000015E; 601 constexpr TPM_CC TPM_CC_PolicySigned = 0x00000160; 602 constexpr TPM_CC TPM_CC_ContextLoad = 0x00000161; 603 constexpr TPM_CC TPM_CC_ContextSave = 0x00000162; 604 constexpr TPM_CC TPM_CC_ECDH_KeyGen = 0x00000163; 605 constexpr TPM_CC TPM_CC_EncryptDecrypt = 0x00000164; 606 constexpr TPM_CC TPM_CC_FlushContext = 0x00000165; 607 constexpr TPM_CC TPM_CC_LoadExternal = 0x00000167; 608 constexpr TPM_CC TPM_CC_MakeCredential = 0x00000168; 609 constexpr TPM_CC TPM_CC_NV_ReadPublic = 0x00000169; 610 constexpr TPM_CC TPM_CC_PolicyAuthorize = 0x0000016A; 611 constexpr TPM_CC TPM_CC_PolicyAuthValue = 0x0000016B; 612 constexpr TPM_CC TPM_CC_PolicyCommandCode = 0x0000016C; 613 constexpr TPM_CC TPM_CC_PolicyCounterTimer = 0x0000016D; 614 constexpr TPM_CC TPM_CC_PolicyCpHash = 0x0000016E; 615 constexpr TPM_CC TPM_CC_PolicyLocality = 0x0000016F; 616 constexpr TPM_CC TPM_CC_PolicyNameHash = 0x00000170; 617 constexpr TPM_CC TPM_CC_PolicyOR = 0x00000171; 618 constexpr TPM_CC TPM_CC_PolicyTicket = 0x00000172; 619 constexpr TPM_CC TPM_CC_ReadPublic = 0x00000173; 620 constexpr TPM_CC TPM_CC_RSA_Encrypt = 0x00000174; 621 constexpr TPM_CC TPM_CC_StartAuthSession = 0x00000176; 622 constexpr TPM_CC TPM_CC_VerifySignature = 0x00000177; 623 constexpr TPM_CC TPM_CC_ECC_Parameters = 0x00000178; 624 constexpr TPM_CC TPM_CC_FirmwareRead = 0x00000179; 625 constexpr TPM_CC TPM_CC_GetCapability = 0x0000017A; 626 constexpr TPM_CC TPM_CC_GetRandom = 0x0000017B; 627 constexpr TPM_CC TPM_CC_GetTestResult = 0x0000017C; 628 constexpr TPM_CC TPM_CC_Hash = 0x0000017D; 629 constexpr TPM_CC TPM_CC_PCR_Read = 0x0000017E; 630 constexpr TPM_CC TPM_CC_PolicyPCR = 0x0000017F; 631 constexpr TPM_CC TPM_CC_PolicyRestart = 0x00000180; 632 constexpr TPM_CC TPM_CC_ReadClock = 0x00000181; 633 constexpr TPM_CC TPM_CC_PCR_Extend = 0x00000182; 634 constexpr TPM_CC TPM_CC_PCR_SetAuthValue = 0x00000183; 635 constexpr TPM_CC TPM_CC_NV_Certify = 0x00000184; 636 constexpr TPM_CC TPM_CC_EventSequenceComplete = 0x00000185; 637 constexpr TPM_CC TPM_CC_HashSequenceStart = 0x00000186; 638 constexpr TPM_CC TPM_CC_PolicyPhysicalPresence = 0x00000187; 639 constexpr TPM_CC TPM_CC_PolicyDuplicationSelect = 0x00000188; 640 constexpr TPM_CC TPM_CC_PolicyGetDigest = 0x00000189; 641 constexpr TPM_CC TPM_CC_TestParms = 0x0000018A; 642 constexpr TPM_CC TPM_CC_Commit = 0x0000018B; 643 constexpr TPM_CC TPM_CC_PolicyPassword = 0x0000018C; 644 constexpr TPM_CC TPM_CC_ZGen_2Phase = 0x0000018D; 645 constexpr TPM_CC TPM_CC_EC_Ephemeral = 0x0000018E; 646 constexpr TPM_CC TPM_CC_PolicyNvWritten = 0x0000018F; 647 constexpr TPM_CC TPM_CC_LAST = 0x0000018F; 648 constexpr TPM_RC TPM_RC_SUCCESS = 0x000; 649 constexpr TPM_RC TPM_RC_BAD_TAG = 0x01E; 650 constexpr TPM_RC RC_VER1 = 0x100; 651 constexpr TPM_RC TPM_RC_INITIALIZE = RC_VER1 + 0x000; 652 constexpr TPM_RC TPM_RC_FAILURE = RC_VER1 + 0x001; 653 constexpr TPM_RC TPM_RC_SEQUENCE = RC_VER1 + 0x003; 654 constexpr TPM_RC TPM_RC_PRIVATE = RC_VER1 + 0x00B; 655 constexpr TPM_RC TPM_RC_HMAC = RC_VER1 + 0x019; 656 constexpr TPM_RC TPM_RC_DISABLED = RC_VER1 + 0x020; 657 constexpr TPM_RC TPM_RC_EXCLUSIVE = RC_VER1 + 0x021; 658 constexpr TPM_RC TPM_RC_AUTH_TYPE = RC_VER1 + 0x024; 659 constexpr TPM_RC TPM_RC_AUTH_MISSING = RC_VER1 + 0x025; 660 constexpr TPM_RC TPM_RC_POLICY = RC_VER1 + 0x026; 661 constexpr TPM_RC TPM_RC_PCR = RC_VER1 + 0x027; 662 constexpr TPM_RC TPM_RC_PCR_CHANGED = RC_VER1 + 0x028; 663 constexpr TPM_RC TPM_RC_UPGRADE = RC_VER1 + 0x02D; 664 constexpr TPM_RC TPM_RC_TOO_MANY_CONTEXTS = RC_VER1 + 0x02E; 665 constexpr TPM_RC TPM_RC_AUTH_UNAVAILABLE = RC_VER1 + 0x02F; 666 constexpr TPM_RC TPM_RC_REBOOT = RC_VER1 + 0x030; 667 constexpr TPM_RC TPM_RC_UNBALANCED = RC_VER1 + 0x031; 668 constexpr TPM_RC TPM_RC_COMMAND_SIZE = RC_VER1 + 0x042; 669 constexpr TPM_RC TPM_RC_COMMAND_CODE = RC_VER1 + 0x043; 670 constexpr TPM_RC TPM_RC_AUTHSIZE = RC_VER1 + 0x044; 671 constexpr TPM_RC TPM_RC_AUTH_CONTEXT = RC_VER1 + 0x045; 672 constexpr TPM_RC TPM_RC_NV_RANGE = RC_VER1 + 0x046; 673 constexpr TPM_RC TPM_RC_NV_SIZE = RC_VER1 + 0x047; 674 constexpr TPM_RC TPM_RC_NV_LOCKED = RC_VER1 + 0x048; 675 constexpr TPM_RC TPM_RC_NV_AUTHORIZATION = RC_VER1 + 0x049; 676 constexpr TPM_RC TPM_RC_NV_UNINITIALIZED = RC_VER1 + 0x04A; 677 constexpr TPM_RC TPM_RC_NV_SPACE = RC_VER1 + 0x04B; 678 constexpr TPM_RC TPM_RC_NV_DEFINED = RC_VER1 + 0x04C; 679 constexpr TPM_RC TPM_RC_BAD_CONTEXT = RC_VER1 + 0x050; 680 constexpr TPM_RC TPM_RC_CPHASH = RC_VER1 + 0x051; 681 constexpr TPM_RC TPM_RC_PARENT = RC_VER1 + 0x052; 682 constexpr TPM_RC TPM_RC_NEEDS_TEST = RC_VER1 + 0x053; 683 constexpr TPM_RC TPM_RC_NO_RESULT = RC_VER1 + 0x054; 684 constexpr TPM_RC TPM_RC_SENSITIVE = RC_VER1 + 0x055; 685 constexpr TPM_RC RC_MAX_FM0 = RC_VER1 + 0x07F; 686 constexpr TPM_RC RC_FMT1 = 0x080; 687 constexpr TPM_RC TPM_RC_ASYMMETRIC = RC_FMT1 + 0x001; 688 constexpr TPM_RC TPM_RC_ATTRIBUTES = RC_FMT1 + 0x002; 689 constexpr TPM_RC TPM_RC_HASH = RC_FMT1 + 0x003; 690 constexpr TPM_RC TPM_RC_VALUE = RC_FMT1 + 0x004; 691 constexpr TPM_RC TPM_RC_HIERARCHY = RC_FMT1 + 0x005; 692 constexpr TPM_RC TPM_RC_KEY_SIZE = RC_FMT1 + 0x007; 693 constexpr TPM_RC TPM_RC_MGF = RC_FMT1 + 0x008; 694 constexpr TPM_RC TPM_RC_MODE = RC_FMT1 + 0x009; 695 constexpr TPM_RC TPM_RC_TYPE = RC_FMT1 + 0x00A; 696 constexpr TPM_RC TPM_RC_HANDLE = RC_FMT1 + 0x00B; 697 constexpr TPM_RC TPM_RC_KDF = RC_FMT1 + 0x00C; 698 constexpr TPM_RC TPM_RC_RANGE = RC_FMT1 + 0x00D; 699 constexpr TPM_RC TPM_RC_AUTH_FAIL = RC_FMT1 + 0x00E; 700 constexpr TPM_RC TPM_RC_NONCE = RC_FMT1 + 0x00F; 701 constexpr TPM_RC TPM_RC_PP = RC_FMT1 + 0x010; 702 constexpr TPM_RC TPM_RC_SCHEME = RC_FMT1 + 0x012; 703 constexpr TPM_RC TPM_RC_SIZE = RC_FMT1 + 0x015; 704 constexpr TPM_RC TPM_RC_SYMMETRIC = RC_FMT1 + 0x016; 705 constexpr TPM_RC TPM_RC_TAG = RC_FMT1 + 0x017; 706 constexpr TPM_RC TPM_RC_SELECTOR = RC_FMT1 + 0x018; 707 constexpr TPM_RC TPM_RC_INSUFFICIENT = RC_FMT1 + 0x01A; 708 constexpr TPM_RC TPM_RC_SIGNATURE = RC_FMT1 + 0x01B; 709 constexpr TPM_RC TPM_RC_KEY = RC_FMT1 + 0x01C; 710 constexpr TPM_RC TPM_RC_POLICY_FAIL = RC_FMT1 + 0x01D; 711 constexpr TPM_RC TPM_RC_INTEGRITY = RC_FMT1 + 0x01F; 712 constexpr TPM_RC TPM_RC_TICKET = RC_FMT1 + 0x020; 713 constexpr TPM_RC TPM_RC_RESERVED_BITS = RC_FMT1 + 0x021; 714 constexpr TPM_RC TPM_RC_BAD_AUTH = RC_FMT1 + 0x022; 715 constexpr TPM_RC TPM_RC_EXPIRED = RC_FMT1 + 0x023; 716 constexpr TPM_RC TPM_RC_POLICY_CC = RC_FMT1 + 0x024; 717 constexpr TPM_RC TPM_RC_BINDING = RC_FMT1 + 0x025; 718 constexpr TPM_RC TPM_RC_CURVE = RC_FMT1 + 0x026; 719 constexpr TPM_RC TPM_RC_ECC_POINT = RC_FMT1 + 0x027; 720 constexpr TPM_RC RC_WARN = 0x900; 721 constexpr TPM_RC TPM_RC_CONTEXT_GAP = RC_WARN + 0x001; 722 constexpr TPM_RC TPM_RC_OBJECT_MEMORY = RC_WARN + 0x002; 723 constexpr TPM_RC TPM_RC_SESSION_MEMORY = RC_WARN + 0x003; 724 constexpr TPM_RC TPM_RC_MEMORY = RC_WARN + 0x004; 725 constexpr TPM_RC TPM_RC_SESSION_HANDLES = RC_WARN + 0x005; 726 constexpr TPM_RC TPM_RC_OBJECT_HANDLES = RC_WARN + 0x006; 727 constexpr TPM_RC TPM_RC_LOCALITY = RC_WARN + 0x007; 728 constexpr TPM_RC TPM_RC_YIELDED = RC_WARN + 0x008; 729 constexpr TPM_RC TPM_RC_CANCELED = RC_WARN + 0x009; 730 constexpr TPM_RC TPM_RC_TESTING = RC_WARN + 0x00A; 731 constexpr TPM_RC TPM_RC_REFERENCE_H0 = RC_WARN + 0x010; 732 constexpr TPM_RC TPM_RC_REFERENCE_H1 = RC_WARN + 0x011; 733 constexpr TPM_RC TPM_RC_REFERENCE_H2 = RC_WARN + 0x012; 734 constexpr TPM_RC TPM_RC_REFERENCE_H3 = RC_WARN + 0x013; 735 constexpr TPM_RC TPM_RC_REFERENCE_H4 = RC_WARN + 0x014; 736 constexpr TPM_RC TPM_RC_REFERENCE_H5 = RC_WARN + 0x015; 737 constexpr TPM_RC TPM_RC_REFERENCE_H6 = RC_WARN + 0x016; 738 constexpr TPM_RC TPM_RC_REFERENCE_S0 = RC_WARN + 0x018; 739 constexpr TPM_RC TPM_RC_REFERENCE_S1 = RC_WARN + 0x019; 740 constexpr TPM_RC TPM_RC_REFERENCE_S2 = RC_WARN + 0x01A; 741 constexpr TPM_RC TPM_RC_REFERENCE_S3 = RC_WARN + 0x01B; 742 constexpr TPM_RC TPM_RC_REFERENCE_S4 = RC_WARN + 0x01C; 743 constexpr TPM_RC TPM_RC_REFERENCE_S5 = RC_WARN + 0x01D; 744 constexpr TPM_RC TPM_RC_REFERENCE_S6 = RC_WARN + 0x01E; 745 constexpr TPM_RC TPM_RC_NV_RATE = RC_WARN + 0x020; 746 constexpr TPM_RC TPM_RC_LOCKOUT = RC_WARN + 0x021; 747 constexpr TPM_RC TPM_RC_RETRY = RC_WARN + 0x022; 748 constexpr TPM_RC TPM_RC_NV_UNAVAILABLE = RC_WARN + 0x023; 749 constexpr TPM_RC TPM_RC_NOT_USED = RC_WARN + 0x7F; 750 constexpr TPM_RC TPM_RC_H = 0x000; 751 constexpr TPM_RC TPM_RC_P = 0x040; 752 constexpr TPM_RC TPM_RC_S = 0x800; 753 constexpr TPM_RC TPM_RC_1 = 0x100; 754 constexpr TPM_RC TPM_RC_2 = 0x200; 755 constexpr TPM_RC TPM_RC_3 = 0x300; 756 constexpr TPM_RC TPM_RC_4 = 0x400; 757 constexpr TPM_RC TPM_RC_5 = 0x500; 758 constexpr TPM_RC TPM_RC_6 = 0x600; 759 constexpr TPM_RC TPM_RC_7 = 0x700; 760 constexpr TPM_RC TPM_RC_8 = 0x800; 761 constexpr TPM_RC TPM_RC_9 = 0x900; 762 constexpr TPM_RC TPM_RC_A = 0xA00; 763 constexpr TPM_RC TPM_RC_B = 0xB00; 764 constexpr TPM_RC TPM_RC_C = 0xC00; 765 constexpr TPM_RC TPM_RC_D = 0xD00; 766 constexpr TPM_RC TPM_RC_E = 0xE00; 767 constexpr TPM_RC TPM_RC_F = 0xF00; 768 constexpr TPM_RC TPM_RC_N_MASK = 0xF00; 769 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_SLOWER = -3; 770 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_SLOWER = -2; 771 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_SLOWER = -1; 772 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_NO_CHANGE = 0; 773 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_FASTER = 1; 774 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_FASTER = 2; 775 constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_FASTER = 3; 776 constexpr TPM_EO TPM_EO_EQ = 0x0000; 777 constexpr TPM_EO TPM_EO_NEQ = 0x0001; 778 constexpr TPM_EO TPM_EO_SIGNED_GT = 0x0002; 779 constexpr TPM_EO TPM_EO_UNSIGNED_GT = 0x0003; 780 constexpr TPM_EO TPM_EO_SIGNED_LT = 0x0004; 781 constexpr TPM_EO TPM_EO_UNSIGNED_LT = 0x0005; 782 constexpr TPM_EO TPM_EO_SIGNED_GE = 0x0006; 783 constexpr TPM_EO TPM_EO_UNSIGNED_GE = 0x0007; 784 constexpr TPM_EO TPM_EO_SIGNED_LE = 0x0008; 785 constexpr TPM_EO TPM_EO_UNSIGNED_LE = 0x0009; 786 constexpr TPM_EO TPM_EO_BITSET = 0x000A; 787 constexpr TPM_EO TPM_EO_BITCLEAR = 0x000B; 788 constexpr TPM_ST TPM_ST_RSP_COMMAND = 0x00C4; 789 constexpr TPM_ST TPM_ST_NULL = 0X8000; 790 constexpr TPM_ST TPM_ST_NO_SESSIONS = 0x8001; 791 constexpr TPM_ST TPM_ST_SESSIONS = 0x8002; 792 constexpr TPM_ST TPM_ST_ATTEST_NV = 0x8014; 793 constexpr TPM_ST TPM_ST_ATTEST_COMMAND_AUDIT = 0x8015; 794 constexpr TPM_ST TPM_ST_ATTEST_SESSION_AUDIT = 0x8016; 795 constexpr TPM_ST TPM_ST_ATTEST_CERTIFY = 0x8017; 796 constexpr TPM_ST TPM_ST_ATTEST_QUOTE = 0x8018; 797 constexpr TPM_ST TPM_ST_ATTEST_TIME = 0x8019; 798 constexpr TPM_ST TPM_ST_ATTEST_CREATION = 0x801A; 799 constexpr TPM_ST TPM_ST_CREATION = 0x8021; 800 constexpr TPM_ST TPM_ST_VERIFIED = 0x8022; 801 constexpr TPM_ST TPM_ST_AUTH_SECRET = 0x8023; 802 constexpr TPM_ST TPM_ST_HASHCHECK = 0x8024; 803 constexpr TPM_ST TPM_ST_AUTH_SIGNED = 0x8025; 804 constexpr TPM_ST TPM_ST_FU_MANIFEST = 0x8029; 805 constexpr TPM_SU TPM_SU_CLEAR = 0x0000; 806 constexpr TPM_SU TPM_SU_STATE = 0x0001; 807 constexpr TPM_SE TPM_SE_HMAC = 0x00; 808 constexpr TPM_SE TPM_SE_POLICY = 0x01; 809 constexpr TPM_SE TPM_SE_TRIAL = 0x03; 810 constexpr TPM_CAP TPM_CAP_FIRST = 0x00000000; 811 constexpr TPM_CAP TPM_CAP_ALGS = 0x00000000; 812 constexpr TPM_CAP TPM_CAP_HANDLES = 0x00000001; 813 constexpr TPM_CAP TPM_CAP_COMMANDS = 0x00000002; 814 constexpr TPM_CAP TPM_CAP_PP_COMMANDS = 0x00000003; 815 constexpr TPM_CAP TPM_CAP_AUDIT_COMMANDS = 0x00000004; 816 constexpr TPM_CAP TPM_CAP_PCRS = 0x00000005; 817 constexpr TPM_CAP TPM_CAP_TPM_PROPERTIES = 0x00000006; 818 constexpr TPM_CAP TPM_CAP_PCR_PROPERTIES = 0x00000007; 819 constexpr TPM_CAP TPM_CAP_ECC_CURVES = 0x00000008; 820 constexpr TPM_CAP TPM_CAP_LAST = 0x00000008; 821 constexpr TPM_CAP TPM_CAP_VENDOR_PROPERTY = 0x00000100; 822 constexpr TPM_PT TPM_PT_NONE = 0x00000000; 823 constexpr TPM_PT PT_GROUP = 0x00000100; 824 constexpr TPM_PT PT_FIXED = PT_GROUP * 1; 825 constexpr TPM_PT TPM_PT_FAMILY_INDICATOR = PT_FIXED + 0; 826 constexpr TPM_PT TPM_PT_LEVEL = PT_FIXED + 1; 827 constexpr TPM_PT TPM_PT_REVISION = PT_FIXED + 2; 828 constexpr TPM_PT TPM_PT_DAY_OF_YEAR = PT_FIXED + 3; 829 constexpr TPM_PT TPM_PT_YEAR = PT_FIXED + 4; 830 constexpr TPM_PT TPM_PT_MANUFACTURER = PT_FIXED + 5; 831 constexpr TPM_PT TPM_PT_VENDOR_STRING_1 = PT_FIXED + 6; 832 constexpr TPM_PT TPM_PT_VENDOR_STRING_2 = PT_FIXED + 7; 833 constexpr TPM_PT TPM_PT_VENDOR_STRING_3 = PT_FIXED + 8; 834 constexpr TPM_PT TPM_PT_VENDOR_STRING_4 = PT_FIXED + 9; 835 constexpr TPM_PT TPM_PT_VENDOR_TPM_TYPE = PT_FIXED + 10; 836 constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_1 = PT_FIXED + 11; 837 constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_2 = PT_FIXED + 12; 838 constexpr TPM_PT TPM_PT_INPUT_BUFFER = PT_FIXED + 13; 839 constexpr TPM_PT TPM_PT_HR_TRANSIENT_MIN = PT_FIXED + 14; 840 constexpr TPM_PT TPM_PT_HR_PERSISTENT_MIN = PT_FIXED + 15; 841 constexpr TPM_PT TPM_PT_HR_LOADED_MIN = PT_FIXED + 16; 842 constexpr TPM_PT TPM_PT_ACTIVE_SESSIONS_MAX = PT_FIXED + 17; 843 constexpr TPM_PT TPM_PT_PCR_COUNT = PT_FIXED + 18; 844 constexpr TPM_PT TPM_PT_PCR_SELECT_MIN = PT_FIXED + 19; 845 constexpr TPM_PT TPM_PT_CONTEXT_GAP_MAX = PT_FIXED + 20; 846 constexpr TPM_PT TPM_PT_NV_COUNTERS_MAX = PT_FIXED + 22; 847 constexpr TPM_PT TPM_PT_NV_INDEX_MAX = PT_FIXED + 23; 848 constexpr TPM_PT TPM_PT_MEMORY = PT_FIXED + 24; 849 constexpr TPM_PT TPM_PT_CLOCK_UPDATE = PT_FIXED + 25; 850 constexpr TPM_PT TPM_PT_CONTEXT_HASH = PT_FIXED + 26; 851 constexpr TPM_PT TPM_PT_CONTEXT_SYM = PT_FIXED + 27; 852 constexpr TPM_PT TPM_PT_CONTEXT_SYM_SIZE = PT_FIXED + 28; 853 constexpr TPM_PT TPM_PT_ORDERLY_COUNT = PT_FIXED + 29; 854 constexpr TPM_PT TPM_PT_MAX_COMMAND_SIZE = PT_FIXED + 30; 855 constexpr TPM_PT TPM_PT_MAX_RESPONSE_SIZE = PT_FIXED + 31; 856 constexpr TPM_PT TPM_PT_MAX_DIGEST = PT_FIXED + 32; 857 constexpr TPM_PT TPM_PT_MAX_OBJECT_CONTEXT = PT_FIXED + 33; 858 constexpr TPM_PT TPM_PT_MAX_SESSION_CONTEXT = PT_FIXED + 34; 859 constexpr TPM_PT TPM_PT_PS_FAMILY_INDICATOR = PT_FIXED + 35; 860 constexpr TPM_PT TPM_PT_PS_LEVEL = PT_FIXED + 36; 861 constexpr TPM_PT TPM_PT_PS_REVISION = PT_FIXED + 37; 862 constexpr TPM_PT TPM_PT_PS_DAY_OF_YEAR = PT_FIXED + 38; 863 constexpr TPM_PT TPM_PT_PS_YEAR = PT_FIXED + 39; 864 constexpr TPM_PT TPM_PT_SPLIT_MAX = PT_FIXED + 40; 865 constexpr TPM_PT TPM_PT_TOTAL_COMMANDS = PT_FIXED + 41; 866 constexpr TPM_PT TPM_PT_LIBRARY_COMMANDS = PT_FIXED + 42; 867 constexpr TPM_PT TPM_PT_VENDOR_COMMANDS = PT_FIXED + 43; 868 constexpr TPM_PT TPM_PT_NV_BUFFER_MAX = PT_FIXED + 44; 869 constexpr TPM_PT PT_VAR = PT_GROUP * 2; 870 constexpr TPM_PT TPM_PT_PERMANENT = PT_VAR + 0; 871 constexpr TPM_PT TPM_PT_STARTUP_CLEAR = PT_VAR + 1; 872 constexpr TPM_PT TPM_PT_HR_NV_INDEX = PT_VAR + 2; 873 constexpr TPM_PT TPM_PT_HR_LOADED = PT_VAR + 3; 874 constexpr TPM_PT TPM_PT_HR_LOADED_AVAIL = PT_VAR + 4; 875 constexpr TPM_PT TPM_PT_HR_ACTIVE = PT_VAR + 5; 876 constexpr TPM_PT TPM_PT_HR_ACTIVE_AVAIL = PT_VAR + 6; 877 constexpr TPM_PT TPM_PT_HR_TRANSIENT_AVAIL = PT_VAR + 7; 878 constexpr TPM_PT TPM_PT_HR_PERSISTENT = PT_VAR + 8; 879 constexpr TPM_PT TPM_PT_HR_PERSISTENT_AVAIL = PT_VAR + 9; 880 constexpr TPM_PT TPM_PT_NV_COUNTERS = PT_VAR + 10; 881 constexpr TPM_PT TPM_PT_NV_COUNTERS_AVAIL = PT_VAR + 11; 882 constexpr TPM_PT TPM_PT_ALGORITHM_SET = PT_VAR + 12; 883 constexpr TPM_PT TPM_PT_LOADED_CURVES = PT_VAR + 13; 884 constexpr TPM_PT TPM_PT_LOCKOUT_COUNTER = PT_VAR + 14; 885 constexpr TPM_PT TPM_PT_MAX_AUTH_FAIL = PT_VAR + 15; 886 constexpr TPM_PT TPM_PT_LOCKOUT_INTERVAL = PT_VAR + 16; 887 constexpr TPM_PT TPM_PT_LOCKOUT_RECOVERY = PT_VAR + 17; 888 constexpr TPM_PT TPM_PT_NV_WRITE_RECOVERY = PT_VAR + 18; 889 constexpr TPM_PT TPM_PT_AUDIT_COUNTER_0 = PT_VAR + 19; 890 constexpr TPM_PT TPM_PT_AUDIT_COUNTER_1 = PT_VAR + 20; 891 constexpr TPM_PT_PCR TPM_PT_PCR_FIRST = 0x00000000; 892 constexpr TPM_PT_PCR TPM_PT_PCR_SAVE = 0x00000000; 893 constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L0 = 0x00000001; 894 constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L0 = 0x00000002; 895 constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L1 = 0x00000003; 896 constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L1 = 0x00000004; 897 constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L2 = 0x00000005; 898 constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L2 = 0x00000006; 899 constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L3 = 0x00000007; 900 constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L3 = 0x00000008; 901 constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L4 = 0x00000009; 902 constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L4 = 0x0000000A; 903 constexpr TPM_PT_PCR TPM_PT_PCR_NO_INCREMENT = 0x00000011; 904 constexpr TPM_PT_PCR TPM_PT_PCR_DRTM_RESET = 0x00000012; 905 constexpr TPM_PT_PCR TPM_PT_PCR_POLICY = 0x00000013; 906 constexpr TPM_PT_PCR TPM_PT_PCR_AUTH = 0x00000014; 907 constexpr TPM_PT_PCR TPM_PT_PCR_LAST = 0x00000014; 908 constexpr TPM_PS TPM_PS_MAIN = 0x00000000; 909 constexpr TPM_PS TPM_PS_PC = 0x00000001; 910 constexpr TPM_PS TPM_PS_PDA = 0x00000002; 911 constexpr TPM_PS TPM_PS_CELL_PHONE = 0x00000003; 912 constexpr TPM_PS TPM_PS_SERVER = 0x00000004; 913 constexpr TPM_PS TPM_PS_PERIPHERAL = 0x00000005; 914 constexpr TPM_PS TPM_PS_TSS = 0x00000006; 915 constexpr TPM_PS TPM_PS_STORAGE = 0x00000007; 916 constexpr TPM_PS TPM_PS_AUTHENTICATION = 0x00000008; 917 constexpr TPM_PS TPM_PS_EMBEDDED = 0x00000009; 918 constexpr TPM_PS TPM_PS_HARDCOPY = 0x0000000A; 919 constexpr TPM_PS TPM_PS_INFRASTRUCTURE = 0x0000000B; 920 constexpr TPM_PS TPM_PS_VIRTUALIZATION = 0x0000000C; 921 constexpr TPM_PS TPM_PS_TNC = 0x0000000D; 922 constexpr TPM_PS TPM_PS_MULTI_TENANT = 0x0000000E; 923 constexpr TPM_PS TPM_PS_TC = 0x0000000F; 924 constexpr TPM_HT TPM_HT_PCR = 0x00; 925 constexpr TPM_HT TPM_HT_NV_INDEX = 0x01; 926 constexpr TPM_HT TPM_HT_HMAC_SESSION = 0x02; 927 constexpr TPM_HT TPM_HT_LOADED_SESSION = 0x02; 928 constexpr TPM_HT TPM_HT_POLICY_SESSION = 0x03; 929 constexpr TPM_HT TPM_HT_ACTIVE_SESSION = 0x03; 930 constexpr TPM_HT TPM_HT_PERMANENT = 0x40; 931 constexpr TPM_HT TPM_HT_TRANSIENT = 0x80; 932 constexpr TPM_HT TPM_HT_PERSISTENT = 0x81; 933 constexpr TPM_RH TPM_RH_FIRST = 0x40000000; 934 constexpr TPM_RH TPM_RH_SRK = 0x40000000; 935 constexpr TPM_RH TPM_RH_OWNER = 0x40000001; 936 constexpr TPM_RH TPM_RH_REVOKE = 0x40000002; 937 constexpr TPM_RH TPM_RH_TRANSPORT = 0x40000003; 938 constexpr TPM_RH TPM_RH_OPERATOR = 0x40000004; 939 constexpr TPM_RH TPM_RH_ADMIN = 0x40000005; 940 constexpr TPM_RH TPM_RH_EK = 0x40000006; 941 constexpr TPM_RH TPM_RH_NULL = 0x40000007; 942 constexpr TPM_RH TPM_RH_UNASSIGNED = 0x40000008; 943 constexpr TPM_RH TPM_RS_PW = 0x40000009; 944 constexpr TPM_RH TPM_RH_LOCKOUT = 0x4000000A; 945 constexpr TPM_RH TPM_RH_ENDORSEMENT = 0x4000000B; 946 constexpr TPM_RH TPM_RH_PLATFORM = 0x4000000C; 947 constexpr TPM_RH TPM_RH_PLATFORM_NV = 0x4000000D; 948 constexpr TPM_RH TPM_RH_LAST = 0x4000000D; 949 constexpr TPM_HC HR_HANDLE_MASK = 0x00FFFFFF; 950 constexpr TPM_HC HR_RANGE_MASK = 0xFF000000; 951 constexpr TPM_HC HR_SHIFT = 24; 952 constexpr TPM_HC HR_PCR = (TPM_HT_PCR << HR_SHIFT); 953 constexpr TPM_HC HR_HMAC_SESSION = (TPM_HT_HMAC_SESSION << HR_SHIFT); 954 constexpr TPM_HC HR_POLICY_SESSION = (TPM_HT_POLICY_SESSION << HR_SHIFT); 955 constexpr TPM_HC HR_TRANSIENT = (TPM_HT_TRANSIENT << HR_SHIFT); 956 constexpr TPM_HC HR_PERSISTENT = (TPM_HT_PERSISTENT << HR_SHIFT); 957 constexpr TPM_HC HR_NV_INDEX = (TPM_HT_NV_INDEX << HR_SHIFT); 958 constexpr TPM_HC HR_PERMANENT = (TPM_HT_PERMANENT << HR_SHIFT); 959 constexpr TPM_HC PCR_FIRST = (HR_PCR + 0); 960 constexpr TPM_HC PCR_LAST = (PCR_FIRST + IMPLEMENTATION_PCR - 1); 961 constexpr TPM_HC HMAC_SESSION_FIRST = (HR_HMAC_SESSION + 0); 962 constexpr TPM_HC HMAC_SESSION_LAST = 963 (HMAC_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1); 964 constexpr TPM_HC LOADED_SESSION_LAST = HMAC_SESSION_LAST; 965 constexpr TPM_HC POLICY_SESSION_FIRST = (HR_POLICY_SESSION + 0); 966 constexpr TPM_HC POLICY_SESSION_LAST = 967 (POLICY_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1); 968 constexpr TPM_HC TRANSIENT_FIRST = (HR_TRANSIENT + 0); 969 constexpr TPM_HC ACTIVE_SESSION_FIRST = POLICY_SESSION_FIRST; 970 constexpr TPM_HC ACTIVE_SESSION_LAST = POLICY_SESSION_LAST; 971 constexpr TPM_HC TRANSIENT_LAST = (TRANSIENT_FIRST + MAX_LOADED_OBJECTS - 1); 972 constexpr TPM_HC PERSISTENT_FIRST = (HR_PERSISTENT + 0); 973 constexpr TPM_HC PERSISTENT_LAST = (PERSISTENT_FIRST + 0x00FFFFFF); 974 constexpr TPM_HC PLATFORM_PERSISTENT = (PERSISTENT_FIRST + 0x00800000); 975 constexpr TPM_HC NV_INDEX_FIRST = (HR_NV_INDEX + 0); 976 constexpr TPM_HC NV_INDEX_LAST = (NV_INDEX_FIRST + 0x00FFFFFF); 977 constexpr TPM_HC PERMANENT_FIRST = TPM_RH_FIRST; 978 constexpr TPM_HC PERMANENT_LAST = TPM_RH_LAST; 979 980 struct TPMS_ALGORITHM_DESCRIPTION { 981 TPM_ALG_ID alg; 982 TPMA_ALGORITHM attributes; 983 }; 984 985 union TPMU_HA { 986 BYTE sha1[SHA1_DIGEST_SIZE]; 987 BYTE sha256[SHA256_DIGEST_SIZE]; 988 BYTE sm3_256[SM3_256_DIGEST_SIZE]; 989 BYTE sha384[SHA384_DIGEST_SIZE]; 990 BYTE sha512[SHA512_DIGEST_SIZE]; 991 }; 992 993 struct TPMT_HA { 994 TPMI_ALG_HASH hash_alg; 995 TPMU_HA digest; 996 }; 997 998 struct TPM2B_DIGEST { 999 UINT16 size; 1000 BYTE buffer[sizeof(TPMU_HA)]; 1001 }; 1002 1003 struct TPM2B_DATA { 1004 UINT16 size; 1005 BYTE buffer[sizeof(TPMT_HA)]; 1006 }; 1007 1008 struct TPM2B_EVENT { 1009 UINT16 size; 1010 BYTE buffer[1024]; 1011 }; 1012 1013 struct TPM2B_MAX_BUFFER { 1014 UINT16 size; 1015 BYTE buffer[MAX_DIGEST_BUFFER]; 1016 }; 1017 1018 struct TPM2B_MAX_NV_BUFFER { 1019 UINT16 size; 1020 BYTE buffer[MAX_NV_BUFFER_SIZE]; 1021 }; 1022 1023 struct TPM2B_TIMEOUT { 1024 UINT16 size; 1025 BYTE buffer[sizeof(UINT64)]; 1026 }; 1027 1028 struct TPM2B_IV { 1029 UINT16 size; 1030 BYTE buffer[MAX_SYM_BLOCK_SIZE]; 1031 }; 1032 1033 union TPMU_NAME { 1034 TPMT_HA digest; 1035 TPM_HANDLE handle; 1036 }; 1037 1038 struct TPM2B_NAME { 1039 UINT16 size; 1040 BYTE name[sizeof(TPMU_NAME)]; 1041 }; 1042 1043 struct TPMS_PCR_SELECT { 1044 UINT8 sizeof_select; 1045 BYTE pcr_select[PCR_SELECT_MAX]; 1046 }; 1047 1048 struct TPMS_PCR_SELECTION { 1049 TPMI_ALG_HASH hash; 1050 UINT8 sizeof_select; 1051 BYTE pcr_select[PCR_SELECT_MAX]; 1052 }; 1053 1054 struct TPMT_TK_CREATION { 1055 TPM_ST tag; 1056 TPMI_RH_HIERARCHY hierarchy; 1057 TPM2B_DIGEST digest; 1058 }; 1059 1060 struct TPMT_TK_VERIFIED { 1061 TPM_ST tag; 1062 TPMI_RH_HIERARCHY hierarchy; 1063 TPM2B_DIGEST digest; 1064 }; 1065 1066 struct TPMT_TK_AUTH { 1067 TPMI_RH_HIERARCHY hierarchy; 1068 TPM2B_DIGEST digest; 1069 }; 1070 1071 struct TPMT_TK_HASHCHECK { 1072 TPM_ST tag; 1073 TPMI_RH_HIERARCHY hierarchy; 1074 TPM2B_DIGEST digest; 1075 }; 1076 1077 struct TPMS_ALG_PROPERTY { 1078 TPM_ALG_ID alg; 1079 TPMA_ALGORITHM alg_properties; 1080 }; 1081 1082 struct TPMS_TAGGED_PROPERTY { 1083 TPM_PT property; 1084 UINT32 value; 1085 }; 1086 1087 struct TPMS_TAGGED_PCR_SELECT { 1088 TPM_PT tag; 1089 UINT8 sizeof_select; 1090 BYTE pcr_select[PCR_SELECT_MAX]; 1091 }; 1092 1093 struct TPML_CC { 1094 UINT32 count; 1095 TPM_CC command_codes[MAX_CAP_CC]; 1096 }; 1097 1098 struct TPML_CCA { 1099 UINT32 count; 1100 TPMA_CC command_attributes[MAX_CAP_CC]; 1101 }; 1102 1103 struct TPML_ALG { 1104 UINT32 count; 1105 TPM_ALG_ID algorithms[MAX_ALG_LIST_SIZE]; 1106 }; 1107 1108 struct TPML_HANDLE { 1109 UINT32 count; 1110 TPM_HANDLE handle[MAX_CAP_HANDLES]; 1111 }; 1112 1113 struct TPML_DIGEST { 1114 UINT32 count; 1115 TPM2B_DIGEST digests[8]; 1116 }; 1117 1118 struct TPML_DIGEST_VALUES { 1119 UINT32 count; 1120 TPMT_HA digests[HASH_COUNT]; 1121 }; 1122 1123 struct TPM2B_DIGEST_VALUES { 1124 UINT16 size; 1125 BYTE buffer[sizeof(TPML_DIGEST_VALUES)]; 1126 }; 1127 1128 struct TPML_PCR_SELECTION { 1129 UINT32 count; 1130 TPMS_PCR_SELECTION pcr_selections[HASH_COUNT]; 1131 }; 1132 1133 struct TPML_ALG_PROPERTY { 1134 UINT32 count; 1135 TPMS_ALG_PROPERTY alg_properties[MAX_CAP_ALGS]; 1136 }; 1137 1138 struct TPML_TAGGED_TPM_PROPERTY { 1139 UINT32 count; 1140 TPMS_TAGGED_PROPERTY tpm_property[MAX_TPM_PROPERTIES]; 1141 }; 1142 1143 struct TPML_TAGGED_PCR_PROPERTY { 1144 UINT32 count; 1145 TPMS_TAGGED_PCR_SELECT pcr_property[MAX_PCR_PROPERTIES]; 1146 }; 1147 1148 struct TPML_ECC_CURVE { 1149 UINT32 count; 1150 TPM_ECC_CURVE ecc_curves[MAX_ECC_CURVES]; 1151 }; 1152 1153 union TPMU_CAPABILITIES { 1154 TPML_ALG_PROPERTY algorithms; 1155 TPML_HANDLE handles; 1156 TPML_CCA command; 1157 TPML_CC pp_commands; 1158 TPML_CC audit_commands; 1159 TPML_PCR_SELECTION assigned_pcr; 1160 TPML_TAGGED_TPM_PROPERTY tpm_properties; 1161 TPML_TAGGED_PCR_PROPERTY pcr_properties; 1162 TPML_ECC_CURVE ecc_curves; 1163 }; 1164 1165 struct TPMS_CAPABILITY_DATA { 1166 TPM_CAP capability; 1167 TPMU_CAPABILITIES data; 1168 }; 1169 1170 struct TPMS_CLOCK_INFO { 1171 UINT64 clock; 1172 UINT32 reset_count; 1173 UINT32 restart_count; 1174 TPMI_YES_NO safe; 1175 }; 1176 1177 struct TPMS_TIME_INFO { 1178 UINT64 time; 1179 TPMS_CLOCK_INFO clock_info; 1180 }; 1181 1182 struct TPMS_TIME_ATTEST_INFO { 1183 TPMS_TIME_INFO time; 1184 UINT64 firmware_version; 1185 }; 1186 1187 struct TPMS_CERTIFY_INFO { 1188 TPM2B_NAME name; 1189 TPM2B_NAME qualified_name; 1190 }; 1191 1192 struct TPMS_QUOTE_INFO { 1193 TPML_PCR_SELECTION pcr_select; 1194 TPM2B_DIGEST pcr_digest; 1195 }; 1196 1197 struct TPMS_COMMAND_AUDIT_INFO { 1198 UINT64 audit_counter; 1199 TPM_ALG_ID digest_alg; 1200 TPM2B_DIGEST audit_digest; 1201 TPM2B_DIGEST command_digest; 1202 }; 1203 1204 struct TPMS_SESSION_AUDIT_INFO { 1205 TPMI_YES_NO exclusive_session; 1206 TPM2B_DIGEST session_digest; 1207 }; 1208 1209 struct TPMS_CREATION_INFO { 1210 TPM2B_NAME object_name; 1211 TPM2B_DIGEST creation_hash; 1212 }; 1213 1214 struct TPMS_NV_CERTIFY_INFO { 1215 TPM2B_NAME index_name; 1216 UINT16 offset; 1217 TPM2B_MAX_NV_BUFFER nv_contents; 1218 }; 1219 1220 union TPMU_ATTEST { 1221 TPMS_CERTIFY_INFO certify; 1222 TPMS_CREATION_INFO creation; 1223 TPMS_QUOTE_INFO quote; 1224 TPMS_COMMAND_AUDIT_INFO command_audit; 1225 TPMS_SESSION_AUDIT_INFO session_audit; 1226 TPMS_TIME_ATTEST_INFO time; 1227 TPMS_NV_CERTIFY_INFO nv; 1228 }; 1229 1230 struct TPMS_ATTEST { 1231 TPM_GENERATED magic; 1232 TPMI_ST_ATTEST type; 1233 TPM2B_NAME qualified_signer; 1234 TPM2B_DATA extra_data; 1235 TPMS_CLOCK_INFO clock_info; 1236 UINT64 firmware_version; 1237 TPMU_ATTEST attested; 1238 }; 1239 1240 struct TPM2B_ATTEST { 1241 UINT16 size; 1242 BYTE attestation_data[sizeof(TPMS_ATTEST)]; 1243 }; 1244 1245 struct TPMS_AUTH_COMMAND { 1246 TPMI_SH_AUTH_SESSION session_handle; 1247 TPM2B_NONCE nonce; 1248 TPMA_SESSION session_attributes; 1249 TPM2B_AUTH hmac; 1250 }; 1251 1252 struct TPMS_AUTH_RESPONSE { 1253 TPM2B_NONCE nonce; 1254 TPMA_SESSION session_attributes; 1255 TPM2B_AUTH hmac; 1256 }; 1257 1258 union TPMU_SYM_KEY_BITS { 1259 TPMI_AES_KEY_BITS aes; 1260 TPMI_SM4_KEY_BITS sm4; 1261 TPM_KEY_BITS sym; 1262 TPMI_ALG_HASH xor_; 1263 }; 1264 1265 union TPMU_SYM_MODE { 1266 TPMI_ALG_SYM_MODE aes; 1267 TPMI_ALG_SYM_MODE sm4; 1268 TPMI_ALG_SYM_MODE sym; 1269 }; 1270 1271 union TPMU_SYM_DETAILS {}; 1272 1273 struct TPMT_SYM_DEF { 1274 TPMI_ALG_SYM algorithm; 1275 TPMU_SYM_KEY_BITS key_bits; 1276 TPMU_SYM_MODE mode; 1277 TPMU_SYM_DETAILS details; 1278 }; 1279 1280 struct TPMT_SYM_DEF_OBJECT { 1281 TPMI_ALG_SYM_OBJECT algorithm; 1282 TPMU_SYM_KEY_BITS key_bits; 1283 TPMU_SYM_MODE mode; 1284 TPMU_SYM_DETAILS details; 1285 }; 1286 1287 struct TPM2B_SYM_KEY { 1288 UINT16 size; 1289 BYTE buffer[MAX_SYM_KEY_BYTES]; 1290 }; 1291 1292 struct TPMS_SYMCIPHER_PARMS { 1293 TPMT_SYM_DEF_OBJECT sym; 1294 }; 1295 1296 struct TPM2B_SENSITIVE_DATA { 1297 UINT16 size; 1298 BYTE buffer[MAX_SYM_DATA]; 1299 }; 1300 1301 struct TPMS_SENSITIVE_CREATE { 1302 TPM2B_AUTH user_auth; 1303 TPM2B_SENSITIVE_DATA data; 1304 }; 1305 1306 struct TPM2B_SENSITIVE_CREATE { 1307 UINT16 size; 1308 TPMS_SENSITIVE_CREATE sensitive; 1309 }; 1310 1311 struct TPMS_SCHEME_SIGHASH { 1312 TPMI_ALG_HASH hash_alg; 1313 }; 1314 1315 struct TPMS_SCHEME_XOR { 1316 TPMI_ALG_HASH hash_alg; 1317 TPMI_ALG_KDF kdf; 1318 }; 1319 1320 union TPMU_SCHEME_KEYEDHASH { 1321 TPMS_SCHEME_HMAC hmac; 1322 TPMS_SCHEME_XOR xor_; 1323 }; 1324 1325 struct TPMT_KEYEDHASH_SCHEME { 1326 TPMI_ALG_KEYEDHASH_SCHEME scheme; 1327 TPMU_SCHEME_KEYEDHASH details; 1328 }; 1329 1330 struct TPMS_SCHEME_ECDAA { 1331 TPMI_ALG_HASH hash_alg; 1332 UINT16 count; 1333 }; 1334 1335 union TPMU_SIG_SCHEME { 1336 TPMS_SCHEME_RSASSA rsassa; 1337 TPMS_SCHEME_RSAPSS rsapss; 1338 TPMS_SCHEME_ECDSA ecdsa; 1339 TPMS_SCHEME_SM2 sm2; 1340 TPMS_SCHEME_ECDAA ecdaa; 1341 TPMS_SCHEME_ECSCHNORR ec_schnorr; 1342 TPMS_SCHEME_HMAC hmac; 1343 TPMS_SCHEME_SIGHASH any; 1344 }; 1345 1346 struct TPMT_SIG_SCHEME { 1347 TPMI_ALG_SIG_SCHEME scheme; 1348 TPMU_SIG_SCHEME details; 1349 }; 1350 1351 struct TPMS_SCHEME_OAEP { 1352 TPMI_ALG_HASH hash_alg; 1353 }; 1354 1355 struct TPMS_SCHEME_ECDH { 1356 TPMI_ALG_HASH hash_alg; 1357 }; 1358 1359 struct TPMS_SCHEME_MGF1 { 1360 TPMI_ALG_HASH hash_alg; 1361 }; 1362 1363 struct TPMS_SCHEME_KDF1_SP800_56a { 1364 TPMI_ALG_HASH hash_alg; 1365 }; 1366 1367 struct TPMS_SCHEME_KDF2 { 1368 TPMI_ALG_HASH hash_alg; 1369 }; 1370 1371 struct TPMS_SCHEME_KDF1_SP800_108 { 1372 TPMI_ALG_HASH hash_alg; 1373 }; 1374 1375 union TPMU_KDF_SCHEME { 1376 TPMS_SCHEME_MGF1 mgf1; 1377 TPMS_SCHEME_KDF1_SP800_56a kdf1_sp800_56a; 1378 TPMS_SCHEME_KDF2 kdf2; 1379 TPMS_SCHEME_KDF1_SP800_108 kdf1_sp800_108; 1380 }; 1381 1382 struct TPMT_KDF_SCHEME { 1383 TPMI_ALG_KDF scheme; 1384 TPMU_KDF_SCHEME details; 1385 }; 1386 1387 union TPMU_ASYM_SCHEME { 1388 TPMS_SCHEME_RSASSA rsassa; 1389 TPMS_SCHEME_RSAPSS rsapss; 1390 TPMS_SCHEME_OAEP oaep; 1391 TPMS_SCHEME_ECDSA ecdsa; 1392 TPMS_SCHEME_SM2 sm2; 1393 TPMS_SCHEME_ECDAA ecdaa; 1394 TPMS_SCHEME_ECSCHNORR ec_schnorr; 1395 TPMS_SCHEME_ECDH ecdh; 1396 TPMS_SCHEME_SIGHASH any_sig; 1397 }; 1398 1399 struct TPMT_ASYM_SCHEME { 1400 TPMI_ALG_ASYM_SCHEME scheme; 1401 TPMU_ASYM_SCHEME details; 1402 }; 1403 1404 struct TPMT_RSA_SCHEME { 1405 TPMI_ALG_RSA_SCHEME scheme; 1406 TPMU_ASYM_SCHEME details; 1407 }; 1408 1409 struct TPMT_RSA_DECRYPT { 1410 TPMI_ALG_RSA_DECRYPT scheme; 1411 TPMU_ASYM_SCHEME details; 1412 }; 1413 1414 struct TPM2B_PUBLIC_KEY_RSA { 1415 UINT16 size; 1416 BYTE buffer[MAX_RSA_KEY_BYTES]; 1417 }; 1418 1419 struct TPM2B_PRIVATE_KEY_RSA { 1420 UINT16 size; 1421 BYTE buffer[MAX_RSA_KEY_BYTES / 2]; 1422 }; 1423 1424 struct TPM2B_ECC_PARAMETER { 1425 UINT16 size; 1426 BYTE buffer[MAX_ECC_KEY_BYTES]; 1427 }; 1428 1429 struct TPMS_ECC_POINT { 1430 TPM2B_ECC_PARAMETER x; 1431 TPM2B_ECC_PARAMETER y; 1432 }; 1433 1434 struct TPM2B_ECC_POINT { 1435 UINT16 size; 1436 TPMS_ECC_POINT point; 1437 }; 1438 1439 struct TPMT_ECC_SCHEME { 1440 TPMI_ALG_ECC_SCHEME scheme; 1441 TPMU_SIG_SCHEME details; 1442 }; 1443 1444 struct TPMS_ALGORITHM_DETAIL_ECC { 1445 TPM_ECC_CURVE curve_id; 1446 UINT16 key_size; 1447 TPMT_KDF_SCHEME kdf; 1448 TPMT_ECC_SCHEME sign; 1449 TPM2B_ECC_PARAMETER p; 1450 TPM2B_ECC_PARAMETER a; 1451 TPM2B_ECC_PARAMETER b; 1452 TPM2B_ECC_PARAMETER g_x; 1453 TPM2B_ECC_PARAMETER g_y; 1454 TPM2B_ECC_PARAMETER n; 1455 TPM2B_ECC_PARAMETER h; 1456 }; 1457 1458 struct TPMS_SIGNATURE_RSASSA { 1459 TPMI_ALG_HASH hash; 1460 TPM2B_PUBLIC_KEY_RSA sig; 1461 }; 1462 1463 struct TPMS_SIGNATURE_RSAPSS { 1464 TPMI_ALG_HASH hash; 1465 TPM2B_PUBLIC_KEY_RSA sig; 1466 }; 1467 1468 struct TPMS_SIGNATURE_ECDSA { 1469 TPMI_ALG_HASH hash; 1470 TPM2B_ECC_PARAMETER signature_r; 1471 TPM2B_ECC_PARAMETER signature_s; 1472 }; 1473 1474 union TPMU_SIGNATURE { 1475 TPMS_SIGNATURE_RSASSA rsassa; 1476 TPMS_SIGNATURE_RSAPSS rsapss; 1477 TPMS_SIGNATURE_ECDSA ecdsa; 1478 TPMS_SIGNATURE_ECDSA sm2; 1479 TPMS_SIGNATURE_ECDSA ecdaa; 1480 TPMS_SIGNATURE_ECDSA ecschnorr; 1481 TPMT_HA hmac; 1482 TPMS_SCHEME_SIGHASH any; 1483 }; 1484 1485 struct TPMT_SIGNATURE { 1486 TPMI_ALG_SIG_SCHEME sig_alg; 1487 TPMU_SIGNATURE signature; 1488 }; 1489 1490 union TPMU_ENCRYPTED_SECRET { 1491 BYTE ecc[sizeof(TPMS_ECC_POINT)]; 1492 BYTE rsa[MAX_RSA_KEY_BYTES]; 1493 BYTE symmetric[sizeof(TPM2B_DIGEST)]; 1494 BYTE keyed_hash[sizeof(TPM2B_DIGEST)]; 1495 }; 1496 1497 struct TPM2B_ENCRYPTED_SECRET { 1498 UINT16 size; 1499 BYTE secret[sizeof(TPMU_ENCRYPTED_SECRET)]; 1500 }; 1501 1502 struct TPMS_KEYEDHASH_PARMS { 1503 TPMT_KEYEDHASH_SCHEME scheme; 1504 }; 1505 1506 struct TPMS_ASYM_PARMS { 1507 TPMT_SYM_DEF_OBJECT symmetric; 1508 TPMT_ASYM_SCHEME scheme; 1509 }; 1510 1511 struct TPMS_RSA_PARMS { 1512 TPMT_SYM_DEF_OBJECT symmetric; 1513 TPMT_RSA_SCHEME scheme; 1514 TPMI_RSA_KEY_BITS key_bits; 1515 UINT32 exponent; 1516 }; 1517 1518 struct TPMS_ECC_PARMS { 1519 TPMT_SYM_DEF_OBJECT symmetric; 1520 TPMT_ECC_SCHEME scheme; 1521 TPMI_ECC_CURVE curve_id; 1522 TPMT_KDF_SCHEME kdf; 1523 }; 1524 1525 union TPMU_PUBLIC_PARMS { 1526 TPMS_KEYEDHASH_PARMS keyed_hash_detail; 1527 TPMS_SYMCIPHER_PARMS sym_detail; 1528 TPMS_RSA_PARMS rsa_detail; 1529 TPMS_ECC_PARMS ecc_detail; 1530 TPMS_ASYM_PARMS asym_detail; 1531 }; 1532 1533 struct TPMT_PUBLIC_PARMS { 1534 TPMI_ALG_PUBLIC type; 1535 TPMU_PUBLIC_PARMS parameters; 1536 }; 1537 1538 union TPMU_PUBLIC_ID { 1539 TPM2B_DIGEST keyed_hash; 1540 TPM2B_DIGEST sym; 1541 TPM2B_PUBLIC_KEY_RSA rsa; 1542 TPMS_ECC_POINT ecc; 1543 }; 1544 1545 struct TPMT_PUBLIC { 1546 TPMI_ALG_PUBLIC type; 1547 TPMI_ALG_HASH name_alg; 1548 TPMA_OBJECT object_attributes; 1549 TPM2B_DIGEST auth_policy; 1550 TPMU_PUBLIC_PARMS parameters; 1551 TPMU_PUBLIC_ID unique; 1552 }; 1553 1554 struct TPM2B_PUBLIC { 1555 UINT16 size; 1556 TPMT_PUBLIC public_area; 1557 }; 1558 1559 struct TPM2B_PRIVATE_VENDOR_SPECIFIC { 1560 UINT16 size; 1561 BYTE buffer[PRIVATE_VENDOR_SPECIFIC_BYTES]; 1562 }; 1563 1564 union TPMU_SENSITIVE_COMPOSITE { 1565 TPM2B_PRIVATE_KEY_RSA rsa; 1566 TPM2B_ECC_PARAMETER ecc; 1567 TPM2B_SENSITIVE_DATA bits; 1568 TPM2B_SYM_KEY sym; 1569 TPM2B_PRIVATE_VENDOR_SPECIFIC any; 1570 }; 1571 1572 struct TPMT_SENSITIVE { 1573 TPMI_ALG_PUBLIC sensitive_type; 1574 TPM2B_AUTH auth_value; 1575 TPM2B_DIGEST seed_value; 1576 TPMU_SENSITIVE_COMPOSITE sensitive; 1577 }; 1578 1579 struct TPM2B_SENSITIVE { 1580 UINT16 size; 1581 TPMT_SENSITIVE sensitive_area; 1582 }; 1583 1584 struct _PRIVATE { 1585 TPM2B_DIGEST integrity_outer; 1586 TPM2B_DIGEST integrity_inner; 1587 TPMT_SENSITIVE sensitive; 1588 }; 1589 1590 struct TPM2B_PRIVATE { 1591 UINT16 size; 1592 BYTE buffer[sizeof(_PRIVATE)]; 1593 }; 1594 1595 struct _ID_OBJECT { 1596 TPM2B_DIGEST integrity_hmac; 1597 TPM2B_DIGEST enc_identity; 1598 }; 1599 1600 struct TPM2B_ID_OBJECT { 1601 UINT16 size; 1602 BYTE credential[sizeof(_ID_OBJECT)]; 1603 }; 1604 1605 struct TPMS_NV_PUBLIC { 1606 TPMI_RH_NV_INDEX nv_index; 1607 TPMI_ALG_HASH name_alg; 1608 TPMA_NV attributes; 1609 TPM2B_DIGEST auth_policy; 1610 UINT16 data_size; 1611 }; 1612 1613 struct TPM2B_NV_PUBLIC { 1614 UINT16 size; 1615 TPMS_NV_PUBLIC nv_public; 1616 }; 1617 1618 struct TPM2B_CONTEXT_SENSITIVE { 1619 UINT16 size; 1620 BYTE buffer[MAX_CONTEXT_SIZE]; 1621 }; 1622 1623 struct TPMS_CONTEXT_DATA { 1624 TPM2B_DIGEST integrity; 1625 TPM2B_CONTEXT_SENSITIVE encrypted; 1626 }; 1627 1628 struct TPM2B_CONTEXT_DATA { 1629 UINT16 size; 1630 BYTE buffer[sizeof(TPMS_CONTEXT_DATA)]; 1631 }; 1632 1633 struct TPMS_CONTEXT { 1634 UINT64 sequence; 1635 TPMI_DH_CONTEXT saved_handle; 1636 TPMI_RH_HIERARCHY hierarchy; 1637 TPM2B_CONTEXT_DATA context_blob; 1638 }; 1639 1640 struct TPMS_CREATION_DATA { 1641 TPML_PCR_SELECTION pcr_select; 1642 TPM2B_DIGEST pcr_digest; 1643 TPMA_LOCALITY locality; 1644 TPM_ALG_ID parent_name_alg; 1645 TPM2B_NAME parent_name; 1646 TPM2B_NAME parent_qualified_name; 1647 TPM2B_DATA outside_info; 1648 }; 1649 1650 struct TPM2B_CREATION_DATA { 1651 UINT16 size; 1652 TPMS_CREATION_DATA creation_data; 1653 }; 1654 1655 TRUNKS_EXPORT size_t GetNumberOfRequestHandles(TPM_CC command_code); 1656 TRUNKS_EXPORT size_t GetNumberOfResponseHandles(TPM_CC command_code); 1657 1658 TRUNKS_EXPORT TPM_RC Serialize_uint8_t(const uint8_t& value, 1659 std::string* buffer); 1660 1661 TRUNKS_EXPORT TPM_RC Parse_uint8_t(std::string* buffer, 1662 uint8_t* value, 1663 std::string* value_bytes); 1664 1665 TRUNKS_EXPORT TPM_RC Serialize_int8_t(const int8_t& value, std::string* buffer); 1666 1667 TRUNKS_EXPORT TPM_RC Parse_int8_t(std::string* buffer, 1668 int8_t* value, 1669 std::string* value_bytes); 1670 1671 TRUNKS_EXPORT TPM_RC Serialize_int(const int& value, std::string* buffer); 1672 1673 TRUNKS_EXPORT TPM_RC Parse_int(std::string* buffer, 1674 int* value, 1675 std::string* value_bytes); 1676 1677 TRUNKS_EXPORT TPM_RC Serialize_uint16_t(const uint16_t& value, 1678 std::string* buffer); 1679 1680 TRUNKS_EXPORT TPM_RC Parse_uint16_t(std::string* buffer, 1681 uint16_t* value, 1682 std::string* value_bytes); 1683 1684 TRUNKS_EXPORT TPM_RC Serialize_int16_t(const int16_t& value, 1685 std::string* buffer); 1686 1687 TRUNKS_EXPORT TPM_RC Parse_int16_t(std::string* buffer, 1688 int16_t* value, 1689 std::string* value_bytes); 1690 1691 TRUNKS_EXPORT TPM_RC Serialize_uint32_t(const uint32_t& value, 1692 std::string* buffer); 1693 1694 TRUNKS_EXPORT TPM_RC Parse_uint32_t(std::string* buffer, 1695 uint32_t* value, 1696 std::string* value_bytes); 1697 1698 TRUNKS_EXPORT TPM_RC Serialize_int32_t(const int32_t& value, 1699 std::string* buffer); 1700 1701 TRUNKS_EXPORT TPM_RC Parse_int32_t(std::string* buffer, 1702 int32_t* value, 1703 std::string* value_bytes); 1704 1705 TRUNKS_EXPORT TPM_RC Serialize_uint64_t(const uint64_t& value, 1706 std::string* buffer); 1707 1708 TRUNKS_EXPORT TPM_RC Parse_uint64_t(std::string* buffer, 1709 uint64_t* value, 1710 std::string* value_bytes); 1711 1712 TRUNKS_EXPORT TPM_RC Serialize_int64_t(const int64_t& value, 1713 std::string* buffer); 1714 1715 TRUNKS_EXPORT TPM_RC Parse_int64_t(std::string* buffer, 1716 int64_t* value, 1717 std::string* value_bytes); 1718 1719 TRUNKS_EXPORT TPM_RC Serialize_UINT8(const UINT8& value, std::string* buffer); 1720 1721 TRUNKS_EXPORT TPM_RC Parse_UINT8(std::string* buffer, 1722 UINT8* value, 1723 std::string* value_bytes); 1724 1725 TRUNKS_EXPORT TPM_RC Serialize_BYTE(const BYTE& value, std::string* buffer); 1726 1727 TRUNKS_EXPORT TPM_RC Parse_BYTE(std::string* buffer, 1728 BYTE* value, 1729 std::string* value_bytes); 1730 1731 TRUNKS_EXPORT TPM_RC Serialize_INT8(const INT8& value, std::string* buffer); 1732 1733 TRUNKS_EXPORT TPM_RC Parse_INT8(std::string* buffer, 1734 INT8* value, 1735 std::string* value_bytes); 1736 1737 TRUNKS_EXPORT TPM_RC Serialize_BOOL(const BOOL& value, std::string* buffer); 1738 1739 TRUNKS_EXPORT TPM_RC Parse_BOOL(std::string* buffer, 1740 BOOL* value, 1741 std::string* value_bytes); 1742 1743 TRUNKS_EXPORT TPM_RC Serialize_UINT16(const UINT16& value, std::string* buffer); 1744 1745 TRUNKS_EXPORT TPM_RC Parse_UINT16(std::string* buffer, 1746 UINT16* value, 1747 std::string* value_bytes); 1748 1749 TRUNKS_EXPORT TPM_RC Serialize_INT16(const INT16& value, std::string* buffer); 1750 1751 TRUNKS_EXPORT TPM_RC Parse_INT16(std::string* buffer, 1752 INT16* value, 1753 std::string* value_bytes); 1754 1755 TRUNKS_EXPORT TPM_RC Serialize_UINT32(const UINT32& value, std::string* buffer); 1756 1757 TRUNKS_EXPORT TPM_RC Parse_UINT32(std::string* buffer, 1758 UINT32* value, 1759 std::string* value_bytes); 1760 1761 TRUNKS_EXPORT TPM_RC Serialize_INT32(const INT32& value, std::string* buffer); 1762 1763 TRUNKS_EXPORT TPM_RC Parse_INT32(std::string* buffer, 1764 INT32* value, 1765 std::string* value_bytes); 1766 1767 TRUNKS_EXPORT TPM_RC Serialize_UINT64(const UINT64& value, std::string* buffer); 1768 1769 TRUNKS_EXPORT TPM_RC Parse_UINT64(std::string* buffer, 1770 UINT64* value, 1771 std::string* value_bytes); 1772 1773 TRUNKS_EXPORT TPM_RC Serialize_INT64(const INT64& value, std::string* buffer); 1774 1775 TRUNKS_EXPORT TPM_RC Parse_INT64(std::string* buffer, 1776 INT64* value, 1777 std::string* value_bytes); 1778 1779 TRUNKS_EXPORT TPM_RC Serialize_TPM_ALGORITHM_ID(const TPM_ALGORITHM_ID& value, 1780 std::string* buffer); 1781 1782 TRUNKS_EXPORT TPM_RC Parse_TPM_ALGORITHM_ID(std::string* buffer, 1783 TPM_ALGORITHM_ID* value, 1784 std::string* value_bytes); 1785 1786 TRUNKS_EXPORT TPM_RC 1787 Serialize_TPM_MODIFIER_INDICATOR(const TPM_MODIFIER_INDICATOR& value, 1788 std::string* buffer); 1789 1790 TRUNKS_EXPORT TPM_RC Parse_TPM_MODIFIER_INDICATOR(std::string* buffer, 1791 TPM_MODIFIER_INDICATOR* value, 1792 std::string* value_bytes); 1793 1794 TRUNKS_EXPORT TPM_RC 1795 Serialize_TPM_AUTHORIZATION_SIZE(const TPM_AUTHORIZATION_SIZE& value, 1796 std::string* buffer); 1797 1798 TRUNKS_EXPORT TPM_RC Parse_TPM_AUTHORIZATION_SIZE(std::string* buffer, 1799 TPM_AUTHORIZATION_SIZE* value, 1800 std::string* value_bytes); 1801 1802 TRUNKS_EXPORT TPM_RC 1803 Serialize_TPM_PARAMETER_SIZE(const TPM_PARAMETER_SIZE& value, 1804 std::string* buffer); 1805 1806 TRUNKS_EXPORT TPM_RC Parse_TPM_PARAMETER_SIZE(std::string* buffer, 1807 TPM_PARAMETER_SIZE* value, 1808 std::string* value_bytes); 1809 1810 TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_SIZE(const TPM_KEY_SIZE& value, 1811 std::string* buffer); 1812 1813 TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_SIZE(std::string* buffer, 1814 TPM_KEY_SIZE* value, 1815 std::string* value_bytes); 1816 1817 TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_BITS(const TPM_KEY_BITS& value, 1818 std::string* buffer); 1819 1820 TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_BITS(std::string* buffer, 1821 TPM_KEY_BITS* value, 1822 std::string* value_bytes); 1823 1824 TRUNKS_EXPORT TPM_RC Serialize_TPM_HANDLE(const TPM_HANDLE& value, 1825 std::string* buffer); 1826 1827 TRUNKS_EXPORT TPM_RC Parse_TPM_HANDLE(std::string* buffer, 1828 TPM_HANDLE* value, 1829 std::string* value_bytes); 1830 1831 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NONCE(const TPM2B_NONCE& value, 1832 std::string* buffer); 1833 1834 TRUNKS_EXPORT TPM_RC Parse_TPM2B_NONCE(std::string* buffer, 1835 TPM2B_NONCE* value, 1836 std::string* value_bytes); 1837 1838 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_AUTH(const TPM2B_AUTH& value, 1839 std::string* buffer); 1840 1841 TRUNKS_EXPORT TPM_RC Parse_TPM2B_AUTH(std::string* buffer, 1842 TPM2B_AUTH* value, 1843 std::string* value_bytes); 1844 1845 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_OPERAND(const TPM2B_OPERAND& value, 1846 std::string* buffer); 1847 1848 TRUNKS_EXPORT TPM_RC Parse_TPM2B_OPERAND(std::string* buffer, 1849 TPM2B_OPERAND* value, 1850 std::string* value_bytes); 1851 1852 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_HMAC(const TPMS_SCHEME_HMAC& value, 1853 std::string* buffer); 1854 1855 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_HMAC(std::string* buffer, 1856 TPMS_SCHEME_HMAC* value, 1857 std::string* value_bytes); 1858 1859 TRUNKS_EXPORT TPM_RC 1860 Serialize_TPMS_SCHEME_RSASSA(const TPMS_SCHEME_RSASSA& value, 1861 std::string* buffer); 1862 1863 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSASSA(std::string* buffer, 1864 TPMS_SCHEME_RSASSA* value, 1865 std::string* value_bytes); 1866 1867 TRUNKS_EXPORT TPM_RC 1868 Serialize_TPMS_SCHEME_RSAPSS(const TPMS_SCHEME_RSAPSS& value, 1869 std::string* buffer); 1870 1871 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSAPSS(std::string* buffer, 1872 TPMS_SCHEME_RSAPSS* value, 1873 std::string* value_bytes); 1874 1875 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDSA(const TPMS_SCHEME_ECDSA& value, 1876 std::string* buffer); 1877 1878 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDSA(std::string* buffer, 1879 TPMS_SCHEME_ECDSA* value, 1880 std::string* value_bytes); 1881 1882 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_SM2(const TPMS_SCHEME_SM2& value, 1883 std::string* buffer); 1884 1885 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SM2(std::string* buffer, 1886 TPMS_SCHEME_SM2* value, 1887 std::string* value_bytes); 1888 1889 TRUNKS_EXPORT TPM_RC 1890 Serialize_TPMS_SCHEME_ECSCHNORR(const TPMS_SCHEME_ECSCHNORR& value, 1891 std::string* buffer); 1892 1893 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECSCHNORR(std::string* buffer, 1894 TPMS_SCHEME_ECSCHNORR* value, 1895 std::string* value_bytes); 1896 1897 TRUNKS_EXPORT TPM_RC Serialize_TPMI_YES_NO(const TPMI_YES_NO& value, 1898 std::string* buffer); 1899 1900 TRUNKS_EXPORT TPM_RC Parse_TPMI_YES_NO(std::string* buffer, 1901 TPMI_YES_NO* value, 1902 std::string* value_bytes); 1903 1904 TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_OBJECT(const TPMI_DH_OBJECT& value, 1905 std::string* buffer); 1906 1907 TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_OBJECT(std::string* buffer, 1908 TPMI_DH_OBJECT* value, 1909 std::string* value_bytes); 1910 1911 TRUNKS_EXPORT TPM_RC 1912 Serialize_TPMI_DH_PERSISTENT(const TPMI_DH_PERSISTENT& value, 1913 std::string* buffer); 1914 1915 TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PERSISTENT(std::string* buffer, 1916 TPMI_DH_PERSISTENT* value, 1917 std::string* value_bytes); 1918 1919 TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_ENTITY(const TPMI_DH_ENTITY& value, 1920 std::string* buffer); 1921 1922 TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_ENTITY(std::string* buffer, 1923 TPMI_DH_ENTITY* value, 1924 std::string* value_bytes); 1925 1926 TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_PCR(const TPMI_DH_PCR& value, 1927 std::string* buffer); 1928 1929 TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PCR(std::string* buffer, 1930 TPMI_DH_PCR* value, 1931 std::string* value_bytes); 1932 1933 TRUNKS_EXPORT TPM_RC 1934 Serialize_TPMI_SH_AUTH_SESSION(const TPMI_SH_AUTH_SESSION& value, 1935 std::string* buffer); 1936 1937 TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_AUTH_SESSION(std::string* buffer, 1938 TPMI_SH_AUTH_SESSION* value, 1939 std::string* value_bytes); 1940 1941 TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_HMAC(const TPMI_SH_HMAC& value, 1942 std::string* buffer); 1943 1944 TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_HMAC(std::string* buffer, 1945 TPMI_SH_HMAC* value, 1946 std::string* value_bytes); 1947 1948 TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_POLICY(const TPMI_SH_POLICY& value, 1949 std::string* buffer); 1950 1951 TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_POLICY(std::string* buffer, 1952 TPMI_SH_POLICY* value, 1953 std::string* value_bytes); 1954 1955 TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_CONTEXT(const TPMI_DH_CONTEXT& value, 1956 std::string* buffer); 1957 1958 TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_CONTEXT(std::string* buffer, 1959 TPMI_DH_CONTEXT* value, 1960 std::string* value_bytes); 1961 1962 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_HIERARCHY(const TPMI_RH_HIERARCHY& value, 1963 std::string* buffer); 1964 1965 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY(std::string* buffer, 1966 TPMI_RH_HIERARCHY* value, 1967 std::string* value_bytes); 1968 1969 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_ENABLES(const TPMI_RH_ENABLES& value, 1970 std::string* buffer); 1971 1972 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENABLES(std::string* buffer, 1973 TPMI_RH_ENABLES* value, 1974 std::string* value_bytes); 1975 1976 TRUNKS_EXPORT TPM_RC 1977 Serialize_TPMI_RH_HIERARCHY_AUTH(const TPMI_RH_HIERARCHY_AUTH& value, 1978 std::string* buffer); 1979 1980 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY_AUTH(std::string* buffer, 1981 TPMI_RH_HIERARCHY_AUTH* value, 1982 std::string* value_bytes); 1983 1984 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PLATFORM(const TPMI_RH_PLATFORM& value, 1985 std::string* buffer); 1986 1987 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PLATFORM(std::string* buffer, 1988 TPMI_RH_PLATFORM* value, 1989 std::string* value_bytes); 1990 1991 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_OWNER(const TPMI_RH_OWNER& value, 1992 std::string* buffer); 1993 1994 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_OWNER(std::string* buffer, 1995 TPMI_RH_OWNER* value, 1996 std::string* value_bytes); 1997 1998 TRUNKS_EXPORT TPM_RC 1999 Serialize_TPMI_RH_ENDORSEMENT(const TPMI_RH_ENDORSEMENT& value, 2000 std::string* buffer); 2001 2002 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENDORSEMENT(std::string* buffer, 2003 TPMI_RH_ENDORSEMENT* value, 2004 std::string* value_bytes); 2005 2006 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PROVISION(const TPMI_RH_PROVISION& value, 2007 std::string* buffer); 2008 2009 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PROVISION(std::string* buffer, 2010 TPMI_RH_PROVISION* value, 2011 std::string* value_bytes); 2012 2013 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_CLEAR(const TPMI_RH_CLEAR& value, 2014 std::string* buffer); 2015 2016 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_CLEAR(std::string* buffer, 2017 TPMI_RH_CLEAR* value, 2018 std::string* value_bytes); 2019 2020 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_AUTH(const TPMI_RH_NV_AUTH& value, 2021 std::string* buffer); 2022 2023 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_AUTH(std::string* buffer, 2024 TPMI_RH_NV_AUTH* value, 2025 std::string* value_bytes); 2026 2027 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_LOCKOUT(const TPMI_RH_LOCKOUT& value, 2028 std::string* buffer); 2029 2030 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_LOCKOUT(std::string* buffer, 2031 TPMI_RH_LOCKOUT* value, 2032 std::string* value_bytes); 2033 2034 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_INDEX(const TPMI_RH_NV_INDEX& value, 2035 std::string* buffer); 2036 2037 TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_INDEX(std::string* buffer, 2038 TPMI_RH_NV_INDEX* value, 2039 std::string* value_bytes); 2040 2041 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_HASH(const TPMI_ALG_HASH& value, 2042 std::string* buffer); 2043 2044 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_HASH(std::string* buffer, 2045 TPMI_ALG_HASH* value, 2046 std::string* value_bytes); 2047 2048 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ASYM(const TPMI_ALG_ASYM& value, 2049 std::string* buffer); 2050 2051 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM(std::string* buffer, 2052 TPMI_ALG_ASYM* value, 2053 std::string* value_bytes); 2054 2055 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM(const TPMI_ALG_SYM& value, 2056 std::string* buffer); 2057 2058 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM(std::string* buffer, 2059 TPMI_ALG_SYM* value, 2060 std::string* value_bytes); 2061 2062 TRUNKS_EXPORT TPM_RC 2063 Serialize_TPMI_ALG_SYM_OBJECT(const TPMI_ALG_SYM_OBJECT& value, 2064 std::string* buffer); 2065 2066 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_OBJECT(std::string* buffer, 2067 TPMI_ALG_SYM_OBJECT* value, 2068 std::string* value_bytes); 2069 2070 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM_MODE(const TPMI_ALG_SYM_MODE& value, 2071 std::string* buffer); 2072 2073 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_MODE(std::string* buffer, 2074 TPMI_ALG_SYM_MODE* value, 2075 std::string* value_bytes); 2076 2077 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_KDF(const TPMI_ALG_KDF& value, 2078 std::string* buffer); 2079 2080 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_KDF(std::string* buffer, 2081 TPMI_ALG_KDF* value, 2082 std::string* value_bytes); 2083 2084 TRUNKS_EXPORT TPM_RC 2085 Serialize_TPMI_ALG_SIG_SCHEME(const TPMI_ALG_SIG_SCHEME& value, 2086 std::string* buffer); 2087 2088 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SIG_SCHEME(std::string* buffer, 2089 TPMI_ALG_SIG_SCHEME* value, 2090 std::string* value_bytes); 2091 2092 TRUNKS_EXPORT TPM_RC 2093 Serialize_TPMI_ECC_KEY_EXCHANGE(const TPMI_ECC_KEY_EXCHANGE& value, 2094 std::string* buffer); 2095 2096 TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_KEY_EXCHANGE(std::string* buffer, 2097 TPMI_ECC_KEY_EXCHANGE* value, 2098 std::string* value_bytes); 2099 2100 TRUNKS_EXPORT TPM_RC 2101 Serialize_TPMI_ST_COMMAND_TAG(const TPMI_ST_COMMAND_TAG& value, 2102 std::string* buffer); 2103 2104 TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_COMMAND_TAG(std::string* buffer, 2105 TPMI_ST_COMMAND_TAG* value, 2106 std::string* value_bytes); 2107 2108 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ST_ATTEST(const TPMI_ST_ATTEST& value, 2109 std::string* buffer); 2110 2111 TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_ATTEST(std::string* buffer, 2112 TPMI_ST_ATTEST* value, 2113 std::string* value_bytes); 2114 2115 TRUNKS_EXPORT TPM_RC Serialize_TPMI_AES_KEY_BITS(const TPMI_AES_KEY_BITS& value, 2116 std::string* buffer); 2117 2118 TRUNKS_EXPORT TPM_RC Parse_TPMI_AES_KEY_BITS(std::string* buffer, 2119 TPMI_AES_KEY_BITS* value, 2120 std::string* value_bytes); 2121 2122 TRUNKS_EXPORT TPM_RC Serialize_TPMI_SM4_KEY_BITS(const TPMI_SM4_KEY_BITS& value, 2123 std::string* buffer); 2124 2125 TRUNKS_EXPORT TPM_RC Parse_TPMI_SM4_KEY_BITS(std::string* buffer, 2126 TPMI_SM4_KEY_BITS* value, 2127 std::string* value_bytes); 2128 2129 TRUNKS_EXPORT TPM_RC 2130 Serialize_TPMI_ALG_KEYEDHASH_SCHEME(const TPMI_ALG_KEYEDHASH_SCHEME& value, 2131 std::string* buffer); 2132 2133 TRUNKS_EXPORT TPM_RC 2134 Parse_TPMI_ALG_KEYEDHASH_SCHEME(std::string* buffer, 2135 TPMI_ALG_KEYEDHASH_SCHEME* value, 2136 std::string* value_bytes); 2137 2138 TRUNKS_EXPORT TPM_RC 2139 Serialize_TPMI_ALG_ASYM_SCHEME(const TPMI_ALG_ASYM_SCHEME& value, 2140 std::string* buffer); 2141 2142 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM_SCHEME(std::string* buffer, 2143 TPMI_ALG_ASYM_SCHEME* value, 2144 std::string* value_bytes); 2145 2146 TRUNKS_EXPORT TPM_RC 2147 Serialize_TPMI_ALG_RSA_SCHEME(const TPMI_ALG_RSA_SCHEME& value, 2148 std::string* buffer); 2149 2150 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_SCHEME(std::string* buffer, 2151 TPMI_ALG_RSA_SCHEME* value, 2152 std::string* value_bytes); 2153 2154 TRUNKS_EXPORT TPM_RC 2155 Serialize_TPMI_ALG_RSA_DECRYPT(const TPMI_ALG_RSA_DECRYPT& value, 2156 std::string* buffer); 2157 2158 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_DECRYPT(std::string* buffer, 2159 TPMI_ALG_RSA_DECRYPT* value, 2160 std::string* value_bytes); 2161 2162 TRUNKS_EXPORT TPM_RC Serialize_TPMI_RSA_KEY_BITS(const TPMI_RSA_KEY_BITS& value, 2163 std::string* buffer); 2164 2165 TRUNKS_EXPORT TPM_RC Parse_TPMI_RSA_KEY_BITS(std::string* buffer, 2166 TPMI_RSA_KEY_BITS* value, 2167 std::string* value_bytes); 2168 2169 TRUNKS_EXPORT TPM_RC 2170 Serialize_TPMI_ALG_ECC_SCHEME(const TPMI_ALG_ECC_SCHEME& value, 2171 std::string* buffer); 2172 2173 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ECC_SCHEME(std::string* buffer, 2174 TPMI_ALG_ECC_SCHEME* value, 2175 std::string* value_bytes); 2176 2177 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ECC_CURVE(const TPMI_ECC_CURVE& value, 2178 std::string* buffer); 2179 2180 TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_CURVE(std::string* buffer, 2181 TPMI_ECC_CURVE* value, 2182 std::string* value_bytes); 2183 2184 TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_PUBLIC(const TPMI_ALG_PUBLIC& value, 2185 std::string* buffer); 2186 2187 TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_PUBLIC(std::string* buffer, 2188 TPMI_ALG_PUBLIC* value, 2189 std::string* value_bytes); 2190 2191 TRUNKS_EXPORT TPM_RC Serialize_TPMA_ALGORITHM(const TPMA_ALGORITHM& value, 2192 std::string* buffer); 2193 2194 TRUNKS_EXPORT TPM_RC Parse_TPMA_ALGORITHM(std::string* buffer, 2195 TPMA_ALGORITHM* value, 2196 std::string* value_bytes); 2197 2198 TRUNKS_EXPORT TPM_RC Serialize_TPMA_OBJECT(const TPMA_OBJECT& value, 2199 std::string* buffer); 2200 2201 TRUNKS_EXPORT TPM_RC Parse_TPMA_OBJECT(std::string* buffer, 2202 TPMA_OBJECT* value, 2203 std::string* value_bytes); 2204 2205 TRUNKS_EXPORT TPM_RC Serialize_TPMA_SESSION(const TPMA_SESSION& value, 2206 std::string* buffer); 2207 2208 TRUNKS_EXPORT TPM_RC Parse_TPMA_SESSION(std::string* buffer, 2209 TPMA_SESSION* value, 2210 std::string* value_bytes); 2211 2212 TRUNKS_EXPORT TPM_RC Serialize_TPMA_LOCALITY(const TPMA_LOCALITY& value, 2213 std::string* buffer); 2214 2215 TRUNKS_EXPORT TPM_RC Parse_TPMA_LOCALITY(std::string* buffer, 2216 TPMA_LOCALITY* value, 2217 std::string* value_bytes); 2218 2219 TRUNKS_EXPORT TPM_RC Serialize_TPMA_PERMANENT(const TPMA_PERMANENT& value, 2220 std::string* buffer); 2221 2222 TRUNKS_EXPORT TPM_RC Parse_TPMA_PERMANENT(std::string* buffer, 2223 TPMA_PERMANENT* value, 2224 std::string* value_bytes); 2225 2226 TRUNKS_EXPORT TPM_RC 2227 Serialize_TPMA_STARTUP_CLEAR(const TPMA_STARTUP_CLEAR& value, 2228 std::string* buffer); 2229 2230 TRUNKS_EXPORT TPM_RC Parse_TPMA_STARTUP_CLEAR(std::string* buffer, 2231 TPMA_STARTUP_CLEAR* value, 2232 std::string* value_bytes); 2233 2234 TRUNKS_EXPORT TPM_RC Serialize_TPMA_MEMORY(const TPMA_MEMORY& value, 2235 std::string* buffer); 2236 2237 TRUNKS_EXPORT TPM_RC Parse_TPMA_MEMORY(std::string* buffer, 2238 TPMA_MEMORY* value, 2239 std::string* value_bytes); 2240 2241 TRUNKS_EXPORT TPM_RC Serialize_TPMA_CC(const TPMA_CC& value, 2242 std::string* buffer); 2243 2244 TRUNKS_EXPORT TPM_RC Parse_TPMA_CC(std::string* buffer, 2245 TPMA_CC* value, 2246 std::string* value_bytes); 2247 2248 TRUNKS_EXPORT TPM_RC Serialize_TPM_NV_INDEX(const TPM_NV_INDEX& value, 2249 std::string* buffer); 2250 2251 TRUNKS_EXPORT TPM_RC Parse_TPM_NV_INDEX(std::string* buffer, 2252 TPM_NV_INDEX* value, 2253 std::string* value_bytes); 2254 2255 TRUNKS_EXPORT TPM_RC Serialize_TPMA_NV(const TPMA_NV& value, 2256 std::string* buffer); 2257 2258 TRUNKS_EXPORT TPM_RC Parse_TPMA_NV(std::string* buffer, 2259 TPMA_NV* value, 2260 std::string* value_bytes); 2261 2262 TRUNKS_EXPORT TPM_RC Serialize_TPM_SPEC(const TPM_SPEC& value, 2263 std::string* buffer); 2264 2265 TRUNKS_EXPORT TPM_RC Parse_TPM_SPEC(std::string* buffer, 2266 TPM_SPEC* value, 2267 std::string* value_bytes); 2268 2269 TRUNKS_EXPORT TPM_RC Serialize_TPM_GENERATED(const TPM_GENERATED& value, 2270 std::string* buffer); 2271 2272 TRUNKS_EXPORT TPM_RC Parse_TPM_GENERATED(std::string* buffer, 2273 TPM_GENERATED* value, 2274 std::string* value_bytes); 2275 2276 TRUNKS_EXPORT TPM_RC Serialize_TPM_ALG_ID(const TPM_ALG_ID& value, 2277 std::string* buffer); 2278 2279 TRUNKS_EXPORT TPM_RC Parse_TPM_ALG_ID(std::string* buffer, 2280 TPM_ALG_ID* value, 2281 std::string* value_bytes); 2282 2283 TRUNKS_EXPORT TPM_RC Serialize_TPM_ECC_CURVE(const TPM_ECC_CURVE& value, 2284 std::string* buffer); 2285 2286 TRUNKS_EXPORT TPM_RC Parse_TPM_ECC_CURVE(std::string* buffer, 2287 TPM_ECC_CURVE* value, 2288 std::string* value_bytes); 2289 2290 TRUNKS_EXPORT TPM_RC Serialize_TPM_CC(const TPM_CC& value, std::string* buffer); 2291 2292 TRUNKS_EXPORT TPM_RC Parse_TPM_CC(std::string* buffer, 2293 TPM_CC* value, 2294 std::string* value_bytes); 2295 2296 TRUNKS_EXPORT TPM_RC Serialize_TPM_RC(const TPM_RC& value, std::string* buffer); 2297 2298 TRUNKS_EXPORT TPM_RC Parse_TPM_RC(std::string* buffer, 2299 TPM_RC* value, 2300 std::string* value_bytes); 2301 2302 TRUNKS_EXPORT TPM_RC Serialize_TPM_CLOCK_ADJUST(const TPM_CLOCK_ADJUST& value, 2303 std::string* buffer); 2304 2305 TRUNKS_EXPORT TPM_RC Parse_TPM_CLOCK_ADJUST(std::string* buffer, 2306 TPM_CLOCK_ADJUST* value, 2307 std::string* value_bytes); 2308 2309 TRUNKS_EXPORT TPM_RC Serialize_TPM_EO(const TPM_EO& value, std::string* buffer); 2310 2311 TRUNKS_EXPORT TPM_RC Parse_TPM_EO(std::string* buffer, 2312 TPM_EO* value, 2313 std::string* value_bytes); 2314 2315 TRUNKS_EXPORT TPM_RC Serialize_TPM_ST(const TPM_ST& value, std::string* buffer); 2316 2317 TRUNKS_EXPORT TPM_RC Parse_TPM_ST(std::string* buffer, 2318 TPM_ST* value, 2319 std::string* value_bytes); 2320 2321 TRUNKS_EXPORT TPM_RC Serialize_TPM_SU(const TPM_SU& value, std::string* buffer); 2322 2323 TRUNKS_EXPORT TPM_RC Parse_TPM_SU(std::string* buffer, 2324 TPM_SU* value, 2325 std::string* value_bytes); 2326 2327 TRUNKS_EXPORT TPM_RC Serialize_TPM_SE(const TPM_SE& value, std::string* buffer); 2328 2329 TRUNKS_EXPORT TPM_RC Parse_TPM_SE(std::string* buffer, 2330 TPM_SE* value, 2331 std::string* value_bytes); 2332 2333 TRUNKS_EXPORT TPM_RC Serialize_TPM_CAP(const TPM_CAP& value, 2334 std::string* buffer); 2335 2336 TRUNKS_EXPORT TPM_RC Parse_TPM_CAP(std::string* buffer, 2337 TPM_CAP* value, 2338 std::string* value_bytes); 2339 2340 TRUNKS_EXPORT TPM_RC Serialize_TPM_PT(const TPM_PT& value, std::string* buffer); 2341 2342 TRUNKS_EXPORT TPM_RC Parse_TPM_PT(std::string* buffer, 2343 TPM_PT* value, 2344 std::string* value_bytes); 2345 2346 TRUNKS_EXPORT TPM_RC Serialize_TPM_PT_PCR(const TPM_PT_PCR& value, 2347 std::string* buffer); 2348 2349 TRUNKS_EXPORT TPM_RC Parse_TPM_PT_PCR(std::string* buffer, 2350 TPM_PT_PCR* value, 2351 std::string* value_bytes); 2352 2353 TRUNKS_EXPORT TPM_RC Serialize_TPM_PS(const TPM_PS& value, std::string* buffer); 2354 2355 TRUNKS_EXPORT TPM_RC Parse_TPM_PS(std::string* buffer, 2356 TPM_PS* value, 2357 std::string* value_bytes); 2358 2359 TRUNKS_EXPORT TPM_RC Serialize_TPM_HT(const TPM_HT& value, std::string* buffer); 2360 2361 TRUNKS_EXPORT TPM_RC Parse_TPM_HT(std::string* buffer, 2362 TPM_HT* value, 2363 std::string* value_bytes); 2364 2365 TRUNKS_EXPORT TPM_RC Serialize_TPM_RH(const TPM_RH& value, std::string* buffer); 2366 2367 TRUNKS_EXPORT TPM_RC Parse_TPM_RH(std::string* buffer, 2368 TPM_RH* value, 2369 std::string* value_bytes); 2370 2371 TRUNKS_EXPORT TPM_RC Serialize_TPM_HC(const TPM_HC& value, std::string* buffer); 2372 2373 TRUNKS_EXPORT TPM_RC Parse_TPM_HC(std::string* buffer, 2374 TPM_HC* value, 2375 std::string* value_bytes); 2376 2377 TRUNKS_EXPORT TPM_RC 2378 Serialize_TPMS_ALGORITHM_DESCRIPTION(const TPMS_ALGORITHM_DESCRIPTION& value, 2379 std::string* buffer); 2380 2381 TRUNKS_EXPORT TPM_RC 2382 Parse_TPMS_ALGORITHM_DESCRIPTION(std::string* buffer, 2383 TPMS_ALGORITHM_DESCRIPTION* value, 2384 std::string* value_bytes); 2385 2386 TRUNKS_EXPORT TPM_RC Serialize_TPMT_HA(const TPMT_HA& value, 2387 std::string* buffer); 2388 2389 TRUNKS_EXPORT TPM_RC Parse_TPMT_HA(std::string* buffer, 2390 TPMT_HA* value, 2391 std::string* value_bytes); 2392 2393 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DIGEST(const TPM2B_DIGEST& value, 2394 std::string* buffer); 2395 2396 TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST(std::string* buffer, 2397 TPM2B_DIGEST* value, 2398 std::string* value_bytes); 2399 2400 TRUNKS_EXPORT TPM2B_DIGEST Make_TPM2B_DIGEST(const std::string& bytes); 2401 TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST(const TPM2B_DIGEST& tpm2b); 2402 2403 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DATA(const TPM2B_DATA& value, 2404 std::string* buffer); 2405 2406 TRUNKS_EXPORT TPM_RC Parse_TPM2B_DATA(std::string* buffer, 2407 TPM2B_DATA* value, 2408 std::string* value_bytes); 2409 2410 TRUNKS_EXPORT TPM2B_DATA Make_TPM2B_DATA(const std::string& bytes); 2411 TRUNKS_EXPORT std::string StringFrom_TPM2B_DATA(const TPM2B_DATA& tpm2b); 2412 2413 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_EVENT(const TPM2B_EVENT& value, 2414 std::string* buffer); 2415 2416 TRUNKS_EXPORT TPM_RC Parse_TPM2B_EVENT(std::string* buffer, 2417 TPM2B_EVENT* value, 2418 std::string* value_bytes); 2419 2420 TRUNKS_EXPORT TPM2B_EVENT Make_TPM2B_EVENT(const std::string& bytes); 2421 TRUNKS_EXPORT std::string StringFrom_TPM2B_EVENT(const TPM2B_EVENT& tpm2b); 2422 2423 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_MAX_BUFFER(const TPM2B_MAX_BUFFER& value, 2424 std::string* buffer); 2425 2426 TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_BUFFER(std::string* buffer, 2427 TPM2B_MAX_BUFFER* value, 2428 std::string* value_bytes); 2429 2430 TRUNKS_EXPORT TPM2B_MAX_BUFFER Make_TPM2B_MAX_BUFFER(const std::string& bytes); 2431 TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_BUFFER( 2432 const TPM2B_MAX_BUFFER& tpm2b); 2433 2434 TRUNKS_EXPORT TPM_RC 2435 Serialize_TPM2B_MAX_NV_BUFFER(const TPM2B_MAX_NV_BUFFER& value, 2436 std::string* buffer); 2437 2438 TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_NV_BUFFER(std::string* buffer, 2439 TPM2B_MAX_NV_BUFFER* value, 2440 std::string* value_bytes); 2441 2442 TRUNKS_EXPORT TPM2B_MAX_NV_BUFFER 2443 Make_TPM2B_MAX_NV_BUFFER(const std::string& bytes); 2444 TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_NV_BUFFER( 2445 const TPM2B_MAX_NV_BUFFER& tpm2b); 2446 2447 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& value, 2448 std::string* buffer); 2449 2450 TRUNKS_EXPORT TPM_RC Parse_TPM2B_TIMEOUT(std::string* buffer, 2451 TPM2B_TIMEOUT* value, 2452 std::string* value_bytes); 2453 2454 TRUNKS_EXPORT TPM2B_TIMEOUT Make_TPM2B_TIMEOUT(const std::string& bytes); 2455 TRUNKS_EXPORT std::string StringFrom_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& tpm2b); 2456 2457 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_IV(const TPM2B_IV& value, 2458 std::string* buffer); 2459 2460 TRUNKS_EXPORT TPM_RC Parse_TPM2B_IV(std::string* buffer, 2461 TPM2B_IV* value, 2462 std::string* value_bytes); 2463 2464 TRUNKS_EXPORT TPM2B_IV Make_TPM2B_IV(const std::string& bytes); 2465 TRUNKS_EXPORT std::string StringFrom_TPM2B_IV(const TPM2B_IV& tpm2b); 2466 2467 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NAME(const TPM2B_NAME& value, 2468 std::string* buffer); 2469 2470 TRUNKS_EXPORT TPM_RC Parse_TPM2B_NAME(std::string* buffer, 2471 TPM2B_NAME* value, 2472 std::string* value_bytes); 2473 2474 TRUNKS_EXPORT TPM2B_NAME Make_TPM2B_NAME(const std::string& bytes); 2475 TRUNKS_EXPORT std::string StringFrom_TPM2B_NAME(const TPM2B_NAME& tpm2b); 2476 2477 TRUNKS_EXPORT TPM_RC Serialize_TPMS_PCR_SELECT(const TPMS_PCR_SELECT& value, 2478 std::string* buffer); 2479 2480 TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECT(std::string* buffer, 2481 TPMS_PCR_SELECT* value, 2482 std::string* value_bytes); 2483 2484 TRUNKS_EXPORT TPM_RC 2485 Serialize_TPMS_PCR_SELECTION(const TPMS_PCR_SELECTION& value, 2486 std::string* buffer); 2487 2488 TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECTION(std::string* buffer, 2489 TPMS_PCR_SELECTION* value, 2490 std::string* value_bytes); 2491 2492 TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_CREATION(const TPMT_TK_CREATION& value, 2493 std::string* buffer); 2494 2495 TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_CREATION(std::string* buffer, 2496 TPMT_TK_CREATION* value, 2497 std::string* value_bytes); 2498 2499 TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_VERIFIED(const TPMT_TK_VERIFIED& value, 2500 std::string* buffer); 2501 2502 TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_VERIFIED(std::string* buffer, 2503 TPMT_TK_VERIFIED* value, 2504 std::string* value_bytes); 2505 2506 TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_AUTH(const TPMT_TK_AUTH& value, 2507 std::string* buffer); 2508 2509 TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_AUTH(std::string* buffer, 2510 TPMT_TK_AUTH* value, 2511 std::string* value_bytes); 2512 2513 TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_HASHCHECK(const TPMT_TK_HASHCHECK& value, 2514 std::string* buffer); 2515 2516 TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_HASHCHECK(std::string* buffer, 2517 TPMT_TK_HASHCHECK* value, 2518 std::string* value_bytes); 2519 2520 TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALG_PROPERTY(const TPMS_ALG_PROPERTY& value, 2521 std::string* buffer); 2522 2523 TRUNKS_EXPORT TPM_RC Parse_TPMS_ALG_PROPERTY(std::string* buffer, 2524 TPMS_ALG_PROPERTY* value, 2525 std::string* value_bytes); 2526 2527 TRUNKS_EXPORT TPM_RC 2528 Serialize_TPMS_TAGGED_PROPERTY(const TPMS_TAGGED_PROPERTY& value, 2529 std::string* buffer); 2530 2531 TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PROPERTY(std::string* buffer, 2532 TPMS_TAGGED_PROPERTY* value, 2533 std::string* value_bytes); 2534 2535 TRUNKS_EXPORT TPM_RC 2536 Serialize_TPMS_TAGGED_PCR_SELECT(const TPMS_TAGGED_PCR_SELECT& value, 2537 std::string* buffer); 2538 2539 TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PCR_SELECT(std::string* buffer, 2540 TPMS_TAGGED_PCR_SELECT* value, 2541 std::string* value_bytes); 2542 2543 TRUNKS_EXPORT TPM_RC Serialize_TPML_CC(const TPML_CC& value, 2544 std::string* buffer); 2545 2546 TRUNKS_EXPORT TPM_RC Parse_TPML_CC(std::string* buffer, 2547 TPML_CC* value, 2548 std::string* value_bytes); 2549 2550 TRUNKS_EXPORT TPM_RC Serialize_TPML_CCA(const TPML_CCA& value, 2551 std::string* buffer); 2552 2553 TRUNKS_EXPORT TPM_RC Parse_TPML_CCA(std::string* buffer, 2554 TPML_CCA* value, 2555 std::string* value_bytes); 2556 2557 TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG(const TPML_ALG& value, 2558 std::string* buffer); 2559 2560 TRUNKS_EXPORT TPM_RC Parse_TPML_ALG(std::string* buffer, 2561 TPML_ALG* value, 2562 std::string* value_bytes); 2563 2564 TRUNKS_EXPORT TPM_RC Serialize_TPML_HANDLE(const TPML_HANDLE& value, 2565 std::string* buffer); 2566 2567 TRUNKS_EXPORT TPM_RC Parse_TPML_HANDLE(std::string* buffer, 2568 TPML_HANDLE* value, 2569 std::string* value_bytes); 2570 2571 TRUNKS_EXPORT TPM_RC Serialize_TPML_DIGEST(const TPML_DIGEST& value, 2572 std::string* buffer); 2573 2574 TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST(std::string* buffer, 2575 TPML_DIGEST* value, 2576 std::string* value_bytes); 2577 2578 TRUNKS_EXPORT TPM_RC 2579 Serialize_TPML_DIGEST_VALUES(const TPML_DIGEST_VALUES& value, 2580 std::string* buffer); 2581 2582 TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST_VALUES(std::string* buffer, 2583 TPML_DIGEST_VALUES* value, 2584 std::string* value_bytes); 2585 2586 TRUNKS_EXPORT TPM_RC 2587 Serialize_TPM2B_DIGEST_VALUES(const TPM2B_DIGEST_VALUES& value, 2588 std::string* buffer); 2589 2590 TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST_VALUES(std::string* buffer, 2591 TPM2B_DIGEST_VALUES* value, 2592 std::string* value_bytes); 2593 2594 TRUNKS_EXPORT TPM2B_DIGEST_VALUES 2595 Make_TPM2B_DIGEST_VALUES(const std::string& bytes); 2596 TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST_VALUES( 2597 const TPM2B_DIGEST_VALUES& tpm2b); 2598 2599 TRUNKS_EXPORT TPM_RC 2600 Serialize_TPML_PCR_SELECTION(const TPML_PCR_SELECTION& value, 2601 std::string* buffer); 2602 2603 TRUNKS_EXPORT TPM_RC Parse_TPML_PCR_SELECTION(std::string* buffer, 2604 TPML_PCR_SELECTION* value, 2605 std::string* value_bytes); 2606 2607 TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG_PROPERTY(const TPML_ALG_PROPERTY& value, 2608 std::string* buffer); 2609 2610 TRUNKS_EXPORT TPM_RC Parse_TPML_ALG_PROPERTY(std::string* buffer, 2611 TPML_ALG_PROPERTY* value, 2612 std::string* value_bytes); 2613 2614 TRUNKS_EXPORT TPM_RC 2615 Serialize_TPML_TAGGED_TPM_PROPERTY(const TPML_TAGGED_TPM_PROPERTY& value, 2616 std::string* buffer); 2617 2618 TRUNKS_EXPORT TPM_RC 2619 Parse_TPML_TAGGED_TPM_PROPERTY(std::string* buffer, 2620 TPML_TAGGED_TPM_PROPERTY* value, 2621 std::string* value_bytes); 2622 2623 TRUNKS_EXPORT TPM_RC 2624 Serialize_TPML_TAGGED_PCR_PROPERTY(const TPML_TAGGED_PCR_PROPERTY& value, 2625 std::string* buffer); 2626 2627 TRUNKS_EXPORT TPM_RC 2628 Parse_TPML_TAGGED_PCR_PROPERTY(std::string* buffer, 2629 TPML_TAGGED_PCR_PROPERTY* value, 2630 std::string* value_bytes); 2631 2632 TRUNKS_EXPORT TPM_RC Serialize_TPML_ECC_CURVE(const TPML_ECC_CURVE& value, 2633 std::string* buffer); 2634 2635 TRUNKS_EXPORT TPM_RC Parse_TPML_ECC_CURVE(std::string* buffer, 2636 TPML_ECC_CURVE* value, 2637 std::string* value_bytes); 2638 2639 TRUNKS_EXPORT TPM_RC 2640 Serialize_TPMS_CAPABILITY_DATA(const TPMS_CAPABILITY_DATA& value, 2641 std::string* buffer); 2642 2643 TRUNKS_EXPORT TPM_RC Parse_TPMS_CAPABILITY_DATA(std::string* buffer, 2644 TPMS_CAPABILITY_DATA* value, 2645 std::string* value_bytes); 2646 2647 TRUNKS_EXPORT TPM_RC Serialize_TPMS_CLOCK_INFO(const TPMS_CLOCK_INFO& value, 2648 std::string* buffer); 2649 2650 TRUNKS_EXPORT TPM_RC Parse_TPMS_CLOCK_INFO(std::string* buffer, 2651 TPMS_CLOCK_INFO* value, 2652 std::string* value_bytes); 2653 2654 TRUNKS_EXPORT TPM_RC Serialize_TPMS_TIME_INFO(const TPMS_TIME_INFO& value, 2655 std::string* buffer); 2656 2657 TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_INFO(std::string* buffer, 2658 TPMS_TIME_INFO* value, 2659 std::string* value_bytes); 2660 2661 TRUNKS_EXPORT TPM_RC 2662 Serialize_TPMS_TIME_ATTEST_INFO(const TPMS_TIME_ATTEST_INFO& value, 2663 std::string* buffer); 2664 2665 TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_ATTEST_INFO(std::string* buffer, 2666 TPMS_TIME_ATTEST_INFO* value, 2667 std::string* value_bytes); 2668 2669 TRUNKS_EXPORT TPM_RC Serialize_TPMS_CERTIFY_INFO(const TPMS_CERTIFY_INFO& value, 2670 std::string* buffer); 2671 2672 TRUNKS_EXPORT TPM_RC Parse_TPMS_CERTIFY_INFO(std::string* buffer, 2673 TPMS_CERTIFY_INFO* value, 2674 std::string* value_bytes); 2675 2676 TRUNKS_EXPORT TPM_RC Serialize_TPMS_QUOTE_INFO(const TPMS_QUOTE_INFO& value, 2677 std::string* buffer); 2678 2679 TRUNKS_EXPORT TPM_RC Parse_TPMS_QUOTE_INFO(std::string* buffer, 2680 TPMS_QUOTE_INFO* value, 2681 std::string* value_bytes); 2682 2683 TRUNKS_EXPORT TPM_RC 2684 Serialize_TPMS_COMMAND_AUDIT_INFO(const TPMS_COMMAND_AUDIT_INFO& value, 2685 std::string* buffer); 2686 2687 TRUNKS_EXPORT TPM_RC 2688 Parse_TPMS_COMMAND_AUDIT_INFO(std::string* buffer, 2689 TPMS_COMMAND_AUDIT_INFO* value, 2690 std::string* value_bytes); 2691 2692 TRUNKS_EXPORT TPM_RC 2693 Serialize_TPMS_SESSION_AUDIT_INFO(const TPMS_SESSION_AUDIT_INFO& value, 2694 std::string* buffer); 2695 2696 TRUNKS_EXPORT TPM_RC 2697 Parse_TPMS_SESSION_AUDIT_INFO(std::string* buffer, 2698 TPMS_SESSION_AUDIT_INFO* value, 2699 std::string* value_bytes); 2700 2701 TRUNKS_EXPORT TPM_RC 2702 Serialize_TPMS_CREATION_INFO(const TPMS_CREATION_INFO& value, 2703 std::string* buffer); 2704 2705 TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_INFO(std::string* buffer, 2706 TPMS_CREATION_INFO* value, 2707 std::string* value_bytes); 2708 2709 TRUNKS_EXPORT TPM_RC 2710 Serialize_TPMS_NV_CERTIFY_INFO(const TPMS_NV_CERTIFY_INFO& value, 2711 std::string* buffer); 2712 2713 TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_CERTIFY_INFO(std::string* buffer, 2714 TPMS_NV_CERTIFY_INFO* value, 2715 std::string* value_bytes); 2716 2717 TRUNKS_EXPORT TPM_RC Serialize_TPMS_ATTEST(const TPMS_ATTEST& value, 2718 std::string* buffer); 2719 2720 TRUNKS_EXPORT TPM_RC Parse_TPMS_ATTEST(std::string* buffer, 2721 TPMS_ATTEST* value, 2722 std::string* value_bytes); 2723 2724 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ATTEST(const TPM2B_ATTEST& value, 2725 std::string* buffer); 2726 2727 TRUNKS_EXPORT TPM_RC Parse_TPM2B_ATTEST(std::string* buffer, 2728 TPM2B_ATTEST* value, 2729 std::string* value_bytes); 2730 2731 TRUNKS_EXPORT TPM2B_ATTEST Make_TPM2B_ATTEST(const std::string& bytes); 2732 TRUNKS_EXPORT std::string StringFrom_TPM2B_ATTEST(const TPM2B_ATTEST& tpm2b); 2733 2734 TRUNKS_EXPORT TPM_RC Serialize_TPMS_AUTH_COMMAND(const TPMS_AUTH_COMMAND& value, 2735 std::string* buffer); 2736 2737 TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_COMMAND(std::string* buffer, 2738 TPMS_AUTH_COMMAND* value, 2739 std::string* value_bytes); 2740 2741 TRUNKS_EXPORT TPM_RC 2742 Serialize_TPMS_AUTH_RESPONSE(const TPMS_AUTH_RESPONSE& value, 2743 std::string* buffer); 2744 2745 TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_RESPONSE(std::string* buffer, 2746 TPMS_AUTH_RESPONSE* value, 2747 std::string* value_bytes); 2748 2749 TRUNKS_EXPORT TPM_RC Serialize_TPMT_SYM_DEF(const TPMT_SYM_DEF& value, 2750 std::string* buffer); 2751 2752 TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF(std::string* buffer, 2753 TPMT_SYM_DEF* value, 2754 std::string* value_bytes); 2755 2756 TRUNKS_EXPORT TPM_RC 2757 Serialize_TPMT_SYM_DEF_OBJECT(const TPMT_SYM_DEF_OBJECT& value, 2758 std::string* buffer); 2759 2760 TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF_OBJECT(std::string* buffer, 2761 TPMT_SYM_DEF_OBJECT* value, 2762 std::string* value_bytes); 2763 2764 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& value, 2765 std::string* buffer); 2766 2767 TRUNKS_EXPORT TPM_RC Parse_TPM2B_SYM_KEY(std::string* buffer, 2768 TPM2B_SYM_KEY* value, 2769 std::string* value_bytes); 2770 2771 TRUNKS_EXPORT TPM2B_SYM_KEY Make_TPM2B_SYM_KEY(const std::string& bytes); 2772 TRUNKS_EXPORT std::string StringFrom_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& tpm2b); 2773 2774 TRUNKS_EXPORT TPM_RC 2775 Serialize_TPMS_SYMCIPHER_PARMS(const TPMS_SYMCIPHER_PARMS& value, 2776 std::string* buffer); 2777 2778 TRUNKS_EXPORT TPM_RC Parse_TPMS_SYMCIPHER_PARMS(std::string* buffer, 2779 TPMS_SYMCIPHER_PARMS* value, 2780 std::string* value_bytes); 2781 2782 TRUNKS_EXPORT TPM_RC 2783 Serialize_TPM2B_SENSITIVE_DATA(const TPM2B_SENSITIVE_DATA& value, 2784 std::string* buffer); 2785 2786 TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_DATA(std::string* buffer, 2787 TPM2B_SENSITIVE_DATA* value, 2788 std::string* value_bytes); 2789 2790 TRUNKS_EXPORT TPM2B_SENSITIVE_DATA 2791 Make_TPM2B_SENSITIVE_DATA(const std::string& bytes); 2792 TRUNKS_EXPORT std::string StringFrom_TPM2B_SENSITIVE_DATA( 2793 const TPM2B_SENSITIVE_DATA& tpm2b); 2794 2795 TRUNKS_EXPORT TPM_RC 2796 Serialize_TPMS_SENSITIVE_CREATE(const TPMS_SENSITIVE_CREATE& value, 2797 std::string* buffer); 2798 2799 TRUNKS_EXPORT TPM_RC Parse_TPMS_SENSITIVE_CREATE(std::string* buffer, 2800 TPMS_SENSITIVE_CREATE* value, 2801 std::string* value_bytes); 2802 2803 TRUNKS_EXPORT TPM_RC 2804 Serialize_TPM2B_SENSITIVE_CREATE(const TPM2B_SENSITIVE_CREATE& value, 2805 std::string* buffer); 2806 2807 TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_CREATE(std::string* buffer, 2808 TPM2B_SENSITIVE_CREATE* value, 2809 std::string* value_bytes); 2810 2811 TRUNKS_EXPORT TPM2B_SENSITIVE_CREATE 2812 Make_TPM2B_SENSITIVE_CREATE(const TPMS_SENSITIVE_CREATE& inner); 2813 2814 TRUNKS_EXPORT TPM_RC 2815 Serialize_TPMS_SCHEME_SIGHASH(const TPMS_SCHEME_SIGHASH& value, 2816 std::string* buffer); 2817 2818 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SIGHASH(std::string* buffer, 2819 TPMS_SCHEME_SIGHASH* value, 2820 std::string* value_bytes); 2821 2822 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_XOR(const TPMS_SCHEME_XOR& value, 2823 std::string* buffer); 2824 2825 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_XOR(std::string* buffer, 2826 TPMS_SCHEME_XOR* value, 2827 std::string* value_bytes); 2828 2829 TRUNKS_EXPORT TPM_RC 2830 Serialize_TPMT_KEYEDHASH_SCHEME(const TPMT_KEYEDHASH_SCHEME& value, 2831 std::string* buffer); 2832 2833 TRUNKS_EXPORT TPM_RC Parse_TPMT_KEYEDHASH_SCHEME(std::string* buffer, 2834 TPMT_KEYEDHASH_SCHEME* value, 2835 std::string* value_bytes); 2836 2837 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDAA(const TPMS_SCHEME_ECDAA& value, 2838 std::string* buffer); 2839 2840 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDAA(std::string* buffer, 2841 TPMS_SCHEME_ECDAA* value, 2842 std::string* value_bytes); 2843 2844 TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIG_SCHEME(const TPMT_SIG_SCHEME& value, 2845 std::string* buffer); 2846 2847 TRUNKS_EXPORT TPM_RC Parse_TPMT_SIG_SCHEME(std::string* buffer, 2848 TPMT_SIG_SCHEME* value, 2849 std::string* value_bytes); 2850 2851 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_OAEP(const TPMS_SCHEME_OAEP& value, 2852 std::string* buffer); 2853 2854 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_OAEP(std::string* buffer, 2855 TPMS_SCHEME_OAEP* value, 2856 std::string* value_bytes); 2857 2858 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDH(const TPMS_SCHEME_ECDH& value, 2859 std::string* buffer); 2860 2861 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDH(std::string* buffer, 2862 TPMS_SCHEME_ECDH* value, 2863 std::string* value_bytes); 2864 2865 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_MGF1(const TPMS_SCHEME_MGF1& value, 2866 std::string* buffer); 2867 2868 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_MGF1(std::string* buffer, 2869 TPMS_SCHEME_MGF1* value, 2870 std::string* value_bytes); 2871 2872 TRUNKS_EXPORT TPM_RC 2873 Serialize_TPMS_SCHEME_KDF1_SP800_56a(const TPMS_SCHEME_KDF1_SP800_56a& value, 2874 std::string* buffer); 2875 2876 TRUNKS_EXPORT TPM_RC 2877 Parse_TPMS_SCHEME_KDF1_SP800_56a(std::string* buffer, 2878 TPMS_SCHEME_KDF1_SP800_56a* value, 2879 std::string* value_bytes); 2880 2881 TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF2(const TPMS_SCHEME_KDF2& value, 2882 std::string* buffer); 2883 2884 TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_KDF2(std::string* buffer, 2885 TPMS_SCHEME_KDF2* value, 2886 std::string* value_bytes); 2887 2888 TRUNKS_EXPORT TPM_RC 2889 Serialize_TPMS_SCHEME_KDF1_SP800_108(const TPMS_SCHEME_KDF1_SP800_108& value, 2890 std::string* buffer); 2891 2892 TRUNKS_EXPORT TPM_RC 2893 Parse_TPMS_SCHEME_KDF1_SP800_108(std::string* buffer, 2894 TPMS_SCHEME_KDF1_SP800_108* value, 2895 std::string* value_bytes); 2896 2897 TRUNKS_EXPORT TPM_RC Serialize_TPMT_KDF_SCHEME(const TPMT_KDF_SCHEME& value, 2898 std::string* buffer); 2899 2900 TRUNKS_EXPORT TPM_RC Parse_TPMT_KDF_SCHEME(std::string* buffer, 2901 TPMT_KDF_SCHEME* value, 2902 std::string* value_bytes); 2903 2904 TRUNKS_EXPORT TPM_RC Serialize_TPMT_ASYM_SCHEME(const TPMT_ASYM_SCHEME& value, 2905 std::string* buffer); 2906 2907 TRUNKS_EXPORT TPM_RC Parse_TPMT_ASYM_SCHEME(std::string* buffer, 2908 TPMT_ASYM_SCHEME* value, 2909 std::string* value_bytes); 2910 2911 TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_SCHEME(const TPMT_RSA_SCHEME& value, 2912 std::string* buffer); 2913 2914 TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_SCHEME(std::string* buffer, 2915 TPMT_RSA_SCHEME* value, 2916 std::string* value_bytes); 2917 2918 TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_DECRYPT(const TPMT_RSA_DECRYPT& value, 2919 std::string* buffer); 2920 2921 TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_DECRYPT(std::string* buffer, 2922 TPMT_RSA_DECRYPT* value, 2923 std::string* value_bytes); 2924 2925 TRUNKS_EXPORT TPM_RC 2926 Serialize_TPM2B_PUBLIC_KEY_RSA(const TPM2B_PUBLIC_KEY_RSA& value, 2927 std::string* buffer); 2928 2929 TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC_KEY_RSA(std::string* buffer, 2930 TPM2B_PUBLIC_KEY_RSA* value, 2931 std::string* value_bytes); 2932 2933 TRUNKS_EXPORT TPM2B_PUBLIC_KEY_RSA 2934 Make_TPM2B_PUBLIC_KEY_RSA(const std::string& bytes); 2935 TRUNKS_EXPORT std::string StringFrom_TPM2B_PUBLIC_KEY_RSA( 2936 const TPM2B_PUBLIC_KEY_RSA& tpm2b); 2937 2938 TRUNKS_EXPORT TPM_RC 2939 Serialize_TPM2B_PRIVATE_KEY_RSA(const TPM2B_PRIVATE_KEY_RSA& value, 2940 std::string* buffer); 2941 2942 TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE_KEY_RSA(std::string* buffer, 2943 TPM2B_PRIVATE_KEY_RSA* value, 2944 std::string* value_bytes); 2945 2946 TRUNKS_EXPORT TPM2B_PRIVATE_KEY_RSA 2947 Make_TPM2B_PRIVATE_KEY_RSA(const std::string& bytes); 2948 TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_KEY_RSA( 2949 const TPM2B_PRIVATE_KEY_RSA& tpm2b); 2950 2951 TRUNKS_EXPORT TPM_RC 2952 Serialize_TPM2B_ECC_PARAMETER(const TPM2B_ECC_PARAMETER& value, 2953 std::string* buffer); 2954 2955 TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_PARAMETER(std::string* buffer, 2956 TPM2B_ECC_PARAMETER* value, 2957 std::string* value_bytes); 2958 2959 TRUNKS_EXPORT TPM2B_ECC_PARAMETER 2960 Make_TPM2B_ECC_PARAMETER(const std::string& bytes); 2961 TRUNKS_EXPORT std::string StringFrom_TPM2B_ECC_PARAMETER( 2962 const TPM2B_ECC_PARAMETER& tpm2b); 2963 2964 TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_POINT(const TPMS_ECC_POINT& value, 2965 std::string* buffer); 2966 2967 TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_POINT(std::string* buffer, 2968 TPMS_ECC_POINT* value, 2969 std::string* value_bytes); 2970 2971 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ECC_POINT(const TPM2B_ECC_POINT& value, 2972 std::string* buffer); 2973 2974 TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_POINT(std::string* buffer, 2975 TPM2B_ECC_POINT* value, 2976 std::string* value_bytes); 2977 2978 TRUNKS_EXPORT TPM2B_ECC_POINT Make_TPM2B_ECC_POINT(const TPMS_ECC_POINT& inner); 2979 2980 TRUNKS_EXPORT TPM_RC Serialize_TPMT_ECC_SCHEME(const TPMT_ECC_SCHEME& value, 2981 std::string* buffer); 2982 2983 TRUNKS_EXPORT TPM_RC Parse_TPMT_ECC_SCHEME(std::string* buffer, 2984 TPMT_ECC_SCHEME* value, 2985 std::string* value_bytes); 2986 2987 TRUNKS_EXPORT TPM_RC 2988 Serialize_TPMS_ALGORITHM_DETAIL_ECC(const TPMS_ALGORITHM_DETAIL_ECC& value, 2989 std::string* buffer); 2990 2991 TRUNKS_EXPORT TPM_RC 2992 Parse_TPMS_ALGORITHM_DETAIL_ECC(std::string* buffer, 2993 TPMS_ALGORITHM_DETAIL_ECC* value, 2994 std::string* value_bytes); 2995 2996 TRUNKS_EXPORT TPM_RC 2997 Serialize_TPMS_SIGNATURE_RSASSA(const TPMS_SIGNATURE_RSASSA& value, 2998 std::string* buffer); 2999 3000 TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSASSA(std::string* buffer, 3001 TPMS_SIGNATURE_RSASSA* value, 3002 std::string* value_bytes); 3003 3004 TRUNKS_EXPORT TPM_RC 3005 Serialize_TPMS_SIGNATURE_RSAPSS(const TPMS_SIGNATURE_RSAPSS& value, 3006 std::string* buffer); 3007 3008 TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSAPSS(std::string* buffer, 3009 TPMS_SIGNATURE_RSAPSS* value, 3010 std::string* value_bytes); 3011 3012 TRUNKS_EXPORT TPM_RC 3013 Serialize_TPMS_SIGNATURE_ECDSA(const TPMS_SIGNATURE_ECDSA& value, 3014 std::string* buffer); 3015 3016 TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_ECDSA(std::string* buffer, 3017 TPMS_SIGNATURE_ECDSA* value, 3018 std::string* value_bytes); 3019 3020 TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIGNATURE(const TPMT_SIGNATURE& value, 3021 std::string* buffer); 3022 3023 TRUNKS_EXPORT TPM_RC Parse_TPMT_SIGNATURE(std::string* buffer, 3024 TPMT_SIGNATURE* value, 3025 std::string* value_bytes); 3026 3027 TRUNKS_EXPORT TPM_RC 3028 Serialize_TPM2B_ENCRYPTED_SECRET(const TPM2B_ENCRYPTED_SECRET& value, 3029 std::string* buffer); 3030 3031 TRUNKS_EXPORT TPM_RC Parse_TPM2B_ENCRYPTED_SECRET(std::string* buffer, 3032 TPM2B_ENCRYPTED_SECRET* value, 3033 std::string* value_bytes); 3034 3035 TRUNKS_EXPORT TPM2B_ENCRYPTED_SECRET 3036 Make_TPM2B_ENCRYPTED_SECRET(const std::string& bytes); 3037 TRUNKS_EXPORT std::string StringFrom_TPM2B_ENCRYPTED_SECRET( 3038 const TPM2B_ENCRYPTED_SECRET& tpm2b); 3039 3040 TRUNKS_EXPORT TPM_RC 3041 Serialize_TPMS_KEYEDHASH_PARMS(const TPMS_KEYEDHASH_PARMS& value, 3042 std::string* buffer); 3043 3044 TRUNKS_EXPORT TPM_RC Parse_TPMS_KEYEDHASH_PARMS(std::string* buffer, 3045 TPMS_KEYEDHASH_PARMS* value, 3046 std::string* value_bytes); 3047 3048 TRUNKS_EXPORT TPM_RC Serialize_TPMS_ASYM_PARMS(const TPMS_ASYM_PARMS& value, 3049 std::string* buffer); 3050 3051 TRUNKS_EXPORT TPM_RC Parse_TPMS_ASYM_PARMS(std::string* buffer, 3052 TPMS_ASYM_PARMS* value, 3053 std::string* value_bytes); 3054 3055 TRUNKS_EXPORT TPM_RC Serialize_TPMS_RSA_PARMS(const TPMS_RSA_PARMS& value, 3056 std::string* buffer); 3057 3058 TRUNKS_EXPORT TPM_RC Parse_TPMS_RSA_PARMS(std::string* buffer, 3059 TPMS_RSA_PARMS* value, 3060 std::string* value_bytes); 3061 3062 TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_PARMS(const TPMS_ECC_PARMS& value, 3063 std::string* buffer); 3064 3065 TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_PARMS(std::string* buffer, 3066 TPMS_ECC_PARMS* value, 3067 std::string* value_bytes); 3068 3069 TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC_PARMS(const TPMT_PUBLIC_PARMS& value, 3070 std::string* buffer); 3071 3072 TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC_PARMS(std::string* buffer, 3073 TPMT_PUBLIC_PARMS* value, 3074 std::string* value_bytes); 3075 3076 TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC(const TPMT_PUBLIC& value, 3077 std::string* buffer); 3078 3079 TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC(std::string* buffer, 3080 TPMT_PUBLIC* value, 3081 std::string* value_bytes); 3082 3083 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PUBLIC(const TPM2B_PUBLIC& value, 3084 std::string* buffer); 3085 3086 TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC(std::string* buffer, 3087 TPM2B_PUBLIC* value, 3088 std::string* value_bytes); 3089 3090 TRUNKS_EXPORT TPM2B_PUBLIC Make_TPM2B_PUBLIC(const TPMT_PUBLIC& inner); 3091 3092 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE_VENDOR_SPECIFIC( 3093 const TPM2B_PRIVATE_VENDOR_SPECIFIC& value, 3094 std::string* buffer); 3095 3096 TRUNKS_EXPORT TPM_RC 3097 Parse_TPM2B_PRIVATE_VENDOR_SPECIFIC(std::string* buffer, 3098 TPM2B_PRIVATE_VENDOR_SPECIFIC* value, 3099 std::string* value_bytes); 3100 3101 TRUNKS_EXPORT TPM2B_PRIVATE_VENDOR_SPECIFIC 3102 Make_TPM2B_PRIVATE_VENDOR_SPECIFIC(const std::string& bytes); 3103 TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_VENDOR_SPECIFIC( 3104 const TPM2B_PRIVATE_VENDOR_SPECIFIC& tpm2b); 3105 3106 TRUNKS_EXPORT TPM_RC Serialize_TPMT_SENSITIVE(const TPMT_SENSITIVE& value, 3107 std::string* buffer); 3108 3109 TRUNKS_EXPORT TPM_RC Parse_TPMT_SENSITIVE(std::string* buffer, 3110 TPMT_SENSITIVE* value, 3111 std::string* value_bytes); 3112 3113 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE(const TPM2B_SENSITIVE& value, 3114 std::string* buffer); 3115 3116 TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE(std::string* buffer, 3117 TPM2B_SENSITIVE* value, 3118 std::string* value_bytes); 3119 3120 TRUNKS_EXPORT TPM2B_SENSITIVE Make_TPM2B_SENSITIVE(const TPMT_SENSITIVE& inner); 3121 3122 TRUNKS_EXPORT TPM_RC Serialize__PRIVATE(const _PRIVATE& value, 3123 std::string* buffer); 3124 3125 TRUNKS_EXPORT TPM_RC Parse__PRIVATE(std::string* buffer, 3126 _PRIVATE* value, 3127 std::string* value_bytes); 3128 3129 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE(const TPM2B_PRIVATE& value, 3130 std::string* buffer); 3131 3132 TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE(std::string* buffer, 3133 TPM2B_PRIVATE* value, 3134 std::string* value_bytes); 3135 3136 TRUNKS_EXPORT TPM2B_PRIVATE Make_TPM2B_PRIVATE(const std::string& bytes); 3137 TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE(const TPM2B_PRIVATE& tpm2b); 3138 3139 TRUNKS_EXPORT TPM_RC Serialize__ID_OBJECT(const _ID_OBJECT& value, 3140 std::string* buffer); 3141 3142 TRUNKS_EXPORT TPM_RC Parse__ID_OBJECT(std::string* buffer, 3143 _ID_OBJECT* value, 3144 std::string* value_bytes); 3145 3146 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ID_OBJECT(const TPM2B_ID_OBJECT& value, 3147 std::string* buffer); 3148 3149 TRUNKS_EXPORT TPM_RC Parse_TPM2B_ID_OBJECT(std::string* buffer, 3150 TPM2B_ID_OBJECT* value, 3151 std::string* value_bytes); 3152 3153 TRUNKS_EXPORT TPM2B_ID_OBJECT Make_TPM2B_ID_OBJECT(const std::string& bytes); 3154 TRUNKS_EXPORT std::string StringFrom_TPM2B_ID_OBJECT( 3155 const TPM2B_ID_OBJECT& tpm2b); 3156 3157 TRUNKS_EXPORT TPM_RC Serialize_TPMS_NV_PUBLIC(const TPMS_NV_PUBLIC& value, 3158 std::string* buffer); 3159 3160 TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_PUBLIC(std::string* buffer, 3161 TPMS_NV_PUBLIC* value, 3162 std::string* value_bytes); 3163 3164 TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NV_PUBLIC(const TPM2B_NV_PUBLIC& value, 3165 std::string* buffer); 3166 3167 TRUNKS_EXPORT TPM_RC Parse_TPM2B_NV_PUBLIC(std::string* buffer, 3168 TPM2B_NV_PUBLIC* value, 3169 std::string* value_bytes); 3170 3171 TRUNKS_EXPORT TPM2B_NV_PUBLIC Make_TPM2B_NV_PUBLIC(const TPMS_NV_PUBLIC& inner); 3172 3173 TRUNKS_EXPORT TPM_RC 3174 Serialize_TPM2B_CONTEXT_SENSITIVE(const TPM2B_CONTEXT_SENSITIVE& value, 3175 std::string* buffer); 3176 3177 TRUNKS_EXPORT TPM_RC 3178 Parse_TPM2B_CONTEXT_SENSITIVE(std::string* buffer, 3179 TPM2B_CONTEXT_SENSITIVE* value, 3180 std::string* value_bytes); 3181 3182 TRUNKS_EXPORT TPM2B_CONTEXT_SENSITIVE 3183 Make_TPM2B_CONTEXT_SENSITIVE(const std::string& bytes); 3184 TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_SENSITIVE( 3185 const TPM2B_CONTEXT_SENSITIVE& tpm2b); 3186 3187 TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT_DATA(const TPMS_CONTEXT_DATA& value, 3188 std::string* buffer); 3189 3190 TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT_DATA(std::string* buffer, 3191 TPMS_CONTEXT_DATA* value, 3192 std::string* value_bytes); 3193 3194 TRUNKS_EXPORT TPM_RC 3195 Serialize_TPM2B_CONTEXT_DATA(const TPM2B_CONTEXT_DATA& value, 3196 std::string* buffer); 3197 3198 TRUNKS_EXPORT TPM_RC Parse_TPM2B_CONTEXT_DATA(std::string* buffer, 3199 TPM2B_CONTEXT_DATA* value, 3200 std::string* value_bytes); 3201 3202 TRUNKS_EXPORT TPM2B_CONTEXT_DATA 3203 Make_TPM2B_CONTEXT_DATA(const std::string& bytes); 3204 TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_DATA( 3205 const TPM2B_CONTEXT_DATA& tpm2b); 3206 3207 TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT(const TPMS_CONTEXT& value, 3208 std::string* buffer); 3209 3210 TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT(std::string* buffer, 3211 TPMS_CONTEXT* value, 3212 std::string* value_bytes); 3213 3214 TRUNKS_EXPORT TPM_RC 3215 Serialize_TPMS_CREATION_DATA(const TPMS_CREATION_DATA& value, 3216 std::string* buffer); 3217 3218 TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_DATA(std::string* buffer, 3219 TPMS_CREATION_DATA* value, 3220 std::string* value_bytes); 3221 3222 TRUNKS_EXPORT TPM_RC 3223 Serialize_TPM2B_CREATION_DATA(const TPM2B_CREATION_DATA& value, 3224 std::string* buffer); 3225 3226 TRUNKS_EXPORT TPM_RC Parse_TPM2B_CREATION_DATA(std::string* buffer, 3227 TPM2B_CREATION_DATA* value, 3228 std::string* value_bytes); 3229 3230 TRUNKS_EXPORT TPM2B_CREATION_DATA 3231 Make_TPM2B_CREATION_DATA(const TPMS_CREATION_DATA& inner); 3232 3233 TRUNKS_EXPORT TPM_RC Serialize_TPMU_HA(const TPMU_HA& value, 3234 std::string* buffer); 3235 3236 TRUNKS_EXPORT TPM_RC Parse_TPMU_HA(std::string* buffer, 3237 TPMU_HA* value, 3238 std::string* value_bytes); 3239 3240 TRUNKS_EXPORT TPM_RC Serialize_TPMU_NAME(const TPMU_NAME& value, 3241 std::string* buffer); 3242 3243 TRUNKS_EXPORT TPM_RC Parse_TPMU_NAME(std::string* buffer, 3244 TPMU_NAME* value, 3245 std::string* value_bytes); 3246 3247 TRUNKS_EXPORT TPM_RC Serialize_TPMU_CAPABILITIES(const TPMU_CAPABILITIES& value, 3248 std::string* buffer); 3249 3250 TRUNKS_EXPORT TPM_RC Parse_TPMU_CAPABILITIES(std::string* buffer, 3251 TPMU_CAPABILITIES* value, 3252 std::string* value_bytes); 3253 3254 TRUNKS_EXPORT TPM_RC Serialize_TPMU_ATTEST(const TPMU_ATTEST& value, 3255 std::string* buffer); 3256 3257 TRUNKS_EXPORT TPM_RC Parse_TPMU_ATTEST(std::string* buffer, 3258 TPMU_ATTEST* value, 3259 std::string* value_bytes); 3260 3261 TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_KEY_BITS(const TPMU_SYM_KEY_BITS& value, 3262 std::string* buffer); 3263 3264 TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_KEY_BITS(std::string* buffer, 3265 TPMU_SYM_KEY_BITS* value, 3266 std::string* value_bytes); 3267 3268 TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_MODE(const TPMU_SYM_MODE& value, 3269 std::string* buffer); 3270 3271 TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_MODE(std::string* buffer, 3272 TPMU_SYM_MODE* value, 3273 std::string* value_bytes); 3274 3275 TRUNKS_EXPORT TPM_RC 3276 Serialize_TPMU_SCHEME_KEYEDHASH(const TPMU_SCHEME_KEYEDHASH& value, 3277 std::string* buffer); 3278 3279 TRUNKS_EXPORT TPM_RC Parse_TPMU_SCHEME_KEYEDHASH(std::string* buffer, 3280 TPMU_SCHEME_KEYEDHASH* value, 3281 std::string* value_bytes); 3282 3283 TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIG_SCHEME(const TPMU_SIG_SCHEME& value, 3284 std::string* buffer); 3285 3286 TRUNKS_EXPORT TPM_RC Parse_TPMU_SIG_SCHEME(std::string* buffer, 3287 TPMU_SIG_SCHEME* value, 3288 std::string* value_bytes); 3289 3290 TRUNKS_EXPORT TPM_RC Serialize_TPMU_KDF_SCHEME(const TPMU_KDF_SCHEME& value, 3291 std::string* buffer); 3292 3293 TRUNKS_EXPORT TPM_RC Parse_TPMU_KDF_SCHEME(std::string* buffer, 3294 TPMU_KDF_SCHEME* value, 3295 std::string* value_bytes); 3296 3297 TRUNKS_EXPORT TPM_RC Serialize_TPMU_ASYM_SCHEME(const TPMU_ASYM_SCHEME& value, 3298 std::string* buffer); 3299 3300 TRUNKS_EXPORT TPM_RC Parse_TPMU_ASYM_SCHEME(std::string* buffer, 3301 TPMU_ASYM_SCHEME* value, 3302 std::string* value_bytes); 3303 3304 TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIGNATURE(const TPMU_SIGNATURE& value, 3305 std::string* buffer); 3306 3307 TRUNKS_EXPORT TPM_RC Parse_TPMU_SIGNATURE(std::string* buffer, 3308 TPMU_SIGNATURE* value, 3309 std::string* value_bytes); 3310 3311 TRUNKS_EXPORT TPM_RC 3312 Serialize_TPMU_ENCRYPTED_SECRET(const TPMU_ENCRYPTED_SECRET& value, 3313 std::string* buffer); 3314 3315 TRUNKS_EXPORT TPM_RC Parse_TPMU_ENCRYPTED_SECRET(std::string* buffer, 3316 TPMU_ENCRYPTED_SECRET* value, 3317 std::string* value_bytes); 3318 3319 TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_ID(const TPMU_PUBLIC_ID& value, 3320 std::string* buffer); 3321 3322 TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_ID(std::string* buffer, 3323 TPMU_PUBLIC_ID* value, 3324 std::string* value_bytes); 3325 3326 TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_PARMS(const TPMU_PUBLIC_PARMS& value, 3327 std::string* buffer); 3328 3329 TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_PARMS(std::string* buffer, 3330 TPMU_PUBLIC_PARMS* value, 3331 std::string* value_bytes); 3332 3333 TRUNKS_EXPORT TPM_RC 3334 Serialize_TPMU_SENSITIVE_COMPOSITE(const TPMU_SENSITIVE_COMPOSITE& value, 3335 std::string* buffer); 3336 3337 TRUNKS_EXPORT TPM_RC 3338 Parse_TPMU_SENSITIVE_COMPOSITE(std::string* buffer, 3339 TPMU_SENSITIVE_COMPOSITE* value, 3340 std::string* value_bytes); 3341 3342 TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_DETAILS(const TPMU_SYM_DETAILS& value, 3343 std::string* buffer); 3344 3345 TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_DETAILS(std::string* buffer, 3346 TPMU_SYM_DETAILS* value, 3347 std::string* value_bytes); 3348 3349 class TRUNKS_EXPORT Tpm { 3350 public: 3351 // Does not take ownership of |transceiver|. Tpm(CommandTransceiver * transceiver)3352 explicit Tpm(CommandTransceiver* transceiver) : transceiver_(transceiver) {} ~Tpm()3353 virtual ~Tpm() {} 3354 3355 typedef base::Callback<void(TPM_RC response_code)> StartupResponse; 3356 static TPM_RC SerializeCommand_Startup( 3357 const TPM_SU& startup_type, 3358 std::string* serialized_command, 3359 AuthorizationDelegate* authorization_delegate); 3360 static TPM_RC ParseResponse_Startup( 3361 const std::string& response, 3362 AuthorizationDelegate* authorization_delegate); 3363 virtual void Startup(const TPM_SU& startup_type, 3364 AuthorizationDelegate* authorization_delegate, 3365 const StartupResponse& callback); 3366 virtual TPM_RC StartupSync(const TPM_SU& startup_type, 3367 AuthorizationDelegate* authorization_delegate); 3368 typedef base::Callback<void(TPM_RC response_code)> ShutdownResponse; 3369 static TPM_RC SerializeCommand_Shutdown( 3370 const TPM_SU& shutdown_type, 3371 std::string* serialized_command, 3372 AuthorizationDelegate* authorization_delegate); 3373 static TPM_RC ParseResponse_Shutdown( 3374 const std::string& response, 3375 AuthorizationDelegate* authorization_delegate); 3376 virtual void Shutdown(const TPM_SU& shutdown_type, 3377 AuthorizationDelegate* authorization_delegate, 3378 const ShutdownResponse& callback); 3379 virtual TPM_RC ShutdownSync(const TPM_SU& shutdown_type, 3380 AuthorizationDelegate* authorization_delegate); 3381 typedef base::Callback<void(TPM_RC response_code)> SelfTestResponse; 3382 static TPM_RC SerializeCommand_SelfTest( 3383 const TPMI_YES_NO& full_test, 3384 std::string* serialized_command, 3385 AuthorizationDelegate* authorization_delegate); 3386 static TPM_RC ParseResponse_SelfTest( 3387 const std::string& response, 3388 AuthorizationDelegate* authorization_delegate); 3389 virtual void SelfTest(const TPMI_YES_NO& full_test, 3390 AuthorizationDelegate* authorization_delegate, 3391 const SelfTestResponse& callback); 3392 virtual TPM_RC SelfTestSync(const TPMI_YES_NO& full_test, 3393 AuthorizationDelegate* authorization_delegate); 3394 typedef base::Callback<void(TPM_RC response_code, const TPML_ALG& to_do_list)> 3395 IncrementalSelfTestResponse; 3396 static TPM_RC SerializeCommand_IncrementalSelfTest( 3397 const TPML_ALG& to_test, 3398 std::string* serialized_command, 3399 AuthorizationDelegate* authorization_delegate); 3400 static TPM_RC ParseResponse_IncrementalSelfTest( 3401 const std::string& response, 3402 TPML_ALG* to_do_list, 3403 AuthorizationDelegate* authorization_delegate); 3404 virtual void IncrementalSelfTest( 3405 const TPML_ALG& to_test, 3406 AuthorizationDelegate* authorization_delegate, 3407 const IncrementalSelfTestResponse& callback); 3408 virtual TPM_RC IncrementalSelfTestSync( 3409 const TPML_ALG& to_test, 3410 TPML_ALG* to_do_list, 3411 AuthorizationDelegate* authorization_delegate); 3412 typedef base::Callback<void(TPM_RC response_code, 3413 const TPM2B_MAX_BUFFER& out_data, 3414 const TPM_RC& test_result)> 3415 GetTestResultResponse; 3416 static TPM_RC SerializeCommand_GetTestResult( 3417 std::string* serialized_command, 3418 AuthorizationDelegate* authorization_delegate); 3419 static TPM_RC ParseResponse_GetTestResult( 3420 const std::string& response, 3421 TPM2B_MAX_BUFFER* out_data, 3422 TPM_RC* test_result, 3423 AuthorizationDelegate* authorization_delegate); 3424 virtual void GetTestResult(AuthorizationDelegate* authorization_delegate, 3425 const GetTestResultResponse& callback); 3426 virtual TPM_RC GetTestResultSync( 3427 TPM2B_MAX_BUFFER* out_data, 3428 TPM_RC* test_result, 3429 AuthorizationDelegate* authorization_delegate); 3430 typedef base::Callback<void(TPM_RC response_code, 3431 const TPMI_SH_AUTH_SESSION& session_handle, 3432 const TPM2B_NONCE& nonce_tpm)> 3433 StartAuthSessionResponse; 3434 static TPM_RC SerializeCommand_StartAuthSession( 3435 const TPMI_DH_OBJECT& tpm_key, 3436 const std::string& tpm_key_name, 3437 const TPMI_DH_ENTITY& bind, 3438 const std::string& bind_name, 3439 const TPM2B_NONCE& nonce_caller, 3440 const TPM2B_ENCRYPTED_SECRET& encrypted_salt, 3441 const TPM_SE& session_type, 3442 const TPMT_SYM_DEF& symmetric, 3443 const TPMI_ALG_HASH& auth_hash, 3444 std::string* serialized_command, 3445 AuthorizationDelegate* authorization_delegate); 3446 static TPM_RC ParseResponse_StartAuthSession( 3447 const std::string& response, 3448 TPMI_SH_AUTH_SESSION* session_handle, 3449 TPM2B_NONCE* nonce_tpm, 3450 AuthorizationDelegate* authorization_delegate); 3451 virtual void StartAuthSession(const TPMI_DH_OBJECT& tpm_key, 3452 const std::string& tpm_key_name, 3453 const TPMI_DH_ENTITY& bind, 3454 const std::string& bind_name, 3455 const TPM2B_NONCE& nonce_caller, 3456 const TPM2B_ENCRYPTED_SECRET& encrypted_salt, 3457 const TPM_SE& session_type, 3458 const TPMT_SYM_DEF& symmetric, 3459 const TPMI_ALG_HASH& auth_hash, 3460 AuthorizationDelegate* authorization_delegate, 3461 const StartAuthSessionResponse& callback); 3462 virtual TPM_RC StartAuthSessionSync( 3463 const TPMI_DH_OBJECT& tpm_key, 3464 const std::string& tpm_key_name, 3465 const TPMI_DH_ENTITY& bind, 3466 const std::string& bind_name, 3467 const TPM2B_NONCE& nonce_caller, 3468 const TPM2B_ENCRYPTED_SECRET& encrypted_salt, 3469 const TPM_SE& session_type, 3470 const TPMT_SYM_DEF& symmetric, 3471 const TPMI_ALG_HASH& auth_hash, 3472 TPMI_SH_AUTH_SESSION* session_handle, 3473 TPM2B_NONCE* nonce_tpm, 3474 AuthorizationDelegate* authorization_delegate); 3475 typedef base::Callback<void(TPM_RC response_code)> PolicyRestartResponse; 3476 static TPM_RC SerializeCommand_PolicyRestart( 3477 const TPMI_SH_POLICY& session_handle, 3478 const std::string& session_handle_name, 3479 std::string* serialized_command, 3480 AuthorizationDelegate* authorization_delegate); 3481 static TPM_RC ParseResponse_PolicyRestart( 3482 const std::string& response, 3483 AuthorizationDelegate* authorization_delegate); 3484 virtual void PolicyRestart(const TPMI_SH_POLICY& session_handle, 3485 const std::string& session_handle_name, 3486 AuthorizationDelegate* authorization_delegate, 3487 const PolicyRestartResponse& callback); 3488 virtual TPM_RC PolicyRestartSync( 3489 const TPMI_SH_POLICY& session_handle, 3490 const std::string& session_handle_name, 3491 AuthorizationDelegate* authorization_delegate); 3492 typedef base::Callback<void(TPM_RC response_code, 3493 const TPM2B_PRIVATE& out_private, 3494 const TPM2B_PUBLIC& out_public, 3495 const TPM2B_CREATION_DATA& creation_data, 3496 const TPM2B_DIGEST& creation_hash, 3497 const TPMT_TK_CREATION& creation_ticket)> 3498 CreateResponse; 3499 static TPM_RC SerializeCommand_Create( 3500 const TPMI_DH_OBJECT& parent_handle, 3501 const std::string& parent_handle_name, 3502 const TPM2B_SENSITIVE_CREATE& in_sensitive, 3503 const TPM2B_PUBLIC& in_public, 3504 const TPM2B_DATA& outside_info, 3505 const TPML_PCR_SELECTION& creation_pcr, 3506 std::string* serialized_command, 3507 AuthorizationDelegate* authorization_delegate); 3508 static TPM_RC ParseResponse_Create( 3509 const std::string& response, 3510 TPM2B_PRIVATE* out_private, 3511 TPM2B_PUBLIC* out_public, 3512 TPM2B_CREATION_DATA* creation_data, 3513 TPM2B_DIGEST* creation_hash, 3514 TPMT_TK_CREATION* creation_ticket, 3515 AuthorizationDelegate* authorization_delegate); 3516 virtual void Create(const TPMI_DH_OBJECT& parent_handle, 3517 const std::string& parent_handle_name, 3518 const TPM2B_SENSITIVE_CREATE& in_sensitive, 3519 const TPM2B_PUBLIC& in_public, 3520 const TPM2B_DATA& outside_info, 3521 const TPML_PCR_SELECTION& creation_pcr, 3522 AuthorizationDelegate* authorization_delegate, 3523 const CreateResponse& callback); 3524 virtual TPM_RC CreateSync(const TPMI_DH_OBJECT& parent_handle, 3525 const std::string& parent_handle_name, 3526 const TPM2B_SENSITIVE_CREATE& in_sensitive, 3527 const TPM2B_PUBLIC& in_public, 3528 const TPM2B_DATA& outside_info, 3529 const TPML_PCR_SELECTION& creation_pcr, 3530 TPM2B_PRIVATE* out_private, 3531 TPM2B_PUBLIC* out_public, 3532 TPM2B_CREATION_DATA* creation_data, 3533 TPM2B_DIGEST* creation_hash, 3534 TPMT_TK_CREATION* creation_ticket, 3535 AuthorizationDelegate* authorization_delegate); 3536 typedef base::Callback<void(TPM_RC response_code, 3537 const TPM_HANDLE& object_handle, 3538 const TPM2B_NAME& name)> 3539 LoadResponse; 3540 static TPM_RC SerializeCommand_Load( 3541 const TPMI_DH_OBJECT& parent_handle, 3542 const std::string& parent_handle_name, 3543 const TPM2B_PRIVATE& in_private, 3544 const TPM2B_PUBLIC& in_public, 3545 std::string* serialized_command, 3546 AuthorizationDelegate* authorization_delegate); 3547 static TPM_RC ParseResponse_Load( 3548 const std::string& response, 3549 TPM_HANDLE* object_handle, 3550 TPM2B_NAME* name, 3551 AuthorizationDelegate* authorization_delegate); 3552 virtual void Load(const TPMI_DH_OBJECT& parent_handle, 3553 const std::string& parent_handle_name, 3554 const TPM2B_PRIVATE& in_private, 3555 const TPM2B_PUBLIC& in_public, 3556 AuthorizationDelegate* authorization_delegate, 3557 const LoadResponse& callback); 3558 virtual TPM_RC LoadSync(const TPMI_DH_OBJECT& parent_handle, 3559 const std::string& parent_handle_name, 3560 const TPM2B_PRIVATE& in_private, 3561 const TPM2B_PUBLIC& in_public, 3562 TPM_HANDLE* object_handle, 3563 TPM2B_NAME* name, 3564 AuthorizationDelegate* authorization_delegate); 3565 typedef base::Callback<void(TPM_RC response_code, 3566 const TPM_HANDLE& object_handle, 3567 const TPM2B_NAME& name)> 3568 LoadExternalResponse; 3569 static TPM_RC SerializeCommand_LoadExternal( 3570 const TPM2B_SENSITIVE& in_private, 3571 const TPM2B_PUBLIC& in_public, 3572 const TPMI_RH_HIERARCHY& hierarchy, 3573 std::string* serialized_command, 3574 AuthorizationDelegate* authorization_delegate); 3575 static TPM_RC ParseResponse_LoadExternal( 3576 const std::string& response, 3577 TPM_HANDLE* object_handle, 3578 TPM2B_NAME* name, 3579 AuthorizationDelegate* authorization_delegate); 3580 virtual void LoadExternal(const TPM2B_SENSITIVE& in_private, 3581 const TPM2B_PUBLIC& in_public, 3582 const TPMI_RH_HIERARCHY& hierarchy, 3583 AuthorizationDelegate* authorization_delegate, 3584 const LoadExternalResponse& callback); 3585 virtual TPM_RC LoadExternalSync( 3586 const TPM2B_SENSITIVE& in_private, 3587 const TPM2B_PUBLIC& in_public, 3588 const TPMI_RH_HIERARCHY& hierarchy, 3589 TPM_HANDLE* object_handle, 3590 TPM2B_NAME* name, 3591 AuthorizationDelegate* authorization_delegate); 3592 typedef base::Callback<void(TPM_RC response_code, 3593 const TPM2B_PUBLIC& out_public, 3594 const TPM2B_NAME& name, 3595 const TPM2B_NAME& qualified_name)> 3596 ReadPublicResponse; 3597 static TPM_RC SerializeCommand_ReadPublic( 3598 const TPMI_DH_OBJECT& object_handle, 3599 const std::string& object_handle_name, 3600 std::string* serialized_command, 3601 AuthorizationDelegate* authorization_delegate); 3602 static TPM_RC ParseResponse_ReadPublic( 3603 const std::string& response, 3604 TPM2B_PUBLIC* out_public, 3605 TPM2B_NAME* name, 3606 TPM2B_NAME* qualified_name, 3607 AuthorizationDelegate* authorization_delegate); 3608 virtual void ReadPublic(const TPMI_DH_OBJECT& object_handle, 3609 const std::string& object_handle_name, 3610 AuthorizationDelegate* authorization_delegate, 3611 const ReadPublicResponse& callback); 3612 virtual TPM_RC ReadPublicSync(const TPMI_DH_OBJECT& object_handle, 3613 const std::string& object_handle_name, 3614 TPM2B_PUBLIC* out_public, 3615 TPM2B_NAME* name, 3616 TPM2B_NAME* qualified_name, 3617 AuthorizationDelegate* authorization_delegate); 3618 typedef base::Callback<void(TPM_RC response_code, 3619 const TPM2B_DIGEST& cert_info)> 3620 ActivateCredentialResponse; 3621 static TPM_RC SerializeCommand_ActivateCredential( 3622 const TPMI_DH_OBJECT& activate_handle, 3623 const std::string& activate_handle_name, 3624 const TPMI_DH_OBJECT& key_handle, 3625 const std::string& key_handle_name, 3626 const TPM2B_ID_OBJECT& credential_blob, 3627 const TPM2B_ENCRYPTED_SECRET& secret, 3628 std::string* serialized_command, 3629 AuthorizationDelegate* authorization_delegate); 3630 static TPM_RC ParseResponse_ActivateCredential( 3631 const std::string& response, 3632 TPM2B_DIGEST* cert_info, 3633 AuthorizationDelegate* authorization_delegate); 3634 virtual void ActivateCredential(const TPMI_DH_OBJECT& activate_handle, 3635 const std::string& activate_handle_name, 3636 const TPMI_DH_OBJECT& key_handle, 3637 const std::string& key_handle_name, 3638 const TPM2B_ID_OBJECT& credential_blob, 3639 const TPM2B_ENCRYPTED_SECRET& secret, 3640 AuthorizationDelegate* authorization_delegate, 3641 const ActivateCredentialResponse& callback); 3642 virtual TPM_RC ActivateCredentialSync( 3643 const TPMI_DH_OBJECT& activate_handle, 3644 const std::string& activate_handle_name, 3645 const TPMI_DH_OBJECT& key_handle, 3646 const std::string& key_handle_name, 3647 const TPM2B_ID_OBJECT& credential_blob, 3648 const TPM2B_ENCRYPTED_SECRET& secret, 3649 TPM2B_DIGEST* cert_info, 3650 AuthorizationDelegate* authorization_delegate); 3651 typedef base::Callback<void(TPM_RC response_code, 3652 const TPM2B_ID_OBJECT& credential_blob, 3653 const TPM2B_ENCRYPTED_SECRET& secret)> 3654 MakeCredentialResponse; 3655 static TPM_RC SerializeCommand_MakeCredential( 3656 const TPMI_DH_OBJECT& handle, 3657 const std::string& handle_name, 3658 const TPM2B_DIGEST& credential, 3659 const TPM2B_NAME& object_name, 3660 std::string* serialized_command, 3661 AuthorizationDelegate* authorization_delegate); 3662 static TPM_RC ParseResponse_MakeCredential( 3663 const std::string& response, 3664 TPM2B_ID_OBJECT* credential_blob, 3665 TPM2B_ENCRYPTED_SECRET* secret, 3666 AuthorizationDelegate* authorization_delegate); 3667 virtual void MakeCredential(const TPMI_DH_OBJECT& handle, 3668 const std::string& handle_name, 3669 const TPM2B_DIGEST& credential, 3670 const TPM2B_NAME& object_name, 3671 AuthorizationDelegate* authorization_delegate, 3672 const MakeCredentialResponse& callback); 3673 virtual TPM_RC MakeCredentialSync( 3674 const TPMI_DH_OBJECT& handle, 3675 const std::string& handle_name, 3676 const TPM2B_DIGEST& credential, 3677 const TPM2B_NAME& object_name, 3678 TPM2B_ID_OBJECT* credential_blob, 3679 TPM2B_ENCRYPTED_SECRET* secret, 3680 AuthorizationDelegate* authorization_delegate); 3681 typedef base::Callback<void(TPM_RC response_code, 3682 const TPM2B_SENSITIVE_DATA& out_data)> 3683 UnsealResponse; 3684 static TPM_RC SerializeCommand_Unseal( 3685 const TPMI_DH_OBJECT& item_handle, 3686 const std::string& item_handle_name, 3687 std::string* serialized_command, 3688 AuthorizationDelegate* authorization_delegate); 3689 static TPM_RC ParseResponse_Unseal( 3690 const std::string& response, 3691 TPM2B_SENSITIVE_DATA* out_data, 3692 AuthorizationDelegate* authorization_delegate); 3693 virtual void Unseal(const TPMI_DH_OBJECT& item_handle, 3694 const std::string& item_handle_name, 3695 AuthorizationDelegate* authorization_delegate, 3696 const UnsealResponse& callback); 3697 virtual TPM_RC UnsealSync(const TPMI_DH_OBJECT& item_handle, 3698 const std::string& item_handle_name, 3699 TPM2B_SENSITIVE_DATA* out_data, 3700 AuthorizationDelegate* authorization_delegate); 3701 typedef base::Callback<void(TPM_RC response_code, 3702 const TPM2B_PRIVATE& out_private)> 3703 ObjectChangeAuthResponse; 3704 static TPM_RC SerializeCommand_ObjectChangeAuth( 3705 const TPMI_DH_OBJECT& object_handle, 3706 const std::string& object_handle_name, 3707 const TPMI_DH_OBJECT& parent_handle, 3708 const std::string& parent_handle_name, 3709 const TPM2B_AUTH& new_auth, 3710 std::string* serialized_command, 3711 AuthorizationDelegate* authorization_delegate); 3712 static TPM_RC ParseResponse_ObjectChangeAuth( 3713 const std::string& response, 3714 TPM2B_PRIVATE* out_private, 3715 AuthorizationDelegate* authorization_delegate); 3716 virtual void ObjectChangeAuth(const TPMI_DH_OBJECT& object_handle, 3717 const std::string& object_handle_name, 3718 const TPMI_DH_OBJECT& parent_handle, 3719 const std::string& parent_handle_name, 3720 const TPM2B_AUTH& new_auth, 3721 AuthorizationDelegate* authorization_delegate, 3722 const ObjectChangeAuthResponse& callback); 3723 virtual TPM_RC ObjectChangeAuthSync( 3724 const TPMI_DH_OBJECT& object_handle, 3725 const std::string& object_handle_name, 3726 const TPMI_DH_OBJECT& parent_handle, 3727 const std::string& parent_handle_name, 3728 const TPM2B_AUTH& new_auth, 3729 TPM2B_PRIVATE* out_private, 3730 AuthorizationDelegate* authorization_delegate); 3731 typedef base::Callback<void(TPM_RC response_code, 3732 const TPM2B_DATA& encryption_key_out, 3733 const TPM2B_PRIVATE& duplicate, 3734 const TPM2B_ENCRYPTED_SECRET& out_sym_seed)> 3735 DuplicateResponse; 3736 static TPM_RC SerializeCommand_Duplicate( 3737 const TPMI_DH_OBJECT& object_handle, 3738 const std::string& object_handle_name, 3739 const TPMI_DH_OBJECT& new_parent_handle, 3740 const std::string& new_parent_handle_name, 3741 const TPM2B_DATA& encryption_key_in, 3742 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3743 std::string* serialized_command, 3744 AuthorizationDelegate* authorization_delegate); 3745 static TPM_RC ParseResponse_Duplicate( 3746 const std::string& response, 3747 TPM2B_DATA* encryption_key_out, 3748 TPM2B_PRIVATE* duplicate, 3749 TPM2B_ENCRYPTED_SECRET* out_sym_seed, 3750 AuthorizationDelegate* authorization_delegate); 3751 virtual void Duplicate(const TPMI_DH_OBJECT& object_handle, 3752 const std::string& object_handle_name, 3753 const TPMI_DH_OBJECT& new_parent_handle, 3754 const std::string& new_parent_handle_name, 3755 const TPM2B_DATA& encryption_key_in, 3756 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3757 AuthorizationDelegate* authorization_delegate, 3758 const DuplicateResponse& callback); 3759 virtual TPM_RC DuplicateSync(const TPMI_DH_OBJECT& object_handle, 3760 const std::string& object_handle_name, 3761 const TPMI_DH_OBJECT& new_parent_handle, 3762 const std::string& new_parent_handle_name, 3763 const TPM2B_DATA& encryption_key_in, 3764 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3765 TPM2B_DATA* encryption_key_out, 3766 TPM2B_PRIVATE* duplicate, 3767 TPM2B_ENCRYPTED_SECRET* out_sym_seed, 3768 AuthorizationDelegate* authorization_delegate); 3769 typedef base::Callback<void(TPM_RC response_code, 3770 const TPM2B_PRIVATE& out_duplicate, 3771 const TPM2B_ENCRYPTED_SECRET& out_sym_seed)> 3772 RewrapResponse; 3773 static TPM_RC SerializeCommand_Rewrap( 3774 const TPMI_DH_OBJECT& old_parent, 3775 const std::string& old_parent_name, 3776 const TPMI_DH_OBJECT& new_parent, 3777 const std::string& new_parent_name, 3778 const TPM2B_PRIVATE& in_duplicate, 3779 const TPM2B_NAME& name, 3780 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3781 std::string* serialized_command, 3782 AuthorizationDelegate* authorization_delegate); 3783 static TPM_RC ParseResponse_Rewrap( 3784 const std::string& response, 3785 TPM2B_PRIVATE* out_duplicate, 3786 TPM2B_ENCRYPTED_SECRET* out_sym_seed, 3787 AuthorizationDelegate* authorization_delegate); 3788 virtual void Rewrap(const TPMI_DH_OBJECT& old_parent, 3789 const std::string& old_parent_name, 3790 const TPMI_DH_OBJECT& new_parent, 3791 const std::string& new_parent_name, 3792 const TPM2B_PRIVATE& in_duplicate, 3793 const TPM2B_NAME& name, 3794 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3795 AuthorizationDelegate* authorization_delegate, 3796 const RewrapResponse& callback); 3797 virtual TPM_RC RewrapSync(const TPMI_DH_OBJECT& old_parent, 3798 const std::string& old_parent_name, 3799 const TPMI_DH_OBJECT& new_parent, 3800 const std::string& new_parent_name, 3801 const TPM2B_PRIVATE& in_duplicate, 3802 const TPM2B_NAME& name, 3803 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3804 TPM2B_PRIVATE* out_duplicate, 3805 TPM2B_ENCRYPTED_SECRET* out_sym_seed, 3806 AuthorizationDelegate* authorization_delegate); 3807 typedef base::Callback<void(TPM_RC response_code, 3808 const TPM2B_PRIVATE& out_private)> 3809 ImportResponse; 3810 static TPM_RC SerializeCommand_Import( 3811 const TPMI_DH_OBJECT& parent_handle, 3812 const std::string& parent_handle_name, 3813 const TPM2B_DATA& encryption_key, 3814 const TPM2B_PUBLIC& object_public, 3815 const TPM2B_PRIVATE& duplicate, 3816 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3817 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3818 std::string* serialized_command, 3819 AuthorizationDelegate* authorization_delegate); 3820 static TPM_RC ParseResponse_Import( 3821 const std::string& response, 3822 TPM2B_PRIVATE* out_private, 3823 AuthorizationDelegate* authorization_delegate); 3824 virtual void Import(const TPMI_DH_OBJECT& parent_handle, 3825 const std::string& parent_handle_name, 3826 const TPM2B_DATA& encryption_key, 3827 const TPM2B_PUBLIC& object_public, 3828 const TPM2B_PRIVATE& duplicate, 3829 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3830 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3831 AuthorizationDelegate* authorization_delegate, 3832 const ImportResponse& callback); 3833 virtual TPM_RC ImportSync(const TPMI_DH_OBJECT& parent_handle, 3834 const std::string& parent_handle_name, 3835 const TPM2B_DATA& encryption_key, 3836 const TPM2B_PUBLIC& object_public, 3837 const TPM2B_PRIVATE& duplicate, 3838 const TPM2B_ENCRYPTED_SECRET& in_sym_seed, 3839 const TPMT_SYM_DEF_OBJECT& symmetric_alg, 3840 TPM2B_PRIVATE* out_private, 3841 AuthorizationDelegate* authorization_delegate); 3842 typedef base::Callback<void(TPM_RC response_code, 3843 const TPM2B_PUBLIC_KEY_RSA& out_data)> 3844 RSA_EncryptResponse; 3845 static TPM_RC SerializeCommand_RSA_Encrypt( 3846 const TPMI_DH_OBJECT& key_handle, 3847 const std::string& key_handle_name, 3848 const TPM2B_PUBLIC_KEY_RSA& message, 3849 const TPMT_RSA_DECRYPT& in_scheme, 3850 const TPM2B_DATA& label, 3851 std::string* serialized_command, 3852 AuthorizationDelegate* authorization_delegate); 3853 static TPM_RC ParseResponse_RSA_Encrypt( 3854 const std::string& response, 3855 TPM2B_PUBLIC_KEY_RSA* out_data, 3856 AuthorizationDelegate* authorization_delegate); 3857 virtual void RSA_Encrypt(const TPMI_DH_OBJECT& key_handle, 3858 const std::string& key_handle_name, 3859 const TPM2B_PUBLIC_KEY_RSA& message, 3860 const TPMT_RSA_DECRYPT& in_scheme, 3861 const TPM2B_DATA& label, 3862 AuthorizationDelegate* authorization_delegate, 3863 const RSA_EncryptResponse& callback); 3864 virtual TPM_RC RSA_EncryptSync(const TPMI_DH_OBJECT& key_handle, 3865 const std::string& key_handle_name, 3866 const TPM2B_PUBLIC_KEY_RSA& message, 3867 const TPMT_RSA_DECRYPT& in_scheme, 3868 const TPM2B_DATA& label, 3869 TPM2B_PUBLIC_KEY_RSA* out_data, 3870 AuthorizationDelegate* authorization_delegate); 3871 typedef base::Callback<void(TPM_RC response_code, 3872 const TPM2B_PUBLIC_KEY_RSA& message)> 3873 RSA_DecryptResponse; 3874 static TPM_RC SerializeCommand_RSA_Decrypt( 3875 const TPMI_DH_OBJECT& key_handle, 3876 const std::string& key_handle_name, 3877 const TPM2B_PUBLIC_KEY_RSA& cipher_text, 3878 const TPMT_RSA_DECRYPT& in_scheme, 3879 const TPM2B_DATA& label, 3880 std::string* serialized_command, 3881 AuthorizationDelegate* authorization_delegate); 3882 static TPM_RC ParseResponse_RSA_Decrypt( 3883 const std::string& response, 3884 TPM2B_PUBLIC_KEY_RSA* message, 3885 AuthorizationDelegate* authorization_delegate); 3886 virtual void RSA_Decrypt(const TPMI_DH_OBJECT& key_handle, 3887 const std::string& key_handle_name, 3888 const TPM2B_PUBLIC_KEY_RSA& cipher_text, 3889 const TPMT_RSA_DECRYPT& in_scheme, 3890 const TPM2B_DATA& label, 3891 AuthorizationDelegate* authorization_delegate, 3892 const RSA_DecryptResponse& callback); 3893 virtual TPM_RC RSA_DecryptSync(const TPMI_DH_OBJECT& key_handle, 3894 const std::string& key_handle_name, 3895 const TPM2B_PUBLIC_KEY_RSA& cipher_text, 3896 const TPMT_RSA_DECRYPT& in_scheme, 3897 const TPM2B_DATA& label, 3898 TPM2B_PUBLIC_KEY_RSA* message, 3899 AuthorizationDelegate* authorization_delegate); 3900 typedef base::Callback<void(TPM_RC response_code, 3901 const TPM2B_ECC_POINT& z_point, 3902 const TPM2B_ECC_POINT& pub_point)> 3903 ECDH_KeyGenResponse; 3904 static TPM_RC SerializeCommand_ECDH_KeyGen( 3905 const TPMI_DH_OBJECT& key_handle, 3906 const std::string& key_handle_name, 3907 std::string* serialized_command, 3908 AuthorizationDelegate* authorization_delegate); 3909 static TPM_RC ParseResponse_ECDH_KeyGen( 3910 const std::string& response, 3911 TPM2B_ECC_POINT* z_point, 3912 TPM2B_ECC_POINT* pub_point, 3913 AuthorizationDelegate* authorization_delegate); 3914 virtual void ECDH_KeyGen(const TPMI_DH_OBJECT& key_handle, 3915 const std::string& key_handle_name, 3916 AuthorizationDelegate* authorization_delegate, 3917 const ECDH_KeyGenResponse& callback); 3918 virtual TPM_RC ECDH_KeyGenSync(const TPMI_DH_OBJECT& key_handle, 3919 const std::string& key_handle_name, 3920 TPM2B_ECC_POINT* z_point, 3921 TPM2B_ECC_POINT* pub_point, 3922 AuthorizationDelegate* authorization_delegate); 3923 typedef base::Callback<void(TPM_RC response_code, 3924 const TPM2B_ECC_POINT& out_point)> 3925 ECDH_ZGenResponse; 3926 static TPM_RC SerializeCommand_ECDH_ZGen( 3927 const TPMI_DH_OBJECT& key_handle, 3928 const std::string& key_handle_name, 3929 const TPM2B_ECC_POINT& in_point, 3930 std::string* serialized_command, 3931 AuthorizationDelegate* authorization_delegate); 3932 static TPM_RC ParseResponse_ECDH_ZGen( 3933 const std::string& response, 3934 TPM2B_ECC_POINT* out_point, 3935 AuthorizationDelegate* authorization_delegate); 3936 virtual void ECDH_ZGen(const TPMI_DH_OBJECT& key_handle, 3937 const std::string& key_handle_name, 3938 const TPM2B_ECC_POINT& in_point, 3939 AuthorizationDelegate* authorization_delegate, 3940 const ECDH_ZGenResponse& callback); 3941 virtual TPM_RC ECDH_ZGenSync(const TPMI_DH_OBJECT& key_handle, 3942 const std::string& key_handle_name, 3943 const TPM2B_ECC_POINT& in_point, 3944 TPM2B_ECC_POINT* out_point, 3945 AuthorizationDelegate* authorization_delegate); 3946 typedef base::Callback<void(TPM_RC response_code, 3947 const TPMS_ALGORITHM_DETAIL_ECC& parameters)> 3948 ECC_ParametersResponse; 3949 static TPM_RC SerializeCommand_ECC_Parameters( 3950 const TPMI_ECC_CURVE& curve_id, 3951 std::string* serialized_command, 3952 AuthorizationDelegate* authorization_delegate); 3953 static TPM_RC ParseResponse_ECC_Parameters( 3954 const std::string& response, 3955 TPMS_ALGORITHM_DETAIL_ECC* parameters, 3956 AuthorizationDelegate* authorization_delegate); 3957 virtual void ECC_Parameters(const TPMI_ECC_CURVE& curve_id, 3958 AuthorizationDelegate* authorization_delegate, 3959 const ECC_ParametersResponse& callback); 3960 virtual TPM_RC ECC_ParametersSync( 3961 const TPMI_ECC_CURVE& curve_id, 3962 TPMS_ALGORITHM_DETAIL_ECC* parameters, 3963 AuthorizationDelegate* authorization_delegate); 3964 typedef base::Callback<void(TPM_RC response_code, 3965 const TPM2B_ECC_POINT& out_z1, 3966 const TPM2B_ECC_POINT& out_z2)> 3967 ZGen_2PhaseResponse; 3968 static TPM_RC SerializeCommand_ZGen_2Phase( 3969 const TPMI_DH_OBJECT& key_a, 3970 const std::string& key_a_name, 3971 const TPM2B_ECC_POINT& in_qs_b, 3972 const TPM2B_ECC_POINT& in_qe_b, 3973 const TPMI_ECC_KEY_EXCHANGE& in_scheme, 3974 const UINT16& counter, 3975 std::string* serialized_command, 3976 AuthorizationDelegate* authorization_delegate); 3977 static TPM_RC ParseResponse_ZGen_2Phase( 3978 const std::string& response, 3979 TPM2B_ECC_POINT* out_z1, 3980 TPM2B_ECC_POINT* out_z2, 3981 AuthorizationDelegate* authorization_delegate); 3982 virtual void ZGen_2Phase(const TPMI_DH_OBJECT& key_a, 3983 const std::string& key_a_name, 3984 const TPM2B_ECC_POINT& in_qs_b, 3985 const TPM2B_ECC_POINT& in_qe_b, 3986 const TPMI_ECC_KEY_EXCHANGE& in_scheme, 3987 const UINT16& counter, 3988 AuthorizationDelegate* authorization_delegate, 3989 const ZGen_2PhaseResponse& callback); 3990 virtual TPM_RC ZGen_2PhaseSync(const TPMI_DH_OBJECT& key_a, 3991 const std::string& key_a_name, 3992 const TPM2B_ECC_POINT& in_qs_b, 3993 const TPM2B_ECC_POINT& in_qe_b, 3994 const TPMI_ECC_KEY_EXCHANGE& in_scheme, 3995 const UINT16& counter, 3996 TPM2B_ECC_POINT* out_z1, 3997 TPM2B_ECC_POINT* out_z2, 3998 AuthorizationDelegate* authorization_delegate); 3999 typedef base::Callback<void(TPM_RC response_code, 4000 const TPM2B_MAX_BUFFER& out_data, 4001 const TPM2B_IV& iv_out)> 4002 EncryptDecryptResponse; 4003 static TPM_RC SerializeCommand_EncryptDecrypt( 4004 const TPMI_DH_OBJECT& key_handle, 4005 const std::string& key_handle_name, 4006 const TPMI_YES_NO& decrypt, 4007 const TPMI_ALG_SYM_MODE& mode, 4008 const TPM2B_IV& iv_in, 4009 const TPM2B_MAX_BUFFER& in_data, 4010 std::string* serialized_command, 4011 AuthorizationDelegate* authorization_delegate); 4012 static TPM_RC ParseResponse_EncryptDecrypt( 4013 const std::string& response, 4014 TPM2B_MAX_BUFFER* out_data, 4015 TPM2B_IV* iv_out, 4016 AuthorizationDelegate* authorization_delegate); 4017 virtual void EncryptDecrypt(const TPMI_DH_OBJECT& key_handle, 4018 const std::string& key_handle_name, 4019 const TPMI_YES_NO& decrypt, 4020 const TPMI_ALG_SYM_MODE& mode, 4021 const TPM2B_IV& iv_in, 4022 const TPM2B_MAX_BUFFER& in_data, 4023 AuthorizationDelegate* authorization_delegate, 4024 const EncryptDecryptResponse& callback); 4025 virtual TPM_RC EncryptDecryptSync( 4026 const TPMI_DH_OBJECT& key_handle, 4027 const std::string& key_handle_name, 4028 const TPMI_YES_NO& decrypt, 4029 const TPMI_ALG_SYM_MODE& mode, 4030 const TPM2B_IV& iv_in, 4031 const TPM2B_MAX_BUFFER& in_data, 4032 TPM2B_MAX_BUFFER* out_data, 4033 TPM2B_IV* iv_out, 4034 AuthorizationDelegate* authorization_delegate); 4035 typedef base::Callback<void(TPM_RC response_code, 4036 const TPM2B_DIGEST& out_hash, 4037 const TPMT_TK_HASHCHECK& validation)> 4038 HashResponse; 4039 static TPM_RC SerializeCommand_Hash( 4040 const TPM2B_MAX_BUFFER& data, 4041 const TPMI_ALG_HASH& hash_alg, 4042 const TPMI_RH_HIERARCHY& hierarchy, 4043 std::string* serialized_command, 4044 AuthorizationDelegate* authorization_delegate); 4045 static TPM_RC ParseResponse_Hash( 4046 const std::string& response, 4047 TPM2B_DIGEST* out_hash, 4048 TPMT_TK_HASHCHECK* validation, 4049 AuthorizationDelegate* authorization_delegate); 4050 virtual void Hash(const TPM2B_MAX_BUFFER& data, 4051 const TPMI_ALG_HASH& hash_alg, 4052 const TPMI_RH_HIERARCHY& hierarchy, 4053 AuthorizationDelegate* authorization_delegate, 4054 const HashResponse& callback); 4055 virtual TPM_RC HashSync(const TPM2B_MAX_BUFFER& data, 4056 const TPMI_ALG_HASH& hash_alg, 4057 const TPMI_RH_HIERARCHY& hierarchy, 4058 TPM2B_DIGEST* out_hash, 4059 TPMT_TK_HASHCHECK* validation, 4060 AuthorizationDelegate* authorization_delegate); 4061 typedef base::Callback<void(TPM_RC response_code, 4062 const TPM2B_DIGEST& out_hmac)> 4063 HMACResponse; 4064 static TPM_RC SerializeCommand_HMAC( 4065 const TPMI_DH_OBJECT& handle, 4066 const std::string& handle_name, 4067 const TPM2B_MAX_BUFFER& buffer, 4068 const TPMI_ALG_HASH& hash_alg, 4069 std::string* serialized_command, 4070 AuthorizationDelegate* authorization_delegate); 4071 static TPM_RC ParseResponse_HMAC( 4072 const std::string& response, 4073 TPM2B_DIGEST* out_hmac, 4074 AuthorizationDelegate* authorization_delegate); 4075 virtual void HMAC(const TPMI_DH_OBJECT& handle, 4076 const std::string& handle_name, 4077 const TPM2B_MAX_BUFFER& buffer, 4078 const TPMI_ALG_HASH& hash_alg, 4079 AuthorizationDelegate* authorization_delegate, 4080 const HMACResponse& callback); 4081 virtual TPM_RC HMACSync(const TPMI_DH_OBJECT& handle, 4082 const std::string& handle_name, 4083 const TPM2B_MAX_BUFFER& buffer, 4084 const TPMI_ALG_HASH& hash_alg, 4085 TPM2B_DIGEST* out_hmac, 4086 AuthorizationDelegate* authorization_delegate); 4087 typedef base::Callback<void(TPM_RC response_code, 4088 const TPM2B_DIGEST& random_bytes)> 4089 GetRandomResponse; 4090 static TPM_RC SerializeCommand_GetRandom( 4091 const UINT16& bytes_requested, 4092 std::string* serialized_command, 4093 AuthorizationDelegate* authorization_delegate); 4094 static TPM_RC ParseResponse_GetRandom( 4095 const std::string& response, 4096 TPM2B_DIGEST* random_bytes, 4097 AuthorizationDelegate* authorization_delegate); 4098 virtual void GetRandom(const UINT16& bytes_requested, 4099 AuthorizationDelegate* authorization_delegate, 4100 const GetRandomResponse& callback); 4101 virtual TPM_RC GetRandomSync(const UINT16& bytes_requested, 4102 TPM2B_DIGEST* random_bytes, 4103 AuthorizationDelegate* authorization_delegate); 4104 typedef base::Callback<void(TPM_RC response_code)> StirRandomResponse; 4105 static TPM_RC SerializeCommand_StirRandom( 4106 const TPM2B_SENSITIVE_DATA& in_data, 4107 std::string* serialized_command, 4108 AuthorizationDelegate* authorization_delegate); 4109 static TPM_RC ParseResponse_StirRandom( 4110 const std::string& response, 4111 AuthorizationDelegate* authorization_delegate); 4112 virtual void StirRandom(const TPM2B_SENSITIVE_DATA& in_data, 4113 AuthorizationDelegate* authorization_delegate, 4114 const StirRandomResponse& callback); 4115 virtual TPM_RC StirRandomSync(const TPM2B_SENSITIVE_DATA& in_data, 4116 AuthorizationDelegate* authorization_delegate); 4117 typedef base::Callback<void(TPM_RC response_code, 4118 const TPMI_DH_OBJECT& sequence_handle)> 4119 HMAC_StartResponse; 4120 static TPM_RC SerializeCommand_HMAC_Start( 4121 const TPMI_DH_OBJECT& handle, 4122 const std::string& handle_name, 4123 const TPM2B_AUTH& auth, 4124 const TPMI_ALG_HASH& hash_alg, 4125 std::string* serialized_command, 4126 AuthorizationDelegate* authorization_delegate); 4127 static TPM_RC ParseResponse_HMAC_Start( 4128 const std::string& response, 4129 TPMI_DH_OBJECT* sequence_handle, 4130 AuthorizationDelegate* authorization_delegate); 4131 virtual void HMAC_Start(const TPMI_DH_OBJECT& handle, 4132 const std::string& handle_name, 4133 const TPM2B_AUTH& auth, 4134 const TPMI_ALG_HASH& hash_alg, 4135 AuthorizationDelegate* authorization_delegate, 4136 const HMAC_StartResponse& callback); 4137 virtual TPM_RC HMAC_StartSync(const TPMI_DH_OBJECT& handle, 4138 const std::string& handle_name, 4139 const TPM2B_AUTH& auth, 4140 const TPMI_ALG_HASH& hash_alg, 4141 TPMI_DH_OBJECT* sequence_handle, 4142 AuthorizationDelegate* authorization_delegate); 4143 typedef base::Callback<void(TPM_RC response_code, 4144 const TPMI_DH_OBJECT& sequence_handle)> 4145 HashSequenceStartResponse; 4146 static TPM_RC SerializeCommand_HashSequenceStart( 4147 const TPM2B_AUTH& auth, 4148 const TPMI_ALG_HASH& hash_alg, 4149 std::string* serialized_command, 4150 AuthorizationDelegate* authorization_delegate); 4151 static TPM_RC ParseResponse_HashSequenceStart( 4152 const std::string& response, 4153 TPMI_DH_OBJECT* sequence_handle, 4154 AuthorizationDelegate* authorization_delegate); 4155 virtual void HashSequenceStart(const TPM2B_AUTH& auth, 4156 const TPMI_ALG_HASH& hash_alg, 4157 AuthorizationDelegate* authorization_delegate, 4158 const HashSequenceStartResponse& callback); 4159 virtual TPM_RC HashSequenceStartSync( 4160 const TPM2B_AUTH& auth, 4161 const TPMI_ALG_HASH& hash_alg, 4162 TPMI_DH_OBJECT* sequence_handle, 4163 AuthorizationDelegate* authorization_delegate); 4164 typedef base::Callback<void(TPM_RC response_code)> SequenceUpdateResponse; 4165 static TPM_RC SerializeCommand_SequenceUpdate( 4166 const TPMI_DH_OBJECT& sequence_handle, 4167 const std::string& sequence_handle_name, 4168 const TPM2B_MAX_BUFFER& buffer, 4169 std::string* serialized_command, 4170 AuthorizationDelegate* authorization_delegate); 4171 static TPM_RC ParseResponse_SequenceUpdate( 4172 const std::string& response, 4173 AuthorizationDelegate* authorization_delegate); 4174 virtual void SequenceUpdate(const TPMI_DH_OBJECT& sequence_handle, 4175 const std::string& sequence_handle_name, 4176 const TPM2B_MAX_BUFFER& buffer, 4177 AuthorizationDelegate* authorization_delegate, 4178 const SequenceUpdateResponse& callback); 4179 virtual TPM_RC SequenceUpdateSync( 4180 const TPMI_DH_OBJECT& sequence_handle, 4181 const std::string& sequence_handle_name, 4182 const TPM2B_MAX_BUFFER& buffer, 4183 AuthorizationDelegate* authorization_delegate); 4184 typedef base::Callback<void(TPM_RC response_code, 4185 const TPM2B_DIGEST& result, 4186 const TPMT_TK_HASHCHECK& validation)> 4187 SequenceCompleteResponse; 4188 static TPM_RC SerializeCommand_SequenceComplete( 4189 const TPMI_DH_OBJECT& sequence_handle, 4190 const std::string& sequence_handle_name, 4191 const TPM2B_MAX_BUFFER& buffer, 4192 const TPMI_RH_HIERARCHY& hierarchy, 4193 std::string* serialized_command, 4194 AuthorizationDelegate* authorization_delegate); 4195 static TPM_RC ParseResponse_SequenceComplete( 4196 const std::string& response, 4197 TPM2B_DIGEST* result, 4198 TPMT_TK_HASHCHECK* validation, 4199 AuthorizationDelegate* authorization_delegate); 4200 virtual void SequenceComplete(const TPMI_DH_OBJECT& sequence_handle, 4201 const std::string& sequence_handle_name, 4202 const TPM2B_MAX_BUFFER& buffer, 4203 const TPMI_RH_HIERARCHY& hierarchy, 4204 AuthorizationDelegate* authorization_delegate, 4205 const SequenceCompleteResponse& callback); 4206 virtual TPM_RC SequenceCompleteSync( 4207 const TPMI_DH_OBJECT& sequence_handle, 4208 const std::string& sequence_handle_name, 4209 const TPM2B_MAX_BUFFER& buffer, 4210 const TPMI_RH_HIERARCHY& hierarchy, 4211 TPM2B_DIGEST* result, 4212 TPMT_TK_HASHCHECK* validation, 4213 AuthorizationDelegate* authorization_delegate); 4214 typedef base::Callback<void(TPM_RC response_code, 4215 const TPML_DIGEST_VALUES& results)> 4216 EventSequenceCompleteResponse; 4217 static TPM_RC SerializeCommand_EventSequenceComplete( 4218 const TPMI_DH_PCR& pcr_handle, 4219 const std::string& pcr_handle_name, 4220 const TPMI_DH_OBJECT& sequence_handle, 4221 const std::string& sequence_handle_name, 4222 const TPM2B_MAX_BUFFER& buffer, 4223 std::string* serialized_command, 4224 AuthorizationDelegate* authorization_delegate); 4225 static TPM_RC ParseResponse_EventSequenceComplete( 4226 const std::string& response, 4227 TPML_DIGEST_VALUES* results, 4228 AuthorizationDelegate* authorization_delegate); 4229 virtual void EventSequenceComplete( 4230 const TPMI_DH_PCR& pcr_handle, 4231 const std::string& pcr_handle_name, 4232 const TPMI_DH_OBJECT& sequence_handle, 4233 const std::string& sequence_handle_name, 4234 const TPM2B_MAX_BUFFER& buffer, 4235 AuthorizationDelegate* authorization_delegate, 4236 const EventSequenceCompleteResponse& callback); 4237 virtual TPM_RC EventSequenceCompleteSync( 4238 const TPMI_DH_PCR& pcr_handle, 4239 const std::string& pcr_handle_name, 4240 const TPMI_DH_OBJECT& sequence_handle, 4241 const std::string& sequence_handle_name, 4242 const TPM2B_MAX_BUFFER& buffer, 4243 TPML_DIGEST_VALUES* results, 4244 AuthorizationDelegate* authorization_delegate); 4245 typedef base::Callback<void(TPM_RC response_code, 4246 const TPM2B_ATTEST& certify_info, 4247 const TPMT_SIGNATURE& signature)> 4248 CertifyResponse; 4249 static TPM_RC SerializeCommand_Certify( 4250 const TPMI_DH_OBJECT& object_handle, 4251 const std::string& object_handle_name, 4252 const TPMI_DH_OBJECT& sign_handle, 4253 const std::string& sign_handle_name, 4254 const TPM2B_DATA& qualifying_data, 4255 const TPMT_SIG_SCHEME& in_scheme, 4256 std::string* serialized_command, 4257 AuthorizationDelegate* authorization_delegate); 4258 static TPM_RC ParseResponse_Certify( 4259 const std::string& response, 4260 TPM2B_ATTEST* certify_info, 4261 TPMT_SIGNATURE* signature, 4262 AuthorizationDelegate* authorization_delegate); 4263 virtual void Certify(const TPMI_DH_OBJECT& object_handle, 4264 const std::string& object_handle_name, 4265 const TPMI_DH_OBJECT& sign_handle, 4266 const std::string& sign_handle_name, 4267 const TPM2B_DATA& qualifying_data, 4268 const TPMT_SIG_SCHEME& in_scheme, 4269 AuthorizationDelegate* authorization_delegate, 4270 const CertifyResponse& callback); 4271 virtual TPM_RC CertifySync(const TPMI_DH_OBJECT& object_handle, 4272 const std::string& object_handle_name, 4273 const TPMI_DH_OBJECT& sign_handle, 4274 const std::string& sign_handle_name, 4275 const TPM2B_DATA& qualifying_data, 4276 const TPMT_SIG_SCHEME& in_scheme, 4277 TPM2B_ATTEST* certify_info, 4278 TPMT_SIGNATURE* signature, 4279 AuthorizationDelegate* authorization_delegate); 4280 typedef base::Callback<void(TPM_RC response_code, 4281 const TPM2B_ATTEST& certify_info, 4282 const TPMT_SIGNATURE& signature)> 4283 CertifyCreationResponse; 4284 static TPM_RC SerializeCommand_CertifyCreation( 4285 const TPMI_DH_OBJECT& sign_handle, 4286 const std::string& sign_handle_name, 4287 const TPMI_DH_OBJECT& object_handle, 4288 const std::string& object_handle_name, 4289 const TPM2B_DATA& qualifying_data, 4290 const TPM2B_DIGEST& creation_hash, 4291 const TPMT_SIG_SCHEME& in_scheme, 4292 const TPMT_TK_CREATION& creation_ticket, 4293 std::string* serialized_command, 4294 AuthorizationDelegate* authorization_delegate); 4295 static TPM_RC ParseResponse_CertifyCreation( 4296 const std::string& response, 4297 TPM2B_ATTEST* certify_info, 4298 TPMT_SIGNATURE* signature, 4299 AuthorizationDelegate* authorization_delegate); 4300 virtual void CertifyCreation(const TPMI_DH_OBJECT& sign_handle, 4301 const std::string& sign_handle_name, 4302 const TPMI_DH_OBJECT& object_handle, 4303 const std::string& object_handle_name, 4304 const TPM2B_DATA& qualifying_data, 4305 const TPM2B_DIGEST& creation_hash, 4306 const TPMT_SIG_SCHEME& in_scheme, 4307 const TPMT_TK_CREATION& creation_ticket, 4308 AuthorizationDelegate* authorization_delegate, 4309 const CertifyCreationResponse& callback); 4310 virtual TPM_RC CertifyCreationSync( 4311 const TPMI_DH_OBJECT& sign_handle, 4312 const std::string& sign_handle_name, 4313 const TPMI_DH_OBJECT& object_handle, 4314 const std::string& object_handle_name, 4315 const TPM2B_DATA& qualifying_data, 4316 const TPM2B_DIGEST& creation_hash, 4317 const TPMT_SIG_SCHEME& in_scheme, 4318 const TPMT_TK_CREATION& creation_ticket, 4319 TPM2B_ATTEST* certify_info, 4320 TPMT_SIGNATURE* signature, 4321 AuthorizationDelegate* authorization_delegate); 4322 typedef base::Callback<void(TPM_RC response_code, 4323 const TPM2B_ATTEST& quoted, 4324 const TPMT_SIGNATURE& signature)> 4325 QuoteResponse; 4326 static TPM_RC SerializeCommand_Quote( 4327 const TPMI_DH_OBJECT& sign_handle, 4328 const std::string& sign_handle_name, 4329 const TPM2B_DATA& qualifying_data, 4330 const TPMT_SIG_SCHEME& in_scheme, 4331 const TPML_PCR_SELECTION& pcrselect, 4332 std::string* serialized_command, 4333 AuthorizationDelegate* authorization_delegate); 4334 static TPM_RC ParseResponse_Quote( 4335 const std::string& response, 4336 TPM2B_ATTEST* quoted, 4337 TPMT_SIGNATURE* signature, 4338 AuthorizationDelegate* authorization_delegate); 4339 virtual void Quote(const TPMI_DH_OBJECT& sign_handle, 4340 const std::string& sign_handle_name, 4341 const TPM2B_DATA& qualifying_data, 4342 const TPMT_SIG_SCHEME& in_scheme, 4343 const TPML_PCR_SELECTION& pcrselect, 4344 AuthorizationDelegate* authorization_delegate, 4345 const QuoteResponse& callback); 4346 virtual TPM_RC QuoteSync(const TPMI_DH_OBJECT& sign_handle, 4347 const std::string& sign_handle_name, 4348 const TPM2B_DATA& qualifying_data, 4349 const TPMT_SIG_SCHEME& in_scheme, 4350 const TPML_PCR_SELECTION& pcrselect, 4351 TPM2B_ATTEST* quoted, 4352 TPMT_SIGNATURE* signature, 4353 AuthorizationDelegate* authorization_delegate); 4354 typedef base::Callback<void(TPM_RC response_code, 4355 const TPM2B_ATTEST& audit_info, 4356 const TPMT_SIGNATURE& signature)> 4357 GetSessionAuditDigestResponse; 4358 static TPM_RC SerializeCommand_GetSessionAuditDigest( 4359 const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4360 const std::string& privacy_admin_handle_name, 4361 const TPMI_DH_OBJECT& sign_handle, 4362 const std::string& sign_handle_name, 4363 const TPMI_SH_HMAC& session_handle, 4364 const std::string& session_handle_name, 4365 const TPM2B_DATA& qualifying_data, 4366 const TPMT_SIG_SCHEME& in_scheme, 4367 std::string* serialized_command, 4368 AuthorizationDelegate* authorization_delegate); 4369 static TPM_RC ParseResponse_GetSessionAuditDigest( 4370 const std::string& response, 4371 TPM2B_ATTEST* audit_info, 4372 TPMT_SIGNATURE* signature, 4373 AuthorizationDelegate* authorization_delegate); 4374 virtual void GetSessionAuditDigest( 4375 const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4376 const std::string& privacy_admin_handle_name, 4377 const TPMI_DH_OBJECT& sign_handle, 4378 const std::string& sign_handle_name, 4379 const TPMI_SH_HMAC& session_handle, 4380 const std::string& session_handle_name, 4381 const TPM2B_DATA& qualifying_data, 4382 const TPMT_SIG_SCHEME& in_scheme, 4383 AuthorizationDelegate* authorization_delegate, 4384 const GetSessionAuditDigestResponse& callback); 4385 virtual TPM_RC GetSessionAuditDigestSync( 4386 const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4387 const std::string& privacy_admin_handle_name, 4388 const TPMI_DH_OBJECT& sign_handle, 4389 const std::string& sign_handle_name, 4390 const TPMI_SH_HMAC& session_handle, 4391 const std::string& session_handle_name, 4392 const TPM2B_DATA& qualifying_data, 4393 const TPMT_SIG_SCHEME& in_scheme, 4394 TPM2B_ATTEST* audit_info, 4395 TPMT_SIGNATURE* signature, 4396 AuthorizationDelegate* authorization_delegate); 4397 typedef base::Callback<void(TPM_RC response_code, 4398 const TPM2B_ATTEST& audit_info, 4399 const TPMT_SIGNATURE& signature)> 4400 GetCommandAuditDigestResponse; 4401 static TPM_RC SerializeCommand_GetCommandAuditDigest( 4402 const TPMI_RH_ENDORSEMENT& privacy_handle, 4403 const std::string& privacy_handle_name, 4404 const TPMI_DH_OBJECT& sign_handle, 4405 const std::string& sign_handle_name, 4406 const TPM2B_DATA& qualifying_data, 4407 const TPMT_SIG_SCHEME& in_scheme, 4408 std::string* serialized_command, 4409 AuthorizationDelegate* authorization_delegate); 4410 static TPM_RC ParseResponse_GetCommandAuditDigest( 4411 const std::string& response, 4412 TPM2B_ATTEST* audit_info, 4413 TPMT_SIGNATURE* signature, 4414 AuthorizationDelegate* authorization_delegate); 4415 virtual void GetCommandAuditDigest( 4416 const TPMI_RH_ENDORSEMENT& privacy_handle, 4417 const std::string& privacy_handle_name, 4418 const TPMI_DH_OBJECT& sign_handle, 4419 const std::string& sign_handle_name, 4420 const TPM2B_DATA& qualifying_data, 4421 const TPMT_SIG_SCHEME& in_scheme, 4422 AuthorizationDelegate* authorization_delegate, 4423 const GetCommandAuditDigestResponse& callback); 4424 virtual TPM_RC GetCommandAuditDigestSync( 4425 const TPMI_RH_ENDORSEMENT& privacy_handle, 4426 const std::string& privacy_handle_name, 4427 const TPMI_DH_OBJECT& sign_handle, 4428 const std::string& sign_handle_name, 4429 const TPM2B_DATA& qualifying_data, 4430 const TPMT_SIG_SCHEME& in_scheme, 4431 TPM2B_ATTEST* audit_info, 4432 TPMT_SIGNATURE* signature, 4433 AuthorizationDelegate* authorization_delegate); 4434 typedef base::Callback<void(TPM_RC response_code, 4435 const TPM2B_ATTEST& time_info, 4436 const TPMT_SIGNATURE& signature)> 4437 GetTimeResponse; 4438 static TPM_RC SerializeCommand_GetTime( 4439 const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4440 const std::string& privacy_admin_handle_name, 4441 const TPMI_DH_OBJECT& sign_handle, 4442 const std::string& sign_handle_name, 4443 const TPM2B_DATA& qualifying_data, 4444 const TPMT_SIG_SCHEME& in_scheme, 4445 std::string* serialized_command, 4446 AuthorizationDelegate* authorization_delegate); 4447 static TPM_RC ParseResponse_GetTime( 4448 const std::string& response, 4449 TPM2B_ATTEST* time_info, 4450 TPMT_SIGNATURE* signature, 4451 AuthorizationDelegate* authorization_delegate); 4452 virtual void GetTime(const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4453 const std::string& privacy_admin_handle_name, 4454 const TPMI_DH_OBJECT& sign_handle, 4455 const std::string& sign_handle_name, 4456 const TPM2B_DATA& qualifying_data, 4457 const TPMT_SIG_SCHEME& in_scheme, 4458 AuthorizationDelegate* authorization_delegate, 4459 const GetTimeResponse& callback); 4460 virtual TPM_RC GetTimeSync(const TPMI_RH_ENDORSEMENT& privacy_admin_handle, 4461 const std::string& privacy_admin_handle_name, 4462 const TPMI_DH_OBJECT& sign_handle, 4463 const std::string& sign_handle_name, 4464 const TPM2B_DATA& qualifying_data, 4465 const TPMT_SIG_SCHEME& in_scheme, 4466 TPM2B_ATTEST* time_info, 4467 TPMT_SIGNATURE* signature, 4468 AuthorizationDelegate* authorization_delegate); 4469 typedef base::Callback<void(TPM_RC response_code, 4470 const UINT32& param_size_out, 4471 const TPM2B_ECC_POINT& k, 4472 const TPM2B_ECC_POINT& l, 4473 const TPM2B_ECC_POINT& e, 4474 const UINT16& counter)> 4475 CommitResponse; 4476 static TPM_RC SerializeCommand_Commit( 4477 const TPMI_DH_OBJECT& sign_handle, 4478 const std::string& sign_handle_name, 4479 const UINT32& param_size, 4480 const TPM2B_ECC_POINT& p1, 4481 const TPM2B_SENSITIVE_DATA& s2, 4482 const TPM2B_ECC_PARAMETER& y2, 4483 std::string* serialized_command, 4484 AuthorizationDelegate* authorization_delegate); 4485 static TPM_RC ParseResponse_Commit( 4486 const std::string& response, 4487 UINT32* param_size_out, 4488 TPM2B_ECC_POINT* k, 4489 TPM2B_ECC_POINT* l, 4490 TPM2B_ECC_POINT* e, 4491 UINT16* counter, 4492 AuthorizationDelegate* authorization_delegate); 4493 virtual void Commit(const TPMI_DH_OBJECT& sign_handle, 4494 const std::string& sign_handle_name, 4495 const UINT32& param_size, 4496 const TPM2B_ECC_POINT& p1, 4497 const TPM2B_SENSITIVE_DATA& s2, 4498 const TPM2B_ECC_PARAMETER& y2, 4499 AuthorizationDelegate* authorization_delegate, 4500 const CommitResponse& callback); 4501 virtual TPM_RC CommitSync(const TPMI_DH_OBJECT& sign_handle, 4502 const std::string& sign_handle_name, 4503 const UINT32& param_size, 4504 const TPM2B_ECC_POINT& p1, 4505 const TPM2B_SENSITIVE_DATA& s2, 4506 const TPM2B_ECC_PARAMETER& y2, 4507 UINT32* param_size_out, 4508 TPM2B_ECC_POINT* k, 4509 TPM2B_ECC_POINT* l, 4510 TPM2B_ECC_POINT* e, 4511 UINT16* counter, 4512 AuthorizationDelegate* authorization_delegate); 4513 typedef base::Callback<void(TPM_RC response_code, 4514 const UINT32& param_size_out, 4515 const TPM2B_ECC_POINT& q, 4516 const UINT16& counter)> 4517 EC_EphemeralResponse; 4518 static TPM_RC SerializeCommand_EC_Ephemeral( 4519 const UINT32& param_size, 4520 const TPMI_ECC_CURVE& curve_id, 4521 std::string* serialized_command, 4522 AuthorizationDelegate* authorization_delegate); 4523 static TPM_RC ParseResponse_EC_Ephemeral( 4524 const std::string& response, 4525 UINT32* param_size_out, 4526 TPM2B_ECC_POINT* q, 4527 UINT16* counter, 4528 AuthorizationDelegate* authorization_delegate); 4529 virtual void EC_Ephemeral(const UINT32& param_size, 4530 const TPMI_ECC_CURVE& curve_id, 4531 AuthorizationDelegate* authorization_delegate, 4532 const EC_EphemeralResponse& callback); 4533 virtual TPM_RC EC_EphemeralSync( 4534 const UINT32& param_size, 4535 const TPMI_ECC_CURVE& curve_id, 4536 UINT32* param_size_out, 4537 TPM2B_ECC_POINT* q, 4538 UINT16* counter, 4539 AuthorizationDelegate* authorization_delegate); 4540 typedef base::Callback<void(TPM_RC response_code, 4541 const TPMT_TK_VERIFIED& validation)> 4542 VerifySignatureResponse; 4543 static TPM_RC SerializeCommand_VerifySignature( 4544 const TPMI_DH_OBJECT& key_handle, 4545 const std::string& key_handle_name, 4546 const TPM2B_DIGEST& digest, 4547 const TPMT_SIGNATURE& signature, 4548 std::string* serialized_command, 4549 AuthorizationDelegate* authorization_delegate); 4550 static TPM_RC ParseResponse_VerifySignature( 4551 const std::string& response, 4552 TPMT_TK_VERIFIED* validation, 4553 AuthorizationDelegate* authorization_delegate); 4554 virtual void VerifySignature(const TPMI_DH_OBJECT& key_handle, 4555 const std::string& key_handle_name, 4556 const TPM2B_DIGEST& digest, 4557 const TPMT_SIGNATURE& signature, 4558 AuthorizationDelegate* authorization_delegate, 4559 const VerifySignatureResponse& callback); 4560 virtual TPM_RC VerifySignatureSync( 4561 const TPMI_DH_OBJECT& key_handle, 4562 const std::string& key_handle_name, 4563 const TPM2B_DIGEST& digest, 4564 const TPMT_SIGNATURE& signature, 4565 TPMT_TK_VERIFIED* validation, 4566 AuthorizationDelegate* authorization_delegate); 4567 typedef base::Callback<void(TPM_RC response_code, 4568 const TPMT_SIGNATURE& signature)> 4569 SignResponse; 4570 static TPM_RC SerializeCommand_Sign( 4571 const TPMI_DH_OBJECT& key_handle, 4572 const std::string& key_handle_name, 4573 const TPM2B_DIGEST& digest, 4574 const TPMT_SIG_SCHEME& in_scheme, 4575 const TPMT_TK_HASHCHECK& validation, 4576 std::string* serialized_command, 4577 AuthorizationDelegate* authorization_delegate); 4578 static TPM_RC ParseResponse_Sign( 4579 const std::string& response, 4580 TPMT_SIGNATURE* signature, 4581 AuthorizationDelegate* authorization_delegate); 4582 virtual void Sign(const TPMI_DH_OBJECT& key_handle, 4583 const std::string& key_handle_name, 4584 const TPM2B_DIGEST& digest, 4585 const TPMT_SIG_SCHEME& in_scheme, 4586 const TPMT_TK_HASHCHECK& validation, 4587 AuthorizationDelegate* authorization_delegate, 4588 const SignResponse& callback); 4589 virtual TPM_RC SignSync(const TPMI_DH_OBJECT& key_handle, 4590 const std::string& key_handle_name, 4591 const TPM2B_DIGEST& digest, 4592 const TPMT_SIG_SCHEME& in_scheme, 4593 const TPMT_TK_HASHCHECK& validation, 4594 TPMT_SIGNATURE* signature, 4595 AuthorizationDelegate* authorization_delegate); 4596 typedef base::Callback<void(TPM_RC response_code)> 4597 SetCommandCodeAuditStatusResponse; 4598 static TPM_RC SerializeCommand_SetCommandCodeAuditStatus( 4599 const TPMI_RH_PROVISION& auth, 4600 const std::string& auth_name, 4601 const TPMI_ALG_HASH& audit_alg, 4602 const TPML_CC& set_list, 4603 const TPML_CC& clear_list, 4604 std::string* serialized_command, 4605 AuthorizationDelegate* authorization_delegate); 4606 static TPM_RC ParseResponse_SetCommandCodeAuditStatus( 4607 const std::string& response, 4608 AuthorizationDelegate* authorization_delegate); 4609 virtual void SetCommandCodeAuditStatus( 4610 const TPMI_RH_PROVISION& auth, 4611 const std::string& auth_name, 4612 const TPMI_ALG_HASH& audit_alg, 4613 const TPML_CC& set_list, 4614 const TPML_CC& clear_list, 4615 AuthorizationDelegate* authorization_delegate, 4616 const SetCommandCodeAuditStatusResponse& callback); 4617 virtual TPM_RC SetCommandCodeAuditStatusSync( 4618 const TPMI_RH_PROVISION& auth, 4619 const std::string& auth_name, 4620 const TPMI_ALG_HASH& audit_alg, 4621 const TPML_CC& set_list, 4622 const TPML_CC& clear_list, 4623 AuthorizationDelegate* authorization_delegate); 4624 typedef base::Callback<void(TPM_RC response_code)> PCR_ExtendResponse; 4625 static TPM_RC SerializeCommand_PCR_Extend( 4626 const TPMI_DH_PCR& pcr_handle, 4627 const std::string& pcr_handle_name, 4628 const TPML_DIGEST_VALUES& digests, 4629 std::string* serialized_command, 4630 AuthorizationDelegate* authorization_delegate); 4631 static TPM_RC ParseResponse_PCR_Extend( 4632 const std::string& response, 4633 AuthorizationDelegate* authorization_delegate); 4634 virtual void PCR_Extend(const TPMI_DH_PCR& pcr_handle, 4635 const std::string& pcr_handle_name, 4636 const TPML_DIGEST_VALUES& digests, 4637 AuthorizationDelegate* authorization_delegate, 4638 const PCR_ExtendResponse& callback); 4639 virtual TPM_RC PCR_ExtendSync(const TPMI_DH_PCR& pcr_handle, 4640 const std::string& pcr_handle_name, 4641 const TPML_DIGEST_VALUES& digests, 4642 AuthorizationDelegate* authorization_delegate); 4643 typedef base::Callback<void(TPM_RC response_code, 4644 const TPML_DIGEST_VALUES& digests)> 4645 PCR_EventResponse; 4646 static TPM_RC SerializeCommand_PCR_Event( 4647 const TPMI_DH_PCR& pcr_handle, 4648 const std::string& pcr_handle_name, 4649 const TPM2B_EVENT& event_data, 4650 std::string* serialized_command, 4651 AuthorizationDelegate* authorization_delegate); 4652 static TPM_RC ParseResponse_PCR_Event( 4653 const std::string& response, 4654 TPML_DIGEST_VALUES* digests, 4655 AuthorizationDelegate* authorization_delegate); 4656 virtual void PCR_Event(const TPMI_DH_PCR& pcr_handle, 4657 const std::string& pcr_handle_name, 4658 const TPM2B_EVENT& event_data, 4659 AuthorizationDelegate* authorization_delegate, 4660 const PCR_EventResponse& callback); 4661 virtual TPM_RC PCR_EventSync(const TPMI_DH_PCR& pcr_handle, 4662 const std::string& pcr_handle_name, 4663 const TPM2B_EVENT& event_data, 4664 TPML_DIGEST_VALUES* digests, 4665 AuthorizationDelegate* authorization_delegate); 4666 typedef base::Callback<void(TPM_RC response_code, 4667 const UINT32& pcr_update_counter, 4668 const TPML_PCR_SELECTION& pcr_selection_out, 4669 const TPML_DIGEST& pcr_values)> 4670 PCR_ReadResponse; 4671 static TPM_RC SerializeCommand_PCR_Read( 4672 const TPML_PCR_SELECTION& pcr_selection_in, 4673 std::string* serialized_command, 4674 AuthorizationDelegate* authorization_delegate); 4675 static TPM_RC ParseResponse_PCR_Read( 4676 const std::string& response, 4677 UINT32* pcr_update_counter, 4678 TPML_PCR_SELECTION* pcr_selection_out, 4679 TPML_DIGEST* pcr_values, 4680 AuthorizationDelegate* authorization_delegate); 4681 virtual void PCR_Read(const TPML_PCR_SELECTION& pcr_selection_in, 4682 AuthorizationDelegate* authorization_delegate, 4683 const PCR_ReadResponse& callback); 4684 virtual TPM_RC PCR_ReadSync(const TPML_PCR_SELECTION& pcr_selection_in, 4685 UINT32* pcr_update_counter, 4686 TPML_PCR_SELECTION* pcr_selection_out, 4687 TPML_DIGEST* pcr_values, 4688 AuthorizationDelegate* authorization_delegate); 4689 typedef base::Callback<void(TPM_RC response_code, 4690 const TPMI_YES_NO& allocation_success, 4691 const UINT32& max_pcr, 4692 const UINT32& size_needed, 4693 const UINT32& size_available)> 4694 PCR_AllocateResponse; 4695 static TPM_RC SerializeCommand_PCR_Allocate( 4696 const TPMI_RH_PLATFORM& auth_handle, 4697 const std::string& auth_handle_name, 4698 const TPML_PCR_SELECTION& pcr_allocation, 4699 std::string* serialized_command, 4700 AuthorizationDelegate* authorization_delegate); 4701 static TPM_RC ParseResponse_PCR_Allocate( 4702 const std::string& response, 4703 TPMI_YES_NO* allocation_success, 4704 UINT32* max_pcr, 4705 UINT32* size_needed, 4706 UINT32* size_available, 4707 AuthorizationDelegate* authorization_delegate); 4708 virtual void PCR_Allocate(const TPMI_RH_PLATFORM& auth_handle, 4709 const std::string& auth_handle_name, 4710 const TPML_PCR_SELECTION& pcr_allocation, 4711 AuthorizationDelegate* authorization_delegate, 4712 const PCR_AllocateResponse& callback); 4713 virtual TPM_RC PCR_AllocateSync( 4714 const TPMI_RH_PLATFORM& auth_handle, 4715 const std::string& auth_handle_name, 4716 const TPML_PCR_SELECTION& pcr_allocation, 4717 TPMI_YES_NO* allocation_success, 4718 UINT32* max_pcr, 4719 UINT32* size_needed, 4720 UINT32* size_available, 4721 AuthorizationDelegate* authorization_delegate); 4722 typedef base::Callback<void(TPM_RC response_code)> PCR_SetAuthPolicyResponse; 4723 static TPM_RC SerializeCommand_PCR_SetAuthPolicy( 4724 const TPMI_RH_PLATFORM& auth_handle, 4725 const std::string& auth_handle_name, 4726 const TPMI_DH_PCR& pcr_num, 4727 const std::string& pcr_num_name, 4728 const TPM2B_DIGEST& auth_policy, 4729 const TPMI_ALG_HASH& policy_digest, 4730 std::string* serialized_command, 4731 AuthorizationDelegate* authorization_delegate); 4732 static TPM_RC ParseResponse_PCR_SetAuthPolicy( 4733 const std::string& response, 4734 AuthorizationDelegate* authorization_delegate); 4735 virtual void PCR_SetAuthPolicy(const TPMI_RH_PLATFORM& auth_handle, 4736 const std::string& auth_handle_name, 4737 const TPMI_DH_PCR& pcr_num, 4738 const std::string& pcr_num_name, 4739 const TPM2B_DIGEST& auth_policy, 4740 const TPMI_ALG_HASH& policy_digest, 4741 AuthorizationDelegate* authorization_delegate, 4742 const PCR_SetAuthPolicyResponse& callback); 4743 virtual TPM_RC PCR_SetAuthPolicySync( 4744 const TPMI_RH_PLATFORM& auth_handle, 4745 const std::string& auth_handle_name, 4746 const TPMI_DH_PCR& pcr_num, 4747 const std::string& pcr_num_name, 4748 const TPM2B_DIGEST& auth_policy, 4749 const TPMI_ALG_HASH& policy_digest, 4750 AuthorizationDelegate* authorization_delegate); 4751 typedef base::Callback<void(TPM_RC response_code)> PCR_SetAuthValueResponse; 4752 static TPM_RC SerializeCommand_PCR_SetAuthValue( 4753 const TPMI_DH_PCR& pcr_handle, 4754 const std::string& pcr_handle_name, 4755 const TPM2B_DIGEST& auth, 4756 std::string* serialized_command, 4757 AuthorizationDelegate* authorization_delegate); 4758 static TPM_RC ParseResponse_PCR_SetAuthValue( 4759 const std::string& response, 4760 AuthorizationDelegate* authorization_delegate); 4761 virtual void PCR_SetAuthValue(const TPMI_DH_PCR& pcr_handle, 4762 const std::string& pcr_handle_name, 4763 const TPM2B_DIGEST& auth, 4764 AuthorizationDelegate* authorization_delegate, 4765 const PCR_SetAuthValueResponse& callback); 4766 virtual TPM_RC PCR_SetAuthValueSync( 4767 const TPMI_DH_PCR& pcr_handle, 4768 const std::string& pcr_handle_name, 4769 const TPM2B_DIGEST& auth, 4770 AuthorizationDelegate* authorization_delegate); 4771 typedef base::Callback<void(TPM_RC response_code)> PCR_ResetResponse; 4772 static TPM_RC SerializeCommand_PCR_Reset( 4773 const TPMI_DH_PCR& pcr_handle, 4774 const std::string& pcr_handle_name, 4775 std::string* serialized_command, 4776 AuthorizationDelegate* authorization_delegate); 4777 static TPM_RC ParseResponse_PCR_Reset( 4778 const std::string& response, 4779 AuthorizationDelegate* authorization_delegate); 4780 virtual void PCR_Reset(const TPMI_DH_PCR& pcr_handle, 4781 const std::string& pcr_handle_name, 4782 AuthorizationDelegate* authorization_delegate, 4783 const PCR_ResetResponse& callback); 4784 virtual TPM_RC PCR_ResetSync(const TPMI_DH_PCR& pcr_handle, 4785 const std::string& pcr_handle_name, 4786 AuthorizationDelegate* authorization_delegate); 4787 typedef base::Callback<void(TPM_RC response_code, 4788 const TPM2B_TIMEOUT& timeout, 4789 const TPMT_TK_AUTH& policy_ticket)> 4790 PolicySignedResponse; 4791 static TPM_RC SerializeCommand_PolicySigned( 4792 const TPMI_DH_OBJECT& auth_object, 4793 const std::string& auth_object_name, 4794 const TPMI_SH_POLICY& policy_session, 4795 const std::string& policy_session_name, 4796 const TPM2B_NONCE& nonce_tpm, 4797 const TPM2B_DIGEST& cp_hash_a, 4798 const TPM2B_NONCE& policy_ref, 4799 const INT32& expiration, 4800 const TPMT_SIGNATURE& auth, 4801 std::string* serialized_command, 4802 AuthorizationDelegate* authorization_delegate); 4803 static TPM_RC ParseResponse_PolicySigned( 4804 const std::string& response, 4805 TPM2B_TIMEOUT* timeout, 4806 TPMT_TK_AUTH* policy_ticket, 4807 AuthorizationDelegate* authorization_delegate); 4808 virtual void PolicySigned(const TPMI_DH_OBJECT& auth_object, 4809 const std::string& auth_object_name, 4810 const TPMI_SH_POLICY& policy_session, 4811 const std::string& policy_session_name, 4812 const TPM2B_NONCE& nonce_tpm, 4813 const TPM2B_DIGEST& cp_hash_a, 4814 const TPM2B_NONCE& policy_ref, 4815 const INT32& expiration, 4816 const TPMT_SIGNATURE& auth, 4817 AuthorizationDelegate* authorization_delegate, 4818 const PolicySignedResponse& callback); 4819 virtual TPM_RC PolicySignedSync( 4820 const TPMI_DH_OBJECT& auth_object, 4821 const std::string& auth_object_name, 4822 const TPMI_SH_POLICY& policy_session, 4823 const std::string& policy_session_name, 4824 const TPM2B_NONCE& nonce_tpm, 4825 const TPM2B_DIGEST& cp_hash_a, 4826 const TPM2B_NONCE& policy_ref, 4827 const INT32& expiration, 4828 const TPMT_SIGNATURE& auth, 4829 TPM2B_TIMEOUT* timeout, 4830 TPMT_TK_AUTH* policy_ticket, 4831 AuthorizationDelegate* authorization_delegate); 4832 typedef base::Callback<void(TPM_RC response_code, 4833 const TPM2B_TIMEOUT& timeout, 4834 const TPMT_TK_AUTH& policy_ticket)> 4835 PolicySecretResponse; 4836 static TPM_RC SerializeCommand_PolicySecret( 4837 const TPMI_DH_ENTITY& auth_handle, 4838 const std::string& auth_handle_name, 4839 const TPMI_SH_POLICY& policy_session, 4840 const std::string& policy_session_name, 4841 const TPM2B_NONCE& nonce_tpm, 4842 const TPM2B_DIGEST& cp_hash_a, 4843 const TPM2B_NONCE& policy_ref, 4844 const INT32& expiration, 4845 std::string* serialized_command, 4846 AuthorizationDelegate* authorization_delegate); 4847 static TPM_RC ParseResponse_PolicySecret( 4848 const std::string& response, 4849 TPM2B_TIMEOUT* timeout, 4850 TPMT_TK_AUTH* policy_ticket, 4851 AuthorizationDelegate* authorization_delegate); 4852 virtual void PolicySecret(const TPMI_DH_ENTITY& auth_handle, 4853 const std::string& auth_handle_name, 4854 const TPMI_SH_POLICY& policy_session, 4855 const std::string& policy_session_name, 4856 const TPM2B_NONCE& nonce_tpm, 4857 const TPM2B_DIGEST& cp_hash_a, 4858 const TPM2B_NONCE& policy_ref, 4859 const INT32& expiration, 4860 AuthorizationDelegate* authorization_delegate, 4861 const PolicySecretResponse& callback); 4862 virtual TPM_RC PolicySecretSync( 4863 const TPMI_DH_ENTITY& auth_handle, 4864 const std::string& auth_handle_name, 4865 const TPMI_SH_POLICY& policy_session, 4866 const std::string& policy_session_name, 4867 const TPM2B_NONCE& nonce_tpm, 4868 const TPM2B_DIGEST& cp_hash_a, 4869 const TPM2B_NONCE& policy_ref, 4870 const INT32& expiration, 4871 TPM2B_TIMEOUT* timeout, 4872 TPMT_TK_AUTH* policy_ticket, 4873 AuthorizationDelegate* authorization_delegate); 4874 typedef base::Callback<void(TPM_RC response_code)> PolicyTicketResponse; 4875 static TPM_RC SerializeCommand_PolicyTicket( 4876 const TPMI_SH_POLICY& policy_session, 4877 const std::string& policy_session_name, 4878 const TPM2B_TIMEOUT& timeout, 4879 const TPM2B_DIGEST& cp_hash_a, 4880 const TPM2B_NONCE& policy_ref, 4881 const TPM2B_NAME& auth_name, 4882 const TPMT_TK_AUTH& ticket, 4883 std::string* serialized_command, 4884 AuthorizationDelegate* authorization_delegate); 4885 static TPM_RC ParseResponse_PolicyTicket( 4886 const std::string& response, 4887 AuthorizationDelegate* authorization_delegate); 4888 virtual void PolicyTicket(const TPMI_SH_POLICY& policy_session, 4889 const std::string& policy_session_name, 4890 const TPM2B_TIMEOUT& timeout, 4891 const TPM2B_DIGEST& cp_hash_a, 4892 const TPM2B_NONCE& policy_ref, 4893 const TPM2B_NAME& auth_name, 4894 const TPMT_TK_AUTH& ticket, 4895 AuthorizationDelegate* authorization_delegate, 4896 const PolicyTicketResponse& callback); 4897 virtual TPM_RC PolicyTicketSync( 4898 const TPMI_SH_POLICY& policy_session, 4899 const std::string& policy_session_name, 4900 const TPM2B_TIMEOUT& timeout, 4901 const TPM2B_DIGEST& cp_hash_a, 4902 const TPM2B_NONCE& policy_ref, 4903 const TPM2B_NAME& auth_name, 4904 const TPMT_TK_AUTH& ticket, 4905 AuthorizationDelegate* authorization_delegate); 4906 typedef base::Callback<void(TPM_RC response_code)> PolicyORResponse; 4907 static TPM_RC SerializeCommand_PolicyOR( 4908 const TPMI_SH_POLICY& policy_session, 4909 const std::string& policy_session_name, 4910 const TPML_DIGEST& p_hash_list, 4911 std::string* serialized_command, 4912 AuthorizationDelegate* authorization_delegate); 4913 static TPM_RC ParseResponse_PolicyOR( 4914 const std::string& response, 4915 AuthorizationDelegate* authorization_delegate); 4916 virtual void PolicyOR(const TPMI_SH_POLICY& policy_session, 4917 const std::string& policy_session_name, 4918 const TPML_DIGEST& p_hash_list, 4919 AuthorizationDelegate* authorization_delegate, 4920 const PolicyORResponse& callback); 4921 virtual TPM_RC PolicyORSync(const TPMI_SH_POLICY& policy_session, 4922 const std::string& policy_session_name, 4923 const TPML_DIGEST& p_hash_list, 4924 AuthorizationDelegate* authorization_delegate); 4925 typedef base::Callback<void(TPM_RC response_code)> PolicyPCRResponse; 4926 static TPM_RC SerializeCommand_PolicyPCR( 4927 const TPMI_SH_POLICY& policy_session, 4928 const std::string& policy_session_name, 4929 const TPM2B_DIGEST& pcr_digest, 4930 const TPML_PCR_SELECTION& pcrs, 4931 std::string* serialized_command, 4932 AuthorizationDelegate* authorization_delegate); 4933 static TPM_RC ParseResponse_PolicyPCR( 4934 const std::string& response, 4935 AuthorizationDelegate* authorization_delegate); 4936 virtual void PolicyPCR(const TPMI_SH_POLICY& policy_session, 4937 const std::string& policy_session_name, 4938 const TPM2B_DIGEST& pcr_digest, 4939 const TPML_PCR_SELECTION& pcrs, 4940 AuthorizationDelegate* authorization_delegate, 4941 const PolicyPCRResponse& callback); 4942 virtual TPM_RC PolicyPCRSync(const TPMI_SH_POLICY& policy_session, 4943 const std::string& policy_session_name, 4944 const TPM2B_DIGEST& pcr_digest, 4945 const TPML_PCR_SELECTION& pcrs, 4946 AuthorizationDelegate* authorization_delegate); 4947 typedef base::Callback<void(TPM_RC response_code)> PolicyLocalityResponse; 4948 static TPM_RC SerializeCommand_PolicyLocality( 4949 const TPMI_SH_POLICY& policy_session, 4950 const std::string& policy_session_name, 4951 const TPMA_LOCALITY& locality, 4952 std::string* serialized_command, 4953 AuthorizationDelegate* authorization_delegate); 4954 static TPM_RC ParseResponse_PolicyLocality( 4955 const std::string& response, 4956 AuthorizationDelegate* authorization_delegate); 4957 virtual void PolicyLocality(const TPMI_SH_POLICY& policy_session, 4958 const std::string& policy_session_name, 4959 const TPMA_LOCALITY& locality, 4960 AuthorizationDelegate* authorization_delegate, 4961 const PolicyLocalityResponse& callback); 4962 virtual TPM_RC PolicyLocalitySync( 4963 const TPMI_SH_POLICY& policy_session, 4964 const std::string& policy_session_name, 4965 const TPMA_LOCALITY& locality, 4966 AuthorizationDelegate* authorization_delegate); 4967 typedef base::Callback<void(TPM_RC response_code)> PolicyNVResponse; 4968 static TPM_RC SerializeCommand_PolicyNV( 4969 const TPMI_RH_NV_AUTH& auth_handle, 4970 const std::string& auth_handle_name, 4971 const TPMI_RH_NV_INDEX& nv_index, 4972 const std::string& nv_index_name, 4973 const TPMI_SH_POLICY& policy_session, 4974 const std::string& policy_session_name, 4975 const TPM2B_OPERAND& operand_b, 4976 const UINT16& offset, 4977 const TPM_EO& operation, 4978 std::string* serialized_command, 4979 AuthorizationDelegate* authorization_delegate); 4980 static TPM_RC ParseResponse_PolicyNV( 4981 const std::string& response, 4982 AuthorizationDelegate* authorization_delegate); 4983 virtual void PolicyNV(const TPMI_RH_NV_AUTH& auth_handle, 4984 const std::string& auth_handle_name, 4985 const TPMI_RH_NV_INDEX& nv_index, 4986 const std::string& nv_index_name, 4987 const TPMI_SH_POLICY& policy_session, 4988 const std::string& policy_session_name, 4989 const TPM2B_OPERAND& operand_b, 4990 const UINT16& offset, 4991 const TPM_EO& operation, 4992 AuthorizationDelegate* authorization_delegate, 4993 const PolicyNVResponse& callback); 4994 virtual TPM_RC PolicyNVSync(const TPMI_RH_NV_AUTH& auth_handle, 4995 const std::string& auth_handle_name, 4996 const TPMI_RH_NV_INDEX& nv_index, 4997 const std::string& nv_index_name, 4998 const TPMI_SH_POLICY& policy_session, 4999 const std::string& policy_session_name, 5000 const TPM2B_OPERAND& operand_b, 5001 const UINT16& offset, 5002 const TPM_EO& operation, 5003 AuthorizationDelegate* authorization_delegate); 5004 typedef base::Callback<void(TPM_RC response_code)> PolicyCounterTimerResponse; 5005 static TPM_RC SerializeCommand_PolicyCounterTimer( 5006 const TPMI_SH_POLICY& policy_session, 5007 const std::string& policy_session_name, 5008 const TPM2B_OPERAND& operand_b, 5009 const UINT16& offset, 5010 const TPM_EO& operation, 5011 std::string* serialized_command, 5012 AuthorizationDelegate* authorization_delegate); 5013 static TPM_RC ParseResponse_PolicyCounterTimer( 5014 const std::string& response, 5015 AuthorizationDelegate* authorization_delegate); 5016 virtual void PolicyCounterTimer(const TPMI_SH_POLICY& policy_session, 5017 const std::string& policy_session_name, 5018 const TPM2B_OPERAND& operand_b, 5019 const UINT16& offset, 5020 const TPM_EO& operation, 5021 AuthorizationDelegate* authorization_delegate, 5022 const PolicyCounterTimerResponse& callback); 5023 virtual TPM_RC PolicyCounterTimerSync( 5024 const TPMI_SH_POLICY& policy_session, 5025 const std::string& policy_session_name, 5026 const TPM2B_OPERAND& operand_b, 5027 const UINT16& offset, 5028 const TPM_EO& operation, 5029 AuthorizationDelegate* authorization_delegate); 5030 typedef base::Callback<void(TPM_RC response_code)> PolicyCommandCodeResponse; 5031 static TPM_RC SerializeCommand_PolicyCommandCode( 5032 const TPMI_SH_POLICY& policy_session, 5033 const std::string& policy_session_name, 5034 const TPM_CC& code, 5035 std::string* serialized_command, 5036 AuthorizationDelegate* authorization_delegate); 5037 static TPM_RC ParseResponse_PolicyCommandCode( 5038 const std::string& response, 5039 AuthorizationDelegate* authorization_delegate); 5040 virtual void PolicyCommandCode(const TPMI_SH_POLICY& policy_session, 5041 const std::string& policy_session_name, 5042 const TPM_CC& code, 5043 AuthorizationDelegate* authorization_delegate, 5044 const PolicyCommandCodeResponse& callback); 5045 virtual TPM_RC PolicyCommandCodeSync( 5046 const TPMI_SH_POLICY& policy_session, 5047 const std::string& policy_session_name, 5048 const TPM_CC& code, 5049 AuthorizationDelegate* authorization_delegate); 5050 typedef base::Callback<void(TPM_RC response_code)> 5051 PolicyPhysicalPresenceResponse; 5052 static TPM_RC SerializeCommand_PolicyPhysicalPresence( 5053 const TPMI_SH_POLICY& policy_session, 5054 const std::string& policy_session_name, 5055 std::string* serialized_command, 5056 AuthorizationDelegate* authorization_delegate); 5057 static TPM_RC ParseResponse_PolicyPhysicalPresence( 5058 const std::string& response, 5059 AuthorizationDelegate* authorization_delegate); 5060 virtual void PolicyPhysicalPresence( 5061 const TPMI_SH_POLICY& policy_session, 5062 const std::string& policy_session_name, 5063 AuthorizationDelegate* authorization_delegate, 5064 const PolicyPhysicalPresenceResponse& callback); 5065 virtual TPM_RC PolicyPhysicalPresenceSync( 5066 const TPMI_SH_POLICY& policy_session, 5067 const std::string& policy_session_name, 5068 AuthorizationDelegate* authorization_delegate); 5069 typedef base::Callback<void(TPM_RC response_code)> PolicyCpHashResponse; 5070 static TPM_RC SerializeCommand_PolicyCpHash( 5071 const TPMI_SH_POLICY& policy_session, 5072 const std::string& policy_session_name, 5073 const TPM2B_DIGEST& cp_hash_a, 5074 std::string* serialized_command, 5075 AuthorizationDelegate* authorization_delegate); 5076 static TPM_RC ParseResponse_PolicyCpHash( 5077 const std::string& response, 5078 AuthorizationDelegate* authorization_delegate); 5079 virtual void PolicyCpHash(const TPMI_SH_POLICY& policy_session, 5080 const std::string& policy_session_name, 5081 const TPM2B_DIGEST& cp_hash_a, 5082 AuthorizationDelegate* authorization_delegate, 5083 const PolicyCpHashResponse& callback); 5084 virtual TPM_RC PolicyCpHashSync( 5085 const TPMI_SH_POLICY& policy_session, 5086 const std::string& policy_session_name, 5087 const TPM2B_DIGEST& cp_hash_a, 5088 AuthorizationDelegate* authorization_delegate); 5089 typedef base::Callback<void(TPM_RC response_code)> PolicyNameHashResponse; 5090 static TPM_RC SerializeCommand_PolicyNameHash( 5091 const TPMI_SH_POLICY& policy_session, 5092 const std::string& policy_session_name, 5093 const TPM2B_DIGEST& name_hash, 5094 std::string* serialized_command, 5095 AuthorizationDelegate* authorization_delegate); 5096 static TPM_RC ParseResponse_PolicyNameHash( 5097 const std::string& response, 5098 AuthorizationDelegate* authorization_delegate); 5099 virtual void PolicyNameHash(const TPMI_SH_POLICY& policy_session, 5100 const std::string& policy_session_name, 5101 const TPM2B_DIGEST& name_hash, 5102 AuthorizationDelegate* authorization_delegate, 5103 const PolicyNameHashResponse& callback); 5104 virtual TPM_RC PolicyNameHashSync( 5105 const TPMI_SH_POLICY& policy_session, 5106 const std::string& policy_session_name, 5107 const TPM2B_DIGEST& name_hash, 5108 AuthorizationDelegate* authorization_delegate); 5109 typedef base::Callback<void(TPM_RC response_code)> 5110 PolicyDuplicationSelectResponse; 5111 static TPM_RC SerializeCommand_PolicyDuplicationSelect( 5112 const TPMI_SH_POLICY& policy_session, 5113 const std::string& policy_session_name, 5114 const TPM2B_NAME& object_name, 5115 const TPM2B_NAME& new_parent_name, 5116 const TPMI_YES_NO& include_object, 5117 std::string* serialized_command, 5118 AuthorizationDelegate* authorization_delegate); 5119 static TPM_RC ParseResponse_PolicyDuplicationSelect( 5120 const std::string& response, 5121 AuthorizationDelegate* authorization_delegate); 5122 virtual void PolicyDuplicationSelect( 5123 const TPMI_SH_POLICY& policy_session, 5124 const std::string& policy_session_name, 5125 const TPM2B_NAME& object_name, 5126 const TPM2B_NAME& new_parent_name, 5127 const TPMI_YES_NO& include_object, 5128 AuthorizationDelegate* authorization_delegate, 5129 const PolicyDuplicationSelectResponse& callback); 5130 virtual TPM_RC PolicyDuplicationSelectSync( 5131 const TPMI_SH_POLICY& policy_session, 5132 const std::string& policy_session_name, 5133 const TPM2B_NAME& object_name, 5134 const TPM2B_NAME& new_parent_name, 5135 const TPMI_YES_NO& include_object, 5136 AuthorizationDelegate* authorization_delegate); 5137 typedef base::Callback<void(TPM_RC response_code)> PolicyAuthorizeResponse; 5138 static TPM_RC SerializeCommand_PolicyAuthorize( 5139 const TPMI_SH_POLICY& policy_session, 5140 const std::string& policy_session_name, 5141 const TPM2B_DIGEST& approved_policy, 5142 const TPM2B_NONCE& policy_ref, 5143 const TPM2B_NAME& key_sign, 5144 const TPMT_TK_VERIFIED& check_ticket, 5145 std::string* serialized_command, 5146 AuthorizationDelegate* authorization_delegate); 5147 static TPM_RC ParseResponse_PolicyAuthorize( 5148 const std::string& response, 5149 AuthorizationDelegate* authorization_delegate); 5150 virtual void PolicyAuthorize(const TPMI_SH_POLICY& policy_session, 5151 const std::string& policy_session_name, 5152 const TPM2B_DIGEST& approved_policy, 5153 const TPM2B_NONCE& policy_ref, 5154 const TPM2B_NAME& key_sign, 5155 const TPMT_TK_VERIFIED& check_ticket, 5156 AuthorizationDelegate* authorization_delegate, 5157 const PolicyAuthorizeResponse& callback); 5158 virtual TPM_RC PolicyAuthorizeSync( 5159 const TPMI_SH_POLICY& policy_session, 5160 const std::string& policy_session_name, 5161 const TPM2B_DIGEST& approved_policy, 5162 const TPM2B_NONCE& policy_ref, 5163 const TPM2B_NAME& key_sign, 5164 const TPMT_TK_VERIFIED& check_ticket, 5165 AuthorizationDelegate* authorization_delegate); 5166 typedef base::Callback<void(TPM_RC response_code)> PolicyAuthValueResponse; 5167 static TPM_RC SerializeCommand_PolicyAuthValue( 5168 const TPMI_SH_POLICY& policy_session, 5169 const std::string& policy_session_name, 5170 std::string* serialized_command, 5171 AuthorizationDelegate* authorization_delegate); 5172 static TPM_RC ParseResponse_PolicyAuthValue( 5173 const std::string& response, 5174 AuthorizationDelegate* authorization_delegate); 5175 virtual void PolicyAuthValue(const TPMI_SH_POLICY& policy_session, 5176 const std::string& policy_session_name, 5177 AuthorizationDelegate* authorization_delegate, 5178 const PolicyAuthValueResponse& callback); 5179 virtual TPM_RC PolicyAuthValueSync( 5180 const TPMI_SH_POLICY& policy_session, 5181 const std::string& policy_session_name, 5182 AuthorizationDelegate* authorization_delegate); 5183 typedef base::Callback<void(TPM_RC response_code)> PolicyPasswordResponse; 5184 static TPM_RC SerializeCommand_PolicyPassword( 5185 const TPMI_SH_POLICY& policy_session, 5186 const std::string& policy_session_name, 5187 std::string* serialized_command, 5188 AuthorizationDelegate* authorization_delegate); 5189 static TPM_RC ParseResponse_PolicyPassword( 5190 const std::string& response, 5191 AuthorizationDelegate* authorization_delegate); 5192 virtual void PolicyPassword(const TPMI_SH_POLICY& policy_session, 5193 const std::string& policy_session_name, 5194 AuthorizationDelegate* authorization_delegate, 5195 const PolicyPasswordResponse& callback); 5196 virtual TPM_RC PolicyPasswordSync( 5197 const TPMI_SH_POLICY& policy_session, 5198 const std::string& policy_session_name, 5199 AuthorizationDelegate* authorization_delegate); 5200 typedef base::Callback<void(TPM_RC response_code, 5201 const TPM2B_DIGEST& policy_digest)> 5202 PolicyGetDigestResponse; 5203 static TPM_RC SerializeCommand_PolicyGetDigest( 5204 const TPMI_SH_POLICY& policy_session, 5205 const std::string& policy_session_name, 5206 std::string* serialized_command, 5207 AuthorizationDelegate* authorization_delegate); 5208 static TPM_RC ParseResponse_PolicyGetDigest( 5209 const std::string& response, 5210 TPM2B_DIGEST* policy_digest, 5211 AuthorizationDelegate* authorization_delegate); 5212 virtual void PolicyGetDigest(const TPMI_SH_POLICY& policy_session, 5213 const std::string& policy_session_name, 5214 AuthorizationDelegate* authorization_delegate, 5215 const PolicyGetDigestResponse& callback); 5216 virtual TPM_RC PolicyGetDigestSync( 5217 const TPMI_SH_POLICY& policy_session, 5218 const std::string& policy_session_name, 5219 TPM2B_DIGEST* policy_digest, 5220 AuthorizationDelegate* authorization_delegate); 5221 typedef base::Callback<void(TPM_RC response_code)> PolicyNvWrittenResponse; 5222 static TPM_RC SerializeCommand_PolicyNvWritten( 5223 const TPMI_SH_POLICY& policy_session, 5224 const std::string& policy_session_name, 5225 const TPMI_YES_NO& written_set, 5226 std::string* serialized_command, 5227 AuthorizationDelegate* authorization_delegate); 5228 static TPM_RC ParseResponse_PolicyNvWritten( 5229 const std::string& response, 5230 AuthorizationDelegate* authorization_delegate); 5231 virtual void PolicyNvWritten(const TPMI_SH_POLICY& policy_session, 5232 const std::string& policy_session_name, 5233 const TPMI_YES_NO& written_set, 5234 AuthorizationDelegate* authorization_delegate, 5235 const PolicyNvWrittenResponse& callback); 5236 virtual TPM_RC PolicyNvWrittenSync( 5237 const TPMI_SH_POLICY& policy_session, 5238 const std::string& policy_session_name, 5239 const TPMI_YES_NO& written_set, 5240 AuthorizationDelegate* authorization_delegate); 5241 typedef base::Callback<void(TPM_RC response_code, 5242 const TPM_HANDLE& object_handle, 5243 const TPM2B_PUBLIC& out_public, 5244 const TPM2B_CREATION_DATA& creation_data, 5245 const TPM2B_DIGEST& creation_hash, 5246 const TPMT_TK_CREATION& creation_ticket, 5247 const TPM2B_NAME& name)> 5248 CreatePrimaryResponse; 5249 static TPM_RC SerializeCommand_CreatePrimary( 5250 const TPMI_RH_HIERARCHY& primary_handle, 5251 const std::string& primary_handle_name, 5252 const TPM2B_SENSITIVE_CREATE& in_sensitive, 5253 const TPM2B_PUBLIC& in_public, 5254 const TPM2B_DATA& outside_info, 5255 const TPML_PCR_SELECTION& creation_pcr, 5256 std::string* serialized_command, 5257 AuthorizationDelegate* authorization_delegate); 5258 static TPM_RC ParseResponse_CreatePrimary( 5259 const std::string& response, 5260 TPM_HANDLE* object_handle, 5261 TPM2B_PUBLIC* out_public, 5262 TPM2B_CREATION_DATA* creation_data, 5263 TPM2B_DIGEST* creation_hash, 5264 TPMT_TK_CREATION* creation_ticket, 5265 TPM2B_NAME* name, 5266 AuthorizationDelegate* authorization_delegate); 5267 virtual void CreatePrimary(const TPMI_RH_HIERARCHY& primary_handle, 5268 const std::string& primary_handle_name, 5269 const TPM2B_SENSITIVE_CREATE& in_sensitive, 5270 const TPM2B_PUBLIC& in_public, 5271 const TPM2B_DATA& outside_info, 5272 const TPML_PCR_SELECTION& creation_pcr, 5273 AuthorizationDelegate* authorization_delegate, 5274 const CreatePrimaryResponse& callback); 5275 virtual TPM_RC CreatePrimarySync( 5276 const TPMI_RH_HIERARCHY& primary_handle, 5277 const std::string& primary_handle_name, 5278 const TPM2B_SENSITIVE_CREATE& in_sensitive, 5279 const TPM2B_PUBLIC& in_public, 5280 const TPM2B_DATA& outside_info, 5281 const TPML_PCR_SELECTION& creation_pcr, 5282 TPM_HANDLE* object_handle, 5283 TPM2B_PUBLIC* out_public, 5284 TPM2B_CREATION_DATA* creation_data, 5285 TPM2B_DIGEST* creation_hash, 5286 TPMT_TK_CREATION* creation_ticket, 5287 TPM2B_NAME* name, 5288 AuthorizationDelegate* authorization_delegate); 5289 typedef base::Callback<void(TPM_RC response_code)> HierarchyControlResponse; 5290 static TPM_RC SerializeCommand_HierarchyControl( 5291 const TPMI_RH_HIERARCHY& auth_handle, 5292 const std::string& auth_handle_name, 5293 const TPMI_RH_ENABLES& enable, 5294 const TPMI_YES_NO& state, 5295 std::string* serialized_command, 5296 AuthorizationDelegate* authorization_delegate); 5297 static TPM_RC ParseResponse_HierarchyControl( 5298 const std::string& response, 5299 AuthorizationDelegate* authorization_delegate); 5300 virtual void HierarchyControl(const TPMI_RH_HIERARCHY& auth_handle, 5301 const std::string& auth_handle_name, 5302 const TPMI_RH_ENABLES& enable, 5303 const TPMI_YES_NO& state, 5304 AuthorizationDelegate* authorization_delegate, 5305 const HierarchyControlResponse& callback); 5306 virtual TPM_RC HierarchyControlSync( 5307 const TPMI_RH_HIERARCHY& auth_handle, 5308 const std::string& auth_handle_name, 5309 const TPMI_RH_ENABLES& enable, 5310 const TPMI_YES_NO& state, 5311 AuthorizationDelegate* authorization_delegate); 5312 typedef base::Callback<void(TPM_RC response_code)> SetPrimaryPolicyResponse; 5313 static TPM_RC SerializeCommand_SetPrimaryPolicy( 5314 const TPMI_RH_HIERARCHY& auth_handle, 5315 const std::string& auth_handle_name, 5316 const TPM2B_DIGEST& auth_policy, 5317 const TPMI_ALG_HASH& hash_alg, 5318 std::string* serialized_command, 5319 AuthorizationDelegate* authorization_delegate); 5320 static TPM_RC ParseResponse_SetPrimaryPolicy( 5321 const std::string& response, 5322 AuthorizationDelegate* authorization_delegate); 5323 virtual void SetPrimaryPolicy(const TPMI_RH_HIERARCHY& auth_handle, 5324 const std::string& auth_handle_name, 5325 const TPM2B_DIGEST& auth_policy, 5326 const TPMI_ALG_HASH& hash_alg, 5327 AuthorizationDelegate* authorization_delegate, 5328 const SetPrimaryPolicyResponse& callback); 5329 virtual TPM_RC SetPrimaryPolicySync( 5330 const TPMI_RH_HIERARCHY& auth_handle, 5331 const std::string& auth_handle_name, 5332 const TPM2B_DIGEST& auth_policy, 5333 const TPMI_ALG_HASH& hash_alg, 5334 AuthorizationDelegate* authorization_delegate); 5335 typedef base::Callback<void(TPM_RC response_code)> ChangePPSResponse; 5336 static TPM_RC SerializeCommand_ChangePPS( 5337 const TPMI_RH_PLATFORM& auth_handle, 5338 const std::string& auth_handle_name, 5339 std::string* serialized_command, 5340 AuthorizationDelegate* authorization_delegate); 5341 static TPM_RC ParseResponse_ChangePPS( 5342 const std::string& response, 5343 AuthorizationDelegate* authorization_delegate); 5344 virtual void ChangePPS(const TPMI_RH_PLATFORM& auth_handle, 5345 const std::string& auth_handle_name, 5346 AuthorizationDelegate* authorization_delegate, 5347 const ChangePPSResponse& callback); 5348 virtual TPM_RC ChangePPSSync(const TPMI_RH_PLATFORM& auth_handle, 5349 const std::string& auth_handle_name, 5350 AuthorizationDelegate* authorization_delegate); 5351 typedef base::Callback<void(TPM_RC response_code)> ChangeEPSResponse; 5352 static TPM_RC SerializeCommand_ChangeEPS( 5353 const TPMI_RH_PLATFORM& auth_handle, 5354 const std::string& auth_handle_name, 5355 std::string* serialized_command, 5356 AuthorizationDelegate* authorization_delegate); 5357 static TPM_RC ParseResponse_ChangeEPS( 5358 const std::string& response, 5359 AuthorizationDelegate* authorization_delegate); 5360 virtual void ChangeEPS(const TPMI_RH_PLATFORM& auth_handle, 5361 const std::string& auth_handle_name, 5362 AuthorizationDelegate* authorization_delegate, 5363 const ChangeEPSResponse& callback); 5364 virtual TPM_RC ChangeEPSSync(const TPMI_RH_PLATFORM& auth_handle, 5365 const std::string& auth_handle_name, 5366 AuthorizationDelegate* authorization_delegate); 5367 typedef base::Callback<void(TPM_RC response_code)> ClearResponse; 5368 static TPM_RC SerializeCommand_Clear( 5369 const TPMI_RH_CLEAR& auth_handle, 5370 const std::string& auth_handle_name, 5371 std::string* serialized_command, 5372 AuthorizationDelegate* authorization_delegate); 5373 static TPM_RC ParseResponse_Clear( 5374 const std::string& response, 5375 AuthorizationDelegate* authorization_delegate); 5376 virtual void Clear(const TPMI_RH_CLEAR& auth_handle, 5377 const std::string& auth_handle_name, 5378 AuthorizationDelegate* authorization_delegate, 5379 const ClearResponse& callback); 5380 virtual TPM_RC ClearSync(const TPMI_RH_CLEAR& auth_handle, 5381 const std::string& auth_handle_name, 5382 AuthorizationDelegate* authorization_delegate); 5383 typedef base::Callback<void(TPM_RC response_code)> ClearControlResponse; 5384 static TPM_RC SerializeCommand_ClearControl( 5385 const TPMI_RH_CLEAR& auth, 5386 const std::string& auth_name, 5387 const TPMI_YES_NO& disable, 5388 std::string* serialized_command, 5389 AuthorizationDelegate* authorization_delegate); 5390 static TPM_RC ParseResponse_ClearControl( 5391 const std::string& response, 5392 AuthorizationDelegate* authorization_delegate); 5393 virtual void ClearControl(const TPMI_RH_CLEAR& auth, 5394 const std::string& auth_name, 5395 const TPMI_YES_NO& disable, 5396 AuthorizationDelegate* authorization_delegate, 5397 const ClearControlResponse& callback); 5398 virtual TPM_RC ClearControlSync( 5399 const TPMI_RH_CLEAR& auth, 5400 const std::string& auth_name, 5401 const TPMI_YES_NO& disable, 5402 AuthorizationDelegate* authorization_delegate); 5403 typedef base::Callback<void(TPM_RC response_code)> 5404 HierarchyChangeAuthResponse; 5405 static TPM_RC SerializeCommand_HierarchyChangeAuth( 5406 const TPMI_RH_HIERARCHY_AUTH& auth_handle, 5407 const std::string& auth_handle_name, 5408 const TPM2B_AUTH& new_auth, 5409 std::string* serialized_command, 5410 AuthorizationDelegate* authorization_delegate); 5411 static TPM_RC ParseResponse_HierarchyChangeAuth( 5412 const std::string& response, 5413 AuthorizationDelegate* authorization_delegate); 5414 virtual void HierarchyChangeAuth( 5415 const TPMI_RH_HIERARCHY_AUTH& auth_handle, 5416 const std::string& auth_handle_name, 5417 const TPM2B_AUTH& new_auth, 5418 AuthorizationDelegate* authorization_delegate, 5419 const HierarchyChangeAuthResponse& callback); 5420 virtual TPM_RC HierarchyChangeAuthSync( 5421 const TPMI_RH_HIERARCHY_AUTH& auth_handle, 5422 const std::string& auth_handle_name, 5423 const TPM2B_AUTH& new_auth, 5424 AuthorizationDelegate* authorization_delegate); 5425 typedef base::Callback<void(TPM_RC response_code)> 5426 DictionaryAttackLockResetResponse; 5427 static TPM_RC SerializeCommand_DictionaryAttackLockReset( 5428 const TPMI_RH_LOCKOUT& lock_handle, 5429 const std::string& lock_handle_name, 5430 std::string* serialized_command, 5431 AuthorizationDelegate* authorization_delegate); 5432 static TPM_RC ParseResponse_DictionaryAttackLockReset( 5433 const std::string& response, 5434 AuthorizationDelegate* authorization_delegate); 5435 virtual void DictionaryAttackLockReset( 5436 const TPMI_RH_LOCKOUT& lock_handle, 5437 const std::string& lock_handle_name, 5438 AuthorizationDelegate* authorization_delegate, 5439 const DictionaryAttackLockResetResponse& callback); 5440 virtual TPM_RC DictionaryAttackLockResetSync( 5441 const TPMI_RH_LOCKOUT& lock_handle, 5442 const std::string& lock_handle_name, 5443 AuthorizationDelegate* authorization_delegate); 5444 typedef base::Callback<void(TPM_RC response_code)> 5445 DictionaryAttackParametersResponse; 5446 static TPM_RC SerializeCommand_DictionaryAttackParameters( 5447 const TPMI_RH_LOCKOUT& lock_handle, 5448 const std::string& lock_handle_name, 5449 const UINT32& new_max_tries, 5450 const UINT32& new_recovery_time, 5451 const UINT32& lockout_recovery, 5452 std::string* serialized_command, 5453 AuthorizationDelegate* authorization_delegate); 5454 static TPM_RC ParseResponse_DictionaryAttackParameters( 5455 const std::string& response, 5456 AuthorizationDelegate* authorization_delegate); 5457 virtual void DictionaryAttackParameters( 5458 const TPMI_RH_LOCKOUT& lock_handle, 5459 const std::string& lock_handle_name, 5460 const UINT32& new_max_tries, 5461 const UINT32& new_recovery_time, 5462 const UINT32& lockout_recovery, 5463 AuthorizationDelegate* authorization_delegate, 5464 const DictionaryAttackParametersResponse& callback); 5465 virtual TPM_RC DictionaryAttackParametersSync( 5466 const TPMI_RH_LOCKOUT& lock_handle, 5467 const std::string& lock_handle_name, 5468 const UINT32& new_max_tries, 5469 const UINT32& new_recovery_time, 5470 const UINT32& lockout_recovery, 5471 AuthorizationDelegate* authorization_delegate); 5472 typedef base::Callback<void(TPM_RC response_code)> PP_CommandsResponse; 5473 static TPM_RC SerializeCommand_PP_Commands( 5474 const TPMI_RH_PLATFORM& auth, 5475 const std::string& auth_name, 5476 const TPML_CC& set_list, 5477 const TPML_CC& clear_list, 5478 std::string* serialized_command, 5479 AuthorizationDelegate* authorization_delegate); 5480 static TPM_RC ParseResponse_PP_Commands( 5481 const std::string& response, 5482 AuthorizationDelegate* authorization_delegate); 5483 virtual void PP_Commands(const TPMI_RH_PLATFORM& auth, 5484 const std::string& auth_name, 5485 const TPML_CC& set_list, 5486 const TPML_CC& clear_list, 5487 AuthorizationDelegate* authorization_delegate, 5488 const PP_CommandsResponse& callback); 5489 virtual TPM_RC PP_CommandsSync(const TPMI_RH_PLATFORM& auth, 5490 const std::string& auth_name, 5491 const TPML_CC& set_list, 5492 const TPML_CC& clear_list, 5493 AuthorizationDelegate* authorization_delegate); 5494 typedef base::Callback<void(TPM_RC response_code)> SetAlgorithmSetResponse; 5495 static TPM_RC SerializeCommand_SetAlgorithmSet( 5496 const TPMI_RH_PLATFORM& auth_handle, 5497 const std::string& auth_handle_name, 5498 const UINT32& algorithm_set, 5499 std::string* serialized_command, 5500 AuthorizationDelegate* authorization_delegate); 5501 static TPM_RC ParseResponse_SetAlgorithmSet( 5502 const std::string& response, 5503 AuthorizationDelegate* authorization_delegate); 5504 virtual void SetAlgorithmSet(const TPMI_RH_PLATFORM& auth_handle, 5505 const std::string& auth_handle_name, 5506 const UINT32& algorithm_set, 5507 AuthorizationDelegate* authorization_delegate, 5508 const SetAlgorithmSetResponse& callback); 5509 virtual TPM_RC SetAlgorithmSetSync( 5510 const TPMI_RH_PLATFORM& auth_handle, 5511 const std::string& auth_handle_name, 5512 const UINT32& algorithm_set, 5513 AuthorizationDelegate* authorization_delegate); 5514 typedef base::Callback<void(TPM_RC response_code)> FieldUpgradeStartResponse; 5515 static TPM_RC SerializeCommand_FieldUpgradeStart( 5516 const TPMI_RH_PLATFORM& authorization, 5517 const std::string& authorization_name, 5518 const TPMI_DH_OBJECT& key_handle, 5519 const std::string& key_handle_name, 5520 const TPM2B_DIGEST& fu_digest, 5521 const TPMT_SIGNATURE& manifest_signature, 5522 std::string* serialized_command, 5523 AuthorizationDelegate* authorization_delegate); 5524 static TPM_RC ParseResponse_FieldUpgradeStart( 5525 const std::string& response, 5526 AuthorizationDelegate* authorization_delegate); 5527 virtual void FieldUpgradeStart(const TPMI_RH_PLATFORM& authorization, 5528 const std::string& authorization_name, 5529 const TPMI_DH_OBJECT& key_handle, 5530 const std::string& key_handle_name, 5531 const TPM2B_DIGEST& fu_digest, 5532 const TPMT_SIGNATURE& manifest_signature, 5533 AuthorizationDelegate* authorization_delegate, 5534 const FieldUpgradeStartResponse& callback); 5535 virtual TPM_RC FieldUpgradeStartSync( 5536 const TPMI_RH_PLATFORM& authorization, 5537 const std::string& authorization_name, 5538 const TPMI_DH_OBJECT& key_handle, 5539 const std::string& key_handle_name, 5540 const TPM2B_DIGEST& fu_digest, 5541 const TPMT_SIGNATURE& manifest_signature, 5542 AuthorizationDelegate* authorization_delegate); 5543 typedef base::Callback<void(TPM_RC response_code, 5544 const TPMT_HA& next_digest, 5545 const TPMT_HA& first_digest)> 5546 FieldUpgradeDataResponse; 5547 static TPM_RC SerializeCommand_FieldUpgradeData( 5548 const TPM2B_MAX_BUFFER& fu_data, 5549 std::string* serialized_command, 5550 AuthorizationDelegate* authorization_delegate); 5551 static TPM_RC ParseResponse_FieldUpgradeData( 5552 const std::string& response, 5553 TPMT_HA* next_digest, 5554 TPMT_HA* first_digest, 5555 AuthorizationDelegate* authorization_delegate); 5556 virtual void FieldUpgradeData(const TPM2B_MAX_BUFFER& fu_data, 5557 AuthorizationDelegate* authorization_delegate, 5558 const FieldUpgradeDataResponse& callback); 5559 virtual TPM_RC FieldUpgradeDataSync( 5560 const TPM2B_MAX_BUFFER& fu_data, 5561 TPMT_HA* next_digest, 5562 TPMT_HA* first_digest, 5563 AuthorizationDelegate* authorization_delegate); 5564 typedef base::Callback<void(TPM_RC response_code, 5565 const TPM2B_MAX_BUFFER& fu_data)> 5566 FirmwareReadResponse; 5567 static TPM_RC SerializeCommand_FirmwareRead( 5568 const UINT32& sequence_number, 5569 std::string* serialized_command, 5570 AuthorizationDelegate* authorization_delegate); 5571 static TPM_RC ParseResponse_FirmwareRead( 5572 const std::string& response, 5573 TPM2B_MAX_BUFFER* fu_data, 5574 AuthorizationDelegate* authorization_delegate); 5575 virtual void FirmwareRead(const UINT32& sequence_number, 5576 AuthorizationDelegate* authorization_delegate, 5577 const FirmwareReadResponse& callback); 5578 virtual TPM_RC FirmwareReadSync( 5579 const UINT32& sequence_number, 5580 TPM2B_MAX_BUFFER* fu_data, 5581 AuthorizationDelegate* authorization_delegate); 5582 typedef base::Callback<void(TPM_RC response_code, 5583 const TPMS_CONTEXT& context)> 5584 ContextSaveResponse; 5585 static TPM_RC SerializeCommand_ContextSave( 5586 const TPMI_DH_CONTEXT& save_handle, 5587 const std::string& save_handle_name, 5588 std::string* serialized_command, 5589 AuthorizationDelegate* authorization_delegate); 5590 static TPM_RC ParseResponse_ContextSave( 5591 const std::string& response, 5592 TPMS_CONTEXT* context, 5593 AuthorizationDelegate* authorization_delegate); 5594 virtual void ContextSave(const TPMI_DH_CONTEXT& save_handle, 5595 const std::string& save_handle_name, 5596 AuthorizationDelegate* authorization_delegate, 5597 const ContextSaveResponse& callback); 5598 virtual TPM_RC ContextSaveSync(const TPMI_DH_CONTEXT& save_handle, 5599 const std::string& save_handle_name, 5600 TPMS_CONTEXT* context, 5601 AuthorizationDelegate* authorization_delegate); 5602 typedef base::Callback<void(TPM_RC response_code, 5603 const TPMI_DH_CONTEXT& loaded_handle)> 5604 ContextLoadResponse; 5605 static TPM_RC SerializeCommand_ContextLoad( 5606 const TPMS_CONTEXT& context, 5607 std::string* serialized_command, 5608 AuthorizationDelegate* authorization_delegate); 5609 static TPM_RC ParseResponse_ContextLoad( 5610 const std::string& response, 5611 TPMI_DH_CONTEXT* loaded_handle, 5612 AuthorizationDelegate* authorization_delegate); 5613 virtual void ContextLoad(const TPMS_CONTEXT& context, 5614 AuthorizationDelegate* authorization_delegate, 5615 const ContextLoadResponse& callback); 5616 virtual TPM_RC ContextLoadSync(const TPMS_CONTEXT& context, 5617 TPMI_DH_CONTEXT* loaded_handle, 5618 AuthorizationDelegate* authorization_delegate); 5619 typedef base::Callback<void(TPM_RC response_code)> FlushContextResponse; 5620 static TPM_RC SerializeCommand_FlushContext( 5621 const TPMI_DH_CONTEXT& flush_handle, 5622 std::string* serialized_command, 5623 AuthorizationDelegate* authorization_delegate); 5624 static TPM_RC ParseResponse_FlushContext( 5625 const std::string& response, 5626 AuthorizationDelegate* authorization_delegate); 5627 virtual void FlushContext(const TPMI_DH_CONTEXT& flush_handle, 5628 AuthorizationDelegate* authorization_delegate, 5629 const FlushContextResponse& callback); 5630 virtual TPM_RC FlushContextSync( 5631 const TPMI_DH_CONTEXT& flush_handle, 5632 AuthorizationDelegate* authorization_delegate); 5633 typedef base::Callback<void(TPM_RC response_code)> EvictControlResponse; 5634 static TPM_RC SerializeCommand_EvictControl( 5635 const TPMI_RH_PROVISION& auth, 5636 const std::string& auth_name, 5637 const TPMI_DH_OBJECT& object_handle, 5638 const std::string& object_handle_name, 5639 const TPMI_DH_PERSISTENT& persistent_handle, 5640 std::string* serialized_command, 5641 AuthorizationDelegate* authorization_delegate); 5642 static TPM_RC ParseResponse_EvictControl( 5643 const std::string& response, 5644 AuthorizationDelegate* authorization_delegate); 5645 virtual void EvictControl(const TPMI_RH_PROVISION& auth, 5646 const std::string& auth_name, 5647 const TPMI_DH_OBJECT& object_handle, 5648 const std::string& object_handle_name, 5649 const TPMI_DH_PERSISTENT& persistent_handle, 5650 AuthorizationDelegate* authorization_delegate, 5651 const EvictControlResponse& callback); 5652 virtual TPM_RC EvictControlSync( 5653 const TPMI_RH_PROVISION& auth, 5654 const std::string& auth_name, 5655 const TPMI_DH_OBJECT& object_handle, 5656 const std::string& object_handle_name, 5657 const TPMI_DH_PERSISTENT& persistent_handle, 5658 AuthorizationDelegate* authorization_delegate); 5659 typedef base::Callback<void(TPM_RC response_code, 5660 const TPMS_TIME_INFO& current_time)> 5661 ReadClockResponse; 5662 static TPM_RC SerializeCommand_ReadClock( 5663 std::string* serialized_command, 5664 AuthorizationDelegate* authorization_delegate); 5665 static TPM_RC ParseResponse_ReadClock( 5666 const std::string& response, 5667 TPMS_TIME_INFO* current_time, 5668 AuthorizationDelegate* authorization_delegate); 5669 virtual void ReadClock(AuthorizationDelegate* authorization_delegate, 5670 const ReadClockResponse& callback); 5671 virtual TPM_RC ReadClockSync(TPMS_TIME_INFO* current_time, 5672 AuthorizationDelegate* authorization_delegate); 5673 typedef base::Callback<void(TPM_RC response_code)> ClockSetResponse; 5674 static TPM_RC SerializeCommand_ClockSet( 5675 const TPMI_RH_PROVISION& auth, 5676 const std::string& auth_name, 5677 const UINT64& new_time, 5678 std::string* serialized_command, 5679 AuthorizationDelegate* authorization_delegate); 5680 static TPM_RC ParseResponse_ClockSet( 5681 const std::string& response, 5682 AuthorizationDelegate* authorization_delegate); 5683 virtual void ClockSet(const TPMI_RH_PROVISION& auth, 5684 const std::string& auth_name, 5685 const UINT64& new_time, 5686 AuthorizationDelegate* authorization_delegate, 5687 const ClockSetResponse& callback); 5688 virtual TPM_RC ClockSetSync(const TPMI_RH_PROVISION& auth, 5689 const std::string& auth_name, 5690 const UINT64& new_time, 5691 AuthorizationDelegate* authorization_delegate); 5692 typedef base::Callback<void(TPM_RC response_code)> ClockRateAdjustResponse; 5693 static TPM_RC SerializeCommand_ClockRateAdjust( 5694 const TPMI_RH_PROVISION& auth, 5695 const std::string& auth_name, 5696 const TPM_CLOCK_ADJUST& rate_adjust, 5697 std::string* serialized_command, 5698 AuthorizationDelegate* authorization_delegate); 5699 static TPM_RC ParseResponse_ClockRateAdjust( 5700 const std::string& response, 5701 AuthorizationDelegate* authorization_delegate); 5702 virtual void ClockRateAdjust(const TPMI_RH_PROVISION& auth, 5703 const std::string& auth_name, 5704 const TPM_CLOCK_ADJUST& rate_adjust, 5705 AuthorizationDelegate* authorization_delegate, 5706 const ClockRateAdjustResponse& callback); 5707 virtual TPM_RC ClockRateAdjustSync( 5708 const TPMI_RH_PROVISION& auth, 5709 const std::string& auth_name, 5710 const TPM_CLOCK_ADJUST& rate_adjust, 5711 AuthorizationDelegate* authorization_delegate); 5712 typedef base::Callback<void(TPM_RC response_code, 5713 const TPMI_YES_NO& more_data, 5714 const TPMS_CAPABILITY_DATA& capability_data)> 5715 GetCapabilityResponse; 5716 static TPM_RC SerializeCommand_GetCapability( 5717 const TPM_CAP& capability, 5718 const UINT32& property, 5719 const UINT32& property_count, 5720 std::string* serialized_command, 5721 AuthorizationDelegate* authorization_delegate); 5722 static TPM_RC ParseResponse_GetCapability( 5723 const std::string& response, 5724 TPMI_YES_NO* more_data, 5725 TPMS_CAPABILITY_DATA* capability_data, 5726 AuthorizationDelegate* authorization_delegate); 5727 virtual void GetCapability(const TPM_CAP& capability, 5728 const UINT32& property, 5729 const UINT32& property_count, 5730 AuthorizationDelegate* authorization_delegate, 5731 const GetCapabilityResponse& callback); 5732 virtual TPM_RC GetCapabilitySync( 5733 const TPM_CAP& capability, 5734 const UINT32& property, 5735 const UINT32& property_count, 5736 TPMI_YES_NO* more_data, 5737 TPMS_CAPABILITY_DATA* capability_data, 5738 AuthorizationDelegate* authorization_delegate); 5739 typedef base::Callback<void(TPM_RC response_code)> TestParmsResponse; 5740 static TPM_RC SerializeCommand_TestParms( 5741 const TPMT_PUBLIC_PARMS& parameters, 5742 std::string* serialized_command, 5743 AuthorizationDelegate* authorization_delegate); 5744 static TPM_RC ParseResponse_TestParms( 5745 const std::string& response, 5746 AuthorizationDelegate* authorization_delegate); 5747 virtual void TestParms(const TPMT_PUBLIC_PARMS& parameters, 5748 AuthorizationDelegate* authorization_delegate, 5749 const TestParmsResponse& callback); 5750 virtual TPM_RC TestParmsSync(const TPMT_PUBLIC_PARMS& parameters, 5751 AuthorizationDelegate* authorization_delegate); 5752 typedef base::Callback<void(TPM_RC response_code)> NV_DefineSpaceResponse; 5753 static TPM_RC SerializeCommand_NV_DefineSpace( 5754 const TPMI_RH_PROVISION& auth_handle, 5755 const std::string& auth_handle_name, 5756 const TPM2B_AUTH& auth, 5757 const TPM2B_NV_PUBLIC& public_info, 5758 std::string* serialized_command, 5759 AuthorizationDelegate* authorization_delegate); 5760 static TPM_RC ParseResponse_NV_DefineSpace( 5761 const std::string& response, 5762 AuthorizationDelegate* authorization_delegate); 5763 virtual void NV_DefineSpace(const TPMI_RH_PROVISION& auth_handle, 5764 const std::string& auth_handle_name, 5765 const TPM2B_AUTH& auth, 5766 const TPM2B_NV_PUBLIC& public_info, 5767 AuthorizationDelegate* authorization_delegate, 5768 const NV_DefineSpaceResponse& callback); 5769 virtual TPM_RC NV_DefineSpaceSync( 5770 const TPMI_RH_PROVISION& auth_handle, 5771 const std::string& auth_handle_name, 5772 const TPM2B_AUTH& auth, 5773 const TPM2B_NV_PUBLIC& public_info, 5774 AuthorizationDelegate* authorization_delegate); 5775 typedef base::Callback<void(TPM_RC response_code)> NV_UndefineSpaceResponse; 5776 static TPM_RC SerializeCommand_NV_UndefineSpace( 5777 const TPMI_RH_PROVISION& auth_handle, 5778 const std::string& auth_handle_name, 5779 const TPMI_RH_NV_INDEX& nv_index, 5780 const std::string& nv_index_name, 5781 std::string* serialized_command, 5782 AuthorizationDelegate* authorization_delegate); 5783 static TPM_RC ParseResponse_NV_UndefineSpace( 5784 const std::string& response, 5785 AuthorizationDelegate* authorization_delegate); 5786 virtual void NV_UndefineSpace(const TPMI_RH_PROVISION& auth_handle, 5787 const std::string& auth_handle_name, 5788 const TPMI_RH_NV_INDEX& nv_index, 5789 const std::string& nv_index_name, 5790 AuthorizationDelegate* authorization_delegate, 5791 const NV_UndefineSpaceResponse& callback); 5792 virtual TPM_RC NV_UndefineSpaceSync( 5793 const TPMI_RH_PROVISION& auth_handle, 5794 const std::string& auth_handle_name, 5795 const TPMI_RH_NV_INDEX& nv_index, 5796 const std::string& nv_index_name, 5797 AuthorizationDelegate* authorization_delegate); 5798 typedef base::Callback<void(TPM_RC response_code)> 5799 NV_UndefineSpaceSpecialResponse; 5800 static TPM_RC SerializeCommand_NV_UndefineSpaceSpecial( 5801 const TPMI_RH_NV_INDEX& nv_index, 5802 const std::string& nv_index_name, 5803 const TPMI_RH_PLATFORM& platform, 5804 const std::string& platform_name, 5805 std::string* serialized_command, 5806 AuthorizationDelegate* authorization_delegate); 5807 static TPM_RC ParseResponse_NV_UndefineSpaceSpecial( 5808 const std::string& response, 5809 AuthorizationDelegate* authorization_delegate); 5810 virtual void NV_UndefineSpaceSpecial( 5811 const TPMI_RH_NV_INDEX& nv_index, 5812 const std::string& nv_index_name, 5813 const TPMI_RH_PLATFORM& platform, 5814 const std::string& platform_name, 5815 AuthorizationDelegate* authorization_delegate, 5816 const NV_UndefineSpaceSpecialResponse& callback); 5817 virtual TPM_RC NV_UndefineSpaceSpecialSync( 5818 const TPMI_RH_NV_INDEX& nv_index, 5819 const std::string& nv_index_name, 5820 const TPMI_RH_PLATFORM& platform, 5821 const std::string& platform_name, 5822 AuthorizationDelegate* authorization_delegate); 5823 typedef base::Callback<void(TPM_RC response_code, 5824 const TPM2B_NV_PUBLIC& nv_public, 5825 const TPM2B_NAME& nv_name)> 5826 NV_ReadPublicResponse; 5827 static TPM_RC SerializeCommand_NV_ReadPublic( 5828 const TPMI_RH_NV_INDEX& nv_index, 5829 const std::string& nv_index_name, 5830 std::string* serialized_command, 5831 AuthorizationDelegate* authorization_delegate); 5832 static TPM_RC ParseResponse_NV_ReadPublic( 5833 const std::string& response, 5834 TPM2B_NV_PUBLIC* nv_public, 5835 TPM2B_NAME* nv_name, 5836 AuthorizationDelegate* authorization_delegate); 5837 virtual void NV_ReadPublic(const TPMI_RH_NV_INDEX& nv_index, 5838 const std::string& nv_index_name, 5839 AuthorizationDelegate* authorization_delegate, 5840 const NV_ReadPublicResponse& callback); 5841 virtual TPM_RC NV_ReadPublicSync( 5842 const TPMI_RH_NV_INDEX& nv_index, 5843 const std::string& nv_index_name, 5844 TPM2B_NV_PUBLIC* nv_public, 5845 TPM2B_NAME* nv_name, 5846 AuthorizationDelegate* authorization_delegate); 5847 typedef base::Callback<void(TPM_RC response_code)> NV_WriteResponse; 5848 static TPM_RC SerializeCommand_NV_Write( 5849 const TPMI_RH_NV_AUTH& auth_handle, 5850 const std::string& auth_handle_name, 5851 const TPMI_RH_NV_INDEX& nv_index, 5852 const std::string& nv_index_name, 5853 const TPM2B_MAX_NV_BUFFER& data, 5854 const UINT16& offset, 5855 std::string* serialized_command, 5856 AuthorizationDelegate* authorization_delegate); 5857 static TPM_RC ParseResponse_NV_Write( 5858 const std::string& response, 5859 AuthorizationDelegate* authorization_delegate); 5860 virtual void NV_Write(const TPMI_RH_NV_AUTH& auth_handle, 5861 const std::string& auth_handle_name, 5862 const TPMI_RH_NV_INDEX& nv_index, 5863 const std::string& nv_index_name, 5864 const TPM2B_MAX_NV_BUFFER& data, 5865 const UINT16& offset, 5866 AuthorizationDelegate* authorization_delegate, 5867 const NV_WriteResponse& callback); 5868 virtual TPM_RC NV_WriteSync(const TPMI_RH_NV_AUTH& auth_handle, 5869 const std::string& auth_handle_name, 5870 const TPMI_RH_NV_INDEX& nv_index, 5871 const std::string& nv_index_name, 5872 const TPM2B_MAX_NV_BUFFER& data, 5873 const UINT16& offset, 5874 AuthorizationDelegate* authorization_delegate); 5875 typedef base::Callback<void(TPM_RC response_code)> NV_IncrementResponse; 5876 static TPM_RC SerializeCommand_NV_Increment( 5877 const TPMI_RH_NV_AUTH& auth_handle, 5878 const std::string& auth_handle_name, 5879 const TPMI_RH_NV_INDEX& nv_index, 5880 const std::string& nv_index_name, 5881 std::string* serialized_command, 5882 AuthorizationDelegate* authorization_delegate); 5883 static TPM_RC ParseResponse_NV_Increment( 5884 const std::string& response, 5885 AuthorizationDelegate* authorization_delegate); 5886 virtual void NV_Increment(const TPMI_RH_NV_AUTH& auth_handle, 5887 const std::string& auth_handle_name, 5888 const TPMI_RH_NV_INDEX& nv_index, 5889 const std::string& nv_index_name, 5890 AuthorizationDelegate* authorization_delegate, 5891 const NV_IncrementResponse& callback); 5892 virtual TPM_RC NV_IncrementSync( 5893 const TPMI_RH_NV_AUTH& auth_handle, 5894 const std::string& auth_handle_name, 5895 const TPMI_RH_NV_INDEX& nv_index, 5896 const std::string& nv_index_name, 5897 AuthorizationDelegate* authorization_delegate); 5898 typedef base::Callback<void(TPM_RC response_code)> NV_ExtendResponse; 5899 static TPM_RC SerializeCommand_NV_Extend( 5900 const TPMI_RH_NV_AUTH& auth_handle, 5901 const std::string& auth_handle_name, 5902 const TPMI_RH_NV_INDEX& nv_index, 5903 const std::string& nv_index_name, 5904 const TPM2B_MAX_NV_BUFFER& data, 5905 std::string* serialized_command, 5906 AuthorizationDelegate* authorization_delegate); 5907 static TPM_RC ParseResponse_NV_Extend( 5908 const std::string& response, 5909 AuthorizationDelegate* authorization_delegate); 5910 virtual void NV_Extend(const TPMI_RH_NV_AUTH& auth_handle, 5911 const std::string& auth_handle_name, 5912 const TPMI_RH_NV_INDEX& nv_index, 5913 const std::string& nv_index_name, 5914 const TPM2B_MAX_NV_BUFFER& data, 5915 AuthorizationDelegate* authorization_delegate, 5916 const NV_ExtendResponse& callback); 5917 virtual TPM_RC NV_ExtendSync(const TPMI_RH_NV_AUTH& auth_handle, 5918 const std::string& auth_handle_name, 5919 const TPMI_RH_NV_INDEX& nv_index, 5920 const std::string& nv_index_name, 5921 const TPM2B_MAX_NV_BUFFER& data, 5922 AuthorizationDelegate* authorization_delegate); 5923 typedef base::Callback<void(TPM_RC response_code)> NV_SetBitsResponse; 5924 static TPM_RC SerializeCommand_NV_SetBits( 5925 const TPMI_RH_NV_AUTH& auth_handle, 5926 const std::string& auth_handle_name, 5927 const TPMI_RH_NV_INDEX& nv_index, 5928 const std::string& nv_index_name, 5929 const UINT64& bits, 5930 std::string* serialized_command, 5931 AuthorizationDelegate* authorization_delegate); 5932 static TPM_RC ParseResponse_NV_SetBits( 5933 const std::string& response, 5934 AuthorizationDelegate* authorization_delegate); 5935 virtual void NV_SetBits(const TPMI_RH_NV_AUTH& auth_handle, 5936 const std::string& auth_handle_name, 5937 const TPMI_RH_NV_INDEX& nv_index, 5938 const std::string& nv_index_name, 5939 const UINT64& bits, 5940 AuthorizationDelegate* authorization_delegate, 5941 const NV_SetBitsResponse& callback); 5942 virtual TPM_RC NV_SetBitsSync(const TPMI_RH_NV_AUTH& auth_handle, 5943 const std::string& auth_handle_name, 5944 const TPMI_RH_NV_INDEX& nv_index, 5945 const std::string& nv_index_name, 5946 const UINT64& bits, 5947 AuthorizationDelegate* authorization_delegate); 5948 typedef base::Callback<void(TPM_RC response_code)> NV_WriteLockResponse; 5949 static TPM_RC SerializeCommand_NV_WriteLock( 5950 const TPMI_RH_NV_AUTH& auth_handle, 5951 const std::string& auth_handle_name, 5952 const TPMI_RH_NV_INDEX& nv_index, 5953 const std::string& nv_index_name, 5954 std::string* serialized_command, 5955 AuthorizationDelegate* authorization_delegate); 5956 static TPM_RC ParseResponse_NV_WriteLock( 5957 const std::string& response, 5958 AuthorizationDelegate* authorization_delegate); 5959 virtual void NV_WriteLock(const TPMI_RH_NV_AUTH& auth_handle, 5960 const std::string& auth_handle_name, 5961 const TPMI_RH_NV_INDEX& nv_index, 5962 const std::string& nv_index_name, 5963 AuthorizationDelegate* authorization_delegate, 5964 const NV_WriteLockResponse& callback); 5965 virtual TPM_RC NV_WriteLockSync( 5966 const TPMI_RH_NV_AUTH& auth_handle, 5967 const std::string& auth_handle_name, 5968 const TPMI_RH_NV_INDEX& nv_index, 5969 const std::string& nv_index_name, 5970 AuthorizationDelegate* authorization_delegate); 5971 typedef base::Callback<void(TPM_RC response_code)> NV_GlobalWriteLockResponse; 5972 static TPM_RC SerializeCommand_NV_GlobalWriteLock( 5973 const TPMI_RH_PROVISION& auth_handle, 5974 const std::string& auth_handle_name, 5975 std::string* serialized_command, 5976 AuthorizationDelegate* authorization_delegate); 5977 static TPM_RC ParseResponse_NV_GlobalWriteLock( 5978 const std::string& response, 5979 AuthorizationDelegate* authorization_delegate); 5980 virtual void NV_GlobalWriteLock(const TPMI_RH_PROVISION& auth_handle, 5981 const std::string& auth_handle_name, 5982 AuthorizationDelegate* authorization_delegate, 5983 const NV_GlobalWriteLockResponse& callback); 5984 virtual TPM_RC NV_GlobalWriteLockSync( 5985 const TPMI_RH_PROVISION& auth_handle, 5986 const std::string& auth_handle_name, 5987 AuthorizationDelegate* authorization_delegate); 5988 typedef base::Callback<void(TPM_RC response_code, 5989 const TPM2B_MAX_NV_BUFFER& data)> 5990 NV_ReadResponse; 5991 static TPM_RC SerializeCommand_NV_Read( 5992 const TPMI_RH_NV_AUTH& auth_handle, 5993 const std::string& auth_handle_name, 5994 const TPMI_RH_NV_INDEX& nv_index, 5995 const std::string& nv_index_name, 5996 const UINT16& size, 5997 const UINT16& offset, 5998 std::string* serialized_command, 5999 AuthorizationDelegate* authorization_delegate); 6000 static TPM_RC ParseResponse_NV_Read( 6001 const std::string& response, 6002 TPM2B_MAX_NV_BUFFER* data, 6003 AuthorizationDelegate* authorization_delegate); 6004 virtual void NV_Read(const TPMI_RH_NV_AUTH& auth_handle, 6005 const std::string& auth_handle_name, 6006 const TPMI_RH_NV_INDEX& nv_index, 6007 const std::string& nv_index_name, 6008 const UINT16& size, 6009 const UINT16& offset, 6010 AuthorizationDelegate* authorization_delegate, 6011 const NV_ReadResponse& callback); 6012 virtual TPM_RC NV_ReadSync(const TPMI_RH_NV_AUTH& auth_handle, 6013 const std::string& auth_handle_name, 6014 const TPMI_RH_NV_INDEX& nv_index, 6015 const std::string& nv_index_name, 6016 const UINT16& size, 6017 const UINT16& offset, 6018 TPM2B_MAX_NV_BUFFER* data, 6019 AuthorizationDelegate* authorization_delegate); 6020 typedef base::Callback<void(TPM_RC response_code)> NV_ReadLockResponse; 6021 static TPM_RC SerializeCommand_NV_ReadLock( 6022 const TPMI_RH_NV_AUTH& auth_handle, 6023 const std::string& auth_handle_name, 6024 const TPMI_RH_NV_INDEX& nv_index, 6025 const std::string& nv_index_name, 6026 std::string* serialized_command, 6027 AuthorizationDelegate* authorization_delegate); 6028 static TPM_RC ParseResponse_NV_ReadLock( 6029 const std::string& response, 6030 AuthorizationDelegate* authorization_delegate); 6031 virtual void NV_ReadLock(const TPMI_RH_NV_AUTH& auth_handle, 6032 const std::string& auth_handle_name, 6033 const TPMI_RH_NV_INDEX& nv_index, 6034 const std::string& nv_index_name, 6035 AuthorizationDelegate* authorization_delegate, 6036 const NV_ReadLockResponse& callback); 6037 virtual TPM_RC NV_ReadLockSync(const TPMI_RH_NV_AUTH& auth_handle, 6038 const std::string& auth_handle_name, 6039 const TPMI_RH_NV_INDEX& nv_index, 6040 const std::string& nv_index_name, 6041 AuthorizationDelegate* authorization_delegate); 6042 typedef base::Callback<void(TPM_RC response_code)> NV_ChangeAuthResponse; 6043 static TPM_RC SerializeCommand_NV_ChangeAuth( 6044 const TPMI_RH_NV_INDEX& nv_index, 6045 const std::string& nv_index_name, 6046 const TPM2B_AUTH& new_auth, 6047 std::string* serialized_command, 6048 AuthorizationDelegate* authorization_delegate); 6049 static TPM_RC ParseResponse_NV_ChangeAuth( 6050 const std::string& response, 6051 AuthorizationDelegate* authorization_delegate); 6052 virtual void NV_ChangeAuth(const TPMI_RH_NV_INDEX& nv_index, 6053 const std::string& nv_index_name, 6054 const TPM2B_AUTH& new_auth, 6055 AuthorizationDelegate* authorization_delegate, 6056 const NV_ChangeAuthResponse& callback); 6057 virtual TPM_RC NV_ChangeAuthSync( 6058 const TPMI_RH_NV_INDEX& nv_index, 6059 const std::string& nv_index_name, 6060 const TPM2B_AUTH& new_auth, 6061 AuthorizationDelegate* authorization_delegate); 6062 typedef base::Callback<void(TPM_RC response_code, 6063 const TPM2B_ATTEST& certify_info, 6064 const TPMT_SIGNATURE& signature)> 6065 NV_CertifyResponse; 6066 static TPM_RC SerializeCommand_NV_Certify( 6067 const TPMI_DH_OBJECT& sign_handle, 6068 const std::string& sign_handle_name, 6069 const TPMI_RH_NV_AUTH& auth_handle, 6070 const std::string& auth_handle_name, 6071 const TPMI_RH_NV_INDEX& nv_index, 6072 const std::string& nv_index_name, 6073 const TPM2B_DATA& qualifying_data, 6074 const TPMT_SIG_SCHEME& in_scheme, 6075 const UINT16& size, 6076 const UINT16& offset, 6077 std::string* serialized_command, 6078 AuthorizationDelegate* authorization_delegate); 6079 static TPM_RC ParseResponse_NV_Certify( 6080 const std::string& response, 6081 TPM2B_ATTEST* certify_info, 6082 TPMT_SIGNATURE* signature, 6083 AuthorizationDelegate* authorization_delegate); 6084 virtual void NV_Certify(const TPMI_DH_OBJECT& sign_handle, 6085 const std::string& sign_handle_name, 6086 const TPMI_RH_NV_AUTH& auth_handle, 6087 const std::string& auth_handle_name, 6088 const TPMI_RH_NV_INDEX& nv_index, 6089 const std::string& nv_index_name, 6090 const TPM2B_DATA& qualifying_data, 6091 const TPMT_SIG_SCHEME& in_scheme, 6092 const UINT16& size, 6093 const UINT16& offset, 6094 AuthorizationDelegate* authorization_delegate, 6095 const NV_CertifyResponse& callback); 6096 virtual TPM_RC NV_CertifySync(const TPMI_DH_OBJECT& sign_handle, 6097 const std::string& sign_handle_name, 6098 const TPMI_RH_NV_AUTH& auth_handle, 6099 const std::string& auth_handle_name, 6100 const TPMI_RH_NV_INDEX& nv_index, 6101 const std::string& nv_index_name, 6102 const TPM2B_DATA& qualifying_data, 6103 const TPMT_SIG_SCHEME& in_scheme, 6104 const UINT16& size, 6105 const UINT16& offset, 6106 TPM2B_ATTEST* certify_info, 6107 TPMT_SIGNATURE* signature, 6108 AuthorizationDelegate* authorization_delegate); 6109 6110 private: 6111 CommandTransceiver* transceiver_; 6112 6113 DISALLOW_COPY_AND_ASSIGN(Tpm); 6114 }; 6115 6116 } // namespace trunks 6117 6118 #endif // TRUNKS_TPM_GENERATED_H_ 6119