<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-smith-rats-evidence-trans-00" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.26.0 -->
  <front>
    <title>Evidence Transformations</title>
    <seriesInfo name="Internet-Draft" value="draft-smith-rats-evidence-trans-00"/>
    <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</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="February" day="11"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Evidence, RATS, attestation, verifier, supply chain, RIM, appraisal</keyword>
    <abstract>
      <?line 108?>

<t>Remote Attestation Procedures (RATS) enable Relying Parties to assess the trustworthiness of a remote Attester and therefore to decide whether to engage in secure interactions with it - or not.
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 fresh Evidence from an Attester.
Before a Verifier can appraise Evidence it may require transformation to an internal representation.
This document specifies Evidence transformation methods for DICE and SPDM formats to the CoRIM internal representation.</t>
    </abstract>
  </front>
  <middle>
    <?line 117?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>Remote Attestation Procedures (RATS) enable Relying Parties to assess the trustworthiness of a remote Attester and therefore to decide whether to engage in secure interactions with it - or not.
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 fresh Evidence from an Attester.
Before a Verifier can appraise Evidence it may require transformation to an internal representation.
This document specifies Evidence transformation methods for DICE and SPDM formats to the CoRIM internal representation.</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 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.</t>
        <t>In this document, an Evidence structure describes an external representation.
There are many possible Evidence structures including <xref target="I-D.ietf-rats-eat"/> and <xref target="RFC5280"/>.
The bytes composing the CoRIM data structure are the same either way.</t>
        <t>The terminology from CoRIM <xref target="I-D.ietf-rats-corim"/>, CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> applies.</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 specification assumes the reader is familiar with Verifier Reconsiliation 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 specification 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 specification 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 specification.</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 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 extension Evidence SHOULD implement this transformation.</t>
      <t>This specification defines transformation methods for two DICE certificate extensions DiceTcbInfo and DiceMultiTcbInfo.
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>
      </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"/>).</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 signer of the certificate containing DTI is copied to the ECT.<tt>authority</tt> field.
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>
      </ol>
      <t>The completed ECT is added to the <tt>ae</tt> list.</t>
    </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.
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="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.</t>
      <t>The SPDM measurements are converted to <tt>concise-evidence</tt> which has a format that is similar to CoRIM <tt>triples-map</tt> (their semantics follows the matching rules described above).
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>
    </section>
    <section anchor="sec-sec">
      <name>Security and Privacy Considerations</name>
      <t>There are no security and privacy considerations.</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="18" month="October" year="2024"/>
            <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-06"/>
        </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="X.690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </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="8" month="November" year="2024"/>
            <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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-05"/>
        </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="RFC9090">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="July" year="2021"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), defined in RFC 8949, 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.</t>
              <t>This document defines CBOR tags for object identifiers (OIDs) and is the reference document for the IANA registration of the CBOR tags so defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9090"/>
          <seriesInfo name="DOI" value="10.17487/RFC9090"/>
        </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="STD66">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </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>
        <reference anchor="DICE.Layer" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Layering-Architecture-r19_pub.pdf">
          <front>
            <title>DICE Layering Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.19" value=""/>
        </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>
      </references>
    </references>
    <?line 418?>

