Struct teaclave_attestation::report::SgxEnclaveReport
source · [−]pub struct SgxEnclaveReport {
pub cpu_svn: [u8; 16],
pub misc_select: u32,
pub attributes: [u8; 16],
pub mr_enclave: [u8; 32],
pub mr_signer: [u8; 32],
pub isv_prod_id: u16,
pub isv_svn: u16,
pub report_data: [u8; 64],
}
Expand description
A report generated by an enclave that contains measurement, identity and other data related to enclave.
Note
Do not confuse SgxEnclaveReport
with AttestationReport
.
SgxEnclaveReport
is generated by SGX hardware and endorsed by Quoting
Enclave through local attestation. The endorsed SgxEnclaveReport
is an
SgxQuote
. The quote is then sent to some attestation service (IAS or
DCAP-based AS). The endorsed SgxQuote
is an attestation report signed by
attestation service’s private key, a.k.a., EndorsedAttestationReport
.
Fields
cpu_svn: [u8; 16]
Security version number of host system’s CPU
misc_select: u32
Misc select bits for the target enclave. Reserved for future function extension.
attributes: [u8; 16]
Attributes of the enclave, for example, whether the enclave is running in debug mode.
mr_enclave: [u8; 32]
Measurement value of the enclave. See
EnclaveMeasurement
mr_signer: [u8; 32]
Measurement value of the public key that verified the enclave. See
EnclaveMeasurement
isv_prod_id: u16
Product ID of the enclave
isv_svn: u16
Security version number of the enclave
report_data: [u8; 64]
Set of data used for communication between enclave and target enclave
Implementations
sourceimpl SgxEnclaveReport
impl SgxEnclaveReport
sourcepub fn parse_from<'a>(bytes: &'a [u8]) -> Result<Self>
pub fn parse_from<'a>(bytes: &'a [u8]) -> Result<Self>
Parse bytes of report into SgxEnclaveReport
.
Trait Implementations
sourceimpl Debug for SgxEnclaveReport
impl Debug for SgxEnclaveReport
Auto Trait Implementations
impl RefUnwindSafe for SgxEnclaveReport
impl Send for SgxEnclaveReport
impl Sync for SgxEnclaveReport
impl Unpin for SgxEnclaveReport
impl UnwindSafe for SgxEnclaveReport
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request