<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.27 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-evidence-trans-00" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title>Evidence Transformations</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-evidence-trans-00"/>
    <author initials="F." surname="D'Amato" fullname="Fabrizio D'Amato">
      <organization>AMD</organization>
      <address>
        <email>fabrizio.damato@amd.com</email>
      </address>
    </author>
    <author initials="A." surname="Draper" fullname="Andrew Draper">
      <organization>Altera</organization>
      <address>
        <email>andrew.draper@altera.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="08"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Evidence, RATS, attestation, verifier, supply chain, RIM, appraisal</keyword>
    <abstract>
      <?line 89?>

<t>Remote Attestation Procedures (RATS) enable Relying Parties to assess the trustworthiness of a remote Attester to decide if continued interaction is warrented.
Evidence structures can vary making appraisals challenging for Verifiers.
Verifiers need to understand Evidence encoding formats and some of the Evidence semantics to appraise it.
Consequently, Evidence may require format transformation to an internal representation that preserves original semantics.
This document specifies Evidence transformation methods for DiceTcbInfo, concise evidence, and SPDM measurements block structures.
These Evidence structures are converted to the CoRIM internal representation and follow CoRIM defined appraisal procedures.</t>
    </abstract>
  </front>
  <middle>
    <?line 98?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>Remote Attestation Procedures (RATS) <xref target="RFC9334"/> enable Relying Parties to assess the trustworthiness of a remote Attester to decide if continued interaction is warrented.
Evidence structures can vary making appraisals challenging for Verifiers.
Verifiers need to understand Evidence encoding formats and some of the Evidence semantics to appraise it.
Consequently, Evidence may require format transformation to an internal representation that preserves original semantics.
This document specifies Evidence transformation methods for DiceTcbInfo <xref target="DICE.Attest"/>, concise evidence <xref target="TCG.CE"/>, and SPDM measurements block <xref target="SPDM"/> structures.
These Evidence structures are converted to the CoRIM internal representation (Section 2.1 <xref target="I-D.ietf-rats-corim"/>) and follow CoRIM defined appraisal procedures (Section 8 <xref target="I-D.ietf-rats-corim"/>).</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document uses terms and concepts defined by the RATS architecture.
For a complete glossary. See <xref section="4" sectionFormat="of" target="RFC9334"/>.
Addintional RATS architecture and terminology is found in <xref target="I-D.ietf-rats-endorsements"/>.
RATS architecture terms and concepts are always referenced as proper nouns, i.e., with Capital Letters.
Additional terminology from CoRIM <xref target="I-D.ietf-rats-corim"/>, <xref target="DICE.CoRIM"/>, CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> may also apply.</t>
        <t>In this document, Evidence structures are expressed in their respective "external representations".
There are many possible Evidence structures including those mentioned above.</t>
        <t>The CoRIM specification defines an "internal representation" for Evidence (Section 8.2.1.3 <xref target="I-D.ietf-rats-corim"/>).
This document defines mapping operations that convert from an external representation to an internal representation.
The conversion steps are also known as "transformation".</t>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="sec-verifier-rec">
      <name>Verifier Reconciliation</name>
      <t>This document assumes the reader is familiar with Verifier reconciliation as described in <xref section="2" sectionFormat="of" target="I-D.ietf-rats-corim"/>.
It describes how a Verifier should process the CoRIM to enable CoRIM authors to convey their intended meaning and how a Verifier reconciles its various inputs.
Evidence is one of its inputs.
The Verifier is expected to create an internal representation from an external representation.
By using an internal representation, the Verifier processes Evidence inputs such that they can be appraised consistently.</t>
      <t>This document defines format transformations for Evidence in DICE <xref target="DICE.Attest"/>, SPDM <xref target="SPDM"/>, and concise evidence <xref target="TCG.CE"/> formats that are transformed into a Verifier's internal representation.
This document uses the CoMID internal representation (<xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) as the transformation target.
Other internal representations are possible but out of scope for this document.</t>
    </section>
    <section anchor="sec-dice-trans">
      <name>Transforming DICE Certificate Extension Evidence</name>
      <t>This section defines how Evidence from an X.509 certificate <xref target="RFC5280"/> containing a DICE certificate extension <xref target="DICE.Attest"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the DICE certificate Evidence extensions SHOULD implement this transformation.</t>
      <section anchor="sec-tcb-info">
        <name>DiceTcbInfo Transformation</name>
        <t>This section defines transformation methods for DICE certificate extensions DiceTcbInfo, DiceMultiTcbInfo, and DiceMultiTcbInfoComp.</t>
        <t>These extensions are identified by the following object identifiers:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-TcbInfo - "2.23.133.5.4.1"</t>
          </li>
          <li>
            <t>tcg-dice-MultiTcbInfo - "2.23.133.5.4.5"</t>
          </li>
          <li>
            <t>tcg-dice-MultiTcbInfoComp - "2.23.133.5.4.8"</t>
          </li>
        </ul>
        <t>Each DiceTcbInfo entry in a MultiTcbInfo is converted to a CoRIM ECT (see <xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) using the transformation steps in this section.
Each DiceMultiTcbInfo entry is independent of the others such that each is transformed to a separate ECT entry.
A list of Evidence ECTs (i.e., <tt>ae = [ + ECT]</tt>) is constructed using CoRIM attestation evidence internal representation (see <xref section="8.2.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>).
Each DiceMultiTcbInfoComp entry is converted to a DiceMultiTcbInfo entry then processed as a DiceMultiTcbInfo.</t>
        <t>For each DiceTcbInfo (DTI) entry in a DiceMultiTcbInfo allocate an ECT structure.</t>
        <ol group="dtt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The DiceTcbInfo (DTI) entry populates the <tt>ae</tt> ECT.</t>
          </li>
        </ol>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>environment-map</tt></t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>type</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>class-id</tt>).