<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+1c/XLbSHL/H08xke8SyydAJPVhiRfvmSKpXW1JtiPRm7uk
tsQhMCTnBAK4GUAy16uqPEQeIM+SR8mTpLtn8MEPyLLM3eS2rCqbxGCmP3/T
3ZgZ0HVd57bN9hwnlWko2qx/KwMR+YINFI/0OFYznso40g4fjZQYYwe64wSx
H/EZjAgUH6eunsl06iqealdYEm6KHd1Gw/F5KiaxmreZTgPHB3Ii0plus1Rl
wtHZaCa1Bi7pPAGCZ/3BqePIRNF9nbYajeNGy+FK8DbbuhJ+pmQ633LuYnUz
UXGWQOulmMWpYJ1BKnRKErN3KvZFkClxteXciDn0Dkr1dthlZ3C1w3haDNhh
t0LJsRRqh+ksScI586dcQvvl2QX0TBLFpeah48CAKLjmYRwJq0Ii2w5jaey3
2Vxo+KpjlYK5dHE9n1UvoWcgknTaZoeOw7N0Gqu24zIZQY+Ox3qKJ0JBP2Ph
ThQocVe2xmoCjWEqFIcrMeMybDNOnbyAOr3mdNfz41lO9o3HrtBHBdU3Iiha
iOJZlIqwJBiJwCOvvpZ4g2g5kQHErUB9z9yeJ0U6Nm73YyVnbUYfcLN31u17
3Rhsh10ZcwEpEkCR3wcjGMRhR9aPglhpMRNRyjrKn8pU+Cn4jgECWQ8Q5ZPd
GMuNxeiP5B4gSECZbjxLslRGE/YtooI9H3S/3aaOGhwrtIzGcZv9IBRCjTW9
BngWKNNVw9s7oq4BQBVsE9+K2Ugo1mq0WkZYriYibbNpmia6vbubGqZ+zpOA
6IE8u3cJ6AgWi9LdLAljHuhdEMStaOhWNXRBQ9dq6P7QdC/3jq6TbOQlwTi3
YodAumhGA9wVO3ZKPC/YcdO2a1Vs16wY7nseZVzN0W4HX243VMmtqLRoOCuN
C9K4yneb18eWe+vAWu/ytHu8t7ffZgRQDoOh8c/e4XGjMOYHuKha8RtrnbOo
iH0MGE6jOIwnc/Y///GfrHP1xmsyiCJxgAZTWSh0btSrRPgQQ3wzMB6zE66l
D/C2nS+xM3t+0r/c3mFdHsUR9A2L+5aK7dWFXjivWU9qtFUm9RR8tUysB93q
/ItzWkUkDbAZiFCA5WdZZCXU7H0EHxUHthrNA7dxtOz63CqD9+6gDa5HKiIK
jJpk0bXevru782SaeRBBdpXwdwfuZb/r5v2v3vXK4KCTYCEs5HEe4ziEyzg0
luApZxdxIEL2HIfXKo4mU3KUIbgveMQnJrYMuL5hp7HyxQPg3vMaFYtccILz
Xq2CwSwdE4I1QFPvBmLMszDdHUvwzi7lCq4AzJAwM5QBYH31rtF6uX9NnCxU
Yb553X5hDSuftQXcNNO7G0e+1KLM0icyIihgmER7fOY8fyg6LobHg/31s3x/
M9GRZrrVzs21c612FCJRu8qUb7i5cO7BfiVgLuYkUQZdbaNAtQmqjHyam4wG
AePosNkA+wdBaAMIFB9wPQIRYhlgEroa9I4PS0/F2vjqVdt0P2jZPvtlHxhd
6XN0vH9s+hyWdADslS57x0eHhv/L4/1WO88E53wurGOrUZ+a0alfEPIfnSib
x1UkZCHBYP30//xgn2uyGOlV87jexRwYwn/GWgetI/DWh4PGseMAcYgfqPtV
//wUi8TTbjqVestxXNdlfAQRgvup4+TFY7qmeIT4ipXiNsR7PgoFGCKco83e
cZWCqaCSY1xroeHbVJh6FSpNYBNhGyQAzlSVPNQUGMegM9SDMRQ4QCCAnBEI
djcV2IwtIppAxILCDTziYxmEJRgKSzH7DooyJlPmgkNZFKeeU8QDPoqzdEUM
n0dsJBD/SB/dEYoPJAdQkRoEgPkQsCyCEjvEXOODgDxlAiri+YLKc+zu84Rs
Adqh0kVljA25JJ4zKFVEWqNMwQ0cDlU+Jj0ATjweo++BNZoREUf1t+ecQe6E
7mQLwEmQ+WkZ8wp+O5UxYOW/ZRL9NYb/pmXvsYpnoGphfs85MVJVxqJ9LNVK
bAXbzCD2W8IsXXggIokj4xdMrUokwBcgR3dRe7SrDfmQ3KgsAOkK6kvkZuD7
ONCm3sU5jd7BmMdMH0IaWptK6nq+BO2ZhPAlHOcZ5n8Vo/mQx8dngCZXYtP9
V9R/Rf1vCPXPnkFxq2bSlOnOkiCZRszCfU0MwLY+PH0jAsYAlYCN5sQEIc94
JfF4DpSKYDKDHUDzJIy1xspHC8E+foQaldTYRwy4xUPG/b3ndAKoXGzZvUIX
8TCOM0QizMqPq7UKUlgdtUYDji4N7/hcg03GAD1oD2BuskTFicB5kkV6h0lP
eDtmBnV5IlMQ6lwANJQG2wHs0qq5dtDFhccgSWaGfSC0DyW1QBGY+FALAYEy
wb8Zj+YsAYNJnDarBDVo74cZ1a9gBMjh9/ekHVxgBkcjADXwDmCYfBBr7Fvi
IcCngVJATrMOOPCZYELStAfTeA6RSUt8mOlhaAAzWpK4v4cHspO3l9QA9Rpd
93rndA3h1MrWfXvVN2O0wKYkCQHglsWNmDNcZ9Js6+L91WBrx3yyN2/p+2X/
X96fXfZ7+P3qu875efHFsT2uvnv7/rxXfitHdt9eXPTf9MxgaGULTc7WRecv
Wzsk4dbbd4Ozt28651uIrgXPGgvFGBVpKoHnUoKLk/uWEHnSffff/9XcBzX/
AUqmVrMJrrAXR82X+3ABQTsy3OIIIpq5BHvPHTCI4AqpQKzDmIlgAwQCJPU0
vosYwsNz/vlPIcw85h7+6RsH81QRlPDREp4CQskrKStfmHPhGfLeTm698KQN
2Qg0NOkIwjkGUZxjfIaUlEH+Ig9d8OCaLahfzusWzWsLD4jPaWUOgDLVYArK
ZWGA087P06LBF+U1Shzm2lTk2sb4W0GhRypySIRJYSZ4hDBH6y4xUdY4OHVg
8t9yJeMMpxGU17qSD0H1OKJMhd3y24jQghR0ER/AhKlJQz4YDeJbfWwvMkrt
xD+ZQ5w1gtcRIYyUMlhjVfODkZXpzJ+aBIqgyjN5nqwo/mnI2EA3NNN7BRAm
tGubR5byjkk4FaYm+cC0rqytYQCgVATNuDiB13nsxYyZL3NTNMBYUKQslJtX
cyfhaiHZ/5P+RBJd1MYkMMLUxVmv1kfPS+geeS2vWYXvNuLcVGuLGZ2e2Tzn
LYXLGsom0RSxfATVFlZcQF77kGfInOmK2JiXy30EhIZZxBBQRFIfyAqApoge
LAtvmClPjiBRiwlvNcs9i3Njpd75sweJg/kVDviYyaWZUYZ/9a4o+C87n2q2
FQfWzw/yugVqDmyqLHKXY5IovtMOA5SqeT57QLBCR5sSJNYiFM3J4ovufHgy
PFB9QeH8gBCa9cA2A3+Ey6J2SdIXF1mYSttI4UUvDEHIoOhIriyyxnEYxneo
dzz6K7i07KJ023FesNSfGE/k7Fy21fJae15zb8878Pa95tZCt6oUK30PoG+f
QzCpyg/8oITDFMUWBmORjyFZpXltbkJ2vztgzxcrvjXTKyuKkyUzQ5xKdJGL
LYy9UqwFGaxs2D8QCWaEKM0fOWKcotXgKJDEEk5Jbi0Srmh+gehEEipShg85
1acVvAtPeqY4HHLBXrF/Z3/A1h+H29YaprrCxyRSz+awyjOjKKNoTVBaY7kl
2wFqsdAWy4563hucbVfdtWIuKDJi32Yu1LUoBoHkx3aQplBWZ7QrlaF4r7ag
aQt6zUPxasvmhivwD/t94G3d4xiWD7oHkHUitMuw9ErOL/AQg5hRh/4Mty2H
uZNQCnJziq4Y5uYZFgPqFEziJAt5agM9sQVauR6tNYq0ljX5vSx1aBVKENPB
2YNsQNDoVqo4ov2pGU+GjvMN+4a9eAHxff7iBQrqDUnRHRKr2n/orYz2hn4I
NdnCdxkMt21FLyN8iFoCChiw5MKocIZYis+htzykeGeeBWtHl3yo4KM1AcyZ
WNWnfOKtU+mWHrueopQdub2W7Ay3KJ5C1QxcTzTExdGnEDUD1xPFOPPhKUTN
wG3vyYCjLCZSF8PSsMY5tARdSGfynh1QXFrDCa5h3lML4CUTpZ/MnsHCVY0x
9O0XMkMC60kbuOCs/zIOit+ZhoIPhE6KnKf/SqUhfZ6fXQ3aSxJgOxAI5ASC
95cJYWjokhrox8OnSjTletoJJxsXiQPNjeFzOA75BMgXyl2Pr+nJARV5mwhl
N1lPqRvVSKbbrL7bBdc3w7ax2dkYu3rDKE67cTSWE9ASAtkr1mSdNz3ktu7e
H8GikGrAoF9gOqvZUOIhjir50875VT936pMEbPyyAg4u36+Tj/aOxapslfZN
y6UL0nVG+7RQGzdWKdQ6Q+FqAi51L4m00LxpiarE1xrqEUJt3ExV4usMFYhR
NlkSqGzbtDQF5bX2eVCWjVumoFwz0S5FArUFntCglaRVcK/rsHn3IQ83qTKp
m4RPEfgXwNuqwDUGxvM7EzwG84DINX02LbXM2VjBP2Xqp4u+cYPXiV6HanjE
kjNxYSivA8maDhsHieHhYt8HEf0EYTeP6CVh69A8m2UproWvQcLCrY0DoEq9
FrCPlG7z8KxSrzHdwB+tipU3blqg1NCtM9RDsmzcOFaW3CxLCzRYyms5iYTK
119q1n6x3qcVrUSaRTK7VgNPCbQhA8FhyMZShIFZorBEzeJkOi+XIz7gqoMu
FsSGv/PVPElj90bMXVy5cP1pLGm9p4PrwHgKEA8s0Nod40rxyB5FBGkybXdf
4lgFMkKR76YSHhpqqRajcM12BEQrBwTgieMy3wNmP5A57b5kvn8d5KtTPAhK
K9AjD/pndb0eDx6unDk0C/SfvzyPxPK9kl91cX2tFvni3+MW1bvLmz54RgIP
l0DpOInkT0Ya3PC2MCyXuZWY4FaVQoODJ3GR++diTQpPzcGVe8rgSZm+D96w
Qd5+IQLJ2QBGsfzvZ+dnt/r38yO+l43A+dmhd/CyCcSbDfMJDc3Dw6ODg5f7
rWO43qI9bbNzsOuLP+Bm+BbwBTyvGLFYF/0V183/X69jD2iPbslK2p8Ctswm
nmFMBwtopkizvUbnoXDigJ5gSDwSno9e3onDQ0Sgx3WqJGBWX3tOlyPlOzp4
scKcWOF+AkUyPGwOvCpSrDF8GE+kX+45lgcs8MUR8gge/y7O3VQDhonAXuUV
IBLSxoyl5nsTnYZrBgwrXDFeFT4fLvWkhzcVYLiNam/m+8XmaFq0uthNwbPC
pJqYKCOV+xO1PHhULh4tYo7Sli9W9iKg6RN7Efmg6l5EsaWzof2IFcQ87/Yf
3pNYsJ/Nmnp50bPb92p9tWL/Ry0/b+d2XNkLwbbavZBiwD1qXPjR7PujlBgr
lhz+4/CP5QoebVJGRkLsWy1pfsyX7wq9AczDGaRt0AkGLlc8+RXuhawbiKuo
NHClVsqv/JDLmcbRS/hYLYXAgCLE7flKHdTtP7oMIlN94JgZ8cwhjLRJ707h
KR+b8Vi/MwBCNyIqD3Hlp/mqtdjy/vpvrMx6gQUyqDzlGK2sROa8Sy7eapoc
/s7eW2QOg6JVFwEGbO/CQ59b3K0P1rnxl4L1UnMlWC8PeChYL5NZjtd19z87
ZNcDpBq6a9nVR2+bWMmYtXgxTy905ME6DnCAtArcVCKM7W1mADGsKTm4T4k2
oAgMPDUjdCFn1LlCsnJ42JzFeUhYomSOAdqTdUFRsw1XnUsRp5iZeO5b5UlN
3qwkNWj6RFLLB/2dJjWIYXWYfnpeW+ByHWVheP2Y3bBqOskdspIdsa02OxYD
lrPjTTU91kCJ1ebJR0ltUxluJaeAfKSOV8gQmQRuyZWtS7Q3NsViti2yqVl7
YP/4vHAS3G6z5nbZmVSwGbQKxq8Z9GsGfVIGNR4xNljIoSs3Kll0ddCDeXSl
+0omre3xS+XSeoZfs6nNpuuc/EA+5av5lH8yn/K/+3xaj+3/+4zK12RU/lBG
5b/ZjFq6qc0aNfmUf82nX/PpU7cb6HWLpX0GfPXic3caFl/b+HU3GxZ1+Lxd
hkE+vpKL8jRYcdPQvoJSrKcOLXqMq/NXXlANNJecyZCrctl3aDORSf3PzetH
Wsw4rg9ru3NhgjnQ8afFj5xUXpPio/hW2PXux/86xdJrCflmUOXFwuIFKhxi
lV6w7EUl8Z9AWrsxei0y9pyrbKTF3zKBLwjV7y3k73/SS18Lm1r3BM7iN0hw
ir1T8pb7c2SmgY2yy/EWpfbFtPzdxyg27zDngxM72F8YTEzOOm8664lKHnE8
8KaXSdOQFVL45veI+zf0Qh0QNL9/EisNcTmLICaPcBPKVqD5a2h39NpaKG+E
mZ88ulnav0pEDGjJCyGACtZb9EKbn/PItzBot2DpDaDvBFA8kepmGoc/OU7f
/LgUxJMbb2RbX+OvOXiUEvDnGP4ST/Bd5h78l4DtRDFoTje8IL/xmquZ+Vmq
wTSeAfZP8e3cVBYDTLNnm1+HeHA8xt+fcJweSBdx9m3IfyoZBNQ4wbbXkzie
hMKQf8Y6/k0U34UimNCc/FyLfk8bJz2PnQgeifkOOwWUAWT9mH3vsS5MMZhm
Ych32A/wFbF96bErnyuoq7h57eydjFPF/m0m/yru9I0kfygIAOKOjYUI0PFg
7f8FoRP8hNBNAAA=

-->

</rfc>
