Changeset 104958 in vbox
- Timestamp:
- Jun 18, 2024 12:37:39 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Trace/VBoxTraceLogDecoders.cpp
r104940 r104958 213 213 pHlp->pfnErrorMsg(pHlp, "Failed to decode '%s' as there is not enough space in the buffer (required %u, available %u)", 214 214 pszItem, sizeof(uint8_t), pCtx->cbLeft); 215 AssertFailed(); 215 216 pCtx->fError = true; 216 217 return 0; … … 231 232 pHlp->pfnErrorMsg(pHlp, "Failed to decode '%s' as there is not enough space in the buffer (required %u, available %u)", 232 233 pszItem, sizeof(uint16_t), pCtx->cbLeft); 234 AssertFailed(); 233 235 pCtx->fError = true; 234 236 return 0; … … 251 253 pHlp->pfnErrorMsg(pHlp, "Failed to decode '%s' as there is not enough space in the buffer (required %u, available %u)", 252 254 pszItem, sizeof(uint32_t), pCtx->cbLeft); 255 AssertFailed(); 253 256 pCtx->fError = true; 254 257 return 0; … … 262 265 263 266 264 #if 0 /* unused */265 267 static uint64_t vboxTraceLogDecodeEvtTpmDecodeCtxGetU64(PTPMDECODECTX pCtx, PRTTRACELOGDECODERHLP pHlp, const char *pszItem) 266 268 { … … 272 274 pHlp->pfnErrorMsg(pHlp, "Failed to decode '%s' as there is not enough space in the buffer (required %u, available %u)", 273 275 pszItem, sizeof(uint64_t), pCtx->cbLeft); 276 AssertFailed(); 274 277 pCtx->fError = true; 275 278 return 0; … … 281 284 return RT_BE2H_U64(u64); 282 285 } 283 #endif284 286 285 287 … … 293 295 pHlp->pfnErrorMsg(pHlp, "Failed to decode '%s' as there is not enough space in the buffer (required %u, available %u)", 294 296 pszItem, cbBuf, pCtx->cbLeft); 297 AssertFailed(); 295 298 pCtx->fError = true; 296 299 return 0; … … 352 355 #define TPM_DECODE_BUF(a_Var, a_Name, a_cb) \ 353 356 const uint8_t *a_Var = vboxTraceLogDecodeEvtTpmDecodeCtxGetBuf(pCtx, pHlp, #a_Name, a_cb); \ 357 if (pCtx->fError) break 358 359 #define TPM_DECODE_BUF_STR(a_Var, a_pszName, a_cb) \ 360 const uint8_t *a_Var = vboxTraceLogDecodeEvtTpmDecodeCtxGetBuf(pCtx, pHlp, a_pszName, a_cb); \ 354 361 if (pCtx->fError) break 355 362 … … 448 455 if (u16HmacSize) 449 456 pHlp->pfnPrintf(pHlp, " abHmac: %.*Rhxs\n", u16HmacSize, pbHmac); 457 TPM_DECODE_END(); 458 } 459 460 461 static void vboxTraceLogDecodeSizedBufU16(PRTTRACELOGDECODERHLP pHlp, PTPMDECODECTX pCtx, const char *pszName) 462 { 463 TPM_DECODE_INIT(); 464 pHlp->pfnPrintf(pHlp, " %s:\n", pszName); 465 TPM_DECODE_U16(u16Size, u16Size); 466 pHlp->pfnPrintf(pHlp, " u16Size: %u\n", u16Size); 467 if (u16Size) 468 { 469 TPM_DECODE_BUF_STR(pb, pszName, u16Size); 470 pHlp->pfnPrintf(pHlp, " %s:\n" 471 "%.*Rhxd\n", pszName, u16Size, pb); 472 } 473 TPM_DECODE_END(); 474 } 475 476 477 static void vboxTraceLogDecodeSymEncDef(PRTTRACELOGDECODERHLP pHlp, PTPMDECODECTX pCtx, const char *pszName) 478 { 479 RT_NOREF(pszName); 480 481 TPM_DECODE_INIT(); 482 pHlp->pfnPrintf(pHlp, " %s:\n", pszName); 483 TPM_DECODE_U16(u16HashAlg, u16HashAlg); 484 pHlp->pfnPrintf(pHlp, " u16Alg: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16HashAlg)); 485 if (u16HashAlg != TPM2_ALG_NULL) 486 { 487 TPM_DECODE_U16(u16KeyBits, u16KeyBits); 488 pHlp->pfnPrintf(pHlp, " u16KeyBits: %u\n", u16KeyBits); 489 TPM_DECODE_U16(u16SymMode, u16SymMode); 490 pHlp->pfnPrintf(pHlp, " u16SymMode: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16SymMode)); 491 /* Symmetric details are not required as of now. */ 492 } 450 493 TPM_DECODE_END(); 451 494 } … … 557 600 558 601 602 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeReadPublicResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 603 { 604 RT_NOREF(pThis); 605 606 TPM_DECODE_INIT(); 607 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "OutPublic"); 608 TPM_DECODE_END_IF_ERROR(); 609 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "Name"); 610 TPM_DECODE_END_IF_ERROR(); 611 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "QualifiedName"); 612 TPM_DECODE_END_IF_ERROR(); 613 TPM_DECODE_END(); 614 } 615 616 559 617 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeGetRandomReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 560 618 { 561 RT_NOREF(pThis);562 563 619 TPM_DECODE_INIT(); 564 620 TPM_DECODE_U16(u16RandomBytes, u16RandomBytes); … … 622 678 TPM_DECODE_END_IF_ERROR(); 623 679 vboxTraceLogDecodeEvtTpmDigestValuesList(pHlp, pCtx); 680 TPM_DECODE_END(); 681 } 682 683 684 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeReadClockResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 685 { 686 RT_NOREF(pThis); 687 688 TPM_DECODE_INIT(); 689 TPM_DECODE_U64(u64Time, u64Time); 690 pHlp->pfnPrintf(pHlp, " u64Time: %RX64\n", u64Time); 691 692 /* Decode TPMS_CLOCK_INFO. */ 693 TPM_DECODE_U64(u64Clock, u64Clock); 694 TPM_DECODE_U32(u32ResetCount, u32ResetCount); 695 TPM_DECODE_U32(u32RestartCount, u32RestartCount); 696 TPM_DECODE_U8( fSafe, fSafe); 697 pHlp->pfnPrintf(pHlp, " u64Clock: %RX64\n", u64Clock); 698 pHlp->pfnPrintf(pHlp, " u32ResetCount: %u\n", u32ResetCount); 699 pHlp->pfnPrintf(pHlp, " u32RestartCount: %u\n", u32RestartCount); 700 pHlp->pfnPrintf(pHlp, " fSafe: %RTbool\n", fSafe); 701 702 TPM_DECODE_END(); 703 } 704 705 706 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeNvReadPublicReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 707 { 708 RT_NOREF(pThis); 709 710 TPM_DECODE_INIT(); 711 TPM_DECODE_U32(hNvIndex, hNvIndex); 712 pHlp->pfnPrintf(pHlp, " hNvIndex: %#x\n", hNvIndex); 713 TPM_DECODE_END(); 714 } 715 716 717 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeNvReadPublicResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 718 { 719 RT_NOREF(pThis); 720 721 TPM_DECODE_INIT(); 722 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "NvPublic"); 723 TPM_DECODE_END(); 724 } 725 726 727 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeStartAuthSessionReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 728 { 729 RT_NOREF(pThis); 730 731 TPM_DECODE_INIT(); 732 TPM_DECODE_U32(hTpmKey, hTpmKey); 733 pHlp->pfnPrintf(pHlp, " hTpmKey: %#x\n", hTpmKey); 734 TPM_DECODE_U32(hBind, hBind); 735 pHlp->pfnPrintf(pHlp, " hBind: %#x\n", hBind); 736 737 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "NonceCaller"); 738 TPM_DECODE_END_IF_ERROR(); 739 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "EncryptedSalt"); 740 TPM_DECODE_END_IF_ERROR(); 741 742 TPM_DECODE_U8(u8SessionType, u8SessionType); 743 pHlp->pfnPrintf(pHlp, " u8SessionType: %#x\n", u8SessionType); 744 745 vboxTraceLogDecodeSymEncDef(pHlp, pCtx, "Symmetric"); 746 TPM_DECODE_END_IF_ERROR(); 747 748 TPM_DECODE_U16(u16HashAlg, u16HashAlg); 749 pHlp->pfnPrintf(pHlp, " u16HashAlg: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16HashAlg)); 750 TPM_DECODE_END(); 751 } 752 753 754 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeStartAuthSessionResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 755 { 756 RT_NOREF(pThis); 757 758 TPM_DECODE_INIT(); 759 TPM_DECODE_U32(hSession, hSession); 760 pHlp->pfnPrintf(pHlp, " hSession: %#x\n", hSession); 761 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "NonceTpm"); 762 TPM_DECODE_END(); 763 } 764 765 766 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeHierarchyChangeAuthReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 767 { 768 RT_NOREF(pThis); 769 770 TPM_DECODE_INIT(); 771 TPM_DECODE_U32(hAuth, hAuth); 772 pHlp->pfnPrintf(pHlp, " hAuth: %#x\n", hAuth); 773 vboxTraceLogDecodeEvtTpmAuthSession(pHlp, pCtx); 774 TPM_DECODE_END_IF_ERROR(); 775 776 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "NewAuth"); 777 TPM_DECODE_END(); 778 } 779 780 781 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeNvReadReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 782 { 783 RT_NOREF(pThis); 784 785 TPM_DECODE_INIT(); 786 TPM_DECODE_U32(hAuth, hAuth); 787 pHlp->pfnPrintf(pHlp, " hAuth: %#x\n", hAuth); 788 TPM_DECODE_U32(hNvIndex, hNvIndex); 789 pHlp->pfnPrintf(pHlp, " hNvIndex: %#x\n", hNvIndex); 790 791 vboxTraceLogDecodeEvtTpmAuthSession(pHlp, pCtx); 792 TPM_DECODE_END_IF_ERROR(); 793 794 TPM_DECODE_U16(u16Size, u16Size); 795 pHlp->pfnPrintf(pHlp, " u16Size: %u\n", u16Size); 796 TPM_DECODE_U16(u16Offset, u16Offset); 797 pHlp->pfnPrintf(pHlp, " u16Offset: %u\n", u16Offset); 798 TPM_DECODE_END(); 799 } 800 801 802 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeNvReadResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 803 { 804 RT_NOREF(pThis); 805 806 TPM_DECODE_INIT(); 807 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "Data"); 808 TPM_DECODE_END(); 809 } 810 811 812 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeEccParametersReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 813 { 814 RT_NOREF(pThis); 815 816 TPM_DECODE_INIT(); 817 TPM_DECODE_U16(u16CurveId, u16CurveId); 818 pHlp->pfnPrintf(pHlp, " u16CurveId: %#x\n", u16CurveId); 819 TPM_DECODE_END(); 820 } 821 822 823 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeEccParametersResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 824 { 825 RT_NOREF(pThis); 826 827 TPM_DECODE_INIT(); 828 TPM_DECODE_U16(u16CurveId, u16CurveId); 829 TPM_DECODE_U16(u16KeySize, u16KeySize); 830 TPM_DECODE_U16(u16KdfScheme, u16KdfScheme); 831 TPM_DECODE_U16(u16KdfSchemeHash, u16KdfSchemeHash); 832 TPM_DECODE_U16(u16EccScheme, u16EccScheme); 833 834 pHlp->pfnPrintf(pHlp, " u16CurveId: %#x\n", u16CurveId); 835 pHlp->pfnPrintf(pHlp, " u16KeySize: %u\n", u16KeySize); 836 pHlp->pfnPrintf(pHlp, " u16KdfScheme: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16KdfScheme)); 837 pHlp->pfnPrintf(pHlp, " u16KdfSchemeHash: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16KdfSchemeHash)); 838 pHlp->pfnPrintf(pHlp, " u16EccScheme: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16EccScheme)); 839 if (u16EccScheme != TPM2_ALG_NULL) 840 { 841 TPM_DECODE_U16(u16EccSchemeHash, u16EccSchemeHash); 842 pHlp->pfnPrintf(pHlp, " u16EccSchemeHash: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16EccSchemeHash)); 843 } 844 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "p"); 845 TPM_DECODE_END_IF_ERROR(); 846 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "a"); 847 TPM_DECODE_END_IF_ERROR(); 848 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "b"); 849 TPM_DECODE_END_IF_ERROR(); 850 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "gX"); 851 TPM_DECODE_END_IF_ERROR(); 852 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "gY"); 853 TPM_DECODE_END_IF_ERROR(); 854 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "n"); 855 TPM_DECODE_END_IF_ERROR(); 856 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "h"); 857 TPM_DECODE_END_IF_ERROR(); 858 TPM_DECODE_END(); 859 } 860 861 862 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeQuoteReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 863 { 864 RT_NOREF(pThis); 865 866 TPM_DECODE_INIT(); 867 TPM_DECODE_U32(hSign, hSign); 868 pHlp->pfnPrintf(pHlp, " hSign: %#x\n", hSign); 869 870 vboxTraceLogDecodeEvtTpmAuthSession(pHlp, pCtx); 871 TPM_DECODE_END_IF_ERROR(); 872 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "QualifyingData"); 873 TPM_DECODE_END_IF_ERROR(); 874 875 TPM_DECODE_U16(u16SigScheme, u16SigScheme); 876 pHlp->pfnPrintf(pHlp, " u16SigScheme: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16SigScheme)); 877 if (u16SigScheme != TPM2_ALG_NULL) 878 { 879 TPM_DECODE_U16(u16SigSchemeHash, u16SigSchemeHash); 880 pHlp->pfnPrintf(pHlp, " u16SigSchemeHash: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16SigSchemeHash)); 881 } 882 883 vboxTraceLogDecodePcrSelectionList(pHlp, pCtx); 884 TPM_DECODE_END(); 885 } 886 887 888 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeQuoteResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 889 { 890 RT_NOREF(pThis); 891 892 TPM_DECODE_INIT(); 893 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "Quoted"); 894 TPM_DECODE_END_IF_ERROR(); 895 896 TPM_DECODE_U16(u16SigAlg, u16SigAlg); 897 pHlp->pfnPrintf(pHlp, " u16SigAlg: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16SigAlg)); 898 if (u16SigAlg != TPM2_ALG_NULL) 899 { 900 TPM_DECODE_U16(u16SigAlgHash, u16SigAlgHash); 901 pHlp->pfnPrintf(pHlp, " u16SigAlgHash: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16SigAlgHash)); 902 } 903 TPM_DECODE_END(); 904 } 905 906 907 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeHmacMacReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 908 { 909 RT_NOREF(pThis); 910 911 TPM_DECODE_INIT(); 912 TPM_DECODE_U32(hSymKey, hSymKey); 913 pHlp->pfnPrintf(pHlp, " hSymKey: %#x\n", hSymKey); 914 915 vboxTraceLogDecodeEvtTpmAuthSession(pHlp, pCtx); 916 TPM_DECODE_END_IF_ERROR(); 917 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "Buffer"); 918 TPM_DECODE_END_IF_ERROR(); 919 920 TPM_DECODE_U16(u16HashAlg, u16HashAlg); 921 pHlp->pfnPrintf(pHlp, " u16HashAlg: %s\n", vboxTraceLogDecodeEvtTpmAlgId2Str(u16HashAlg)); 922 TPM_DECODE_END(); 923 } 924 925 926 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeHmacMacResp(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 927 { 928 RT_NOREF(pThis); 929 930 TPM_DECODE_INIT(); 931 vboxTraceLogDecodeSizedBufU16(pHlp, pCtx, "OutHmacMac"); 932 TPM_DECODE_END(); 933 } 934 935 936 static DECLCALLBACK(void) vboxTraceLogDecodeEvtTpmDecodeFlushContextReq(PRTTRACELOGDECODERHLP pHlp, PTPMSTATE pThis, PTPMDECODECTX pCtx) 937 { 938 RT_NOREF(pThis); 939 940 TPM_DECODE_INIT(); 941 TPM_DECODE_U32(hFlush, hFlush); 942 pHlp->pfnPrintf(pHlp, " hFlush: %#x\n", hFlush); 624 943 TPM_DECODE_END(); 625 944 } … … 648 967 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_CLEAR_CONTROL), 649 968 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_CLOCK_SET), 650 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_HIERARCHY_CHANGE_AUTH),969 TPM_CMD_CODE_INIT( TPM2_CC_HIERARCHY_CHANGE_AUTH, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeHierarchyChangeAuthReq, NULL), 651 970 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_NV_DEFINE_SPACE), 652 971 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_PCR_ALLOCATE), … … 685 1004 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_GET_TIME), 686 1005 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_GET_SESSION_AUDIT_DIGEST), 687 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_NV_READ),1006 TPM_CMD_CODE_INIT( TPM2_CC_NV_READ, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeNvReadReq, vboxTraceLogDecodeEvtTpmDecodeNvReadResp), 688 1007 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_NV_READ_LOCK), 689 1008 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_OBJECT_CHANGE_AUTH), … … 692 1011 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_CREATE), 693 1012 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_ECDH_ZGEN), 694 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_HMAC_MAC),1013 TPM_CMD_CODE_INIT( TPM2_CC_HMAC_MAC, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeHmacMacReq, vboxTraceLogDecodeEvtTpmDecodeHmacMacResp), 695 1014 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_IMPORT), 696 1015 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_LOAD), 697 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_QUOTE),1016 TPM_CMD_CODE_INIT( TPM2_CC_QUOTE, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeQuoteReq, vboxTraceLogDecodeEvtTpmDecodeQuoteResp), 698 1017 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_RSA_DECRYPT), 699 1018 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_HMAC_MAC_START), … … 706 1025 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_ECDH_KEY_GEN), 707 1026 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_ENCRYPT_DECRYPT), 708 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_FLUSH_CONTEXT),1027 TPM_CMD_CODE_INIT( TPM2_CC_FLUSH_CONTEXT, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeFlushContextReq, NULL), 709 1028 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_LOAD_EXTERNAL), 710 1029 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_MAKE_CREDENTIAL), 711 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_NV_READ_PUBLIC),1030 TPM_CMD_CODE_INIT( TPM2_CC_NV_READ_PUBLIC, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeNvReadPublicReq, vboxTraceLogDecodeEvtTpmDecodeNvReadPublicResp), 712 1031 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_AUTHORIZE), 713 1032 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_AUTH_VALUE), … … 719 1038 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_OR), 720 1039 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_TICKET), 721 TPM_CMD_CODE_INIT( TPM2_CC_READ_PUBLIC, TPM2REQREADPUBLIC, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeReadPublicReq, NULL),1040 TPM_CMD_CODE_INIT( TPM2_CC_READ_PUBLIC, TPM2REQREADPUBLIC, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeReadPublicReq, vboxTraceLogDecodeEvtTpmDecodeReadPublicResp), 722 1041 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_RSA_ENCRYPT), 723 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_START_AUTH_SESSION),1042 TPM_CMD_CODE_INIT( TPM2_CC_START_AUTH_SESSION, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeStartAuthSessionReq, vboxTraceLogDecodeEvtTpmDecodeStartAuthSessionResp), 724 1043 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_VERIFY_SIGNATURE), 725 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_ECC_PARAMETERS),1044 TPM_CMD_CODE_INIT( TPM2_CC_ECC_PARAMETERS, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodeEccParametersReq, vboxTraceLogDecodeEvtTpmDecodeEccParametersResp), 726 1045 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_FIRMWARE_READ), 727 1046 TPM_CMD_CODE_INIT( TPM2_CC_GET_CAPABILITY, TPM2REQGETCAPABILITY, TPM2RESPGETCAPABILITY, vboxTraceLogDecodeEvtTpmDecodeGetCapabilityReq, vboxTraceLogDecodeEvtTpmDecodeGetCapabilityResp), … … 732 1051 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_PCR), 733 1052 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_POLICY_RESTART), 734 TPM_CMD_CODE_INIT _NOT_IMPL(TPM2_CC_READ_CLOCK),1053 TPM_CMD_CODE_INIT( TPM2_CC_READ_CLOCK, TPMREQHDR, TPMRESPHDR, NULL, vboxTraceLogDecodeEvtTpmDecodeReadClockResp), 735 1054 TPM_CMD_CODE_INIT( TPM2_CC_PCR_EXTEND, TPMREQHDR, TPMRESPHDR, vboxTraceLogDecodeEvtTpmDecodePcrExtendReq, NULL), 736 1055 TPM_CMD_CODE_INIT_NOT_IMPL(TPM2_CC_PCR_SET_AUTH_VALUE), … … 825 1144 { 826 1145 uint32_t cbRespPayload = RT_BE2H_U32(pHdr->cbResp) - sizeof(*pHdr); 827 828 pHlp->pfnPrintf(pHlp, " Status code: %#x (%u bytes)\n", RT_BE2H_U32(pHdr->u32ErrCode), cbRespPayload); 1146 uint32_t u32ErrCode = RT_BE2H_U32(pHdr->u32ErrCode); 1147 1148 pHlp->pfnPrintf(pHlp, " Status code: %#x (%u bytes)\n", u32ErrCode, cbRespPayload); 829 1149 PTPMSTATE pTpmState = (PTPMSTATE)pHlp->pfnDecoderStateGet(pHlp); 830 1150 831 1151 /* Can only decode the response buffer if we know the command code. */ 832 if (pTpmState) 1152 if ( pTpmState 1153 && u32ErrCode == TPM_SUCCESS) 833 1154 { 834 1155 for (uint32_t i = 0; i < RT_ELEMENTS(s_aTpmCmdCodes); i++)
Note:
See TracChangeset
for help on using the changeset viewer.

