#[repr(C)]pub struct AttestationReport {Show 29 fields
pub version: u32,
pub guest_svn: u32,
pub policy: GuestPolicy,
pub family_id: [u8; 16],
pub image_id: [u8; 16],
pub vmpl: u32,
pub sig_algo: u32,
pub current_tcb: TcbVersion,
pub plat_info: PlatformInfo,
pub key_info: KeyInfo,
pub report_data: [u8; 64],
pub measurement: [u8; 48],
pub host_data: [u8; 32],
pub id_key_digest: [u8; 48],
pub author_key_digest: [u8; 48],
pub report_id: [u8; 32],
pub report_id_ma: [u8; 32],
pub reported_tcb: TcbVersion,
pub cpuid_fam_id: Option<u8>,
pub cpuid_mod_id: Option<u8>,
pub cpuid_step: Option<u8>,
pub chip_id: [u8; 64],
pub committed_tcb: TcbVersion,
pub current: Version,
pub committed: Version,
pub launch_tcb: TcbVersion,
pub launch_mit_vector: Option<u64>,
pub current_mit_vector: Option<u64>,
pub signature: Signature,
}Expand description
Attestation Report for SEV-SNP guests. These are all the possible fields in the attestation report. Optional fields are set to none or a value depending on the version the system has. Added in version 3: The CPUID Family, Model and Stepping fields The Alias_Check_Complete field in the PlatformInfo field Added in version 5: The launch_mit_vector and current_mit_vector fields The page_swap_disabled field in the GuestPolicy field The SEV-TIO field in the PlatformInfo field
§Compatibility notice
This legacy eager-parsing model will be replaced in the next breaking release by a two-stage attestation report API that separates unverified report framing from verified report-body parsing.
Code that depends directly on AttestationReport should expect to migrate
in the next breaking release.
Fields§
§version: u32Version number of this attestation report. Set to 2h for this specification.
guest_svn: u32The guest SVN.
policy: GuestPolicyThe guest policy.
family_id: [u8; 16]The family ID provided at launch.
image_id: [u8; 16]The image ID provided at launch.
vmpl: u32The request VMPL for the attestation report.
sig_algo: u32The signature algorithm used to sign this report.
current_tcb: TcbVersionCurrent TCB. See SNPTcbVersion
plat_info: PlatformInfoInformation about the platform. See PlatformInfo
key_info: KeyInfoInformation related to signing keys in the report. See KeyInfo
report_data: [u8; 64]Guest-provided 512 Bits of Data
measurement: [u8; 48]The measurement calculated at launch.
host_data: [u8; 32]Data provided by the hypervisor at launch.
id_key_digest: [u8; 48]SHA-384 digest of the ID public key that signed the ID block provided in SNP_LANUNCH_FINISH.
SHA-384 digest of the Author public key that certified the ID key, if provided in SNP_LAUNCH_FINSIH. Zeroes if AUTHOR_KEY_EN is 1.
report_id: [u8; 32]Report ID of this guest.
report_id_ma: [u8; 32]Report ID of this guest’s migration agent (if applicable).
reported_tcb: TcbVersionReported TCB version used to derive the VCEK that signed this report.
cpuid_fam_id: Option<u8>CPUID Familiy ID (Combined Extended Family ID and Family ID)
cpuid_mod_id: Option<u8>CPUID Model (Combined Extended Model and Model fields)
cpuid_step: Option<u8>CPUID Stepping
chip_id: [u8; 64]If MaskChipId is set to 0, Identifier unique to the chip. Otherwise set to 0h.
committed_tcb: TcbVersionCommittedTCB
current: VersionThe build number of CurrentVersion
committed: VersionThe build number of CommittedVersion
launch_tcb: TcbVersionThe CurrentTcb at the time the guest was launched or imported.
launch_mit_vector: Option<u64>The verified mitigation vecor value at the time the guest was launched (LaunchMitVector).
current_mit_vector: Option<u64>Value is set to the current verified mitigation vectore value (CurrentMitVector).
signature: SignatureSignature of bytes 0 to 0x29F inclusive of this report. The format of the signature is found within Signature.
Trait Implementations§
Source§impl ByteParser<()> for AttestationReport
impl ByteParser<()> for AttestationReport
Source§const EXPECTED_LEN: Option<usize>
const EXPECTED_LEN: Option<usize>
Source§type Bytes = [u8; 1184]
type Bytes = [u8; 1184]
Source§fn from_bytes_with(bytes: &[u8], params: P) -> Result<Self, Error>
fn from_bytes_with(bytes: &[u8], params: P) -> Result<Self, Error>
Source§fn to_bytes_with(&self, params: P) -> Result<Self::Bytes, Error>
fn to_bytes_with(&self, params: P) -> Result<Self::Bytes, Error>
Source§impl Clone for AttestationReport
impl Clone for AttestationReport
Source§fn clone(&self) -> AttestationReport
fn clone(&self) -> AttestationReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more