def display()

in cvm-attestation/snp.py [0:0]


  def display(self):
    """
    Displays the full attestation report
    """
    print(f"Attestation Report ({self.calculate_size()} bytes):")
    print(f"Version:                      {self.version}")
    print(f"Guest SVN:                    {self.guest_svn}")
    print(f"\nGuest Policy (0x{self.policy:x}):")
    print(f"    ABI Major:     {(self.policy >> 8) & 0xff}")
    print(f"    ABI Minor:     {(self.policy >> 0) & 0xff}")
    print(f"    SMT Allowed:   {(self.policy >> 16) & 0x1}")
    print(f"    Migrate MA:    {(self.policy >> 18) & 0x1}")
    print(f"    Debug Allowed: {(self.policy >> 19) & 0x1}")
    print(f"    Single Socket: {(self.policy >> 20) & 0x1}")
    print()

    print("Family ID:                    ")
    for byte in self.family_id:
      print(f"{byte:02x} ", end='')
    print()
    print()

    print("Image ID:                     ")
    for byte in self.image_id:
      print(f"{byte:02x} ", end='')
    print()
    print()

    print(f"VMPL:                         {self.vmpl}")
    print(f"Signature Algorithm:          {self.sig_algo}")
    print()

    current_tcb = self.current_tcb.serialize()
    formatted_tcb = "".join(f"{byte:02X}" for byte in current_tcb[::-1])
    print(f"Current TCB: {formatted_tcb}")
    print(f"  Microcode:   {self.current_tcb.microcode} ({hex(self.current_tcb.microcode)[2:].upper()})")
    print(f"  SNP:         {self.current_tcb.snp} ({hex(self.current_tcb.snp)[2:].upper()})")
    print(f"  Reserved:    {self.current_tcb.reserved} ({hex(self.current_tcb.reserved)[2:].upper()})")
    print(f"  TEE:         {self.current_tcb.tee} ({hex(self.current_tcb.tee)[2:].upper()})")
    print(f"  Boot Loader: {self.current_tcb.bootloader} ({hex(self.current_tcb.bootloader)[2:].upper()})")

    print(f"\nPlatform Info (1):")
    print(f"  SMT Enabled:               {self.plat_info.smt_enabled}")
    print(f"  TSME Enabled:              {self.plat_info.tsme_enabled}")
    print(f"  ECC Enabled:               {self.plat_info.ecc_enabled}")
    print(f"  RAPL Disabled:             {self.plat_info.rapl_disabled}")
    print(f"  Ciphertext Hiding Enabled: {self.plat_info.ciphertext_hiding_enabled}")

    print()

    print(f"Author Key Encryption:      {bool(self.key_info.author_key_en)}")
    print("Report Data:                     ")
    print(self.format_data(self.report_data))
    print()

    print("Measurement:                     ")
    print(self.format_data(self.measurement))
    print()

    print("Host Data:                     ")
    print(self.format_data(self.host_data))
    print()

    print("ID Key Digest:                     ")
    print(self.format_data(self.id_key_digest))
    print()

    print("Report ID:                     ")
    print(self.format_data(self.report_id))
    print()

    print("Report ID Migration Agent:                     ")
    print(self.format_data(self.report_id_ma))
    print()

    reported_tcb = self.reported_tcb.serialize()
    formatted_tcb = "".join(f"{byte:02X}" for byte in reported_tcb[::-1])
    print(f"Reported TCB:")
    print(f"TCB Version: {formatted_tcb}")
    print(f"  Microcode:   {self.reported_tcb.microcode} ({hex(self.reported_tcb.microcode)[2:].upper()})")
    print(f"  SNP:         {self.reported_tcb.snp} ({hex(self.reported_tcb.snp)[2:].upper()})")
    print(f"  Reserved:    {self.reported_tcb.reserved} ({hex(self.reported_tcb.reserved)[2:].upper()})")
    print(f"  TEE:         {self.reported_tcb.tee} ({hex(self.reported_tcb.tee)[2:].upper()})")
    print(f"  Boot Loader: {self.reported_tcb.bootloader} ({hex(self.reported_tcb.bootloader)[2:].upper()})")
    print()

    print("Chip ID:                     ")
    print(self.format_data(self.chip_id))
    print()

    committed_tcb = self.committed_tcb.serialize()
    formatted_tcb = "".join(f"{byte:02X}" for byte in committed_tcb[::-1])
    print(f"Committed TCB: {formatted_tcb}")
    print(f"  Microcode:   {self.committed_tcb.microcode} ({hex(self.committed_tcb.microcode)[2:].upper()})")
    print(f"  SNP:         {self.committed_tcb.snp} ({hex(self.committed_tcb.snp)[2:].upper()})")
    print(f"  Reserved:    {self.committed_tcb.reserved} ({hex(self.committed_tcb.reserved)[2:].upper()})")
    print(f"  TEE:         {self.committed_tcb.tee} ({hex(self.committed_tcb.tee)[2:].upper()})")
    print(f"  Boot Loader: {self.committed_tcb.bootloader} ({hex(self.committed_tcb.bootloader)[2:].upper()})")
    print()

    print(f"Current Build:                {self.current_build}")
    print(f"Current Minor:                {self.current_minor}")
    print(f"Current Major:                {self.current_major}")
    print(f"Committed Build:              {self.committed_build}")
    print(f"Committed Minor:              {self.committed_minor}")
    print(f"Committed Major:              {self.committed_major}")
    print()

    launch_tcb = self.launch_tcb.serialize()
    formatted_tcb = "".join(f"{byte:02X}" for byte in launch_tcb[::-1])
    print(f"Launched TCB: {formatted_tcb}")
    print(f"  Microcode:   {self.launch_tcb.microcode} ({hex(self.launch_tcb.microcode)[2:].upper()})")
    print(f"  SNP:         {self.launch_tcb.snp} ({hex(self.launch_tcb.snp)[2:].upper()})")
    print(f"  Reserved:    {self.launch_tcb.reserved} ({hex(self.launch_tcb.reserved)[2:].upper()})")
    print(f"  TEE:         {self.launch_tcb.tee} ({hex(self.launch_tcb.tee)[2:].upper()})")
    print(f"  Boot Loader: {self.launch_tcb.bootloader} ({hex(self.launch_tcb.bootloader)[2:].upper()})")
    print()

    print("Signature:                     ")
    print(f"  R Component:")
    print(self.format_data(self.signature.r_component))
    print()
    print(f"  S Component:")
    print(self.format_data(self.signature.s_component))
    print()