| 519 | |
| 520 | |
| 521 | class PCP_20_KEY_BLOB(Packet): |
| 522 | fields_desc = [ |
| 523 | StrFixedLenField("Magic", b"PCPM", length=4), |
| 524 | LEIntField("cbHeader", 0), |
| 525 | LEIntEnumField("pcpType", 2, _PCP_TYPE), |
| 526 | FlagsField( |
| 527 | "flags", |
| 528 | 0, |
| 529 | -32, |
| 530 | { |
| 531 | 0x00000001: "authRequired", |
| 532 | 0x00000002: "undocumented2", |
| 533 | }, |
| 534 | ), |
| 535 | LEIntField("cbPublic", 0), |
| 536 | LEIntField("cbPrivate", 0), |
| 537 | LEIntField("cbMigrationPublic", 0), |
| 538 | LEIntField("cbMigrationPrivate", 0), |
| 539 | LEIntField("cbPolicyDigestList", 0), |
| 540 | LEIntField("cbPCRBinding", 0), |
| 541 | LEIntField("cbPCRDigest", 0), |
| 542 | LEIntField("cbEncryptedSecret", 0), |
| 543 | LEIntField("cbTpm12HostageBlob", 0), |
| 544 | LEIntField("pcrAlgId", 0), |
| 545 | PacketLenField( |
| 546 | "public", |
| 547 | TPM2B_PUBLIC(), |
| 548 | TPM2B_PUBLIC, |
| 549 | length_from=lambda pkt: pkt.cbPublic, |
| 550 | ), |
| 551 | PacketLenField( |
| 552 | "private", |
| 553 | TPM2B_PRIVATE(), |
| 554 | TPM2B_PRIVATE, |
| 555 | length_from=lambda pkt: pkt.cbPrivate, |
| 556 | ), |
| 557 | PacketLenField( |
| 558 | "migrationPublic", |
| 559 | None, |
| 560 | TPM2B_PUBLIC, |
| 561 | length_from=lambda pkt: pkt.cbMigrationPublic, |
| 562 | ), |
| 563 | PacketLenField( |
| 564 | "migrationPrivate", |
| 565 | TPM2B_PRIVATE(), |
| 566 | TPM2B_PRIVATE, |
| 567 | length_from=lambda pkt: pkt.cbMigrationPrivate, |
| 568 | ), |
| 569 | PacketLenField( |
| 570 | "policyDigestList", |
| 571 | TPML_DIGEST(), |
| 572 | TPML_DIGEST, |
| 573 | length_from=lambda pkt: pkt.cbPolicyDigestList, |
| 574 | ), |
| 575 | StrLenField( |
| 576 | "pcrBinding", |
| 577 | b"", |
| 578 | length_from=lambda pkt: pkt.cbPCRBinding, |
no test coverage detected