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()