blob: cf813e3e3c769065de3978d6f064af32d7d0265f [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="SGX Quote status"><meta name="keywords" content="rust, rustlang, rust-lang, SgxQuoteStatus"><title>SgxQuoteStatus in teaclave_attestation::report - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../teaclave_attestation/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../teaclave_attestation/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">SgxQuoteStatus</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.ConfigurationAndSwHardeningNeeded">ConfigurationAndSwHardeningNeeded</a></li><li><a href="#variant.ConfigurationNeeded">ConfigurationNeeded</a></li><li><a href="#variant.GroupOutOfDate">GroupOutOfDate</a></li><li><a href="#variant.GroupRevoked">GroupRevoked</a></li><li><a href="#variant.InvalidSignature">InvalidSignature</a></li><li><a href="#variant.KeyRevoked">KeyRevoked</a></li><li><a href="#variant.OK">OK</a></li><li><a href="#variant.OutOfDate">OutOfDate</a></li><li><a href="#variant.OutOfDateConfigurationNeeded">OutOfDateConfigurationNeeded</a></li><li><a href="#variant.SignatureInvalid">SignatureInvalid</a></li><li><a href="#variant.SignatureRevoked">SignatureRevoked</a></li><li><a href="#variant.SigrlVersionMismatch">SigrlVersionMismatch</a></li><li><a href="#variant.SwHardeningNeeded">SwHardeningNeeded</a></li><li><a href="#variant.UnknownBadStatus">UnknownBadStatus</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-SgxQuoteStatus">Debug</a></li><li><a href="#impl-From%3C%26str%3E-for-SgxQuoteStatus">From&lt;&amp;str&gt;</a></li><li><a href="#impl-PartialEq%3CSgxQuoteStatus%3E-for-SgxQuoteStatus">PartialEq&lt;SgxQuoteStatus&gt;</a></li><li><a href="#impl-StructuralPartialEq-for-SgxQuoteStatus">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-SgxQuoteStatus">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SgxQuoteStatus">Send</a></li><li><a href="#impl-Sync-for-SgxQuoteStatus">Sync</a></li><li><a href="#impl-Unpin-for-SgxQuoteStatus">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SgxQuoteStatus">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-SgxQuoteStatus">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-SgxQuoteStatus">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-SgxQuoteStatus">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-SgxQuoteStatus">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-SgxQuoteStatus">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-SgxQuoteStatus">Into&lt;U&gt;</a></li><li><a href="#impl-IntoRequest%3CT%3E-for-SgxQuoteStatus">IntoRequest&lt;T&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-SgxQuoteStatus">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-SgxQuoteStatus">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-SgxQuoteStatus">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-SgxQuoteStatus">WithSubscriber</a></li></ul></section><h2><a href="index.html">In teaclave_attestation::report</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="../index.html">teaclave_attestation</a>::<wbr><a href="index.html">report</a>::<wbr><a class="enum" href="#">SgxQuoteStatus</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/teaclave_attestation/report.rs.html#241-327">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum SgxQuoteStatus {
<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 14 variants</span></summary> OK,
SignatureInvalid,
GroupRevoked,
SignatureRevoked,
KeyRevoked,
SigrlVersionMismatch,
GroupOutOfDate,
ConfigurationNeeded,
SwHardeningNeeded,
ConfigurationAndSwHardeningNeeded,
OutOfDate,
OutOfDateConfigurationNeeded,
InvalidSignature,
UnknownBadStatus,
</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>SGX Quote status</p>
</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor"></a></h2><h3 id="variant.OK" class="variant small-section-header"><a href="#variant.OK" class="anchor field"></a><code>OK</code></h3><div class="docblock"><p>EPID signature of the ISV enclave QUOTE was verified correctly and the
TCB level of the SGX platform is up-to-date.</p>
</div><h3 id="variant.SignatureInvalid" class="variant small-section-header"><a href="#variant.SignatureInvalid" class="anchor field"></a><code>SignatureInvalid</code></h3><div class="docblock"><p>EPID signature of the ISV enclave QUOTE was invalid. The content of the
QUOTE is not trustworthy.</p>
<p>For DCAP, the signature over the application report is invalid.</p>
</div><h3 id="variant.GroupRevoked" class="variant small-section-header"><a href="#variant.GroupRevoked" class="anchor field"></a><code>GroupRevoked</code></h3><div class="docblock"><p>The EPID group has been revoked. When this value is returned, the
revocation Reason field of the Attestation Verification Report will
contain revocation reason code for this EPID group as reported in the
EPID Group CRL. The content of the QUOTE is not trustworthy.</p>
</div><h3 id="variant.SignatureRevoked" class="variant small-section-header"><a href="#variant.SignatureRevoked" class="anchor field"></a><code>SignatureRevoked</code></h3><div class="docblock"><p>The EPID private key used to sign the QUOTE has been revoked by
signature. The content of the QUOTE is not trustworthy.</p>
</div><h3 id="variant.KeyRevoked" class="variant small-section-header"><a href="#variant.KeyRevoked" class="anchor field"></a><code>KeyRevoked</code></h3><div class="docblock"><p>The EPID private key used to sign the QUOTE has been directly revoked
(not by signature). The content of the QUOTE is not trustworthy.</p>
<p>For DCAP, the attestation key or platform has been revoked.</p>
</div><h3 id="variant.SigrlVersionMismatch" class="variant small-section-header"><a href="#variant.SigrlVersionMismatch" class="anchor field"></a><code>SigrlVersionMismatch</code></h3><div class="docblock"><p>SigRL version in ISV enclave QUOTE does not match the most recent
version of the SigRL. In rare situations, after SP retrieved the SigRL
from IAS and provided it to the platform, a newer version of the SigRL
is madeavailable. As a result, the Attestation Verification Report will
indicate SIGRL_VERSION_MISMATCH. SP can retrieve the most recent version
of SigRL from the IAS and request the platform to perform remote
attestation again with the most recent version of SigRL. If the platform
keeps failing to provide a valid QUOTE matching with the most recent
version of the SigRL, the content of the QUOTE is not trustworthy.</p>
</div><h3 id="variant.GroupOutOfDate" class="variant small-section-header"><a href="#variant.GroupOutOfDate" class="anchor field"></a><code>GroupOutOfDate</code></h3><div class="docblock"><p>The EPID signature of the ISV enclave QUOTE has been verified correctly,
but the TCB level of SGX platform is outdated (for further details see
Advisory IDs). The platform has not been identified as compromised and
thus it is not revoked. It is up to the Service Provider to decide
whether or not to trust the content of the QUOTE, andwhether or not to
trust the platform performing the attestation to protect specific
sensitive information.</p>
</div><h3 id="variant.ConfigurationNeeded" class="variant small-section-header"><a href="#variant.ConfigurationNeeded" class="anchor field"></a><code>ConfigurationNeeded</code></h3><div class="docblock"><p>The EPID signature of the ISV enclave QUOTE has been verified correctly,
but additional configuration of SGX platform may beneeded(for further
details see Advisory IDs). The platform has not been identified as
compromised and thus it is not revoked. It is up to the Service Provider
to decide whether or not to trust the content of the QUOTE, and whether
or not to trust the platform performing the attestation to protect
specific sensitive information.</p>
<p>For DCAP, The Quote verification passed and the platform is patched to
the latest TCB level but additional configuration of the SGX
platform may be needed.</p>
</div><h3 id="variant.SwHardeningNeeded" class="variant small-section-header"><a href="#variant.SwHardeningNeeded" class="anchor field"></a><code>SwHardeningNeeded</code></h3><div class="docblock"><p>The EPID signature of the ISV enclave QUOTE has been verified correctly
but due to certain issues affecting the platform, additional SW
Hardening in the attesting SGX enclaves may be needed.The relying party
should evaluate the potential risk of an attack leveraging the relevant
issues on the attesting enclave, and whether the attesting enclave
employs adequate software hardening to mitigate the risk.</p>
</div><h3 id="variant.ConfigurationAndSwHardeningNeeded" class="variant small-section-header"><a href="#variant.ConfigurationAndSwHardeningNeeded" class="anchor field"></a><code>ConfigurationAndSwHardeningNeeded</code></h3><div class="docblock"><p>The EPID signature of the ISV enclave QUOTE has been verified correctly
but additional configuration for the platform and SW Hardening in the
attesting SGX enclaves may be needed. The platform has not been
identified as compromised and thus it is not revoked. It is up to the
Service Provider to decide whether or not to trust the content of the
QUOTE. The relying party should also evaluate the potential risk of an
attack leveraging the relevant issues on the attestation enclave, and
whether the attesting enclave employs adequate software hardening to
mitigate the risk.</p>
</div><h3 id="variant.OutOfDate" class="variant small-section-header"><a href="#variant.OutOfDate" class="anchor field"></a><code>OutOfDate</code></h3><div class="docblock"><p>DCAP specific quote status. The Quote is good but TCB level of the
platform is out of date. The platform needs patching to be at the latest
TCB level.</p>
</div><h3 id="variant.OutOfDateConfigurationNeeded" class="variant small-section-header"><a href="#variant.OutOfDateConfigurationNeeded" class="anchor field"></a><code>OutOfDateConfigurationNeeded</code></h3><div class="docblock"><p>DCAP specific quote status. The Quote is good but the TCB level of the
platform is out of date and additional configuration of the SGX Platform
at its current patching level may be needed. The platform needs patching
to be at the latest TCB level.</p>
</div><h3 id="variant.InvalidSignature" class="variant small-section-header"><a href="#variant.InvalidSignature" class="anchor field"></a><code>InvalidSignature</code></h3><div class="docblock"><p>DCAP specific quote status. The signature over the application report is
invalid.</p>
</div><h3 id="variant.UnknownBadStatus" class="variant small-section-header"><a href="#variant.UnknownBadStatus" class="anchor field"></a><code>UnknownBadStatus</code></h3><div class="docblock"><p>Other unknown bad status.</p>
</div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#240">source</a><a href="#impl-Debug-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl Debug for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#240">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3C%26str%3E-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#329-352">source</a><a href="#impl-From%3C%26str%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl From&lt;&amp;str&gt; for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#331-351">source</a><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(status: &amp;str) -&gt; Self</h4></section></summary><div class="docblock"><p>Convert from str status from the report to enum.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CSgxQuoteStatus%3E-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#240">source</a><a href="#impl-PartialEq%3CSgxQuoteStatus%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl PartialEq&lt;<a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a>&gt; for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#240">source</a><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a class="fnname">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a>) -&gt; bool</h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.ne" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">ne</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason. <a>Read more</a></div></details></div></details><section id="impl-StructuralPartialEq-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/teaclave_attestation/report.rs.html#240">source</a><a href="#impl-StructuralPartialEq-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl StructuralPartialEq for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl RefUnwindSafe for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section><section id="impl-Send-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Send-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl Send for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section><section id="impl-Sync-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Sync-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl Sync for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section><section id="impl-Unpin-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Unpin-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl Unpin for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section><section id="impl-UnwindSafe-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-UnwindSafe-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl UnwindSafe for <a class="enum" href="enum.SgxQuoteStatus.html" title="enum teaclave_attestation::report::SgxQuoteStatus">SgxQuoteStatus</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Any-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#82">source</a><a href="#method.instrument" class="anchor"></a><h4 class="code-header">fn <a href="../../tracing/instrument/trait.Instrument.html#method.instrument" class="fnname">instrument</a>(self, span: <a class="struct" href="../../tracing/span/struct.Span.html" title="struct tracing::span::Span">Span</a>) -&gt; <a class="struct" href="../../tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided <a href="../../tracing/span/struct.Span.html" title="Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="../../tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor"></a><h4 class="code-header">fn <a href="../../tracing/instrument/trait.Instrument.html#method.in_current_span" class="fnname">in_current_span</a>(self) -&gt; <a class="struct" href="../../tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="../../tracing/span/struct.Span.html#method.current">current</a> <a href="../../tracing/span/struct.Span.html"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="../../tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoRequest%3CT%3E-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/tonic/request.rs.html#346">source</a><a href="#impl-IntoRequest%3CT%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../tonic/request/trait.IntoRequest.html" title="trait tonic::request::IntoRequest">IntoRequest</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_request" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tonic/request.rs.html#347">source</a><a href="#method.into_request" class="anchor"></a><h4 class="code-header">fn <a href="../../tonic/request/trait.IntoRequest.html#tymethod.into_request" class="fnname">into_request</a>(self) -&gt; <a class="struct" href="../../tonic/request/struct.Request.html" title="struct tonic::request::Request">Request</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Wrap the input message <code>T</code> in a <code>tonic::Request</code></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-SgxQuoteStatus" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/ppv_lite86/types.rs.html#221">source</a><a href="#impl-VZip%3CV%3E-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;V, T&gt; <a class="trait" href="../../ppv_lite86/types/trait.VZip.html" title="trait ppv_lite86::types::VZip">VZip</a>&lt;V&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../ppv_lite86/types/trait.MultiLane.html" title="trait ppv_lite86::types::MultiLane">MultiLane</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/ppv_lite86/types.rs.html#226">source</a><a href="#method.vzip" class="anchor"></a><h4 class="code-header">fn <a href="../../ppv_lite86/types/trait.VZip.html#tymethod.vzip" class="fnname">vzip</a>(self) -&gt; V</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-SgxQuoteStatus" class="impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#334">source</a><a href="#impl-WithSubscriber-for-SgxQuoteStatus" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../tracing/instrument/trait.WithSubscriber.html" title="trait tracing::instrument::WithSubscriber">WithSubscriber</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#169-171">source</a><a href="#method.with_subscriber" class="anchor"></a><h4 class="code-header">fn <a href="../../tracing/instrument/trait.WithSubscriber.html#method.with_subscriber" class="fnname">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; <a class="struct" href="../../tracing/instrument/struct.WithDispatch.html" title="struct tracing::instrument::WithDispatch">WithDispatch</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Into&lt;<a class="struct" href="../../tracing_core/dispatcher/struct.Dispatch.html" title="struct tracing_core::dispatcher::Dispatch">Dispatch</a>&gt;,</span></h4></section></summary><div class='docblock'>Attaches the provided <a href="../../tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
<a href="../../tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="../../tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tracing/instrument.rs.html#221">source</a><a href="#method.with_current_subscriber" class="anchor"></a><h4 class="code-header">fn <a href="../../tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber" class="fnname">with_current_subscriber</a>(self) -&gt; <a class="struct" href="../../tracing/instrument/struct.WithDispatch.html" title="struct tracing::instrument::WithDispatch">WithDispatch</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="../../tracing/dispatcher/index.html#setting-the-default-subscriber">default</a> <a href="../../tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
<a href="../../tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="../../tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="teaclave_attestation" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>