1 // Copyright 2015 The Chromium OS Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // THIS CODE IS GENERATED - DO NOT MODIFY! 6 7 #include "tpm_generated.h" 8 #include "HandleProcess_fp.h" 9 #include "Implementation.h" 10 #include "TPM_Types.h" 11 12 TPM_RC ParseHandleBuffer(TPM_CC command_code, 13 BYTE** request_handle_buffer_start, 14 INT32* request_buffer_remaining_size, 15 TPM_HANDLE request_handles[], 16 UINT32* num_request_handles) { 17 TPM_RC result = TPM_RC_SUCCESS; 18 *num_request_handles = 0; 19 switch (command_code) { 20 #ifdef TPM_CC_ActivateCredential 21 case TPM_CC_ActivateCredential: 22 result = TPMI_DH_OBJECT_Unmarshal( 23 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 24 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 25 if (result != TPM_RC_SUCCESS) { 26 return result; 27 } 28 ++(*num_request_handles); 29 result = TPMI_DH_OBJECT_Unmarshal( 30 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 31 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 32 if (result != TPM_RC_SUCCESS) { 33 return result; 34 } 35 ++(*num_request_handles); 36 return TPM_RC_SUCCESS; 37 #endif 38 #ifdef TPM_CC_Certify 39 case TPM_CC_Certify: 40 result = TPMI_DH_OBJECT_Unmarshal( 41 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 42 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 43 if (result != TPM_RC_SUCCESS) { 44 return result; 45 } 46 ++(*num_request_handles); 47 result = TPMI_DH_OBJECT_Unmarshal( 48 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 49 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 50 if (result != TPM_RC_SUCCESS) { 51 return result; 52 } 53 ++(*num_request_handles); 54 return TPM_RC_SUCCESS; 55 #endif 56 #ifdef TPM_CC_CertifyCreation 57 case TPM_CC_CertifyCreation: 58 result = TPMI_DH_OBJECT_Unmarshal( 59 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 60 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 61 if (result != TPM_RC_SUCCESS) { 62 return result; 63 } 64 ++(*num_request_handles); 65 result = TPMI_DH_OBJECT_Unmarshal( 66 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 67 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 68 if (result != TPM_RC_SUCCESS) { 69 return result; 70 } 71 ++(*num_request_handles); 72 return TPM_RC_SUCCESS; 73 #endif 74 #ifdef TPM_CC_ChangeEPS 75 case TPM_CC_ChangeEPS: 76 result = TPMI_RH_PLATFORM_Unmarshal( 77 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 78 request_handle_buffer_start, request_buffer_remaining_size); 79 if (result != TPM_RC_SUCCESS) { 80 return result; 81 } 82 ++(*num_request_handles); 83 return TPM_RC_SUCCESS; 84 #endif 85 #ifdef TPM_CC_ChangePPS 86 case TPM_CC_ChangePPS: 87 result = TPMI_RH_PLATFORM_Unmarshal( 88 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 89 request_handle_buffer_start, request_buffer_remaining_size); 90 if (result != TPM_RC_SUCCESS) { 91 return result; 92 } 93 ++(*num_request_handles); 94 return TPM_RC_SUCCESS; 95 #endif 96 #ifdef TPM_CC_Clear 97 case TPM_CC_Clear: 98 result = TPMI_RH_CLEAR_Unmarshal( 99 (TPMI_RH_CLEAR*)&request_handles[*num_request_handles], 100 request_handle_buffer_start, request_buffer_remaining_size); 101 if (result != TPM_RC_SUCCESS) { 102 return result; 103 } 104 ++(*num_request_handles); 105 return TPM_RC_SUCCESS; 106 #endif 107 #ifdef TPM_CC_ClearControl 108 case TPM_CC_ClearControl: 109 result = TPMI_RH_CLEAR_Unmarshal( 110 (TPMI_RH_CLEAR*)&request_handles[*num_request_handles], 111 request_handle_buffer_start, request_buffer_remaining_size); 112 if (result != TPM_RC_SUCCESS) { 113 return result; 114 } 115 ++(*num_request_handles); 116 return TPM_RC_SUCCESS; 117 #endif 118 #ifdef TPM_CC_ClockRateAdjust 119 case TPM_CC_ClockRateAdjust: 120 result = TPMI_RH_PROVISION_Unmarshal( 121 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 122 request_handle_buffer_start, request_buffer_remaining_size); 123 if (result != TPM_RC_SUCCESS) { 124 return result; 125 } 126 ++(*num_request_handles); 127 return TPM_RC_SUCCESS; 128 #endif 129 #ifdef TPM_CC_ClockSet 130 case TPM_CC_ClockSet: 131 result = TPMI_RH_PROVISION_Unmarshal( 132 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 133 request_handle_buffer_start, request_buffer_remaining_size); 134 if (result != TPM_RC_SUCCESS) { 135 return result; 136 } 137 ++(*num_request_handles); 138 return TPM_RC_SUCCESS; 139 #endif 140 #ifdef TPM_CC_Commit 141 case TPM_CC_Commit: 142 result = TPMI_DH_OBJECT_Unmarshal( 143 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 144 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 145 if (result != TPM_RC_SUCCESS) { 146 return result; 147 } 148 ++(*num_request_handles); 149 return TPM_RC_SUCCESS; 150 #endif 151 #ifdef TPM_CC_ContextLoad 152 case TPM_CC_ContextLoad: 153 return TPM_RC_SUCCESS; 154 #endif 155 #ifdef TPM_CC_ContextSave 156 case TPM_CC_ContextSave: 157 result = TPMI_DH_CONTEXT_Unmarshal( 158 (TPMI_DH_CONTEXT*)&request_handles[*num_request_handles], 159 request_handle_buffer_start, request_buffer_remaining_size); 160 if (result != TPM_RC_SUCCESS) { 161 return result; 162 } 163 ++(*num_request_handles); 164 return TPM_RC_SUCCESS; 165 #endif 166 #ifdef TPM_CC_Create 167 case TPM_CC_Create: 168 result = TPMI_DH_OBJECT_Unmarshal( 169 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 170 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 171 if (result != TPM_RC_SUCCESS) { 172 return result; 173 } 174 ++(*num_request_handles); 175 return TPM_RC_SUCCESS; 176 #endif 177 #ifdef TPM_CC_CreatePrimary 178 case TPM_CC_CreatePrimary: 179 result = TPMI_RH_HIERARCHY_Unmarshal( 180 (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles], 181 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 182 if (result != TPM_RC_SUCCESS) { 183 return result; 184 } 185 ++(*num_request_handles); 186 return TPM_RC_SUCCESS; 187 #endif 188 #ifdef TPM_CC_DictionaryAttackLockReset 189 case TPM_CC_DictionaryAttackLockReset: 190 result = TPMI_RH_LOCKOUT_Unmarshal( 191 (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles], 192 request_handle_buffer_start, request_buffer_remaining_size); 193 if (result != TPM_RC_SUCCESS) { 194 return result; 195 } 196 ++(*num_request_handles); 197 return TPM_RC_SUCCESS; 198 #endif 199 #ifdef TPM_CC_DictionaryAttackParameters 200 case TPM_CC_DictionaryAttackParameters: 201 result = TPMI_RH_LOCKOUT_Unmarshal( 202 (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles], 203 request_handle_buffer_start, request_buffer_remaining_size); 204 if (result != TPM_RC_SUCCESS) { 205 return result; 206 } 207 ++(*num_request_handles); 208 return TPM_RC_SUCCESS; 209 #endif 210 #ifdef TPM_CC_Duplicate 211 case TPM_CC_Duplicate: 212 result = TPMI_DH_OBJECT_Unmarshal( 213 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 214 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 215 if (result != TPM_RC_SUCCESS) { 216 return result; 217 } 218 ++(*num_request_handles); 219 result = TPMI_DH_OBJECT_Unmarshal( 220 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 221 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 222 if (result != TPM_RC_SUCCESS) { 223 return result; 224 } 225 ++(*num_request_handles); 226 return TPM_RC_SUCCESS; 227 #endif 228 #ifdef TPM_CC_ECC_Parameters 229 case TPM_CC_ECC_Parameters: 230 return TPM_RC_SUCCESS; 231 #endif 232 #ifdef TPM_CC_ECDH_KeyGen 233 case TPM_CC_ECDH_KeyGen: 234 result = TPMI_DH_OBJECT_Unmarshal( 235 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 236 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 237 if (result != TPM_RC_SUCCESS) { 238 return result; 239 } 240 ++(*num_request_handles); 241 return TPM_RC_SUCCESS; 242 #endif 243 #ifdef TPM_CC_ECDH_ZGen 244 case TPM_CC_ECDH_ZGen: 245 result = TPMI_DH_OBJECT_Unmarshal( 246 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 247 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 248 if (result != TPM_RC_SUCCESS) { 249 return result; 250 } 251 ++(*num_request_handles); 252 return TPM_RC_SUCCESS; 253 #endif 254 #ifdef TPM_CC_EC_Ephemeral 255 case TPM_CC_EC_Ephemeral: 256 return TPM_RC_SUCCESS; 257 #endif 258 #ifdef TPM_CC_EncryptDecrypt 259 case TPM_CC_EncryptDecrypt: 260 result = TPMI_DH_OBJECT_Unmarshal( 261 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 262 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 263 if (result != TPM_RC_SUCCESS) { 264 return result; 265 } 266 ++(*num_request_handles); 267 return TPM_RC_SUCCESS; 268 #endif 269 #ifdef TPM_CC_EventSequenceComplete 270 case TPM_CC_EventSequenceComplete: 271 result = TPMI_DH_PCR_Unmarshal( 272 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 273 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 274 if (result != TPM_RC_SUCCESS) { 275 return result; 276 } 277 ++(*num_request_handles); 278 result = TPMI_DH_OBJECT_Unmarshal( 279 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 280 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 281 if (result != TPM_RC_SUCCESS) { 282 return result; 283 } 284 ++(*num_request_handles); 285 return TPM_RC_SUCCESS; 286 #endif 287 #ifdef TPM_CC_EvictControl 288 case TPM_CC_EvictControl: 289 result = TPMI_RH_PROVISION_Unmarshal( 290 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 291 request_handle_buffer_start, request_buffer_remaining_size); 292 if (result != TPM_RC_SUCCESS) { 293 return result; 294 } 295 ++(*num_request_handles); 296 result = TPMI_DH_OBJECT_Unmarshal( 297 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 298 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 299 if (result != TPM_RC_SUCCESS) { 300 return result; 301 } 302 ++(*num_request_handles); 303 return TPM_RC_SUCCESS; 304 #endif 305 #ifdef TPM_CC_FieldUpgradeData 306 case TPM_CC_FieldUpgradeData: 307 return TPM_RC_SUCCESS; 308 #endif 309 #ifdef TPM_CC_FieldUpgradeStart 310 case TPM_CC_FieldUpgradeStart: 311 result = TPMI_RH_PLATFORM_Unmarshal( 312 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 313 request_handle_buffer_start, request_buffer_remaining_size); 314 if (result != TPM_RC_SUCCESS) { 315 return result; 316 } 317 ++(*num_request_handles); 318 result = TPMI_DH_OBJECT_Unmarshal( 319 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 320 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 321 if (result != TPM_RC_SUCCESS) { 322 return result; 323 } 324 ++(*num_request_handles); 325 return TPM_RC_SUCCESS; 326 #endif 327 #ifdef TPM_CC_FirmwareRead 328 case TPM_CC_FirmwareRead: 329 return TPM_RC_SUCCESS; 330 #endif 331 #ifdef TPM_CC_FlushContext 332 case TPM_CC_FlushContext: 333 return TPM_RC_SUCCESS; 334 #endif 335 #ifdef TPM_CC_GetCapability 336 case TPM_CC_GetCapability: 337 return TPM_RC_SUCCESS; 338 #endif 339 #ifdef TPM_CC_GetCommandAuditDigest 340 case TPM_CC_GetCommandAuditDigest: 341 result = TPMI_RH_ENDORSEMENT_Unmarshal( 342 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles], 343 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 344 if (result != TPM_RC_SUCCESS) { 345 return result; 346 } 347 ++(*num_request_handles); 348 result = TPMI_DH_OBJECT_Unmarshal( 349 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 350 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 351 if (result != TPM_RC_SUCCESS) { 352 return result; 353 } 354 ++(*num_request_handles); 355 return TPM_RC_SUCCESS; 356 #endif 357 #ifdef TPM_CC_GetRandom 358 case TPM_CC_GetRandom: 359 return TPM_RC_SUCCESS; 360 #endif 361 #ifdef TPM_CC_GetSessionAuditDigest 362 case TPM_CC_GetSessionAuditDigest: 363 result = TPMI_RH_ENDORSEMENT_Unmarshal( 364 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles], 365 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 366 if (result != TPM_RC_SUCCESS) { 367 return result; 368 } 369 ++(*num_request_handles); 370 result = TPMI_DH_OBJECT_Unmarshal( 371 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 372 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 373 if (result != TPM_RC_SUCCESS) { 374 return result; 375 } 376 ++(*num_request_handles); 377 result = TPMI_SH_HMAC_Unmarshal( 378 (TPMI_SH_HMAC*)&request_handles[*num_request_handles], 379 request_handle_buffer_start, request_buffer_remaining_size); 380 if (result != TPM_RC_SUCCESS) { 381 return result; 382 } 383 ++(*num_request_handles); 384 return TPM_RC_SUCCESS; 385 #endif 386 #ifdef TPM_CC_GetTestResult 387 case TPM_CC_GetTestResult: 388 return TPM_RC_SUCCESS; 389 #endif 390 #ifdef TPM_CC_GetTime 391 case TPM_CC_GetTime: 392 result = TPMI_RH_ENDORSEMENT_Unmarshal( 393 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles], 394 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 395 if (result != TPM_RC_SUCCESS) { 396 return result; 397 } 398 ++(*num_request_handles); 399 result = TPMI_DH_OBJECT_Unmarshal( 400 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 401 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 402 if (result != TPM_RC_SUCCESS) { 403 return result; 404 } 405 ++(*num_request_handles); 406 return TPM_RC_SUCCESS; 407 #endif 408 #ifdef TPM_CC_HMAC 409 case TPM_CC_HMAC: 410 result = TPMI_DH_OBJECT_Unmarshal( 411 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 412 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 413 if (result != TPM_RC_SUCCESS) { 414 return result; 415 } 416 ++(*num_request_handles); 417 return TPM_RC_SUCCESS; 418 #endif 419 #ifdef TPM_CC_HMAC_Start 420 case TPM_CC_HMAC_Start: 421 result = TPMI_DH_OBJECT_Unmarshal( 422 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 423 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 424 if (result != TPM_RC_SUCCESS) { 425 return result; 426 } 427 ++(*num_request_handles); 428 return TPM_RC_SUCCESS; 429 #endif 430 #ifdef TPM_CC_Hash 431 case TPM_CC_Hash: 432 return TPM_RC_SUCCESS; 433 #endif 434 #ifdef TPM_CC_HashSequenceStart 435 case TPM_CC_HashSequenceStart: 436 return TPM_RC_SUCCESS; 437 #endif 438 #ifdef TPM_CC_HierarchyChangeAuth 439 case TPM_CC_HierarchyChangeAuth: 440 result = TPMI_RH_HIERARCHY_AUTH_Unmarshal( 441 (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles], 442 request_handle_buffer_start, request_buffer_remaining_size); 443 if (result != TPM_RC_SUCCESS) { 444 return result; 445 } 446 ++(*num_request_handles); 447 return TPM_RC_SUCCESS; 448 #endif 449 #ifdef TPM_CC_HierarchyControl 450 case TPM_CC_HierarchyControl: 451 result = TPMI_RH_HIERARCHY_Unmarshal( 452 (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles], 453 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 454 if (result != TPM_RC_SUCCESS) { 455 return result; 456 } 457 ++(*num_request_handles); 458 return TPM_RC_SUCCESS; 459 #endif 460 #ifdef TPM_CC_Import 461 case TPM_CC_Import: 462 result = TPMI_DH_OBJECT_Unmarshal( 463 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 464 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 465 if (result != TPM_RC_SUCCESS) { 466 return result; 467 } 468 ++(*num_request_handles); 469 return TPM_RC_SUCCESS; 470 #endif 471 #ifdef TPM_CC_IncrementalSelfTest 472 case TPM_CC_IncrementalSelfTest: 473 return TPM_RC_SUCCESS; 474 #endif 475 #ifdef TPM_CC_Load 476 case TPM_CC_Load: 477 result = TPMI_DH_OBJECT_Unmarshal( 478 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 479 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 480 if (result != TPM_RC_SUCCESS) { 481 return result; 482 } 483 ++(*num_request_handles); 484 return TPM_RC_SUCCESS; 485 #endif 486 #ifdef TPM_CC_LoadExternal 487 case TPM_CC_LoadExternal: 488 return TPM_RC_SUCCESS; 489 #endif 490 #ifdef TPM_CC_MakeCredential 491 case TPM_CC_MakeCredential: 492 result = TPMI_DH_OBJECT_Unmarshal( 493 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 494 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 495 if (result != TPM_RC_SUCCESS) { 496 return result; 497 } 498 ++(*num_request_handles); 499 return TPM_RC_SUCCESS; 500 #endif 501 #ifdef TPM_CC_NV_Certify 502 case TPM_CC_NV_Certify: 503 result = TPMI_DH_OBJECT_Unmarshal( 504 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 505 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 506 if (result != TPM_RC_SUCCESS) { 507 return result; 508 } 509 ++(*num_request_handles); 510 result = TPMI_RH_NV_AUTH_Unmarshal( 511 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 512 request_handle_buffer_start, request_buffer_remaining_size); 513 if (result != TPM_RC_SUCCESS) { 514 return result; 515 } 516 ++(*num_request_handles); 517 result = TPMI_RH_NV_INDEX_Unmarshal( 518 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 519 request_handle_buffer_start, request_buffer_remaining_size); 520 if (result != TPM_RC_SUCCESS) { 521 return result; 522 } 523 ++(*num_request_handles); 524 return TPM_RC_SUCCESS; 525 #endif 526 #ifdef TPM_CC_NV_ChangeAuth 527 case TPM_CC_NV_ChangeAuth: 528 result = TPMI_RH_NV_INDEX_Unmarshal( 529 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 530 request_handle_buffer_start, request_buffer_remaining_size); 531 if (result != TPM_RC_SUCCESS) { 532 return result; 533 } 534 ++(*num_request_handles); 535 return TPM_RC_SUCCESS; 536 #endif 537 #ifdef TPM_CC_NV_DefineSpace 538 case TPM_CC_NV_DefineSpace: 539 result = TPMI_RH_PROVISION_Unmarshal( 540 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 541 request_handle_buffer_start, request_buffer_remaining_size); 542 if (result != TPM_RC_SUCCESS) { 543 return result; 544 } 545 ++(*num_request_handles); 546 return TPM_RC_SUCCESS; 547 #endif 548 #ifdef TPM_CC_NV_Extend 549 case TPM_CC_NV_Extend: 550 result = TPMI_RH_NV_AUTH_Unmarshal( 551 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 552 request_handle_buffer_start, request_buffer_remaining_size); 553 if (result != TPM_RC_SUCCESS) { 554 return result; 555 } 556 ++(*num_request_handles); 557 result = TPMI_RH_NV_INDEX_Unmarshal( 558 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 559 request_handle_buffer_start, request_buffer_remaining_size); 560 if (result != TPM_RC_SUCCESS) { 561 return result; 562 } 563 ++(*num_request_handles); 564 return TPM_RC_SUCCESS; 565 #endif 566 #ifdef TPM_CC_NV_GlobalWriteLock 567 case TPM_CC_NV_GlobalWriteLock: 568 result = TPMI_RH_PROVISION_Unmarshal( 569 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 570 request_handle_buffer_start, request_buffer_remaining_size); 571 if (result != TPM_RC_SUCCESS) { 572 return result; 573 } 574 ++(*num_request_handles); 575 return TPM_RC_SUCCESS; 576 #endif 577 #ifdef TPM_CC_NV_Increment 578 case TPM_CC_NV_Increment: 579 result = TPMI_RH_NV_AUTH_Unmarshal( 580 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 581 request_handle_buffer_start, request_buffer_remaining_size); 582 if (result != TPM_RC_SUCCESS) { 583 return result; 584 } 585 ++(*num_request_handles); 586 result = TPMI_RH_NV_INDEX_Unmarshal( 587 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 588 request_handle_buffer_start, request_buffer_remaining_size); 589 if (result != TPM_RC_SUCCESS) { 590 return result; 591 } 592 ++(*num_request_handles); 593 return TPM_RC_SUCCESS; 594 #endif 595 #ifdef TPM_CC_NV_Read 596 case TPM_CC_NV_Read: 597 result = TPMI_RH_NV_AUTH_Unmarshal( 598 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 599 request_handle_buffer_start, request_buffer_remaining_size); 600 if (result != TPM_RC_SUCCESS) { 601 return result; 602 } 603 ++(*num_request_handles); 604 result = TPMI_RH_NV_INDEX_Unmarshal( 605 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 606 request_handle_buffer_start, request_buffer_remaining_size); 607 if (result != TPM_RC_SUCCESS) { 608 return result; 609 } 610 ++(*num_request_handles); 611 return TPM_RC_SUCCESS; 612 #endif 613 #ifdef TPM_CC_NV_ReadLock 614 case TPM_CC_NV_ReadLock: 615 result = TPMI_RH_NV_AUTH_Unmarshal( 616 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 617 request_handle_buffer_start, request_buffer_remaining_size); 618 if (result != TPM_RC_SUCCESS) { 619 return result; 620 } 621 ++(*num_request_handles); 622 result = TPMI_RH_NV_INDEX_Unmarshal( 623 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 624 request_handle_buffer_start, request_buffer_remaining_size); 625 if (result != TPM_RC_SUCCESS) { 626 return result; 627 } 628 ++(*num_request_handles); 629 return TPM_RC_SUCCESS; 630 #endif 631 #ifdef TPM_CC_NV_ReadPublic 632 case TPM_CC_NV_ReadPublic: 633 result = TPMI_RH_NV_INDEX_Unmarshal( 634 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 635 request_handle_buffer_start, request_buffer_remaining_size); 636 if (result != TPM_RC_SUCCESS) { 637 return result; 638 } 639 ++(*num_request_handles); 640 return TPM_RC_SUCCESS; 641 #endif 642 #ifdef TPM_CC_NV_SetBits 643 case TPM_CC_NV_SetBits: 644 result = TPMI_RH_NV_AUTH_Unmarshal( 645 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 646 request_handle_buffer_start, request_buffer_remaining_size); 647 if (result != TPM_RC_SUCCESS) { 648 return result; 649 } 650 ++(*num_request_handles); 651 result = TPMI_RH_NV_INDEX_Unmarshal( 652 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 653 request_handle_buffer_start, request_buffer_remaining_size); 654 if (result != TPM_RC_SUCCESS) { 655 return result; 656 } 657 ++(*num_request_handles); 658 return TPM_RC_SUCCESS; 659 #endif 660 #ifdef TPM_CC_NV_UndefineSpace 661 case TPM_CC_NV_UndefineSpace: 662 result = TPMI_RH_PROVISION_Unmarshal( 663 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 664 request_handle_buffer_start, request_buffer_remaining_size); 665 if (result != TPM_RC_SUCCESS) { 666 return result; 667 } 668 ++(*num_request_handles); 669 result = TPMI_RH_NV_INDEX_Unmarshal( 670 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 671 request_handle_buffer_start, request_buffer_remaining_size); 672 if (result != TPM_RC_SUCCESS) { 673 return result; 674 } 675 ++(*num_request_handles); 676 return TPM_RC_SUCCESS; 677 #endif 678 #ifdef TPM_CC_NV_UndefineSpaceSpecial 679 case TPM_CC_NV_UndefineSpaceSpecial: 680 result = TPMI_RH_NV_INDEX_Unmarshal( 681 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 682 request_handle_buffer_start, request_buffer_remaining_size); 683 if (result != TPM_RC_SUCCESS) { 684 return result; 685 } 686 ++(*num_request_handles); 687 result = TPMI_RH_PLATFORM_Unmarshal( 688 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 689 request_handle_buffer_start, request_buffer_remaining_size); 690 if (result != TPM_RC_SUCCESS) { 691 return result; 692 } 693 ++(*num_request_handles); 694 return TPM_RC_SUCCESS; 695 #endif 696 #ifdef TPM_CC_NV_Write 697 case TPM_CC_NV_Write: 698 result = TPMI_RH_NV_AUTH_Unmarshal( 699 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 700 request_handle_buffer_start, request_buffer_remaining_size); 701 if (result != TPM_RC_SUCCESS) { 702 return result; 703 } 704 ++(*num_request_handles); 705 result = TPMI_RH_NV_INDEX_Unmarshal( 706 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 707 request_handle_buffer_start, request_buffer_remaining_size); 708 if (result != TPM_RC_SUCCESS) { 709 return result; 710 } 711 ++(*num_request_handles); 712 return TPM_RC_SUCCESS; 713 #endif 714 #ifdef TPM_CC_NV_WriteLock 715 case TPM_CC_NV_WriteLock: 716 result = TPMI_RH_NV_AUTH_Unmarshal( 717 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 718 request_handle_buffer_start, request_buffer_remaining_size); 719 if (result != TPM_RC_SUCCESS) { 720 return result; 721 } 722 ++(*num_request_handles); 723 result = TPMI_RH_NV_INDEX_Unmarshal( 724 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 725 request_handle_buffer_start, request_buffer_remaining_size); 726 if (result != TPM_RC_SUCCESS) { 727 return result; 728 } 729 ++(*num_request_handles); 730 return TPM_RC_SUCCESS; 731 #endif 732 #ifdef TPM_CC_ObjectChangeAuth 733 case TPM_CC_ObjectChangeAuth: 734 result = TPMI_DH_OBJECT_Unmarshal( 735 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 736 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 737 if (result != TPM_RC_SUCCESS) { 738 return result; 739 } 740 ++(*num_request_handles); 741 result = TPMI_DH_OBJECT_Unmarshal( 742 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 743 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 744 if (result != TPM_RC_SUCCESS) { 745 return result; 746 } 747 ++(*num_request_handles); 748 return TPM_RC_SUCCESS; 749 #endif 750 #ifdef TPM_CC_PCR_Allocate 751 case TPM_CC_PCR_Allocate: 752 result = TPMI_RH_PLATFORM_Unmarshal( 753 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 754 request_handle_buffer_start, request_buffer_remaining_size); 755 if (result != TPM_RC_SUCCESS) { 756 return result; 757 } 758 ++(*num_request_handles); 759 return TPM_RC_SUCCESS; 760 #endif 761 #ifdef TPM_CC_PCR_Event 762 case TPM_CC_PCR_Event: 763 result = TPMI_DH_PCR_Unmarshal( 764 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 765 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 766 if (result != TPM_RC_SUCCESS) { 767 return result; 768 } 769 ++(*num_request_handles); 770 return TPM_RC_SUCCESS; 771 #endif 772 #ifdef TPM_CC_PCR_Extend 773 case TPM_CC_PCR_Extend: 774 result = TPMI_DH_PCR_Unmarshal( 775 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 776 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 777 if (result != TPM_RC_SUCCESS) { 778 return result; 779 } 780 ++(*num_request_handles); 781 return TPM_RC_SUCCESS; 782 #endif 783 #ifdef TPM_CC_PCR_Read 784 case TPM_CC_PCR_Read: 785 return TPM_RC_SUCCESS; 786 #endif 787 #ifdef TPM_CC_PCR_Reset 788 case TPM_CC_PCR_Reset: 789 result = TPMI_DH_PCR_Unmarshal( 790 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 791 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 792 if (result != TPM_RC_SUCCESS) { 793 return result; 794 } 795 ++(*num_request_handles); 796 return TPM_RC_SUCCESS; 797 #endif 798 #ifdef TPM_CC_PCR_SetAuthPolicy 799 case TPM_CC_PCR_SetAuthPolicy: 800 result = TPMI_RH_PLATFORM_Unmarshal( 801 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 802 request_handle_buffer_start, request_buffer_remaining_size); 803 if (result != TPM_RC_SUCCESS) { 804 return result; 805 } 806 ++(*num_request_handles); 807 result = TPMI_DH_PCR_Unmarshal( 808 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 809 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 810 if (result != TPM_RC_SUCCESS) { 811 return result; 812 } 813 ++(*num_request_handles); 814 return TPM_RC_SUCCESS; 815 #endif 816 #ifdef TPM_CC_PCR_SetAuthValue 817 case TPM_CC_PCR_SetAuthValue: 818 result = TPMI_DH_PCR_Unmarshal( 819 (TPMI_DH_PCR*)&request_handles[*num_request_handles], 820 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 821 if (result != TPM_RC_SUCCESS) { 822 return result; 823 } 824 ++(*num_request_handles); 825 return TPM_RC_SUCCESS; 826 #endif 827 #ifdef TPM_CC_PP_Commands 828 case TPM_CC_PP_Commands: 829 result = TPMI_RH_PLATFORM_Unmarshal( 830 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 831 request_handle_buffer_start, request_buffer_remaining_size); 832 if (result != TPM_RC_SUCCESS) { 833 return result; 834 } 835 ++(*num_request_handles); 836 return TPM_RC_SUCCESS; 837 #endif 838 #ifdef TPM_CC_PolicyAuthValue 839 case TPM_CC_PolicyAuthValue: 840 result = TPMI_SH_POLICY_Unmarshal( 841 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 842 request_handle_buffer_start, request_buffer_remaining_size); 843 if (result != TPM_RC_SUCCESS) { 844 return result; 845 } 846 ++(*num_request_handles); 847 return TPM_RC_SUCCESS; 848 #endif 849 #ifdef TPM_CC_PolicyAuthorize 850 case TPM_CC_PolicyAuthorize: 851 result = TPMI_SH_POLICY_Unmarshal( 852 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 853 request_handle_buffer_start, request_buffer_remaining_size); 854 if (result != TPM_RC_SUCCESS) { 855 return result; 856 } 857 ++(*num_request_handles); 858 return TPM_RC_SUCCESS; 859 #endif 860 #ifdef TPM_CC_PolicyCommandCode 861 case TPM_CC_PolicyCommandCode: 862 result = TPMI_SH_POLICY_Unmarshal( 863 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 864 request_handle_buffer_start, request_buffer_remaining_size); 865 if (result != TPM_RC_SUCCESS) { 866 return result; 867 } 868 ++(*num_request_handles); 869 return TPM_RC_SUCCESS; 870 #endif 871 #ifdef TPM_CC_PolicyCounterTimer 872 case TPM_CC_PolicyCounterTimer: 873 result = TPMI_SH_POLICY_Unmarshal( 874 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 875 request_handle_buffer_start, request_buffer_remaining_size); 876 if (result != TPM_RC_SUCCESS) { 877 return result; 878 } 879 ++(*num_request_handles); 880 return TPM_RC_SUCCESS; 881 #endif 882 #ifdef TPM_CC_PolicyCpHash 883 case TPM_CC_PolicyCpHash: 884 result = TPMI_SH_POLICY_Unmarshal( 885 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 886 request_handle_buffer_start, request_buffer_remaining_size); 887 if (result != TPM_RC_SUCCESS) { 888 return result; 889 } 890 ++(*num_request_handles); 891 return TPM_RC_SUCCESS; 892 #endif 893 #ifdef TPM_CC_PolicyDuplicationSelect 894 case TPM_CC_PolicyDuplicationSelect: 895 result = TPMI_SH_POLICY_Unmarshal( 896 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 897 request_handle_buffer_start, request_buffer_remaining_size); 898 if (result != TPM_RC_SUCCESS) { 899 return result; 900 } 901 ++(*num_request_handles); 902 return TPM_RC_SUCCESS; 903 #endif 904 #ifdef TPM_CC_PolicyGetDigest 905 case TPM_CC_PolicyGetDigest: 906 result = TPMI_SH_POLICY_Unmarshal( 907 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 908 request_handle_buffer_start, request_buffer_remaining_size); 909 if (result != TPM_RC_SUCCESS) { 910 return result; 911 } 912 ++(*num_request_handles); 913 return TPM_RC_SUCCESS; 914 #endif 915 #ifdef TPM_CC_PolicyLocality 916 case TPM_CC_PolicyLocality: 917 result = TPMI_SH_POLICY_Unmarshal( 918 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 919 request_handle_buffer_start, request_buffer_remaining_size); 920 if (result != TPM_RC_SUCCESS) { 921 return result; 922 } 923 ++(*num_request_handles); 924 return TPM_RC_SUCCESS; 925 #endif 926 #ifdef TPM_CC_PolicyNV 927 case TPM_CC_PolicyNV: 928 result = TPMI_RH_NV_AUTH_Unmarshal( 929 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles], 930 request_handle_buffer_start, request_buffer_remaining_size); 931 if (result != TPM_RC_SUCCESS) { 932 return result; 933 } 934 ++(*num_request_handles); 935 result = TPMI_RH_NV_INDEX_Unmarshal( 936 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles], 937 request_handle_buffer_start, request_buffer_remaining_size); 938 if (result != TPM_RC_SUCCESS) { 939 return result; 940 } 941 ++(*num_request_handles); 942 result = TPMI_SH_POLICY_Unmarshal( 943 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 944 request_handle_buffer_start, request_buffer_remaining_size); 945 if (result != TPM_RC_SUCCESS) { 946 return result; 947 } 948 ++(*num_request_handles); 949 return TPM_RC_SUCCESS; 950 #endif 951 #ifdef TPM_CC_PolicyNameHash 952 case TPM_CC_PolicyNameHash: 953 result = TPMI_SH_POLICY_Unmarshal( 954 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 955 request_handle_buffer_start, request_buffer_remaining_size); 956 if (result != TPM_RC_SUCCESS) { 957 return result; 958 } 959 ++(*num_request_handles); 960 return TPM_RC_SUCCESS; 961 #endif 962 #ifdef TPM_CC_PolicyNvWritten 963 case TPM_CC_PolicyNvWritten: 964 result = TPMI_SH_POLICY_Unmarshal( 965 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 966 request_handle_buffer_start, request_buffer_remaining_size); 967 if (result != TPM_RC_SUCCESS) { 968 return result; 969 } 970 ++(*num_request_handles); 971 return TPM_RC_SUCCESS; 972 #endif 973 #ifdef TPM_CC_PolicyOR 974 case TPM_CC_PolicyOR: 975 result = TPMI_SH_POLICY_Unmarshal( 976 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 977 request_handle_buffer_start, request_buffer_remaining_size); 978 if (result != TPM_RC_SUCCESS) { 979 return result; 980 } 981 ++(*num_request_handles); 982 return TPM_RC_SUCCESS; 983 #endif 984 #ifdef TPM_CC_PolicyPCR 985 case TPM_CC_PolicyPCR: 986 result = TPMI_SH_POLICY_Unmarshal( 987 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 988 request_handle_buffer_start, request_buffer_remaining_size); 989 if (result != TPM_RC_SUCCESS) { 990 return result; 991 } 992 ++(*num_request_handles); 993 return TPM_RC_SUCCESS; 994 #endif 995 #ifdef TPM_CC_PolicyPassword 996 case TPM_CC_PolicyPassword: 997 result = TPMI_SH_POLICY_Unmarshal( 998 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 999 request_handle_buffer_start, request_buffer_remaining_size); 1000 if (result != TPM_RC_SUCCESS) { 1001 return result; 1002 } 1003 ++(*num_request_handles); 1004 return TPM_RC_SUCCESS; 1005 #endif 1006 #ifdef TPM_CC_PolicyPhysicalPresence 1007 case TPM_CC_PolicyPhysicalPresence: 1008 result = TPMI_SH_POLICY_Unmarshal( 1009 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 1010 request_handle_buffer_start, request_buffer_remaining_size); 1011 if (result != TPM_RC_SUCCESS) { 1012 return result; 1013 } 1014 ++(*num_request_handles); 1015 return TPM_RC_SUCCESS; 1016 #endif 1017 #ifdef TPM_CC_PolicyRestart 1018 case TPM_CC_PolicyRestart: 1019 result = TPMI_SH_POLICY_Unmarshal( 1020 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 1021 request_handle_buffer_start, request_buffer_remaining_size); 1022 if (result != TPM_RC_SUCCESS) { 1023 return result; 1024 } 1025 ++(*num_request_handles); 1026 return TPM_RC_SUCCESS; 1027 #endif 1028 #ifdef TPM_CC_PolicySecret 1029 case TPM_CC_PolicySecret: 1030 result = TPMI_DH_ENTITY_Unmarshal( 1031 (TPMI_DH_ENTITY*)&request_handles[*num_request_handles], 1032 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1033 if (result != TPM_RC_SUCCESS) { 1034 return result; 1035 } 1036 ++(*num_request_handles); 1037 result = TPMI_SH_POLICY_Unmarshal( 1038 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 1039 request_handle_buffer_start, request_buffer_remaining_size); 1040 if (result != TPM_RC_SUCCESS) { 1041 return result; 1042 } 1043 ++(*num_request_handles); 1044 return TPM_RC_SUCCESS; 1045 #endif 1046 #ifdef TPM_CC_PolicySigned 1047 case TPM_CC_PolicySigned: 1048 result = TPMI_DH_OBJECT_Unmarshal( 1049 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1050 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1051 if (result != TPM_RC_SUCCESS) { 1052 return result; 1053 } 1054 ++(*num_request_handles); 1055 result = TPMI_SH_POLICY_Unmarshal( 1056 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 1057 request_handle_buffer_start, request_buffer_remaining_size); 1058 if (result != TPM_RC_SUCCESS) { 1059 return result; 1060 } 1061 ++(*num_request_handles); 1062 return TPM_RC_SUCCESS; 1063 #endif 1064 #ifdef TPM_CC_PolicyTicket 1065 case TPM_CC_PolicyTicket: 1066 result = TPMI_SH_POLICY_Unmarshal( 1067 (TPMI_SH_POLICY*)&request_handles[*num_request_handles], 1068 request_handle_buffer_start, request_buffer_remaining_size); 1069 if (result != TPM_RC_SUCCESS) { 1070 return result; 1071 } 1072 ++(*num_request_handles); 1073 return TPM_RC_SUCCESS; 1074 #endif 1075 #ifdef TPM_CC_Quote 1076 case TPM_CC_Quote: 1077 result = TPMI_DH_OBJECT_Unmarshal( 1078 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1079 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 1080 if (result != TPM_RC_SUCCESS) { 1081 return result; 1082 } 1083 ++(*num_request_handles); 1084 return TPM_RC_SUCCESS; 1085 #endif 1086 #ifdef TPM_CC_RSA_Decrypt 1087 case TPM_CC_RSA_Decrypt: 1088 result = TPMI_DH_OBJECT_Unmarshal( 1089 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1090 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1091 if (result != TPM_RC_SUCCESS) { 1092 return result; 1093 } 1094 ++(*num_request_handles); 1095 return TPM_RC_SUCCESS; 1096 #endif 1097 #ifdef TPM_CC_RSA_Encrypt 1098 case TPM_CC_RSA_Encrypt: 1099 result = TPMI_DH_OBJECT_Unmarshal( 1100 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1101 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1102 if (result != TPM_RC_SUCCESS) { 1103 return result; 1104 } 1105 ++(*num_request_handles); 1106 return TPM_RC_SUCCESS; 1107 #endif 1108 #ifdef TPM_CC_ReadClock 1109 case TPM_CC_ReadClock: 1110 return TPM_RC_SUCCESS; 1111 #endif 1112 #ifdef TPM_CC_ReadPublic 1113 case TPM_CC_ReadPublic: 1114 result = TPMI_DH_OBJECT_Unmarshal( 1115 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1116 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1117 if (result != TPM_RC_SUCCESS) { 1118 return result; 1119 } 1120 ++(*num_request_handles); 1121 return TPM_RC_SUCCESS; 1122 #endif 1123 #ifdef TPM_CC_Rewrap 1124 case TPM_CC_Rewrap: 1125 result = TPMI_DH_OBJECT_Unmarshal( 1126 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1127 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 1128 if (result != TPM_RC_SUCCESS) { 1129 return result; 1130 } 1131 ++(*num_request_handles); 1132 result = TPMI_DH_OBJECT_Unmarshal( 1133 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1134 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 1135 if (result != TPM_RC_SUCCESS) { 1136 return result; 1137 } 1138 ++(*num_request_handles); 1139 return TPM_RC_SUCCESS; 1140 #endif 1141 #ifdef TPM_CC_SelfTest 1142 case TPM_CC_SelfTest: 1143 return TPM_RC_SUCCESS; 1144 #endif 1145 #ifdef TPM_CC_SequenceComplete 1146 case TPM_CC_SequenceComplete: 1147 result = TPMI_DH_OBJECT_Unmarshal( 1148 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1149 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1150 if (result != TPM_RC_SUCCESS) { 1151 return result; 1152 } 1153 ++(*num_request_handles); 1154 return TPM_RC_SUCCESS; 1155 #endif 1156 #ifdef TPM_CC_SequenceUpdate 1157 case TPM_CC_SequenceUpdate: 1158 result = TPMI_DH_OBJECT_Unmarshal( 1159 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1160 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1161 if (result != TPM_RC_SUCCESS) { 1162 return result; 1163 } 1164 ++(*num_request_handles); 1165 return TPM_RC_SUCCESS; 1166 #endif 1167 #ifdef TPM_CC_SetAlgorithmSet 1168 case TPM_CC_SetAlgorithmSet: 1169 result = TPMI_RH_PLATFORM_Unmarshal( 1170 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles], 1171 request_handle_buffer_start, request_buffer_remaining_size); 1172 if (result != TPM_RC_SUCCESS) { 1173 return result; 1174 } 1175 ++(*num_request_handles); 1176 return TPM_RC_SUCCESS; 1177 #endif 1178 #ifdef TPM_CC_SetCommandCodeAuditStatus 1179 case TPM_CC_SetCommandCodeAuditStatus: 1180 result = TPMI_RH_PROVISION_Unmarshal( 1181 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles], 1182 request_handle_buffer_start, request_buffer_remaining_size); 1183 if (result != TPM_RC_SUCCESS) { 1184 return result; 1185 } 1186 ++(*num_request_handles); 1187 return TPM_RC_SUCCESS; 1188 #endif 1189 #ifdef TPM_CC_SetPrimaryPolicy 1190 case TPM_CC_SetPrimaryPolicy: 1191 result = TPMI_RH_HIERARCHY_AUTH_Unmarshal( 1192 (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles], 1193 request_handle_buffer_start, request_buffer_remaining_size); 1194 if (result != TPM_RC_SUCCESS) { 1195 return result; 1196 } 1197 ++(*num_request_handles); 1198 return TPM_RC_SUCCESS; 1199 #endif 1200 #ifdef TPM_CC_Shutdown 1201 case TPM_CC_Shutdown: 1202 return TPM_RC_SUCCESS; 1203 #endif 1204 #ifdef TPM_CC_Sign 1205 case TPM_CC_Sign: 1206 result = TPMI_DH_OBJECT_Unmarshal( 1207 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1208 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1209 if (result != TPM_RC_SUCCESS) { 1210 return result; 1211 } 1212 ++(*num_request_handles); 1213 return TPM_RC_SUCCESS; 1214 #endif 1215 #ifdef TPM_CC_StartAuthSession 1216 case TPM_CC_StartAuthSession: 1217 result = TPMI_DH_OBJECT_Unmarshal( 1218 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1219 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 1220 if (result != TPM_RC_SUCCESS) { 1221 return result; 1222 } 1223 ++(*num_request_handles); 1224 result = TPMI_DH_ENTITY_Unmarshal( 1225 (TPMI_DH_ENTITY*)&request_handles[*num_request_handles], 1226 request_handle_buffer_start, request_buffer_remaining_size, TRUE); 1227 if (result != TPM_RC_SUCCESS) { 1228 return result; 1229 } 1230 ++(*num_request_handles); 1231 return TPM_RC_SUCCESS; 1232 #endif 1233 #ifdef TPM_CC_Startup 1234 case TPM_CC_Startup: 1235 return TPM_RC_SUCCESS; 1236 #endif 1237 #ifdef TPM_CC_StirRandom 1238 case TPM_CC_StirRandom: 1239 return TPM_RC_SUCCESS; 1240 #endif 1241 #ifdef TPM_CC_TestParms 1242 case TPM_CC_TestParms: 1243 return TPM_RC_SUCCESS; 1244 #endif 1245 #ifdef TPM_CC_Unseal 1246 case TPM_CC_Unseal: 1247 result = TPMI_DH_OBJECT_Unmarshal( 1248 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1249 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1250 if (result != TPM_RC_SUCCESS) { 1251 return result; 1252 } 1253 ++(*num_request_handles); 1254 return TPM_RC_SUCCESS; 1255 #endif 1256 #ifdef TPM_CC_VerifySignature 1257 case TPM_CC_VerifySignature: 1258 result = TPMI_DH_OBJECT_Unmarshal( 1259 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1260 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1261 if (result != TPM_RC_SUCCESS) { 1262 return result; 1263 } 1264 ++(*num_request_handles); 1265 return TPM_RC_SUCCESS; 1266 #endif 1267 #ifdef TPM_CC_ZGen_2Phase 1268 case TPM_CC_ZGen_2Phase: 1269 result = TPMI_DH_OBJECT_Unmarshal( 1270 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles], 1271 request_handle_buffer_start, request_buffer_remaining_size, FALSE); 1272 if (result != TPM_RC_SUCCESS) { 1273 return result; 1274 } 1275 ++(*num_request_handles); 1276 return TPM_RC_SUCCESS; 1277 #endif 1278 default: 1279 return TPM_RC_COMMAND_CODE; 1280 } 1281 }