The binary representation of DTI.<tt>type</tt> MUST be equivalent to the binary representation of <tt>class-id</tt> without the CBOR tag.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>vendor</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>vendor</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>model</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>model</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>layer</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>layer</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>index</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>.<tt>class-map</tt>.<tt>index</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>elemenet-list</tt>.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>version</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>version-map</tt>.<tt>version</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>svn</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>svn</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(DTI.<tt>vendorInfo</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>raw-value</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>digest</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>digests</tt>.<tt>digest</tt>.<tt>val</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>Foreach FWID in FWIDLIST: <strong>copy</strong>(DTI.<tt>FWID</tt>.<tt>hashAlg</tt>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>digests</tt>.<tt>digest</tt>.<tt>alg</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt2" spacing="normal" type="%i"><li>
            <t>The DTI entry populates the <tt>ae</tt> ECT <tt>elemenet-list</tt>.<tt>flags</tt>. Foreach <em>f</em> in DTI.<tt>OperationalFlags</tt> and each <em>m</em> in DTI.<tt>OperationalFlagsMask</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notConfigured</tt> = 1 AND <em>f</em>.<tt>notConfigured</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-configured</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notConfigured</tt> = 1 AND <em>f</em>.<tt>notConfigured</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-configured</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notSecure</tt> = 1 AND <em>f</em>.<tt>notSecure</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-secure</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notSecure</tt> = 1 AND <em>f</em>.<tt>notSecure</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-secure</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>recovery</tt> = 1 AND <em>f</em>.<tt>recovery</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-recovery</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>recovery</tt> = 1 AND <em>f</em>.<tt>recovery</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-recovery</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>debug</tt> = 1 AND <em>f</em>.<tt>debug</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-debug</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>debug</tt> = 1 AND <em>f</em>.<tt>debug</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-debug</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notReplayProtected</tt> = 1 AND <em>f</em>.<tt>notReplayProtected</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-replay-protected</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notReplayProtected</tt> = 1 AND <em>f</em>.<tt>notReplayProtected</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-replay-protected</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notIntegrityProtected</tt> = 1 AND <em>f</em>.<tt>notIntegrityProtected</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-integrity-proteccted</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notIntegrityProtected</tt> = 1 AND <em>f</em>.<tt>notIntegrityProtected</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-integrity-proteccted</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notRuntimeMeasured</tt> = 1 AND <em>f</em>.<tt>notRuntimeMeasured</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-runtime-meas</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notRuntimeMeasured</tt> = 1 AND <em>f</em>.<tt>notRuntimeMeasured</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-runtime-meas</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notImmutable</tt> = 1 AND <em>f</em>.<tt>notImmutable</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-immutable</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notImmutable</tt> = 1 AND <em>f</em>.<tt>notImmutable</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-immutable</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notTcb</tt> = 1 AND <em>f</em>.<tt>notTcb</tt> = 1; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-tcb</tt> = FALSE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t>If <em>m</em>.<tt>notTcb</tt> = 1 AND <em>f</em>.<tt>notTcb</tt> = 0; <strong>set</strong>(ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>measurement-values-map</tt>.<tt>flags</tt>.<tt>is-tcb</tt> = TRUE).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="dtt" spacing="normal" type="Step %d."><li>
            <t>The ECT.<tt>authority</tt> field is set up based on the signer of the certificate containing DTI as described in <xref target="sec-authority"/>.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-ueid">
        <name>DiceUeid Transformation</name>
        <t>This section defines the transformation method for the DiceUeid certificate extension.
This extension is identified by the following object identifier:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-Ueid - "2.23.133.5.4.4"</t>
          </li>
        </ul>
        <ol group="ueid" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The DiceUeid entry populates the <tt>ae</tt> ECT <tt>environment-map</tt>.<tt>instance-id</tt>.<tt>tagged-ueid-type</tt>.
The CBOR tag #6.550 is prepended to the DiceUeid OCTET STRING then copied to <tt>ae</tt>.<tt>environment-map</tt>.<tt>instance-id</tt>.</t>
          </li>
          <li>
            <t>The ECT.<tt>authority</tt> field is set up based on the signer of the certificate containing DiceUeid as described in <xref target="sec-authority"/>.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-cmw">
        <name>DiceConceptualMessageWrapper Transformation</name>
        <t>This section defines the transformation method for the DiceConceptualMessageWrapper certificate extension.
This extension is identified by the following object identifier:</t>
        <ul spacing="normal">
          <li>
            <t>tcg-dice-Ueid - "2.23.133.5.4.9"</t>
          </li>
        </ul>
        <t>The DiceConceptualMessageWrapper entry OCTET STRING may contain a CBOR array, JSON array, or CBOR tagged value.
If the entry contains a CBOR tag value of #6.571 or #6.1668557429, or a Content ID of 10571, or a Media Type of "application/ce+cbor",
the contents are transformed according to <xref target="sec-ce-trans"/>.</t>
      </section>
      <section anchor="sec-authority">
        <name>Authority field in DICE/SPDM ECTs</name>
        <t>The ECT authority field is an array of <tt>$crypto-keys-type-choice</tt> values.</t>
        <t>When adding Evidence to the ACS, the Verifier SHALL add the public key representing the signer of that Evidence (for example the DICE certificate or SPDM MEASUREMENTS response) to the ECT authority field.
The Verifier SHALL add the authority of the signers of each certificate in the certificate path of the end-entity signing key to the ECT <tt>authority</tt> list.
Having each authority in a certificate path in the ECT <tt>authority</tt> field lets conditional endorsement conditions match multiple authorities or match an authority that is scoped more broadly than the immediate signer of the Evidence artifact.</t>
        <t>Each signer authority value MUST be represented using <tt>tagged-cose-key-type</tt>.</t>
      </section>
    </section>
    <section anchor="sec-ce-trans">
      <name>Transforming TCG Concise Evidence</name>
      <t>This section defines how Evidence from TCG <xref target="TCG.CE"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the TCG Concise Evidence format SHOULD implement this transformation.</t>
      <t>Concise evidence may be recognized by any of the following registered types:</t>
      <table>
        <thead>
          <tr>
            <th align="left">CBOR tag</th>
            <th align="left">C-F ID</th>
            <th align="left">TN Tag</th>
            <th align="left">Media Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">#6.571</td>
            <td align="left">10571</td>
            <td align="left">#6.1668557429</td>
            <td align="left">"application/ce+cbor"</td>
          </tr>
        </tbody>
      </table>
      <t>A Concise Evidence entry is converted to a CoRIM ECT (see <xref section="8.2.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>) using the transformation steps in this section.
A list of Evidence ECTs (i.e., <tt>ae = [ + ECT]</tt>) is constructed using CoRIM attestation evidence internal representation (see <xref section="8.2.1.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>).
The Concise Evidence scheme uses CoRIM CDDL definitions to define several Evidence representations called <em>triples</em>.
Cases where Concise Evidence CDDL is identical to CoRIM CDDL the transformation logic uses the structure names in common.</t>
      <section anchor="sec-evidence-triple">
        <name>Transforming the ce.evidence-triples</name>
        <t>The <tt>ce.evidence-triples</tt> structure is a list of <tt>evidence-triple-record</tt>.
An <tt>evidence-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>measurement-map</tt>.
For each <tt>evidence-triple-record</tt> an <tt>ae</tt> ECT is constructed.</t>
        <ol group="cet" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>evidence-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="cet2" spacing="normal" type="%i"><li>
            <t>For each ce in CE.<tt>[ + measurement-map]</tt>; and each ect in ECT.<tt>[ + element-list]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(ce.<tt>mkey</tt>, ect.<tt>element-map</tt>.<tt>element-id</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(ce.<tt>mval</tt>, ect<tt>.</tt>element-map<tt>.</tt>element-claims`)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="cet" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field as described in <xref target="sec-authority"/>.
For example, a CE may be wrapped by an EAT token <xref target="I-D.ietf-rats-eat"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-identity-triple">
        <name>Transforming the ce.identity-triples</name>
        <t>The <tt>ce.identity-triples</tt> structure is a list of <tt>ev-identity-triple-record</tt>.
An <tt>ev-identity-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>$crypto-key-type-choice</tt>.
For each <tt>ev-identity-triple-record</tt> an <tt>ae</tt> ECT is constructed where the <tt>$crypto-key-type-choice</tt> values are copied as ECT Evidence measurement values.
The ECT internal representation accommodates keys as a type of measurement.
In order for the <tt>$crypto-key-type-choice</tt> keys to be verified a CoRIM <tt>identity-triples</tt> claim MUST be asserted.</t>
        <ol group="ikt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>ce-identity-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(<em>null</em>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="ikt2" spacing="normal" type="%i"><li>
            <t>For each cek in CE.<tt>[ + $crypto-key-type-choice ]</tt>; and each ect in ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>intrep-keys</tt>.<tt>[ + typed-crypto-key ]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(cek, ect.<tt>key</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>set</strong>( &amp;(identity-key: 1), ect.<tt>key-type</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="ikt" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field.
For example, a CE may be wrapped by an EAT token <xref target="I-D.ietf-rats-eat"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
      <section anchor="sec-attest-key-triple">
        <name>Transforming the ce.attest-key-triples</name>
        <t>The <tt>ce.attest-key-triples</tt> structure is a list of <tt>ev-attest-key-triple-record</tt>.
An <tt>ev-attest-key-triple-record</tt> consists of an <tt>environment-map</tt> and a list of <tt>$crypto-key-type-choice</tt>.
For each <tt>ev-attest-key-triple-record</tt> an <tt>ae</tt> ECT is constructed where the <tt>$crypto-key-type-choice</tt> values are copied as ECT Evidence measurement values.
The ECT internal representation accommodates keys as a type of measurement.
In order for the <tt>$crypto-key-type-choice</tt> keys to be verified a CoRIM <tt>attest-key-triples</tt> claim MUST be asserted.</t>
        <ol group="akt" spacing="normal" type="Step %d."><li>
            <t>An <tt>ae</tt> ECT entry is allocated.</t>
          </li>
          <li>
            <t>The <tt>cmtype</tt> of the ECT is set to <tt>evidence</tt>.</t>
          </li>
          <li>
            <t>The Concise Evidence (CE) entry populates the <tt>ae</tt> ECT <tt>environment</tt> fields.</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(CE.<tt>ce-attest-key-triple-record</tt>.<tt>environment-map</tt>, ECT.<tt>environment</tt>.<tt>environment-map</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(<em>null</em>, ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="akt2" spacing="normal" type="%i"><li>
            <t>For each cek in CE.<tt>[ + $crypto-key-type-choice ]</tt>; and each ect in ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>intrep-keys</tt>.<tt>[ + typed-crypto-key ]</tt>:</t>
          </li>
        </ol>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>copy</strong>(cek, ect.<tt>key</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><strong>set</strong>( &amp;(attest-key: 0), ect.<tt>key-type</tt>)</t>
              </li>
            </ul>
          </li>
        </ul>
        <ol group="akt" spacing="normal" type="Step %d."><li>
            <t>The signer of the envelope containing CE is copied to the ECT.<tt>authority</tt> field.
For example, a CE may be wrapped by an EAT token <xref target="I-D.ietf-rats-eat"/> or DICE certificate <xref target="DICE.Attest"/>.
The signer identity MUST be expressed using <tt>$crypto-key-type-choice</tt>.
A profile or other arrangement is used to coordinate which <tt>$crypto-key-type-choice</tt> is used for both Evidence and Reference Values.</t>
          </li>
          <li>
            <t>If CE has a profile, the profile is converted to a <tt>$profile-type-choice</tt> then copied to the ECT<tt>.</tt>profile` field.</t>
          </li>
        </ol>
        <t>The completed ECT is added to the <tt>ae</tt> list.</t>
      </section>
    </section>
    <section anchor="dmtf-spdm-structure-definitons">
      <name>DMTF SPDM Structure Definitons</name>
      <t>This section defines how a Verifier shall parse a DMTF Measurement Block.</t>
      <t>DMTF Measurement Block Definition:</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: DMTFSpecMeasurementValueType
          </t>
          <ul spacing="normal">
            <li>
              <t>Bit 7     = 0b Digest / 1b Raw bit stream</t>
            </li>
            <li>
              <t>Bit [6:0] = Indicate what is measured
              </t>
              <ul spacing="normal">
                <li>
                  <t>0x0 Immutable Rom</t>
                </li>
                <li>
                  <t>0x1 Mutable FW</t>
                </li>
                <li>
                  <t>0x2 HW Config</t>
                </li>
                <li>
                  <t>0x3 FW config</t>
                </li>
                <li>
                  <t>0x4 Freeform Manifest</t>
                </li>
                <li>
                  <t>0x5 Structured Representation of debug and device mode</t>
                </li>
                <li>
                  <t>0x6 Mutable FW Version Number</t>
                </li>
                <li>
                  <t>0x7 Mutable FW Secure Version Number</t>
                </li>
                <li>
                  <t>0x8 Hash-Extend Measurement (new in SPDM 1.3)</t>
                </li>
                <li>
                  <t>0x9 Informational (new in SPDM 1.3)</t>
                </li>
                <li>
                  <t>0xA Structured Measurement Manifest (new in SPDM 1.3)</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li>
          <t>Byte Offset 1: DMTFSpecMeasurementValueSize</t>
        </li>
        <li>
          <t>Byte Offset 3: DMTFSpecMeasurementValue</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition (only for &gt;=SPDM 1.3):</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: Standard Body or Vendor Defined Header (SVH)</t>
        </li>
        <li>
          <t>Byte Offset 2 + VendorIdLen: Manifest</t>
        </li>
      </ul>
      <t>Standard Body or Vendor Defined Header (SVH) Definition (only for &gt;=SPDM 1.3):</t>
      <ul spacing="normal">
        <li>
          <t>Byte Offset 0: ID</t>
        </li>
        <li>
          <t>Byte Offset 1: VendorIdLen</t>
        </li>
        <li>
          <t>Byte Offset 2: VendorId</t>
        </li>
      </ul>
      <t>DMTF Header for Concise Evidence Manifest Block:</t>
      <t>If SPDM Version 1.2:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x84 (Raw Bit / Freeform Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of tagged-spdm-toc CBOR Tag</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = tagged-spdm-toc CBOR Tag</t>
        </li>
      </ul>
      <t>if SPDM &gt;=Version 1.3:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x8A (Raw Bit / Structured Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of Structured Manifest</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = Structured Manifest</t>
        </li>
      </ul>
      <t>SVH for Concise Evidence Manifest Block:</t>
      <ul spacing="normal">
        <li>
          <t>ID          = 0xA (IANA CBOR)</t>
        </li>
        <li>
          <t>VendorIdLen = 2</t>
        </li>
        <li>
          <t>VendorId    = 0x570 #6.570(spdm-toc-map)</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition for Concise Evidence:</t>
      <ul spacing="normal">
        <li>
          <t>SVH      =  SVH for Concise Evidence Manifest Block</t>
        </li>
        <li>
          <t>Manifest = tagged-spdm-toc CBOR Tag Payload</t>
        </li>
      </ul>
      <t>DMTF Header for CBor Web Token (CWT):</t>
      <t>If SPDM Version 1.2:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x84 (Raw Bit / Freeform Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of CWT</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = CWT # COSE_Sign1</t>
        </li>
      </ul>
      <t>if SPDM = Version 1.3:</t>
      <ul spacing="normal">
        <li>
          <t>DMTFSpecMeasurementValueType = 0x8A (Raw Bit / Structured Manifest)</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValueSize = Size of Structured Manifest</t>
        </li>
        <li>
          <t>DMTFSpecMeasurementValue     = Structured Manifest</t>
        </li>
      </ul>
      <t>SVH for CBor Web Token (CWT):</t>
      <ul spacing="normal">
        <li>
          <t>ID          = 0xA (IANA CBOR)</t>
        </li>
        <li>
          <t>VendorIdLen = 2</t>
        </li>
        <li>
          <t>VendorId    = 0x18 #6.18</t>
        </li>
      </ul>
      <t>Structured Manifest Block Definition for CBor Web Token (CWT):</t>
      <ul spacing="normal">
        <li>
          <t>SVH      =  SVH for CBor Web Token (CWT)</t>
        </li>
        <li>
          <t>Manifest = COSE_Sign1 Payload</t>
        </li>
      </ul>
    </section>
    <section anchor="transforming-spdm-measurement-block-digest">
      <name>Transforming SPDM Measurement Block Digest</name>
      <ol group="mbk" spacing="normal" type="Step %d."><li>
          <t>if DMTFSpecMeasurementValueType is in range [0x80 - 0x83]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>digests</tt>).</t>
            </li>
          </ul>
        </li>
        <li>
          <t>if DMTFSpecMeasurementValueType is in range [0x88]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>integrity-registers</tt>).</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="transforming-spdm-measurement-block-raw-value">
      <name>Transforming SPDM Measurement Block Raw Value</name>
      <ol group="mbrv" spacing="normal" type="Step %d."><li>
          <t>if DMTFSpecMeasurementValueType is in range [0x7]:  </t>
          <ul empty="true">
            <li>
              <t><strong>copy</strong>(SPDM.<tt>MeasurementBlock</tt>.DMTFSpecMeasurementValue , ECT.<tt>environment</tt>.<tt>measurement-map</tt>.<tt>mval</tt>.<tt>svn</tt>).</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="transforming-spdm-rats-eat-cwt">
      <name>Transforming SPDM RATS EAT CWT</name>
      <t>The RATS EAT CWT shall be reported in any of the assigned Measurement Blocks range [0xF0 - 0xFC]
The Concise Evidence CBOR Tag is serialized inside eat-measurements (273) claim ($measurements-body-cbor /= bytes .cbor concise-evidence-map)
Subsequently the transformation steps defined in <xref target="sec-ce-trans"/>.</t>
    </section>
    <section anchor="sec-spdm-trans">
      <name>Transforming SPDM Evidence</name>
      <t>This section defines how Evidence from SPDM <xref target="SPDM"/> is transformed into an internal representation that can be processed by Verifiers.</t>
      <t>Verifiers supporting the SPDM Evidence format SHOULD implement this transformation.
SPDM Responders SHALL support a minimum version of 1.2</t>
      <t>Theory of Operations:</t>
      <ul spacing="normal">
        <li>
          <t>The SPDM Requestor SHALL retrieve the measurement Manifest at Block 0xFD (Manifest Block) and send its payload to the Verifier
          </t>
          <ul spacing="normal">
            <li>
              <t>The Verifier SHALL decode the payload as a tagged-spdm-toc CBOR tag.</t>
            </li>
            <li>
              <t>The Verifier SHALL extract the tagged-concise-evidence CBOR TAG from the tagged-spdm-toc CBOR tag</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The<tt>concise-evidence</tt> has a format that is similar to CoRIM <tt>triples-map</tt> (their semantics follows the matching rules described above).</t>
      <ul spacing="normal">
        <li>
          <t>For every <tt>spdm-indirect</tt> measurement the Verifier shall ask the SPDM Requestor to retrieve the measurement block indicated by the index
          </t>
          <ul spacing="normal">
            <li>
              <t>if the index is in range [0x1 - 0xEF] (refer to #Transforming SPDM Measurement Block Digest)</t>
            </li>
            <li>
              <t>if the index is in range [0xF0 - 0xFC] (refer to #Transforming SPDM RATS EAT CWT] )</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The TCG DICE Concise Evidence Binding for SPDM specification <xref target="TCG.CE"/> describes a process for converting the SPDM Measurement Block to Concise Evidence.
Subsequently the transformation steps defined in <xref target="sec-ce-trans"/>.</t>
      <t>The keys provided in the ECT.<tt>authority</tt> field SHOULD include the key which signed the SPDM MEASUREMENTS response carrying the Evidence and keys which authorized that key as described in <xref target="sec-authority"/>.```</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalogue of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code,
which may serve as Evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit".</t>
    </section>
    <section anchor="sec-sec">
      <name>Security and Privacy Considerations</name>
      <t>Evidence appraisal is at the core of any RATS protocol flow, mediating all interactions between Attesters and their Relying Parties.
The Verifier is effectively part of the Attesters' and Relying Parties' trusted computing base (TCB).
Any mistake in the appraisal process could have security implications.
For instance, it could lead to the subversion of an access control function, which creates a chance for privilege escalation.</t>
      <t>Therefore, the Verifier’s code and configuration, especially those of the CoRIM processor, are primary security assets that must be built and maintained as securely as possible.</t>
      <t>The protection of both the Attester and Verifier systems should be considered throughout their entire lifecycle, from design to operation.
This includes the following aspects:</t>
      <ul spacing="normal">
        <li>
          <t>Minimizing implementation complexity (see also <xref section="6.1" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>);</t>
        </li>
        <li>
          <t>Using memory-safe programming languages;</t>
        </li>
        <li>
          <t>Using secure defaults;</t>
        </li>
        <li>
          <t>Minimizing the attack surface by avoiding unnecessary features that could be exploited by attackers;</t>
        </li>
        <li>
          <t>Applying the principle of least privilege to the system's users;</t>
        </li>
        <li>
          <t>Minimizing the potential impact of security breaches by implementing separation of duties in both the software and operational architecture;</t>
        </li>
        <li>
          <t>Conducting regular, automated audits and reviews of the system, such as ensuring that users' privileges are correctly configured and that any new code has been audited and approved by independent parties;</t>
        </li>
        <li>
          <t>Failing securely in the event of errors to avoid compromising the security of the system.</t>
        </li>
      </ul>
      <t>The appraisal process should be auditable and reproducible.
The integrity of the code and data during execution should be made an explicit objective, for example ensuring that the appraisal functions are computed in an attestable trusted execution environment (TEE).</t>
      <t>The integrity of public and private key material and the secrecy of private key material must be ensured at all times.
This includes key material carried in attestation key triples and key material used to assert or verify the authority of triples (such as public keys that identify trusted supply chain actors).
For more detailed information on protecting Trust Anchors, refer to <xref section="12.4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The Verifier should use cryptographically protected, mutually authenticated secure channels to all its trusted input sources (i.e., Attesters, Endorsers, RVPs, Verifier Owners).
The Attester should use cryptographically protected, mutually authenticated secure channels to all its trusted input sources (i.e., Verifiers, Relying Parties).
These links must reach as deep as possible - possibly terminating within the Attesting Environment of an Attester or within the appraisal session context of a Verifier - to avoid man-in-the-middle attacks.
Also consider minimizing the use of intermediaries: each intermediary becomes another party that needs to be trusted and therefore factored in the Attesters and Relying Parties' TCBs.
Refer to <xref section="12.2" sectionFormat="of" target="RFC9334"/> for information on Conceptual Messages protection.</t>
    </section>
    <section anchor="sec-iana-cons">
      <name>IANA Considerations</name>
      <t>There are no IANA considerations.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-07"/>
        </reference>
        <reference anchor="DICE.CoRIM" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-Endorsement-Architecture-for-Devices-V1-R38_pub.pdf">
          <front>
            <title>DICE Endorsement Architecture for Devices</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.38" value=""/>
        </reference>
        <reference anchor="DICE.Attest" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.2-rc-1_9January25.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2025" month="January"/>
          </front>
          <seriesInfo name="Version 1.2, Revision 1" value=""/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.0.pdf">
          <front>
            <title>Security Protocol and Data Model (SPDM)</title>
            <author>
              <organization>Distributed Management Task Force</organization>
            </author>
            <date year="2023" month="May"/>
          </front>
          <seriesInfo name="Version 1.3.0" value=""/>
        </reference>
        <reference anchor="TCG.CE" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.0-Revision-54_pub.pdf">
          <front>
            <title>TCG DICE Concise Evidence Binding for SPDM</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.00, Revision 0.54" value=""/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

   This document does not aim to define a conceptual message format for
   Endorsements and Reference Values.  Instead, it extends RFC9334 to
   provide further details on Reference Values and Endorsements, as
   these topics were outside the scope of the RATS charter when RFC9334
   was developed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-06"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
      </references>
    </references>
    <?line 619?>

<section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>The authors would like to thank the following people for their valuable contributions to the specification.</t>
      <t>Henk Birkholz</t>
      <t>Email: henk.birkholz@ietf.contact</t>
      <t>Yogesh Deshpande</t>
      <t>Email: yogesh.deshpande@arm.com</t>
      <t>Thomas Fossati</t>
      <t>Email: Thomas.Fossati@linaro.org</t>
      <t>Dionna Glaze</t>
      <t>Email: dionnaglaze@google.com</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank James D. Beaney, Francisco J. Chinchilla, Vincent R. Scarlata, and Piotr Zmijewski for review feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+092XbcNpbv/AqM3N2R0lW0Vi/qcTplLbFyLNsjVZLp6fi4
UCSqxBaLrOEiuZL4nPmNeZtvmU+ZL5m7ACC4ybIjp7fknCQqEri4uDuAi8vh
cOhd7YsdzyuiIlb74ugqClUSKDHOZJLP0mwhiyhNck9Op5maYQN644VpkMgF
9AgzOSuGkSpmw0wW+VBpCMMC2w03N71AFmqeZqt9kRehFwA0leRlvi+KrFRe
Xk4XUZ7DIMVqCfBOjsbHnhctM3qfF9ubm483tz2ZKbkv1s5VUGZRsVrzrtPs
cp6l5RKenqlFWigxGhcqLwhh8SpLAxWWmTpf8y7VClqH1ewG4mw0Ph8IWdgO
A3GlsmgWqWwg8nK5jFciuJARPD87OYWWy2Umo1zGngcdkvCNjNNE6Skso31P
iCIN9sVK5fBnnmYFUCu3v1cL9ye0DNWyuNgXDzxPlsVFmu17QxEl0OLYF4ef
jYDqKTRkCh/LaRb9EKXOizSb74vR6SH8qRYyivfFTDfyQ4ltvpSL0A/ShQE7
ArCZXKrMQh0lYaauq6cMMi5UJiuokhr5ITX6UtJbF+wLX5wvouLCQn2hQvuE
IJ4khYrFQZot04wIXQFPVOjn2PbLCBsRXC9hkbtSSNKT4aFfSVaQZtFiX9D/
4OXhycGRf5ACe7CpEEOQxQjkzrwHOrNMY0NxlIRplquFSgoxyoKLqFBBAeIh
QMbFIQhtQKwRwvBD0D80hzHKIUzsIF0syyJK5uIrFDyxPj74aoMa5iA7Ko+S
WbovvlUZSrPY8jdBeAAy/dr0dx5R0xC0AeiUXqnFVGVie3N7m5GV2VwV++Ki
KJb5/v37BQ8amDFJ1n3A5/71EuYIFEuK++UyTmWY3wdEhs4Mh+4MhzDDoZ7h
8Nut4dnOozfLcuovw5mh4oj0oE5G1o0WHUeVytToeNe023Zot+UQ7muZlDJb
Id32fj7dcEpDZ0p1wmlshoDNMAuGW28e69G39zT1zo4PHu/s7O4LElAJneHh
+avDSiTzZVgTRmPA0ECBHUhj1DFxKAspTtMQVGUdu2/0kfMwyossmpZI0lOZ
yDlL9Fjml+I4zQJ1A0l3/E2HkKeSiLjTScTra1D6RTEjuuVAkPx+qGayjIv7
syiGX2QEZQYkBEdQIg5AzPNXm9sPd9/QSJpAwGX/4MhSQ+OnaQEvWagO0iSI
clV5n6dREqKsoHIiPT5Qum7SybpS7u12y9bu3egkyZee3dDMbqhnR4qJs3ME
bXNokBvu7TpqWreEqlL1XMue+wjcZzJz7SiI6aMHW5tA/zCMUULHh48fVExJ
c2bLk30S6M29bd1mt2ozTTOnzaPHu4/bWEkgFfyHB9zbfgQDvt3bfMy/Hz7e
3d73PMAPpB/hnh89P0bffXxQXET5mucNh0MhpyDfMig8z/j0osOn52IdHfiG
UImcxgoYGq+Q+a9kVgDPwcEKmecqh78uFIcREADAMAk+S2dCiswFD3YYuoQq
AAaJaCaQlVFSgmChZ0J8cPgoF9cyy2AG4Lg8K6uAcEn2IheBTMQVStBCXiI+
NmrIMZiIY5XMjVR/q6ON3Pfsn+ARYUjApExC+IkqVqkE/Cc1OgGczclu5OlC
4XxwmhVC4F8B/4DpwCjAtArfO8DY6z9LmEG8GlQdFmAKMngesTsE6KKohX8E
KGFiJDKGxkuYLoDRby+gBz3JroAK4H9hmtDMIuJ7Y2CxMKYCjCKQeoacsjg0
Blwo0PUwZ+8M7mgcTE9ApgfIGjIVyoZySAfUIugjc2ADqYCYxmlw6fAGUVCu
iXHYBrElwoUAsGD6IzkpsuidMg46S+M4vdYNwTyCdIUVy4EgRlp9lu1FBNqn
PO8eBkVZGpYsVj/ey1UwjPDRu1uK/Y8/Dq3DeffuVy34J9MC5L8To71711YL
bBIofHOTekAjjE9AhD6ZoqxDwEN/bPtbhBRG5+/ebXyYBlVgHrlAQLHu3RNj
lS2iJI3T+cprkLjMUQ/gPQsKUgkWXrkda7qiKaBWCemEfr4HwRToB3r6WIGG
zOM0z0GmYb2jkLgGnV2UO1cZfW8UgoDiS5hBCzChUVQIozrNUpB0IKBVa9eX
I8Q2lI4pIW9kfC1XObBgpjLkHRAzRyrC4k0kMEo+EJGv/IG4hlWXOJDLqAAk
nysQI1RBxFwj7qI4y9KF5lFF+4EVQvvg4OnLM2oBsQL9Pjx8Tr/B7IGIIbYH
L8+PGEgOwkkqB2aB9DNeATdPUI0cBg56xVC9RTHLyTghD6MMpo0ahTGPWFNv
O8UxXyPxRlJlqPHJSiyBsRGaz66RoiSIS7I3oIigFIgTgEHCTmEF56O8GQ3Q
6hyw3LOEIY/EWo9urJFe22ErEfdBV/yduqDX5dpAXwDhEDvkME+QzZBWUmYd
oNBDjpstGpFKg6JwGVzE0ggaMO0ySa8TlLC1utla02S5VCuB+y7Q4PSb8/Ha
gP8vXrykv8+O/u2bk7OjQ/z7/Nno+XP7h6dbnD97+c3zw+qvqufBy9PToxeH
3Bmeitojb+109Kc1Nn1rL1+NT16+GD1fY0FxqYgzAQpMFVMA5l6QynihygNY
ZbFwPT149b//s7UL7PgXiFW3t7Yeg+Tyj0dbD3fhx/WFSni0NIlX+ifI5MoD
9iiZIRTwe+AYSeFAC4Fo+QVSD2XR9/71jzGwUwwf/PELD+MD4wvBpZNhjyPp
hApmo2qYqeBd0+KBx4c/2OVnSoIHJRMjFwgkY8W34LM6eImG0Zl5Zea2ycxp
afS9k8I2zAXMAyylhQnzKuOQbbcOPVg/gNI6UOHfvJwj90wyttJqjLwAzx+i
w0oofgDCNgYxiKOKgu2DaCNKS1RXWJflTlQCUwdtReSxmXmNwmlBQROwJTBP
9mgBEK1QN/n59+iU7z1dgd9hxPuAkHhUOGhiuZEA4yryMrhglUZ5otAKxNWE
M2T+8ygvKJbxm7JgrERnNJPXrQ+wm5bi7dCCggcbKQys1+kKN2xYRiiTfplB
OYxMHS5+lt9kedpunCTp9OSwP9aoBJZsqCu0GyjdHAfXYzpa4vveS3iX9UFm
o2c9xbQsRIr/zkQegOklStZMCwYm1RY6ygLvc4BNZhcB7gbEJyGzannA6k3k
JyyNcud6UoafqAy2kxHHf/dhqS0CZwTgCS6/gSsYycuIlYkxcdspi0mT+agc
bQa+JwTWMmpkmoIsJ853An3cZ4cFCbtX1UasivoNhrnQniDCuIxkg+heZyqH
hW7AXD/N0IQugukQN0r6yHxTMN5Lw7y+XMUfp2VcRPYJbfc1nuL2FTvNvAYK
pQ5JgMNU0SpHzeT2p38BnKsmWb7veZ+LIpgzH830h2Jt29/e8bd2dvw9f9ff
Wqs1c1Fptd3rb4tot9o/gvZHEqyWS3/AD9aD6AZFbTCgem09IbVvODoYi/W8
Fml3aDRb2Q6l5kDF+HvNV79Cq4aDxg3bh2qJricpzGoyRavgWmGFIBpaQXjn
aikzElpAnUBCPC1isM0Iy0oyvIXFDAfhE6nEE/Fn8Xt8+nqyoanB4SfA5elp
Z+nsB6jKZvfYwQ7KNWjXQwziqCVIgzU9lAMSJY62g5ltNwXhxgWVasrF+uH4
ZMOVjtYYEDelgfbISFobnAPIH/fDooDVUkmnQiVS48kaPFqDVqtYPVnTju8c
xEH8NvTX3mEfYTq9A7keJciGSTVnM17oo9hjpDAJFngyObE7DIAFSVWBZJkY
bkxsh74JLtNlGQNo9kM0LMAy89jumMh2cya/jao5bNtJ0KDjkxuHAUSTqyhL
EzofgnXDxPO+EF+Izz8HD7b6/HNE1J/QRAeEltt+4rd6+5Mghliz9ncUTjY4
uppGCW4ANeQSCFiNImgtAI4Ct1yuZEy2nHcUentX41Agiz6YogJceBZy7ndN
6YpW0x8zKd1zoxPsAg9rPgYqd+wGGsuV+ihUuWM3UDRrbz8GKHfc8D9a4MhD
q2KIVnDSwxxaWVrs2KfrDvanJly1fzUEeSlVxSc+Pan96iFGfvUzB0MA3aBZ
XFDrf94ImbzmB3YcMJ1kOY+/o+CX/v/85Hy838AAnwOAMJqDr/h5SDCMvIIG
85Pxx2J0IfOLUTy/c5QkwLwz+ZzMYjkH8HZyb2ZvaFmEE3lpNlhkfEzNKI7j
Zov+Zqcyv5zsM81OZtjUnyRpcZAms2gOswRD9kRsidGLQxyt690fgKLgaoCg
P4N0emaTCJMoXPDHo+fnR4apH4Xg5qdFcHz2TRd+dIqu2rg5z+8ar9yC7iPa
+5G6c2JVSHURCndJwByuGijVHt81Ri7wTkLdAqk7J5MLvItQoZqW8wZC1bO7
xsZC7qTPjbjcOWUs5B5FO1NLiC0wV4V2yNrC3dXg7tmHYwyX7iB9SvgxCH8C
eWsj3ENgzI+bY0LQDSj3tLlrrCMzjEb8faT+eNTvnOB9qPdJNSyxooU6Zchd
QtLR4M6FhMcYYtsbJfojkL17iW4g2yfNi0VZ4B5/hyTUXt25ALjQewX2ltjd
vXi60HtINw6mbbTMw7tGqGC4fYS6CZc7J47GxZCltkGjY3kaiM+LQMcnYhap
ODSbMOVSTCXuPNEGtBJ5NE9UZnZr3E1aZxscVwft4y7cFbbD4EGXPgHlJIDQ
bP3IMKzSH2g9gZOvdp2/UVHYveVcwpve7eb2PiZvOevjBVXB7tx51ocm1W4+
bml+yOZxfe+YBmpu7u6uIYNwFs3dKnz2nn032+1TbrwR2h+2EYY7HZhmBJOO
QvhVyPlchcSrISHAe1pml0nce+Dv7W0iKsuMN4ytMFgMXh6Mj8bifHx28uIr
3iGFZXHEDRGTrr2XGhafUPQNjp9M/g84J6WU8anKczlX32V4EJ5160SwuP55
KtE73F9NTR6vMeVuxI6FtCYomA+jOYVHIShwMsvkaiC+Pn/5wvwNUzeyCHIq
yK763gkznaFqILmBgmJL7VA2UH4fbiEY+GvrwYNHe3sPd7cfE2A8gKE0ZnFy
iG23NqGpfnOqwkiKMWgEvlnDnB2d7XI/UL/HrJ+1gVdwygiCyFsHwDII0ozT
aVItbvas8x3Lz8iIn5F0Ppe+T6fQdHrCUlOJKZMaRVM2+1L6DVGNdo9/E2Sr
ZZEOL9UqJ80eBhcpsGjCtMHDye9QVWVIOFZZeSzpo4Pzxrk9Zatgc3q8LKdA
EEp7sVvX5oDK1UywjFXSDwqyeitRw7oPQXUGvDg9Gp1/c3Z0evRifE6pTpjF
uGFw65h+I8+hjmvVVhsLRpDSQmlXy0WBM6xqj5ayuDBdwQIOFaV1ExScMtLA
wcw1YGwqnskrbEdDVbiQ2LeG0cM3ATGPwTDRQZXNXHOS56rnmClVwFALPFpC
Uhs4EWVq6rcoLBYX4hPaJDzhD8UiBVmeZqkMY3rHOEFgh0pRNE2v5S+m4s5k
gMaRDtx0s2oY1kpzFmLlxh7/GW+EGXMouMYjNfML8C5F6xqFNrAfnE6AwExG
xy+aAtA5CxNN3O7k/6CZmoJGlUgbpCCcPzA2mPmneVWZ+kzNMZcmQ+cGVMbD
9J8q+wn/wK/hMVpG+nv8QozNc8c2mn9+8n4auv/8dIu/q4cwsrbTP7ERFj/V
zTX87jTBMK43ahOx71D3U563/02ff3PiZoNKeXABssX5RjwwJbGSpmhDQiny
qDgwTyAkjG57N5OGAkx2D8WbIkObk7/xvQOJkK8pA7U1OA1lo5EAs3BTF4sO
wsfpHDyOTY+yh+N0G5M4AsHbwmTE1AwGW3Tfua5LSGqb0Xisneyko8PEGRUd
ruX5pNGSdmEzDG0x9u95aRLa+H5C0g7W6dzFGcRdYVIYXSUa9I4hk2o1UJc5
Wn8GqpVUAI/es7gxndy1jU0FuaP1TUti1g+Obk4uqNFPu8y8eXp5cOT38qpF
/1udI28YOraSGvBZb1KD7UALf8tHzk5ELNFWNBj+evKH6iiOAvWEMcS27t7E
a3MOZ+cNwjxZgEuFOUHH5taF+YVJDV0d8TiUOrY2PcyvIJbRIsfeDfkYt5Zq
QEAVYyahs06DOJCE0ywbi97V4C0WcsdVmDlAq39k3OI1rUa0TxRHozEMdako
FVBJTAHsynZr5gmyNdVTYvMFoY1N8LCp+jqkceLwWhiOHgNiBrxhisNS8hWF
74m+5gr0KHOdp5vSSgKxub6IUNv7oNpeGGpPAagTnYHgnJnLEuJbswj4HPfC
YMoXlMukMeLQ36DXdqST3+h39cEba3/NRJAS3XpigvUPX2p3mXND/IY5bzx2
zHmzw03mvAmmadH73n+wUe8XENe49w7Xb9+16yVi9soLLwb1ZSdiHMgBwqqu
ilU2yC4dzSK098ZgQK44JBuNK1DOlCv0ctoB6eM1GJgICL/Z5uhHliDxJQZ9
LyC0Ud2kzVyySVYz8XpgZtxedNlye/DoPW7PdPo7dXu02dYt0x/v+WqjvEnK
OH5zm8QX1+EYhrT8Jz7r9Z+2Q9N/XroOtEeURK8nvRXW2tnhLmYBkk97LBMe
EAeBBawdVXS54kvthNEfW3/Lxwzid+uWSfB6X2xtVI15PbzREsY79rG/etB/
Fg/KHGEa1Hxo64XjRdudbvSjreYtT9rb4lP50v4Bf/Wm2pt2MfkGfyrb/lS+
15/Kv3t/2i/bf32PKjs8qrzJo8p/WI9asWlfbPb4U/mrP/3Vn97en4rD0/Ex
H1adW993yFunWEKw//Shdn0Yb0ovZQYGSjLEU8c/PMW6FTBY9wszGsAHfRiK
pytgxsvZDG3h5j5BO1+qwOlHFMZte08IaB8V4iFt3j8Rm1NxSHnm4r7Ymooz
eS2m8Bp8n5IL2/r7Pz/Y3/z+NbQ/SUIWxWt9cKR9UMgllMTm201hs4zEWbqw
z7fEqX56/J19uC2efSc41do+24EGIqg/2xXHmVJot7AeWDQzNdvw3V7FB5Sq
5m0ayv0kiQupOpzAqym28wMHK1s/60WJRetsm4duG05z7mv6SDyT+cWQbr2G
Nc6tJ+oaLSMJzpa/s2H7PBYnid3rhhigv+XInakL3NCko29dPLb6xeM8+kE1
Wu/0t/Y8FxUzfFM8xTqVCkAD8MUTi1OX0J7rSmviaRquBNXMwRNOhgVDPONL
/uvn3z5rzmkbXAW3Pgmfq2S/khDvQ6B+FNonh20CO7g0Ma1eelq5NQY4VCtg
qZMVhgfrSNg49QMJqZs0HnX87aNdsY6qjbp8v61KGzfAQLEAGPQ/dIl8Tou3
5IdFGvC54VjOb4CgLU1vTy/S0/riiVPF75YTG7kT6xDJD5haR+/3z6qrkwfi
dEuODvUxqzDmGHR8/WT0YkTkQeQdaYL3284T02Pv4SYfom6uG+JijLVxSxXt
QpQww1lotMQtZwS97IN+jotXcoXFAztU4Cn85zs1FWOKhdYPvhtv/G3IPWDy
fmGARuIeVf95cw4x2VYl2k/EP5pod3PqLuR56xGlADz6EPntw6ZThjsa1wW3
4mAlqo1tFE5WakdmFEvhsmIxvWyuweDRe9bFphMuRUB0bpQRusovKEaH+Azk
ZZMjkJ3vX8PUYcrOMgmx9ScOGMJ24vdKQOeatXUIzceD1Z3FDYrhPxjxR788
xtVNCpMNw9jfjsuoljoKQkZnV21OZ1fvZbXu9jG8fvjLU8zcCO6iEFVuwyUs
WklaT7lP9GKH875SWrhhBlyVmiRzWsGGbUrnzpyPWb6PD75/3Z3VYt0LLb+y
SMaUBhUlOVZ6hEX1sFYbcH374c6G3tla/437ajiFaJHqu4n7T2CBjvtEPv3U
BYGqvBHys+fl1FZa7M8bMsX47Ml1PSe0g6yNBDf2ox+W4lavavTLZrnV5/BB
6W0sVZT9icUxdVanhg8LZqBRtCgXwpRswxRef5tEL81IruwV5Zz8wNjgc4aM
yovUZIpmqsgidcXbu+4WrXUH0mg9yN6hWK87Ii7wmONiD0tvLdlbmH0DQxpa
R3ekqYYqgLUo72/onry/2xU4UeWHHkDqLZUTZuEzmZR1UdXqMfqKBcNp2RqG
6DhpApjobRlTZsskjkaLKJZZlcQ10bvGvE2/XlC1s6pMKech8sYr5aNSSmKJ
BxBVdgeVHURrM+TdSLzVKiaEKBaVzjAfpcatWr4y2xusFV602Q549vKcy4VG
eovDZslThQgifTSrHrSM8hbZp6Pj71+LdapNiWPdu33UsPH+IRwbePMYrv19
LTbYKN++EHmjyqNJkq2q4Ulb+W7GZhF35GqK354lSUh9YP9ObCfOjY40ACcE
bIpl9uQRGRNERS9ZCKiGI+1mak9UTaMrHx1sYpatzHRru5qEB4PSA/9A4EBZ
cJD35zBNJhOqnWwMJJPhHP5fNvcW+cTB5ERiA7R8XK8yqvXPjatdmnL8tdKw
CLPGcKlNScQVh5dpTswlIND4hPyFKoaH+FWUgYcTh8f2kg5JB3SScXO2ukK6
2bnmt0uzVddEupFqy+pQ2KtIGDfkjCl+TgWbR1T1NuC691W9wYh+zHE3HOdB
H3OhEzDAB3zYqxiEVYkEi0SbKoS036snjbEKaggwuoQ51dGk4pYiTGEYAEAv
V7X0fG1FEEXfOy4z3F3HPPsBtBdqNkOXhqZ1qmA1AnzgCkF0MGfsT6UPVeK8
PpQEbK8l+95Y3+whYuBxBX1CIc1MSeZIY2hIKHOu07YogYr4ZqrMuScTeEpn
FiATMk7nfKtGXkkw97gX2pIwOnUEWz+DUItLLJ/Ryl7XUg2vIn2EUNGZTxqa
kPCERL3l7fZR/S6NlZ+BWCPRuI7Q1FN95Qw8lbqm8WBS+OEc7EYfLzBVwkG5
RVjyLEFpM1se1n7egfG6kNo7TFUCikJHzFmZ0OEPuuyBxyqOmFIhbDrtNXYA
GuMBL1EJi25mUSUsVA9aqXAq0SLasRZSWyJLCxVaZc35WsZCckGwEz6PWZoo
w5HM9qTLXLEOuULENSIRdYjLomKN4k/7yQ5E8VUWXclghQa7IpRJEcipIGtl
9mwlazw3YeUJEGGtOeSLrOGZAasGgu+TUKVG4J9TeB3VoLhGTTDV2pmdLFqN
2u8dNU5nM66NDDq4hEbG7llgn+mzpxqcz4T+5IWw37wgY4afb3m6gdkKKwg5
wcRe2ltCjfLdOR5LYUFY4mZuSInc1DY157NAc/txAKZKdwHjYyPGvJw6Ma2k
DAAGjoXzgXplEnBlVRZAruOK/ji4kDrMBoxAHmIFMQOYVxmbKyNjtBgzMjxu
uPR///XfOQm1KXlKdWl0/VaqNQ0rKXLOWBpa05NDPT31NBtw5VAQdKxoZqeP
iQJGpcjITLGqaBQXbHZkRCeqnCvBNV5icpGmBKn27brAhCYKnSS6PCVgVfC3
gmeL3BTonVbKTn4YFGNuKqpFdDsRC+HHENIHqwAPGyk6Br+EpgKYYktOGxvK
UUPeuFMjqSY3rzVOcXES/YCPG56CTxnfImno8gbVl65ucDzQtzc6qqNv/AEA
f0POa6HAGqyGuZwpdmpyQXFfDFFiKSGQrJoyTYX+pg29cJAjMS4KNEQQqc0k
SA8eRl+lEdlbMHcKuYscNSZdrwgNZcG4xWmkI2UGBcKLw4yw0rkZBOQCwj68
jwazQ1dbOCJqBJ/Y9hmdGGddmC5TvGwZsfvFtQ6WpTWCNqVSVoDfdFXRnClA
9SrNUWBJN+FAha0Q5emsuJa6Yn1a1bWqFaJHdMAS0qcs+AJVCUueAUZ46YJW
CrIMI/2ZBnZDNuLiiQ24uCbINn4ULuNJyYJn+1lFDpNBlOESJ15ZdcQhEh1H
ok3FYz7SWRs4EAa6GRonWEARW9xyn0s2dzidY3DjlYjEK2PXYFnEdUFVlumy
1SQRJLugGpG9HGWJX5uoVtm2eaz0kTAl58jkWtJHQljfxxd832nuQrbGKcTv
R4VMPvUWxuclgoVMXpRqVqPZRbdNt5rBHQyEewO1zoO6OTcW1nAC/YHZsTL3
sxB34zEqPJyNNHAcR1TmoTUffXsWZ4NMx5N0XBegFOGOlfF1SF0QAe7S1c6Y
U5oKsr0gT4oRe940VbWOuHSJ9ISc22Z0lVUnAup1TNXH5H5w4hdGek50Wr9j
q0GsG3Gvbgtr46FvmK8sAd3PEIK7w3h1g30lRT2hAh8RE8JVAMPBPTkFvBSK
kMQoCbDQ+kDYdXFlWbe2/Y5PWNSjBy1GGDBxQgtY1uUFXlDDWMLU9YHQpcRb
7uioSswxKfRegba16IYTFbPiYGiD/k/PlIqdg8Ups0DZ64E2MhmYj/fhn2ff
voL/WtxeXuOtZX2dz/q9vxLGdsNv0IyjNsxXVcC0XOYso1xkkNa9auk6dzE0
f670dzg4IMSSp9oY8UzpkrqjWxwYWSqkmdulUmT8JBA7XdC/t9ytouiwsmwL
mQyjZAi9h/ztIu3K8FMh6KBN/MC7jpVHKjkcouCV4ln8ENu+rp1cPcRsLzAj
pFe83kEzrG9e40eATCqmIbo2ARyriRmpRLWnUQ+LW4EsBKy08OpSge2mCpBR
bOhVVchB6EoOuROA0UqBz/O6VgaRTCTuPPIOtfkACSxzqUtt1WU+F4ULIfoa
xIGzYMXqK0lCqTUq1AnI5kMK1xw0R5c6dpDJZSMYW6oUrfzMrkjtaswuis0d
VzK17tYHYPVMAcSnUXZ5kcY/wDqHP+MJinPpT/XTL/FzcD5lBOJH3P6UApUu
xCH8ZwlcUbbTil74oXnxpcwW/AHQ8QVEDrk4xu/tFJHtwI99/fjLGEsEp/jp
Pc87BOwSKb6K5Q/VACE9nOOzL+dpOgcfSuDviVGAG0FgOOcUQn4oRb+mm7WH
vniqZKJWA3GcSdy7C1LxtS8OQN0gPIpjCeYA/kS1PPPFOTgXWG5I3lZ4FaVF
Jv5jEf0FwqHLiPjBwZFdAQO1/x9MOZ88nHcAAA==

-->

</rfc>
