STRUCT REPORTMAC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🧚 STRUCT REPORTMAC (9) β€” the kernel API manual, bestie edition

ok so real talk, this is struct reportmac from the Kernel API Manual, and it's basically the guest report data for TDX β€” plus the MAC and the TEE hashes. it's giving "receipt but cryptographic". πŸ’…


✨ NAME ✨

struct reportmac β€” TDX guest report data, MAC and TEE hashes.

like, the whole package: the report, the MAC, the hashes. all of it. πŸŽ€


✨ SYNOPSIS ✨

struct reportmac {
    struct tdreport_type type;
    __u8 reserved1[12];
    __u8 cpu_svn[16];
    __u8 tee_tcb_info_hash[48];
    __u8 tee_td_info_hash[48];
    __u8 reportdata[64];
    __u8 reserved2[32];
    __u8 mac[32];
 };

look at her. iconic layout. every byte accounted for. no notes. ✨


✨ Members ✨

  • type β€” the TDREPORT type header. the main character of the header, fr fr. πŸ‘‘
  • reserved1 β€” reserved for future extension. it's saving a seat for somebody. 🫢
  • cpu_svn β€” CPU security version. the CPU's own vibe check. πŸ’€
  • tee_tcb_info_hash β€” SHA384 hash of TEE TCB INFO. literally spelled out for you, no cap.
  • tee_td_info_hash β€” SHA384 hash of TDINFO_STRUCT. same energy, different struct. πŸ¦‹
  • reportdata β€” user defined unique data passed in TDG.MR.REPORT request. this one's yours, bestie, you bring the data. 🌸
  • reserved2 β€” reserved for future extension. second reserved block, still reserving, still humble. πŸ™ˆ
  • mac β€” CPU MAC ID. yes it's 32 bytes. yes it matters. πŸ”₯

✨ Description ✨

ok so here's the tea: this thing is MAC-protected, and it contains hashes of the remainder of the report structure along with user provided report data.

and if you want the full lore? More details can be found in TDX v1.0 Module specification, sec titled "REPORTMACSTRUCT". go read the source, it's giving required reading. πŸ“š


✨ SEE ALSO ✨

  • Kernel file ./tools/testing/selftests/tdx/tdx_guest_test.c
  • struct tdreport_type(9)
  • struct td_info(9)

reminder bestie: that struct is MAC-protected, so don't go messing with it unless you actually know what you're doing. this is not a drill. πŸ’€

πŸ’– that's the whole page πŸ’– β€” brought to you by ./tools/testing/selftests/tdx, dated October 2026. mwah, go slay your TDX reports. πŸŽ€πŸŒŸπŸ’œ

πŸ“¦ where this page comes from