<?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.19 (Ruby 3.3.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-corim-06" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="CoRIM">Concise Reference Integrity Manifest</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-06"/>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>Thomas.Fossati@linaro.org</email>
      </address>
    </author>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>arm</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <author initials="W." surname="Pan" fullname="Wei Pan">
      <organization>Huawei Technologies</organization>
      <address>
        <email>william.panwei@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="18"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>RIM, RATS, attestation, verifier, supply chain</keyword>
    <abstract>
      <?line 122?>

<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>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-corim"/>.</t>
    </note>
  </front>
  <middle>
    <?line 130?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>In order to conduct Evidence appraisal, a Verifier requires not only fresh Evidence from an Attester, but also trusted Endorsements (e.g., test results or certification data) and Reference Values (e.g., the version or digest of a firmware component) associated with the Attester.
Endorsements and Reference Values are obtained from relevant supply chain actors, such as manufacturers, distributors, or device owners.
In a complex supply chain, multiple actors will likely produce these values over several points in time.
As such, one supply chain actor will only provide the subset of characteristics that they know about the Attester. A proper subset is typical because a certain supply chain actor will be the responsible authority for only a system component/module that is measured amongst a long chain of measurements.
Attesters vary across vendors and even across products from a single vendor.
Not only Attesters can evolve and therefore new measurement types need to be expressed, but an Endorser may also want to provide new security relevant attributes about an Attester at a future point in time.</t>
      <t>This document specifies Concise Reference Integrity Manifests (CoRIM) - a CBOR <xref target="STD94"/> based data model addressing the above challenges by using an extensible format common to all supply chain actors and Verifiers.
CoRIM enables Verifiers to reconcile a complex distributed supply chain into a single homogeneous view.
See <xref target="sec-verifier-rec"/>.</t>
      <section anchor="terminology-and-requirements-language">
        <name>Terminology and Requirements Language</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"/>.</t>
        <t>In this document, the term CoRIM message and CoRIM documents are used as synonyms. A CoRIM data structure can be at rest (e.g., residing in a file system as a document) or can be in flight (e.g., conveyed as a message in a protocol exchange). The bytes composing the CoRIM data structure are the same either way.</t>
        <t>The terminology from CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> applies;
in particular, CBOR diagnostic notation is defined in <xref section="8" sectionFormat="of" target="STD94"/>
and <xref section="G" sectionFormat="of" target="RFC8610"/>. Terms and concepts are always referenced as proper nouns, i.e., with Capital Letters.</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 describes the CoRIM format and documents how a Verifier must process the CoRIM.
This ensures that the behaviour of the CoRIM-based appraisal is predictable and consistent, in a word deterministic.</t>
      <t>A Verifier needs to reconcile its various inputs, with CoRIM being one of them.
In addition to the external CoRIM documents, the Verifier is expected to create an internal representation for each input and map each external representation to an internal one.
By using the internal representation, the Verifier processes inputs as if they are part of a conversation, keeping track of who said what.
The origin of the inputs is tracked as <em>authority</em>.
The authority for the Claims in a CoRIM is the CoRIM issuer.
To this effect, this specification defines one possible internal representation of the attester's actual state for use during the appraisal procedure, known as Appraisal Claims Set (ACS).</t>
      <t>Effectively, Attesters, Reference Value Providers, Endorsers, Verifier Owners, Relying Parties, and even the Verifier potentially all contribute to the conversation.
Each producer of corresponding RATS Conceptual Messages can assert Claims about an Attester's actual or allowed state.
The Verifier's objective is to produce a list of Claims that describe the Attester's presumed actual state.
Producers of RATS Conceptual Messages can assert contradictory assertions.
For example, a compromised Attester may produce false claims that conflict with the Reference Values provided by a Reference Value Provider (RVP).
In essence, if Evidence is not corroborated by an RVP's Claims, then the RVP's Claims are not included in the ACS.</t>
      <t>A Verifier relies on input from appraisal policy to identify relevant assertions included in the ACS.
For example, if a policy requires corroborated assertions issued by a particular RVP, then those assertions may be conveyed as Attestation Results.
The Verifier may produce new assertions as a result of an applied appraisal policy.
For example, if an appraisal procedure finds all of the components of a subsystem are configured correctly, the policy may direct the Verifier to produce new assertions, "Subsystem=X" has the Claim "TRUSTED=TRUE".
Consequently, the internal ACS structure is a reconciled conversation between several producers of RATS Conceptual Messages that has mapped each message into a consistent internal representation, has associated the identity of the corresponding RATS role with each assertion (the authority), and has applied Conceptual Message constraints to the assertion.</t>
      <t>The CoRIM data model specified in this document covers the RATS Conceptual Message types, "Reference Values" and "Endorsements".
Reference values and Endorsements are required for Verifier reconciliation, and Evidence is required for corresponding internal ACS creation as illustrated in <xref target="sec-interact-acs"/>.</t>
      <section anchor="sec-internal-rep">
        <name>Internal Representation</name>
        <t>In this document CDDL is used to specify both the CoRIM structure and to specify an internal representation for use in the appraisal procedure.
The actual internal representation of a Verifier is implementation-specific and out-of-scope of this document.
Requirements for an internal representation of Conceptual Messages are defined in <xref target="tbl-cmrr"/>, where each Conceptual Message type has a structure as depicted by the <em>Structure</em> column.
The internal representations used by this document are defined in <xref target="sec-ir-cm"/>.</t>
      </section>
      <section anchor="sec-interact-acs">
        <name>Interacting with an ACS</name>
        <t>Conceptual Messages interact with an ACS by specifying criteria that should be met by the ACS and by presenting the assertions that should be added to the ACS if the criteria are satisfied.
Internal representations of Conceptual Messages, ACS, and Attestation Results Set (ARS) should satisfy the following requirements for Verifier reconciliation and appraisal processing:</t>
        <table anchor="tbl-cmrr">
          <name>Conceptual Message Representation Requirements</name>
          <thead>
            <tr>
              <th align="left">CM Type</th>
              <th align="left">Structure</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Evidence</td>
              <td align="left">List of Evidence claims</td>
              <td align="left">If the Attester is authenticated, add Evidence claims to the ACS with Attester authority</td>
            </tr>
            <tr>
              <td align="left">Reference Values</td>
              <td align="left">List of Reference Values claims</td>
              <td align="left">If a reference value in a CoRIM matches claims in the ACS, then the authority of the CoRIM issuer is added to those claims.</td>
            </tr>
            <tr>
              <td align="left">Endorsements</td>
              <td align="left">List of expected actual state claims, List of Endorsed Values claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Endorsed Values claims to the ACS with Endorser authority</td>
            </tr>
            <tr>
              <td align="left">Series Endorsements</td>
              <td align="left">List of expected actual state claims and a series of selection-addition tuples</td>
              <td align="left">If the expected claims are in the ACS, and if the series selection condition is satisfied, then add the additional claims to the ACS with Endorser authority. See <xref target="sec-ir-end-val"/></td>
            </tr>
            <tr>
              <td align="left">Verifier</td>
              <td align="left">List of expected actual state claims, List of Verifier-generated claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Verifier-generated claims to the ACS with Verifier authority</td>
            </tr>
            <tr>
              <td align="left">Policy</td>
              <td align="left">List of expected actual state claims, List of Policy-generated claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Policy-generated claims to the ACS with Policy Owner authority</td>
            </tr>
            <tr>
              <td align="left">Attestation Results</td>
              <td align="left">List of expected actual state claims, List of expected Attestation Results claims</td>
              <td align="left">If the list of expected claims are in the ACS, then copy the list of Attestation Results claims into the ARS. See <xref target="sec-ir-ars"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-quantize">
        <name>Quantizing Inputs</name>
        <t><cref anchor="tracked-at">Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/242</t>
      </section>
    </section>
    <section anchor="sec-type-conv">
      <name>Typographical Conventions for CDDL</name>
      <t>The CDDL definitions in this document follows the naming conventions illustrated in <xref target="tbl-typography"/>.</t>
      <table anchor="tbl-typography">
        <name>Type Traits and Typographical Conventions</name>
        <thead>
          <tr>
            <th align="left">Type trait</th>
            <th align="left">Example</th>
            <th align="left">Typographical convention</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">extensible type choice</td>
            <td align="left">
              <tt>int / text / ...</tt></td>
            <td align="left">
              <tt>$</tt>NAME<tt>-type-choice</tt></td>
          </tr>
          <tr>
            <td align="left">closed type choice</td>
            <td align="left">
              <tt>int / text</tt></td>
            <td align="left">NAME<tt>-type-choice</tt></td>
          </tr>
          <tr>
            <td align="left">group choice</td>
            <td align="left">
              <tt>( 1 =&gt; int // 2 =&gt; text )</tt></td>
            <td align="left">
              <tt>$$</tt>NAME<tt>-group-choice</tt></td>
          </tr>
          <tr>
            <td align="left">group</td>
            <td align="left">
              <tt>( 1 =&gt; int, 2 =&gt; text )</tt></td>
            <td align="left">NAME<tt>-group</tt></td>
          </tr>
          <tr>
            <td align="left">type</td>
            <td align="left">
              <tt>int</tt></td>
            <td align="left">NAME<tt>-type</tt></td>
          </tr>
          <tr>
            <td align="left">tagged type</td>
            <td align="left">
              <tt>#6.123(int)</tt></td>
            <td align="left">
              <tt>tagged-</tt>NAME<tt>-type</tt></td>
          </tr>
          <tr>
            <td align="left">map</td>
            <td align="left">
              <tt>{ 1 =&gt; int, 2 =&gt; text }</tt></td>
            <td align="left">NAME-<tt>map</tt></td>
          </tr>
          <tr>
            <td align="left">flags</td>
            <td align="left">
              <tt>&amp;( a: 1, b: 2 )</tt></td>
            <td align="left">NAME-<tt>flags</tt></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-corim">
      <name>Concise Reference Integrity Manifest (CoRIM)</name>
      <t>A CoRIM is a collection of tags and related metadata in a concise CBOR <xref target="STD94"/> encoding.
A CoRIM can be digitally signed with a COSE <xref target="STD96"/> signature.
A tag identifies and describes properties of modules or components of a system.</t>
      <t>Tags can be of different types:</t>
      <ul spacing="normal">
        <li>
          <t>Concise Module ID (CoMID) tags (<xref target="sec-comid"/>) contain metadata and claims about the hardware and firmware modules.</t>
        </li>
        <li>
          <t>Concise Software ID (CoSWID) tags (<xref target="RFC9393"/>) describe software components.</t>
        </li>
        <li>
          <t>Concise Bill of Material (CoBOM) tags (<xref target="sec-cobom"/>) contain the list of CoMID and CoSWID tags that the Verifier should consider as "active" at a certain point in time.</t>
        </li>
      </ul>
      <t>The set of tags is extensible so that future specifications can add new kinds of information.
For example, Concise Trust Anchor Stores (CoTS) (<xref target="I-D.ietf-rats-concise-ta-stores"/>) is currently being defined as a standard CoRIM extension.</t>
      <t>Each CoRIM contains a unique identifier to distinguish a CoRIM from other CoRIMs.
<cref anchor="tracked-at_1">Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/73</t>
      <t>CoRIM can also carry the following optional metadata:</t>
      <ul spacing="normal">
        <li>
          <t>A locator, which allows discovery of possibly related RIMs.</t>
        </li>
        <li>
          <t>A profile identifier, which is used to interpret the information contained in the enclosed tags.
A profile allows the base CoRIM CDDL definition to be customized to fit a specific Attester by augmenting the base CDDL data definition via the specified extension points or by constraining types defined.
A profile MUST NOT change the base CoRIM CDDL definition's semantics, which includes not changing or overloading names and numbers registered at IANA registries used by this document.
For more detail, see <xref target="sec-corim-profile-types"/>.</t>
        </li>
        <li>
          <t>A validity period, which indicates the time period for which the CoRIM contents are valid.</t>
        </li>
        <li>
          <t>Information about the supply chain entities responsible for the contents of the CoRIM and their associated roles.</t>
        </li>
      </ul>
      <t>A CoRIM can be signed (<xref target="sec-corim-signed"/>) using COSE Sign1 to provide end-to-end security to the CoRIM contents.
When CoRIM is signed, the protected header carries further identifying information about the CoRIM signer.
Alternatively, CoRIM can be encoded as a CBOR-tagged payload (<xref target="sec-corim-map"/>) and transported over a secure channel.</t>
      <t>The following CDDL describes the top-level CoRIM.</t>
      <sourcecode type="cddl"><![CDATA[
corim = tagged-concise-rim-type-choice

$concise-rim-type-choice /= tagged-corim-map
$concise-rim-type-choice /= tagged-signed-corim
]]></sourcecode>
      <section anchor="sec-corim-map">
        <name>CoRIM Map</name>
        <t>The CDDL specification for the <tt>corim-map</tt> is as follows and this rule and its
constraints must be followed when creating or validating a CoRIM map.</t>
        <sourcecode type="cddl"><![CDATA[
corim-map = {
  &(id: 0) => $corim-id-type-choice
  &(tags: 1) => [ + $concise-tag-type-choice ]
  ? &(dependent-rims: 2) => [ + corim-locator-map ]
  ? &(profile: 3) => $profile-type-choice
  ? &(rim-validity: 4) => validity-map
  ? &(entities: 5) => [ + corim-entity-map ]
  * $$corim-map-extension
}
]]></sourcecode>
        <t>The following describes each child item of this map.</t>
        <ul spacing="normal">
          <li>
            <t><tt>id</tt> (index 0): A globally unique identifier to identify a CoRIM. Described
in <xref target="sec-corim-id"/>.</t>
          </li>
          <li>
            <t><tt>tags</tt> (index 1):  An array of one or more CoMID or CoSWID tags.  Described
in <xref target="sec-corim-tags"/>.</t>
          </li>
          <li>
            <t><tt>dependent-rims</tt> (index 2): One or more services supplying additional,
possibly dependent, manifests or related files.
Described in <xref target="sec-corim-locator-map"/>.</t>
          </li>
          <li>
            <t><tt>profile</tt> (index 3): An optional profile identifier for the tags contained in
this CoRIM.  The profile MUST be understood by the CoRIM processor.  Failure
to recognize the profile identifier MUST result in the rejection of the
entire CoRIM.
See <xref target="sec-corim-profile-types"/></t>
          </li>
          <li>
            <t><tt>rim-validity</tt> (index 4): Specifies the validity period of the CoRIM.
Described in <xref target="sec-common-validity"/>.</t>
          </li>
          <li>
            <t><tt>entities</tt> (index 5): A list of entities involved in a CoRIM life-cycle.
Described in <xref target="sec-corim-entity"/>.</t>
          </li>
          <li>
            <t><tt>$$corim-map-extension</tt>: This CDDL socket is used to add new information
structures to the <tt>corim-map</tt>.
Described in <xref target="sec-iana-corim"/>.</t>
          </li>
        </ul>
        <sourcecode type="cddl"><![CDATA[
tagged-corim-map = #6.501(corim-map)
]]></sourcecode>
        <section anchor="sec-corim-id">
          <name>Identity</name>
          <t>A CoRIM Identifier uniquely identifies a CoRIM instance.
The base CDDL definition allows UUID and text identifiers.
Other types of identifiers could be defined as needed.</t>
          <sourcecode type="cddl"><![CDATA[
$corim-id-type-choice /= tstr
$corim-id-type-choice /= uuid-type
]]></sourcecode>
        </section>
        <section anchor="sec-corim-tags">
          <name>Tags</name>
          <t>A <tt>$concise-tag-type-choice</tt> is a tagged CBOR payload that carries either a
CoMID (<xref target="sec-comid"/>), a CoSWID (<xref target="RFC9393"/>), or a CoBOM (<xref target="sec-cobom"/>).</t>
          <sourcecode type="cddl"><![CDATA[
$concise-tag-type-choice /= tagged-concise-swid-tag
$concise-tag-type-choice /= tagged-concise-mid-tag
$concise-tag-type-choice /= tagged-concise-bom-tag
]]></sourcecode>
        </section>
        <section anchor="sec-corim-locator-map">
          <name>Locator Map</name>
          <t>The locator map contains pointers to repositories where dependent manifests,
certificates, or other relevant information can be retrieved by the Verifier.</t>
          <sourcecode type="cddl"><![CDATA[
corim-locator-map = {
  &(href: 0) => uri
  ? &(thumbprint: 1) => digest
}
]]></sourcecode>
          <t>The following describes each child element of this type.</t>
          <ul spacing="normal">
            <li>
              <t><tt>href</tt> (index 0): URI identifying the additional resource that can be fetched</t>
            </li>
            <li>
              <t><tt>thumbprint</tt> (index 1): expected digest of the resource referenced by <tt>href</tt>.
See sec-common-hash-entry}}.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-corim-profile-types">
          <name>Profile Types</name>
          <t>Profiling is the mechanism that allows the base CoRIM CDDL definition to be customized to fit a specific Attester.</t>
          <t>A profile defines which of the optional parts of a CoRIM are required, which are prohibited and which extension points are exercised and how.
A profile MUST NOT alter the syntax or semantics of CoRIM types defined in this document.</t>
          <t>A profile MAY constrain the values of a given CoRIM type to a subset of the values.
A profile MAY extend the set of a given CoRIM type using the defined extension points (<xref target="sec-extensibility"/>).
Exercised extension points should preserve the intent of the original semantics.</t>
          <t>CoRIM profiles SHOULD be specified in a publicly available document.</t>
          <t>A CoRIM profile can use one of the base CoRIM media types defined in <xref target="sec-mt-corim-signed"/> and
<xref target="sec-mt-corim-unsigned"/> with the <tt>profile</tt> parameter set to the appropriate value.
Alternatively, it MAY define and register its own media type.</t>
          <t>A profile identifier is either an OID <xref target="RFC9090"/> or a URL <xref target="STD66"/>.</t>
          <t>The profile identifier uniquely identifies a documented profile.  Any changes
to the profile, even the slightest deviation, is considered a different profile
that MUST have a different identifier.</t>
          <sourcecode type="cddl"><![CDATA[
$profile-type-choice /= uri 
$profile-type-choice /= tagged-oid-type
]]></sourcecode>
          <t>For an example profile definition, see <xref target="I-D.fdb-rats-psa-endorsements"/>.</t>
        </section>
        <section anchor="sec-corim-entity">
          <name>Entities</name>
          <t>The CoRIM Entity is an instantiation of the Entity generic (<xref target="sec-common-entity"/>) using a <tt>$corim-role-type-choice</tt>.</t>
          <t>The only role defined in this specification for a CoRIM Entity is
<tt>manifest-creator</tt>.</t>
          <t>The <tt>$$corim-entity-map-extension</tt> extension socket is empty in this
specification.</t>
          <sourcecode type="cddl"><![CDATA[
corim-entity-map =
  entity-map<$corim-role-type-choice, $$corim-entity-map-extension>

$corim-role-type-choice /= &(manifest-creator: 1)
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-corim-signed">
        <name>Signed CoRIM</name>
        <sourcecode type="cddl"><![CDATA[
signed-corim = #6.18(COSE-Sign1-corim)
]]></sourcecode>
        <t>Signing a CoRIM follows the procedures defined in CBOR Object Signing and
Encryption <xref target="STD96"/>. A CoRIM tag MUST be wrapped in a COSE_Sign1 structure.
The CoRIM MUST be signed by the CoRIM creator.</t>
        <t>The following CDDL specification defines a restrictive subset of COSE header
parameters that MUST be used in the protected header alongside additional
information about the CoRIM encoded in a <tt>corim-meta-map</tt> (<xref target="sec-corim-meta"/>).</t>
        <sourcecode type="cddl"><![CDATA[
COSE-Sign1-corim = [
  protected: bstr .cbor protected-corim-header-map
  unprotected: unprotected-corim-header-map
  payload: bstr .cbor tagged-corim-map
  signature: bstr
]
]]></sourcecode>
        <t>The following describes each child element of this type.</t>
        <ul spacing="normal">
          <li>
            <t><tt>protected</tt>: A CBOR Encoded protected header which is protected by the COSE
signature. Contains information as given by Protected Header Map below.</t>
          </li>
          <li>
            <t><tt>unprotected</tt>: A COSE header that is not protected by COSE signature.</t>
          </li>
          <li>
            <t><tt>payload</tt>: A CBOR encoded tagged CoRIM.</t>
          </li>
          <li>
            <t><tt>signature</tt>: A COSE signature block which is the signature over the protected
and payload components of the signed CoRIM.</t>
          </li>
        </ul>
        <section anchor="protected-header-map">
          <name>Protected Header Map</name>
          <sourcecode type="cddl"><![CDATA[
protected-corim-header-map = {
  &(alg: 1) => int
  &(content-type: 3) => "application/corim-unsigned+cbor"
  &(kid: 4) => bstr
  &(corim-meta: 8) => bstr .cbor corim-meta-map
  * cose-label => cose-value
}
]]></sourcecode>
          <t>The CoRIM protected header map uses some common COSE header parameters plus an additional <tt>corim-meta</tt> parameter.
The following describes each child item of this map.</t>
          <ul spacing="normal">
            <li>
              <t><tt>alg</tt> (index 1): An integer that identifies a signature algorithm.</t>
            </li>
            <li>
              <t><tt>content-type</tt> (index 3): A string that represents the "MIME Content type" carried in the CoRIM payload.</t>
            </li>
            <li>
              <t><tt>kid</tt> (index 4): A bit string which is a key identity pertaining to the CoRIM Issuer.</t>
            </li>
            <li>
              <t><tt>corim-meta</tt> (index 8): A map that contains metadata associated with a signed CoRIM.
Described in <xref target="sec-corim-meta"/>.</t>
            </li>
          </ul>
          <t>Additional data can be included in the COSE header map as per (<xref section="3" sectionFormat="of" target="STD96"/>).</t>
        </section>
        <section anchor="sec-corim-meta">
          <name>Meta Map</name>
          <t>The CoRIM meta map identifies the entity or entities that create and sign the CoRIM.
This ensures the consumer is able to identify credentials used to authenticate its signer.</t>
          <sourcecode type="cddl"><![CDATA[
corim-meta-map = {
  &(signer: 0) => corim-signer-map
  ? &(signature-validity: 1) => validity-map
}
]]></sourcecode>
          <t>The following describes each child item of this group.</t>
          <ul spacing="normal">
            <li>
              <t><tt>signer</tt> (index 0): Information about the entity that signs the CoRIM.
Described in <xref target="sec-corim-signer"/>.</t>
            </li>
            <li>
              <t><tt>signature-validity</tt> (index 1): Validity period for the CoRIM.
Described in <xref target="sec-common-validity"/>.</t>
            </li>
          </ul>
          <section anchor="sec-corim-signer">
            <name>Signer Map</name>
            <sourcecode type="cddl"><![CDATA[
corim-signer-map = {
  &(signer-name: 0) => $entity-name-type-choice
  ? &(signer-uri: 1) => uri
  * $$corim-signer-map-extension
}
]]></sourcecode>
            <ul spacing="normal">
              <li>
                <t><tt>signer-name</tt> (index 0): Name of the organization that performs the signer
role</t>
              </li>
              <li>
                <t><tt>signer-uri</tt> (index 1): A URI identifying the same organization</t>
              </li>
              <li>
                <t><tt>$$corim-signer-map-extension</tt>: Extension point for future expansion of the
Signer map.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-corim-unprotected-header">
          <name>Unprotected CoRIM Header Map</name>
          <sourcecode type="cddl"><![CDATA[
unprotected-corim-header-map = {
  * cose-label => cose-value
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="sec-comid">
      <name>Concise Module Identifier (CoMID)</name>
      <t>A CoMID tag contains information about hardware, firmware, or module composition.</t>
      <t>Each CoMID has a unique ID that is used to unambiguously identify CoMID instances when cross referencing CoMID tags, for example in typed link relations, or in a CoBOM tag.</t>
      <t>A CoMID defines several types of Claims, using "triples" semantics.</t>
      <t>At a high level, a triple is a statement that links a subject to an object via a predicate.
CoMID triples typically encode assertions made by the CoRIM author about Attesting or Target Environments and their security features, for example measurements, cryptographic key material, etc.</t>
      <t>The set of triples is extensible.
The following triples are currently defined:</t>
      <ul spacing="normal">
        <li>
          <t>Reference Values triples: containing Reference Values that are expected to match Evidence for a given Target Environment (<xref target="sec-comid-triple-refval"/>).</t>
        </li>
        <li>
          <t>Endorsed Values triples: containing "Endorsed Values", i.e., features about an Environment that do not appear in Evidence. Specific examples include testing or certification data pertaining to a module (<xref target="sec-comid-triple-endval"/>).</t>
        </li>
        <li>
          <t>Device Identity triples: containing cryptographic credentials - for example, an IDevID - uniquely identifying a device (<xref target="sec-comid-triple-identity"/>).</t>
        </li>
        <li>
          <t>Attestation Key triples: containing cryptographic keys that are used to verify the integrity protection on the Evidence received from the Attester (<xref target="sec-comid-triple-attest-key"/>).</t>
        </li>
        <li>
          <t>Domain dependency triples: describing trust relationships between domains, i.e., collection of related environments and their measurements (<xref target="sec-comid-triple-domain-dependency"/>).</t>
        </li>
        <li>
          <t>Domain membership triples: describing topological relationships between (sub-)modules. For example, in a composite Attester comprising multiple sub-Attesters (sub-modules), this triple can be used to define the topological relationship between lead- and sub- Attester environments (<xref target="sec-comid-triple-domain-membership"/>).</t>
        </li>
        <li>
          <t>CoMID-CoSWID linking triples: associating a Target Environment with existing CoSWID tags (<xref target="sec-comid-triple-coswid"/>).</t>
        </li>
      </ul>
      <section anchor="structure">
        <name>Structure</name>
        <t>The CDDL specification for the <tt>concise-mid-tag</tt> map is as follows and this
rule and its constraints MUST be followed when creating or validating a CoMID
tag:</t>
        <sourcecode type="cddl"><![CDATA[
concise-mid-tag = {
  ? &(language: 0) => text
  &(tag-identity: 1) => tag-identity-map
  ? &(entities: 2) => [ + comid-entity-map ]
  ? &(linked-tags: 3) => [ + linked-tag-map ]
  &(triples: 4) => triples-map
  * $$concise-mid-tag-extension
}
]]></sourcecode>
        <t>The following describes each member of the <tt>concise-mid-tag</tt> map.</t>
        <ul spacing="normal">
          <li>
            <t><tt>lang</tt> (index 0): A textual language tag that conforms with IANA "Language
Subtag Registry" <xref target="IANA.language-subtag-registry"/>. The context of the specified language
applies to all sibling and descendant textual values, unless a descendant
object has defined a different language tag. Thus, a new context is
established when a descendant object redefines a new language tag.  All
textual values within a given context MUST be considered expressed in the
specified language.</t>
          </li>
          <li>
            <t><tt>tag-identity</tt> (index 1): A <tt>tag-identity-map</tt> containing unique
identification information for the CoMID.
Described in <xref target="sec-comid-tag-id"/>.</t>
          </li>
          <li>
            <t><tt>entities</tt> (index 2): Provides information about one or more organizations
responsible for producing the CoMID tag.
Described in <xref target="sec-comid-entity"/>.</t>
          </li>
          <li>
            <t><tt>linked-tags</tt> (index 3): A list of one or more <tt>linked-tag-map</tt> providing typed relationships between this and
other CoMIDs.
Described in <xref target="sec-comid-linked-tag"/>).</t>
          </li>
          <li>
            <t><tt>triples</tt> (index 4): One or more triples providing information specific to
the described module, e.g.: reference or endorsed values, cryptographic
material, or structural relationship between the described module and other
modules.
Described in <xref target="sec-comid-triples"/>.</t>
          </li>
        </ul>
        <section anchor="sec-comid-tag-id">
          <name>Tag Identity</name>
          <sourcecode type="cddl"><![CDATA[
tag-identity-map = {
  &(tag-id: 0) => $tag-id-type-choice
  ? &(tag-version: 1) => tag-version-type
}
]]></sourcecode>
          <t>The following describes each member of the <tt>tag-identity-map</tt>.</t>
          <ul spacing="normal">
            <li>
              <t><tt>tag-id</tt> (index 0): A universally unique identifier for the CoMID.
Described in <xref target="sec-tag-id"/>.</t>
            </li>
            <li>
              <t><tt>tag-version</tt> (index 1): Optional versioning information for the <tt>tag-id</tt>.
Described in <xref target="sec-tag-version"/>.</t>
            </li>
          </ul>
          <section anchor="sec-tag-id">
            <name>Tag ID</name>
            <sourcecode type="cddl"><![CDATA[
$tag-id-type-choice /= tstr
$tag-id-type-choice /= uuid-type
]]></sourcecode>
            <t>A Tag ID is either a 16-byte binary string, or a textual identifier, uniquely
referencing the CoMID. The tag identifier MUST be globally unique. Failure to
ensure global uniqueness can create ambiguity in tag use since the tag-id
serves as the global key for matching, lookups and linking. If represented as a
16-byte binary string, the identifier MUST be a valid universally unique
identifier as defined by <xref target="RFC4122"/>. There are no strict guidelines on how the
identifier is structured, but examples include a 16-byte GUID (e.g., class 4
UUID) <xref target="RFC4122"/>, or a URI <xref target="STD66"/>.</t>
          </section>
          <section anchor="sec-tag-version">
            <name>Tag Version</name>
            <sourcecode type="cddl"><![CDATA[
tag-version-type = uint .default 0
]]></sourcecode>
            <t>Tag Version is an integer value that indicates the specific release revision of
the tag.  Typically, the initial value of this field is set to 0 and the value
is increased for subsequent tags produced for the same module release.  This
value allows a CoMID tag producer to correct an incorrect tag previously
released without indicating a change to the underlying module the tag
represents. For example, the tag version could be changed to add new metadata,
to correct a broken link, to add a missing reference value, etc. When producing
a revised tag, the new tag-version value MUST be greater than the old
tag-version value.</t>
          </section>
        </section>
        <section anchor="sec-comid-entity">
          <name>Entities</name>
          <sourcecode type="cddl"><![CDATA[
comid-entity-map =
  entity-map<$comid-role-type-choice, $$comid-entity-map-extension>
]]></sourcecode>
          <t>The CoMID Entity is an instantiation of <tt>entity-map</tt> (<xref target="sec-common-entity"/>) using a <tt>$comid-role-type-choice</tt>.</t>
          <t>The <tt>$$comid-entity-map-extension</tt> extension socket is empty in this
specification.</t>
          <sourcecode type="cddl"><![CDATA[
$comid-role-type-choice /= &(tag-creator: 0)
$comid-role-type-choice /= &(creator: 1)
$comid-role-type-choice /= &(maintainer: 2)
]]></sourcecode>
          <t>The roles defined for a CoMID entity are:</t>
          <ul spacing="normal">
            <li>
              <t><tt>tag-creator</tt> (value 0): creator of the CoMID tag.</t>
            </li>
            <li>
              <t><tt>creator</tt> (value 1): original maker of the module described by the CoMID tag.</t>
            </li>
            <li>
              <t><tt>maintainer</tt> (value 2): an entity making changes to the module described by the CoMID tag.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-comid-linked-tag">
          <name>Linked Tag</name>
          <t>The linked tag map represents a typed relationship between the embedding CoMID
tag (the source) and another CoMID tag (the target).</t>
          <sourcecode type="cddl"><![CDATA[
linked-tag-map = {
  &(linked-tag-id: 0) => $tag-id-type-choice
  &(tag-rel: 1) => $tag-rel-type-choice
}
]]></sourcecode>
          <t>The following describes each member of the <tt>tag-identity-map</tt>.</t>
          <ul spacing="normal">
            <li>
              <t><tt>linked-tag-id</tt> (index 0): Unique identifier for the target tag.
See <xref target="sec-tag-id"/>.</t>
            </li>
            <li>
              <t><tt>tag-rel</tt> (index 1): the kind of relation linking the source tag to the
target identified by <tt>linked-tag-id</tt>.</t>
            </li>
          </ul>
          <sourcecode type="cddl"><![CDATA[
$tag-rel-type-choice /= &(supplements: 0)
$tag-rel-type-choice /= &(replaces: 1)
]]></sourcecode>
          <t>The relations defined in this specification are:</t>
          <ul spacing="normal">
            <li>
              <t><tt>supplements</tt> (value 0): the source tag provides additional information about
the module described in the target tag.</t>
            </li>
            <li>
              <t><tt>replaces</tt> (value 1): the source tag corrects erroneous information
contained in the target tag.  The information in the target MUST be
disregarded.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-comid-triples">
          <name>Triples</name>
          <t>The <tt>triples-map</tt> contains all the CoMID triples broken down per category.  Not
all category need to be present but at least one category MUST be present and
contain at least one entry.</t>
          <t>In most cases, the supply chain entity that is responsible for providing a triple (i.e., Reference Values or Endorsed Values) is by default the CoRIM signer.
The signer of a triple is said to be its <em>authority</em>.
However, multiple authorities may be involved in signing triples.
See <xref target="STD96"/>.
Consequently, authority may differ for search criteria.
See <xref target="sec-measurements"/>.</t>
          <sourcecode type="cddl"><![CDATA[
triples-map = non-empty<{
  ? &(reference-triples: 0) =>
    [ + reference-triple-record ]
  ? &(endorsed-triples: 1) =>
    [ + endorsed-triple-record ]
  ? &(identity-triples: 2) =>
    [ + identity-triple-record ]
  ? &(attest-key-triples: 3) =>
    [ + attest-key-triple-record ]
  ? &(dependency-triples: 4) =>
    [ + domain-dependency-triple-record ]
  ? &(membership-triples: 5) =>
    [ + domain-membership-triple-record ]
  ? &(coswid-triples: 6) =>
    [ + coswid-triple-record ]
  ? &(conditional-endorsement-series-triples: 8) =>
    [ + conditional-endorsement-series-triple-record ]
  ? &(conditional-endorsement-triples: 10) =>
    [ + conditional-endorsement-triple-record ]
  * $$triples-map-extension
}>
]]></sourcecode>
          <t>The following describes each member of the <tt>triples-map</tt>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>reference-triples</tt> (index 0): Triples containing reference values.
Described in <xref target="sec-comid-triple-refval"/>.</t>
            </li>
            <li>
              <t><tt>endorsed-triples</tt> (index 1): Triples containing endorsed values.
Described in <xref target="sec-comid-triple-endval"/>.</t>
            </li>
            <li>
              <t><tt>identity-triples</tt> (index 2): Triples containing identity credentials.
Described in <xref target="sec-comid-triple-identity"/>.</t>
            </li>
            <li>
              <t><tt>attest-key-triples</tt> (index 3): Triples containing verification keys associated with attesting environments.
Described in <xref target="sec-comid-triple-attest-key"/>.</t>
            </li>
            <li>
              <t><tt>dependency-triples</tt> (index 4): Triples describing trust relationships between domains.
Described in <xref target="sec-comid-triple-domain-dependency"/>.</t>
            </li>
            <li>
              <t><tt>membership-triples</tt> (index 5): Triples describing topological relationships between (sub-)modules.
Described in <xref target="sec-comid-triple-domain-membership"/>.</t>
            </li>
            <li>
              <t><tt>coswid-triples</tt> (index 6): Triples associating modules with existing CoSWID tags.
Described in <xref target="sec-comid-triple-coswid"/>.</t>
            </li>
            <li>
              <t><tt>conditional-endorsement-series-triples</tt> (index 8): Triples describing a series of
conditional Endorsements based on the acceptance of a stateful environment.
Described in <xref target="sec-comid-triple-cond-series"/>.</t>
            </li>
            <li>
              <t><tt>conditional-endorsement-triples</tt> (index 10): Triples describing a series of
Endorsement that are applicable based on the acceptance of a series of
stateful environment records.
Described in <xref target="sec-comid-triple-cond-endors"/>.</t>
            </li>
          </ul>
          <section anchor="environments">
            <name>Environments</name>
            <t>An <tt>environment-map</tt> may be used to represent a whole Attester, an Attesting
Environment, or a Target Environment.  The exact semantic depends on the
context (triple) in which the environment is used.</t>
            <t>An environment is named after a class, instance or group identifier (or a
combination thereof).</t>
            <t>An environment MUST be globally unique.
The combination of values within <tt>class-map</tt> must combine to form a globally unique identifier.</t>
            <sourcecode type="cddl"><![CDATA[
environment-map = non-empty<{
  ? &(class: 0) => class-map
  ? &(instance: 1) => $instance-id-type-choice
  ? &(group: 2) => $group-id-type-choice
}>
]]></sourcecode>
            <t>The following describes each member of the <tt>environment-map</tt>:</t>
            <ul spacing="normal">
              <li>
                <t><tt>class</tt> (index 0): Contains "class" attributes associated with the module.
Described in <xref target="sec-comid-class"/>.</t>
              </li>
              <li>
                <t><tt>instance</tt> (index 1): Contains a unique identifier of a module's instance.
Described in <xref target="sec-comid-instance"/>.</t>
              </li>
              <li>
                <t><tt>group</tt> (index 2): identifier for a group of instances, e.g., if an
anonymization scheme is used.
Described in <xref target="sec-comid-group"/>.</t>
              </li>
            </ul>
            <section anchor="sec-comid-class">
              <name>Environment Class</name>
              <t>The Class name consists of class attributes that distinguish the class of
environment from other classes. The class attributes include class-id, vendor,
model, layer, and index. The CoMID author determines which attributes are
needed.</t>
              <sourcecode type="cddl"><![CDATA[
class-map = non-empty<{
  ? &(class-id: 0) => $class-id-type-choice
  ? &(vendor: 1) => tstr
  ? &(model: 2) => tstr
  ? &(layer: 3) => uint
  ? &(index: 4) => uint
}>

$class-id-type-choice /= tagged-oid-type
$class-id-type-choice /= tagged-uuid-type
$class-id-type-choice /= tagged-bytes
]]></sourcecode>
              <t>The following describes each member of the <tt>class-map</tt>:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>class-id</tt> (index 0): Identifies the environment via a well-known identifier.
Typically, <tt>class-id</tt> is an object identifier (OID) variable-length opaque byte string (<xref target="sec-common-tagged-bytes"/>) or universally unique identifier (UUID).
Use of this attribute is preferred.</t>
                </li>
                <li>
                  <t><tt>vendor</tt> (index 1): Identifies the entity responsible for choosing values for
the other class attributes that do not already have naming authority.</t>
                </li>
                <li>
                  <t><tt>model</tt> (index 2): Describes a product, generation, and family.  If
populated, vendor MUST also be populated.</t>
                </li>
                <li>
                  <t><tt>layer</tt> (index 3): Is used to capture where in a sequence the environment
exists. For example, the order in which bootstrap code is executed may have
security relevance.</t>
                </li>
                <li>
                  <t><tt>index</tt> (index 4): Is used when there are clones (i.e., multiple instances)
of the same class of environment.  Each clone is given a different index
value to disambiguate it from the other clones. For example, given a chassis
with several network interface controllers (NIC), each NIC can be given a
different index value.</t>
                </li>
              </ul>
            </section>
            <section anchor="sec-comid-instance">
              <name>Environment Instance</name>
              <t>An instance carries a unique identifier that is reliably bound to a Target Environment
that is an instance of the Attester.</t>
              <t>The types defined for an instance identifier are CBOR tagged expressions of
UEID, UUID, variable-length opaque byte string (<xref target="sec-common-tagged-bytes"/>), or cryptographic key identifier.</t>
              <sourcecode type="cddl"><![CDATA[
$instance-id-type-choice /= tagged-ueid-type
$instance-id-type-choice /= tagged-uuid-type
$instance-id-type-choice /= $crypto-key-type-choice
$instance-id-type-choice /= tagged-bytes
]]></sourcecode>
            </section>
            <section anchor="sec-comid-group">
              <name> Environment Group</name>
              <t>A group carries a unique identifier that is reliably bound to a group of
Attesters, for example when a number of Attester are hidden in the same
anonymity set.</t>
              <t>The types defined for a group identified are UUID and variable-length opaque byte string (<xref target="sec-common-tagged-bytes"/>).</t>
              <sourcecode type="cddl"><![CDATA[
$group-id-type-choice /= tagged-uuid-type
$group-id-type-choice /= tagged-bytes
]]></sourcecode>
            </section>
            <section anchor="sec-measurements">
              <name>Measurements</name>
              <t>Measurements can be of a variety of things including software, firmware,
configuration files, read-only memory, fuses, IO ring configuration, partial
reconfiguration regions, etc. Measurements comprise raw values, digests, or
status information.</t>
              <t>An environment has one or more measurable elements. Each element can have a
dedicated measurement or multiple elements could be combined into a single
measurement. Measurements can have class, instance or group scope.  This is
typically determined by the triple's environment.</t>
              <t>Class measurements apply generally to all the Attesters in a given class.</t>
              <t>Instance measurements apply to a specific Attester instance.  Environments
identified by a class identifier have measurements that are common to the
class. Environments identified by an instance identifier have measurements that
are specific to that instance.</t>
              <t>An environment may have multiple measured elements.
Measured elements are distinguished from each other by measurement keys.
Measurement keys may be used to disambiguate measurements of the same type originating from different elements.</t>
              <t>Triples that have search conditions may specify authority as matching criteria by populating <tt>authorized-by</tt>.</t>
              <sourcecode type="cddl"><![CDATA[
measurement-map = {
  ? &(mkey: 0) => $measured-element-type-choice
  &(mval: 1) => measurement-values-map
  ? &(authorized-by: 2) => [ + $crypto-key-type-choice ]
}
]]></sourcecode>
              <t>The following describes each member of the <tt>measurement-map</tt>:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>mkey</tt> (index 0): An optional measurement key.
 Described in <xref target="sec-comid-mkey"/>.
 A <tt>measurement-map</tt> without an <tt>mkey</tt> is said to be anonymous.</t>
                </li>
                <li>
                  <t><tt>mval</tt> (index 1): The measurements associated with the environment.
 Described in <xref target="sec-comid-mval"/>.</t>
                </li>
                <li>
                  <t><tt>authorized-by</tt> (index 2): The cryptographic identity of the entity (individual or organization) that is
 the designated authority for measurement Claims.
 For example, the signer of a CoMID triple.
 See <xref target="sec-crypto-keys"/>.
 An entity is authoritative when it makes Claims that are inside its area of
competence.</t>
                </li>
              </ul>
              <section anchor="sec-comid-mkey">
                <name>Measurement Keys</name>
                <t>Measurement keys are locally scoped extensible identifiers.
The initial types defined are OID, UUID, uint, and tstr.
<tt>mkey</tt> may be necessary to disambiguate multiple measurements of the same type or to distinguish multiple measured elements within the same environment.
A single anonymous <tt>measurement-map</tt> is allowed within the same environment.
Two or more measurement-map entries within the same environment MUST populate <tt>mkey</tt>.</t>
                <sourcecode type="cddl"><![CDATA[
$measured-element-type-choice /= tagged-oid-type
$measured-element-type-choice /= tagged-uuid-type
$measured-element-type-choice /= uint
$measured-element-type-choice /= tstr
]]></sourcecode>
              </section>
              <section anchor="sec-comid-mval">
                <name>Measurement Values</name>
                <t>A <tt>measurement-values-map</tt> contains measurements associated with a certain
environment. Depending on the context (triple) in which they are found,
elements in a <tt>measurement-values-map</tt> can represent class or instance
measurements. Note that some of the elements have instance scope only.</t>
                <t>Measurement values may support use cases beyond Verifier appraisal.
Typically, a Relying Party determines if additional processing is desirable
and whether the processing is applied by the Verifier or the Relying Party.</t>
                <sourcecode type="cddl"><![CDATA[
measurement-values-map = non-empty<{
  ? &(version: 0) => version-map
  ? &(svn: 1) => svn-type-choice
  ? &(digests: 2) => digests-type
  ? &(flags: 3) => flags-map
  ? (
      &(raw-value: 4) => $raw-value-type-choice,
      ? &(raw-value-mask: 5) => raw-value-mask-type
    )
  ? &(mac-addr: 6) => mac-addr-type-choice
  ? &(ip-addr: 7) =>  ip-addr-type-choice
  ? &(serial-number: 8) => text
  ? &(ueid: 9) => ueid-type
  ? &(uuid: 10) => uuid-type
  ? &(name: 11) => text
  ? &(cryptokeys: 13) => [ + $crypto-key-type-choice ]
  ? &(integrity-registers: 14) => integrity-registers
  * $$measurement-values-map-extension
}>
]]></sourcecode>
                <t>The following describes each member of the <tt>measurement-values-map</tt>.</t>
                <ul spacing="normal">
                  <li>
                    <t><tt>version</tt> (index 0): Typically changes whenever the measured environment is updated.
Described in <xref target="sec-comid-version"/>.</t>
                  </li>
                  <li>
                    <t><tt>svn</tt> (index 1): The security version number typically changes only when a security relevant change is made to the measured environment.
Described in <xref target="sec-comid-svn"/>.</t>
                  </li>
                  <li>
                    <t><tt>digests</tt> (index 2): Contains the digest(s) of the measured environment
together with the respective hash algorithm used in the process.
It uses the <tt>digests-type</tt>.
Described in <xref target="sec-common-hash-entry"/>.</t>
                  </li>
                  <li>
                    <t><tt>flags</tt> (index 3): Describes security relevant operational modes.
For example, whether the environment is in a debug mode, recovery mode, not fully
configured, not secure, not replay protected or not integrity protected.
The <tt>flags</tt> field indicates which operational modes are currently associated with measured environment.
Described in <xref target="sec-comid-flags"/>.</t>
                  </li>
                  <li>
                    <t><tt>raw-value</tt> (index 4): Contains the actual (not hashed) value of the element.
An optional <tt>raw-value-mask</tt> (index 5) indicates which bits in the
<tt>raw-value</tt> field are relevant for verification. A mask of all ones ("1")
means all bits in the <tt>raw-value</tt> field are relevant. Multiple values could
be combined to create a single <tt>raw-value</tt> attribute. The vendor determines
how to pack multiple values into a single <tt>raw-value</tt> structure. The same
packing format is used when collecting Evidence so that Reference Values and
collected values are bit-wise comparable. The vendor determines the encoding
of <tt>raw-value</tt> and the corresponding <tt>raw-value-mask</tt>.</t>
                  </li>
                  <li>
                    <t><tt>mac-addr</tt> (index 6): A EUI-48 or EUI-64 MAC address associated with the measured environment.
Described in <xref target="sec-comid-address-types"/>.</t>
                  </li>
                  <li>
                    <t><tt>ip-addr</tt> (index 7): An IPv4 or IPv6 address associated with the measured environment.
Described in <xref target="sec-comid-address-types"/>.</t>
                  </li>
                  <li>
                    <t><tt>serial-number</tt> (index 8): A text string representing the product serial number.</t>
                  </li>
                  <li>
                    <t><tt>ueid</tt> (index 9): UEID associated with the measured environment.
Described in <xref target="sec-common-ueid"/>.</t>
                  </li>
                  <li>
                    <t><tt>uuid</tt> (index 10): UUID associated with the measured environment.
Described in <xref target="sec-common-uuid"/>.</t>
                  </li>
                  <li>
                    <t><tt>name</tt> (index 11): a name associated with the measured environment.</t>
                  </li>
                  <li>
                    <t><tt>cryptokeys</tt> (index 13): identifies cryptographic keys that are protected by the Target Environment
See <xref target="sec-crypto-keys"/> for the supported formats.
An Attesting Environment determines that keys are protected as part of Claims collection.
Appraisal verifies that, for each value in <tt>cryptokeys</tt>, there is a matching Reference Value entry.
Matching is described in <xref target="sec-cryptokeys-matching"/>.</t>
                  </li>
                  <li>
                    <t><tt>integrity-registers</tt> (index 14): A group of one or more named measurements associated with the environment.  Described in <xref target="sec-comid-integrity-registers"/>.</t>
                  </li>
                </ul>
              </section>
              <section anchor="sec-comid-version">
                <name>Version</name>
                <t>A <tt>version-map</tt> contains details about the versioning of a measured
environment.</t>
                <sourcecode type="cddl"><![CDATA[
version-map = {
  &(version: 0) => text
  ? &(version-scheme: 1) => $version-scheme
}
]]></sourcecode>
                <t>The following describes each member of the <tt>version-map</tt>:</t>
                <ul spacing="normal">
                  <li>
                    <t><tt>version</tt> (index 0): the version string</t>
                  </li>
                  <li>
                    <t><tt>version-scheme</tt> (index 1): an optional indicator of the versioning
convention used in the <tt>version</tt> attribute.
Defined in <xref section="4.1" sectionFormat="of" target="RFC9393"/>.
The CDDL is copied below for convenience.</t>
                  </li>
                </ul>
                <sourcecode type="cddl"><![CDATA[
$version-scheme /= &(multipartnumeric: 1)
$version-scheme /= &(multipartnumeric-suffix: 2)
$version-scheme /= &(alphanumeric: 3)
$version-scheme /= &(decimal: 4)
$version-scheme /= &(semver: 16384)
$version-scheme /= int / text
]]></sourcecode>
              </section>
              <section anchor="sec-comid-svn">
                <name>Security Version Number</name>
                <t>The following details the security version number (<tt>svn</tt>) and the minimum security version number (<tt>min-svn</tt>) statements.
A security version number is used to track changes to an object (e.g., a secure enclave, a boot loader executable, a configuration file, etc.) that are security relevant.
Rollback of a security relevant change is considered to be an attack vector; as such, security version numbers cannot be decremented.
If a security relevant flaw is discovered in the Target Environment and is subsequently fixed, the <tt>svn</tt> value is typically incremented.</t>
                <t>There may be several revisions to a Target Environment that are in use at the same time.
If there are multiple revisions with different <tt>svn</tt> values, the revision with a lower <tt>svn</tt> value may
or may not be in a security critical condition. The Endorser may provide a minimum security version number
using <tt>min-svn</tt> to specify the lowest <tt>svn</tt> value that is acceptable.
<tt>svn</tt> values that are equal to or greater than <tt>min-svn</tt> do not signal a security critical condition.
<tt>svn</tt> values that are below <tt>min-svn</tt> are in a security critical condition that is unsafe for normal use.</t>
                <t>The <tt>svn-type-choice</tt> measurement consists of a <tt>tagged-svn</tt> or <tt>tagged-min-svn</tt> value.
The <tt>tagged-svn</tt> and <tt>tagged-min-svn</tt> tags are CBOR tags with the values <tt>#6.552</tt> and <tt>#6.553</tt> respectively.</t>
                <sourcecode type="cddl"><![CDATA[
svn-type = uint
svn = svn-type
min-svn = svn-type
tagged-svn = #6.552(svn)
tagged-min-svn = #6.553(min-svn)
svn-type-choice = svn / tagged-svn / tagged-min-svn
]]></sourcecode>
              </section>
              <section anchor="sec-comid-flags">
                <name>Flags</name>
                <t>The <tt>flags-map</tt> measurement describes a number of boolean operational modes.
If a <tt>flags-map</tt> value is not specified, then the operational mode is unknown.</t>
                <sourcecode type="cddl"><![CDATA[
flags-map = {
  ? &(is-configured: 0) => bool
  ? &(is-secure: 1) => bool
  ? &(is-recovery: 2) => bool
  ? &(is-debug: 3) => bool
  ? &(is-replay-protected: 4) => bool
  ? &(is-integrity-protected: 5) => bool
  ? &(is-runtime-meas: 6) => bool
  ? &(is-immutable: 7) => bool
  ? &(is-tcb: 8) => bool
  ? &(is-confidentiality-protected: 9) => bool
  * $$flags-map-extension
}
]]></sourcecode>
                <t>The following describes each member of the <tt>flags-map</tt>:</t>
                <ul spacing="normal">
                  <li>
                    <t><tt>is-configured</tt> (index 0): If the flag is true, the measured environment is fully configured for normal operation.</t>
                  </li>
                  <li>
                    <t><tt>is-secure</tt> (index 1): If the flag is true, the measured environment's configurable
security settings are fully enabled.</t>
                  </li>
                  <li>
                    <t><tt>is-recovery</tt> (index 2): If the flag is true, the measured environment is in recovery
mode.</t>
                  </li>
                  <li>
                    <t><tt>is-debug</tt> (index 3): If the flag is true, the measured environment is in a debug enabled
mode.</t>
                  </li>
                  <li>
                    <t><tt>is-replay-protected</tt> (index 4): If the flag is true, the measured environment is
protected from replay by a previous image that differs from the current image.</t>
                  </li>
                  <li>
                    <t><tt>is-integrity-protected</tt> (index 5): If the flag is true, the measured environment is
protected from unauthorized update.</t>
                  </li>
                  <li>
                    <t><tt>is-runtime-meas</tt> (index 6): If the flag is true, the measured environment is measured
after being loaded into memory.</t>
                  </li>
                  <li>
                    <t><tt>is-immutable</tt> (index 7): If the flag is true, the measured environment is immutable.</t>
                  </li>
                  <li>
                    <t><tt>is-tcb</tt> (index 8): If the flag is true, the measured environment is a trusted
computing base.</t>
                  </li>
                  <li>
                    <t><tt>is-confidentiality-protected</tt> (index 9): If the flag is true, the measured environment
is confidentiality protected. For example, if the measured environment consists of memory,
the sensitive values in memory are encrypted.</t>
                  </li>
                </ul>
              </section>
              <section anchor="sec-comid-raw-value-types">
                <name>Raw Values Types</name>
                <t>Raw value measurements are typically vendor defined values that are checked by Verifiers
for consistency only, since the security relevance is opaque to Verifiers.</t>
                <t>There are two parts to a <tt>raw-value-group</tt>, a measurement and an optional mask.
The default raw value measurement is of type <tt>tagged-bytes</tt> (<xref target="sec-common-tagged-bytes"/>).
Additional raw value types can be defined, but must be CBOR tagged so that parsers can distinguish
between the various semantics of type values.</t>
                <t>The mask is applied by the Verifier as part of appraisal.
Only the raw value bits with corresponding TRUE mask bits are compared during appraisal.</t>
                <t>When a new raw value type is defined, the convention for applying the mask is also defined.
Typically, a CoRIM profile is used to define new raw values and mask semantics.</t>
                <sourcecode type="cddl"><![CDATA[
$raw-value-type-choice /= tagged-bytes

raw-value-mask-type = bytes
]]></sourcecode>
              </section>
              <section anchor="sec-comid-address-types">
                <name>Address Types</name>
                <t>The types or associating addressing information to a measured environment are:</t>
                <sourcecode type="cddl"><![CDATA[
ip-addr-type-choice = ip4-addr-type / ip6-addr-type
ip4-addr-type = bytes .size 4
ip6-addr-type = bytes .size 16

mac-addr-type-choice = eui48-addr-type / eui64-addr-type
eui48-addr-type = bytes .size 6
eui64-addr-type = bytes .size 8
]]></sourcecode>
              </section>
            </section>
            <section anchor="sec-crypto-keys">
              <name>Crypto Keys</name>
              <t>A cryptographic key can be one of the following formats:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>tagged-pkix-base64-key-type</tt>: PEM encoded SubjectPublicKeyInfo.
Defined in <xref section="13" sectionFormat="of" target="RFC7468"/>.</t>
                </li>
                <li>
                  <t><tt>tagged-pkix-base64-cert-type</tt>: PEM encoded X.509 public key certificate.
Defined in <xref section="5" sectionFormat="of" target="RFC7468"/>.</t>
                </li>
                <li>
                  <t><tt>tagged-pkix-base64-cert-path-type</tt>: X.509 certificate chain created by the
concatenation of as many PEM encoded X.509 certificates as needed.  The
certificates MUST be concatenated in order so that each directly certifies
the one preceding.</t>
                </li>
                <li>
                  <t><tt>tagged-cose-key-type</tt>: CBOR encoded COSE_Key or COSE_KeySet.
Defined in <xref section="7" sectionFormat="of" target="STD96"/>.</t>
                </li>
                <li>
                  <t><tt>tagged-pkix-asn1der-cert-type</tt>: a <tt>bstr</tt> of ASN.1 DER encoded X.509 public key certificate.
Defined in <xref section="4" sectionFormat="of" target="RFC5280"/>.</t>
                </li>
              </ul>
              <t>A cryptographic key digest can be one of the following formats:</t>
              <ul spacing="normal">
                <li>
                  <t><tt>tagged-thumbprint-type</tt>: a <tt>digest</tt> of a raw public key.
The digest value may be used to find the public key if contained in a lookup table.</t>
                </li>
                <li>
                  <t><tt>tagged-cert-thumbprint-type</tt>: a <tt>digest</tt> of a certificate.
The digest value may be used to find the certificate if contained in a lookup table.</t>
                </li>
                <li>
                  <t><tt>tagged-cert-path-thumbprint-type</tt>: a <tt>digest</tt> of a certification path.
The digest value may be used to find the certificate path if contained in a lookup table.</t>
                </li>
                <li>
                  <t><tt>tagged-bytes</tt>: a key identifier with no prescribed construction method.</t>
                </li>
              </ul>
              <sourcecode type="cddl"><![CDATA[
$crypto-key-type-choice /= tagged-pkix-base64-key-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-path-type
$crypto-key-type-choice /= tagged-cose-key-type
$crypto-key-type-choice /= tagged-thumbprint-type
$crypto-key-type-choice /= tagged-cert-thumbprint-type
$crypto-key-type-choice /= tagged-cert-path-thumbprint-type
$crypto-key-type-choice /= tagged-pkix-asn1der-cert-type
$crypto-key-type-choice /= tagged-bytes

tagged-pkix-base64-key-type = #6.554(tstr)
tagged-pkix-base64-cert-type = #6.555(tstr)
tagged-pkix-base64-cert-path-type = #6.556(tstr)
tagged-thumbprint-type = #6.557(digest)
tagged-cose-key-type = #6.558(COSE_KeySet / COSE_Key)
tagged-cert-thumbprint-type = #6.559(digest)
tagged-cert-path-thumbprint-type = #6.561(digest)
tagged-pkix-asn1der-cert-type = #6.562(bstr)
]]></sourcecode>
            </section>
            <section anchor="sec-comid-integrity-registers">
              <name>Integrity Registers</name>
              <t>An Integrity Registers map groups together one or more measured "objects".
Each measured object has a unique identifier and one or more associated digests.
Identifiers are either unsigned integers or text strings and their type matters, e.g., unsigned integer 5 is distinct from the text string "5".
The digests use <tt>digests-type</tt> semantics (<xref target="sec-common-hash-entry"/>).</t>
              <sourcecode type="cddl"><![CDATA[
integrity-register-id-type-choice = uint / text

integrity-registers = {
  + integrity-register-id-type-choice => digests-type
}
]]></sourcecode>
              <t>All the measured objects in an Integrity Registers map are explicitly named and the order in which they appear in the map is irrelevant.
Any digests associated with a measured object represent an acceptable state for the object.
Therefore, if multiple digests are provided, the acceptable state is their cross-product.
For example, given the following Integrity Registers:</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ [ 0, h'00' ] ],
  1: [ [ 0, h'11' ], [ 1, h'12' ] ]
}
]]></sourcecode>
              <t>then both</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ 0, h'00' ],
  1: [ 0, h'11' ]
}
]]></sourcecode>
              <t>and</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ 0, h'00' ],
  1: [ 1, h'12' ]
}
]]></sourcecode>
              <t>are acceptable states.</t>
              <t>Integrity Registers can be used to model the PCRs in a TPM or vTPM, in which case the identifier is the register index, or other kinds of vendor-specific measured objects.</t>
            </section>
            <section anchor="sec-comid-domain-type">
              <name>Domain Types</name>
              <t>A domain is a context for bundling a collection of related environments and their measurements.</t>
              <t>The following CDDL describes domain type choices.</t>
              <sourcecode type="cddl"><![CDATA[
$domain-type-choice /= uint
$domain-type-choice /= text
$domain-type-choice /= tagged-uuid-type
$domain-type-choice /= tagged-oid-type
]]></sourcecode>
              <t>The <tt>uint</tt> and <tt>text</tt> types MUST NOT be interpreted in a global scope.</t>
            </section>
          </section>
          <section anchor="sec-comid-triple-refval">
            <name>Reference Values Triple</name>
            <t><cref anchor="issue">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/310</t>
            <t>The Reference Values Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
reference-triple-record = [
  ref-env: environment-map
  ref-claims: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>reference-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>ref-env</tt>: Search criterion that locates an Evidence environment that matches the reference environment.</t>
              </li>
              <li>
                <t><tt>ref-claims</tt>: Search criteria that locates the Evidence measurements that match the reference Claims.</t>
              </li>
            </ul>
            <t>To process <tt>reference-triple-record</tt> both the <tt>ref-env</tt> and <tt>ref-claims</tt> criteria are compared with Evidence entries.
If the search criteria are satisfied, the matching entry is re-asserted, except with the Reference Value Provider's authority.
By re-asserting Evidence using the RVP's authority, the Verifier can avoid mixing Reference Values (reference state) with Evidence (actual state).
See <xref target="I-D.ietf-rats-endorsements"/>.
Re-asserted Evidence using RVP authority is said to be "corroborated".</t>
          </section>
          <section anchor="sec-comid-triple-endval">
            <name>Endorsed Values Triple</name>
            <t><cref anchor="issue_1">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/310</t>
            <t>The Endorsed Values Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
endorsed-triple-record = [
  condition: environment-map
  endorsement: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>endorsed-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>condition</tt>: Search criterion that locates an Evidence, corroborated Evidence, or Endorsements environment.</t>
              </li>
              <li>
                <t><tt>endorsement</tt>: Additional Endorsement Claims.</t>
              </li>
            </ul>
            <t>To process a <tt>endorsed-triple-record</tt> the <tt>condition</tt> is compared with existing Evidence, corroborated Evidence, and Endorsements.
If the search criterion is satisfied, the <tt>endorsement</tt> Claims are combined with the <tt>condition</tt> <tt>environment-map</tt> to form a new (actual state) entry.
The new entry is added to the existing set of entries using the Endorser's authority.</t>
          </section>
          <section anchor="sec-comid-triple-cond-endors">
            <name>Conditional Endorsement Triple</name>
            <t><cref anchor="issue_2">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/310</t>
            <t>The Conditional Endorsement Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
conditional-endorsement-triple-record = [
  conditions: [ + stateful-environment-record ]
  endorsements: [ + endorsed-triple-record ]
]

stateful-environment-record = [
  environment: environment-map,
  claims-list: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>conditional-endorsement-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>conditions</tt>: Search criteria that locates Evidence, corroborated Evidence, or Endorsements.</t>
              </li>
              <li>
                <t><tt>endorsements</tt>: Additional Endorsements.</t>
              </li>
            </ul>
            <t>To process a <tt>conditional-endorsement-triple-record</tt> the <tt>conditions</tt> are compared with existing Evidence, corroborated Evidence, and Endorsements.
If the search criteria are satisfied, the <tt>endorsements</tt> entries are asserted with the Endorser's authority as new Endorsements.</t>
          </section>
          <section anchor="sec-comid-triple-cond-series">
            <name>Conditional Endorsement Series Triple</name>
            <t><cref anchor="issue_3">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/310</t>
            <t>The Conditional Endorsement Series Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
conditional-endorsement-series-triple-record = [
  condition: stateful-environment-record
  series: [ + conditional-series-record ]
]

conditional-series-record = [
  selection: [ + measurement-map]
  addition: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>conditional-endorsement-series-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>condition</tt>: Search criteria that locates Evidence, corroborated Evidence, or Endorsements.</t>
              </li>
              <li>
                <t><tt>series</tt>: A set of selection-addition tuples.</t>
              </li>
            </ul>
            <t>The <tt>conditional-series-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>selection</tt>: Search criteria that locates Evidence, corroborated Evidence, or Endorsements from the <tt>condition</tt> result.</t>
              </li>
              <li>
                <t><tt>addition</tt>: Additional Endorsements if the <tt>selection</tt> criteria are satisfied.</t>
              </li>
            </ul>
            <t>To process a <tt>conditional-endorsement-series-record</tt> the <tt>conditions</tt> are compared with existing Evidence, corroborated Evidence, and Endorsements.
If the search criteria are satisfied, the <tt>series</tt> tuples are processed.</t>
            <t>The <tt>series</tt> array contains a list of <tt>conditional-series-record</tt> entries.</t>
            <t>For each <tt>series</tt> entry, if the <tt>selection</tt> criteria matches an entry found in the <tt>condition</tt> result, the <tt>series</tt> <tt>addition</tt> is combined with the <tt>environment-map</tt> from the <tt>condition</tt> result to form a new Endorsement entry.
The new entry is added to the existing set of Endorsements.</t>
            <t>The first <tt>series</tt> entry that successfully matches the <tt>selection</tt> criteria terminates <tt>series</tt> processing.</t>
          </section>
          <section anchor="sec-comid-triple-identity">
            <name>Device Identity Triple</name>
            <t>A Device Identity triple record relates one or more cryptographic keys to a device identity.
The cryptographic keys are bound to or associated with a Target Environment that is within the device.
The device identifier may be part of the Target Environment's <tt>environment-map</tt> or may be part of some other device identity credential, such as a certificate.
The cryptographic keys are expected to be used to authenticate the device.</t>
            <t>Device Identity triples instruct a Verifier to perform key validation checks, such as revocation, certificate path construction &amp; verification, or proof of possession.
The Verifier SHOULD verify keys contained in Device Identity triples.</t>
            <t>A Device Identity triple endorses that the keys were securely provisioned to the named Target Environment.
Additional details about how a key was provisioned or is protected may be asserted using Endorsements such as <tt>endorsed-triples</tt>.</t>
            <t>Depending on key formatting, as defined by <tt>$crypto-key-type-choice</tt>, the Verifier may take different steps to locate and verify the key.</t>
            <t>If a key has usage restrictions that limit its use to device identity challenges, Verifiers SHOULD check for key use that violates usage restrictions.</t>
            <t>Verification of a key, including its use restrictions, MAY produce Claims that are added to the ACS.
Alternatively, Verifiers MAY report key verification results as part of an error reporting function.</t>
            <sourcecode type="cddl"><![CDATA[
identity-triple-record = [
  environment-map
  [ + $crypto-key-type-choice ]
]
]]></sourcecode>
          </section>
          <section anchor="sec-comid-triple-attest-key">
            <name>Attest Key Triple</name>
            <t>An Attest Key triple record relates one or more cryptographic keys to an Attesting Environment.
The cryptographic keys are wielded by an Attesting Environment that collects measurements from a Target Environment.
The cryptographic keys sign Evidence.</t>
            <t>Attest Key triples instruct a Verifier to perform key validation checks, such as revocation, certificate path construction &amp; verification, or proof of possession.
The Verifier SHOULD verify keys contained in Attest Key triples.</t>
            <t>Attest Key triples endorse that the keys were securely provisioned to the named (identified via an <tt>environment-map</tt>) Attesting Environment.
Additional details about how a key was provisioned or is protected may be asserted using Endorsements such as <tt>endorsed-triples</tt>.</t>
            <t>Depending on key formatting, as defined by <tt>$crypto-key-type-choice</tt>, the Verifier may take different steps to locate and verify the key.
If a key has usage restrictions that limits its use to Evidence signing, Verifiers SHOULD check for key use that violates usage restrictions.</t>
            <t>Verification of a key, including its use restrictions, MAY produce Claims that are added to the ACS.
Alternatively, Verifiers MAY report key verification results as part of an error reporting function.</t>
            <sourcecode type="cddl"><![CDATA[
attest-key-triple-record = [
  environment-map
  [ + $crypto-key-type-choice ]
]
]]></sourcecode>
          </section>
          <section anchor="sec-comid-triple-domain-dependency">
            <name>Domain Dependency Triple</name>
            <t>A Domain Dependency triple defines trust dependencies between measurement
sources.  The subject identifies a domain (<xref target="sec-comid-domain-type"/>) that has
a predicate relationship to the object containing one or more dependent
domains.  Dependency means the subject domain’s trustworthiness properties rely
on the object domain(s) trustworthiness having been established before the
trustworthiness properties of the subject domain exists.</t>
            <sourcecode type="cddl"><![CDATA[
domain-dependency-triple-record = [
  $domain-type-choice
  [ + $domain-type-choice ]
]
]]></sourcecode>
          </section>
          <section anchor="sec-comid-triple-domain-membership">
            <name>Domain Membership Triple</name>
            <t>A Domain Membership triple assigns domain membership to environments.  The
subject identifies a domain (<xref target="sec-comid-domain-type"/>) that has a predicate
relationship to the object containing one or more environments.  Endorsed
environments (<xref target="sec-comid-triple-endval"/>) membership is conditional upon
successful matching of Reference Values (<xref target="sec-comid-triple-refval"/>) to
Evidence.</t>
            <sourcecode type="cddl"><![CDATA[
domain-membership-triple-record = [
  $domain-type-choice
  [ + environment-map ]
]
]]></sourcecode>
          </section>
          <section anchor="sec-comid-triple-coswid">
            <name>CoMID-CoSWID Linking Triple</name>
            <t>A CoSWID triple relates reference measurements contained in one or more CoSWIDs
to a Target Environment. The subject identifies a Target Environment, the
object one or more unique tag identifiers of existing CoSWIDs, and the
predicate asserts that these contain the expected (i.e., reference)
measurements for the Target Environment.</t>
            <sourcecode type="cddl"><![CDATA[
coswid-triple-record = [
  environment-map
  [ + concise-swid-tag-id ]
]

concise-swid-tag-id = text / bstr .size 16
]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="sec-extensibility">
        <name>Extensibility</name>
        <t>The base CoRIM document definition is described using CDDL <xref target="RFC8610"/> that can be extended only at specific allowed points known as "extension points".</t>
        <t>The following types of extensions are supported in CoRIM.</t>
        <section anchor="map-extensions">
          <name>Map Extensions</name>
          <t>Map extensions provide extensibility support to CoRIM map structures.
CDDL map extensibility enables a CoRIM profile to extend the base CoRIM CDDL definition.
CDDL map extension points have the form <tt>($$NAME-extension)</tt> where "NAME" is the name of the map and '$$' signifies map extensibility.
Typically, map extension requires a convention for code point naming that avoids code-point reuse.
Well-known code points may be in a registry, such as CoSWID <xref target="IANA.coswid"/>.
Non-negative integers are reserved for IANA to assign meaning globally.</t>
        </section>
        <section anchor="data-type-extensions">
          <name>Data Type Extensions</name>
          <t>Data type extensibility has the form <tt>($NAME-type-choice)</tt> where "NAME" is the type name and '$' signifies type extensibility.</t>
          <t>New data type extensions SHOULD be documented to facilitate interoperability.
CoRIM profiles are best used to document vendor or industry defined extensions.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-cobom">
      <name>CoBOM</name>
      <t>A Concise Bill of Material (CoBOM) object represents the signal for the
Verifier to activate the listed tags. Verifier policy determines whether CoBOMs are required.</t>
      <t>When CoBOMs are required, each tag MUST be activated by a CoBOM before being processed.
All the tags listed in the CoBOM MUST be activated atomically. If any tag activated by a CoBOM is not available to the Verifier, the entire CoBOM is rejected.</t>
      <t>The number of CoBOMs required in a given supply chain ecosystem is dependent on
Verifier Owner's Appraisal Policy for Evidence. Corresponding policies are often driven by the complexity and nature of the use case.</t>
      <t>If a Verifier Owner has a policy that does not require CoBOM, tags within a CoRIM received by a Verifier
are activated immediately and treated valid for appraisal.</t>
      <t>There may be cases when Verifier receives CoRIMs from multiple
Reference Value providers and Endorsers. In such cases, a supplier (or other authorities, such as integrators)
may be designated to issue a single CoBOM to activate all the tags submitted to the Verifier
in these CoRIMs.</t>
      <t>In a more complex case, there may be multiple authorities that issue CoBOMs at different points in time.
An Appraisal Policy for Evidence may dictate how multiple CoBOMs are to be processed within the Verifier.</t>
      <section anchor="structure-1">
        <name>Structure</name>
        <t>The CDDL specification for the <tt>concise-bom-tag</tt> map is as follows and this
rule and its constraints MUST be followed when creating or validating a CoBOM
tag:</t>
        <sourcecode type="cddl"><![CDATA[
concise-bom-tag = {
  &(tag-identity: 0) => tag-identity-map
  &(tags-list: 1) => [ + tag-identity-map ],
  &(bom-validity: 2) => validity-map
  * $$concise-bom-tag-extension
}
]]></sourcecode>
        <t>The following describes each member of the <tt>concise-bom-tag</tt> map.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tag-identity</tt> (index 0): A <tt>tag-identity-map</tt> containing unique
identification information for the CoBOM.
Described in <xref target="sec-comid-tag-id"/>.</t>
          </li>
          <li>
            <t><tt>tags-list</tt> (index 1): A list of one or more <tt>tag-identity-maps</tt> identifying
the CoMID and CoSWID tags that constitute the "bill of material", i.e.,
a complete set of verification-related information.  The <tt>tags-list</tt> behaves
like a signaling mechanism from the supply chain (e.g., a product vendor) to
a Verifier that activates the tags in <tt>tags-list</tt> for use in the Evidence
appraisal process. The activation is atomic: all tags listed in <tt>tags-list</tt>
MUST be activated or no tags are activated.</t>
          </li>
          <li>
            <t><tt>bom-validity</tt> (index 2): Specifies the validity period of the CoBOM.
Described in <xref target="sec-common-validity"/>.</t>
          </li>
          <li>
            <t><tt>$$concise-bom-tag-extension</tt>: This CDDL socket is used to add new information structures to the <tt>concise-bom-tag</tt>.
See <xref target="sec-iana-cobom"/>.
The <tt>$$concise-bom-tag-extension</tt> extension socket is empty in this specification.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-common-types">
      <name>Common Types</name>
      <t>The following CDDL types may be shared by CoRIM, CoMID, and CoBOM.</t>
      <section anchor="sec-non-empty">
        <name>Non-Empty</name>
        <t>The <tt>non-empty</tt> generic type is used to express that a map with only optional
members MUST at least include one of the members.</t>
        <sourcecode type="cddl"><![CDATA[
non-empty<M> = (M) .and ({ + any => any })
]]></sourcecode>
      </section>
      <section anchor="sec-common-entity">
        <name>Entity</name>
        <t>The <tt>entity-map</tt> is a generic type describing an organization responsible for
the contents of a manifest. It is instantiated by supplying two parameters:</t>
        <ul spacing="normal">
          <li>
            <t>A <tt>role-type-choice</tt>, i.e., a selection of roles that entities of the
instantiated type can claim</t>
          </li>
          <li>
            <t>An <tt>extension-socket</tt>, i.e., a CDDL socket that can be used to extend
the attributes associated with entities of the instantiated type</t>
          </li>
        </ul>
        <sourcecode type="cddl"><![CDATA[
entity-map<role-type-choice, extension-socket> = {
  &(entity-name: 0) => $entity-name-type-choice
  ? &(reg-id: 1) => uri
  &(role: 2) => [ + role-type-choice ]
  * extension-socket
}

$entity-name-type-choice /= text
]]></sourcecode>
        <t>The following describes each member of the <tt>entity-map</tt>.</t>
        <ul spacing="normal">
          <li>
            <t><tt>entity-name</tt> (index 0): The name of entity which is responsible for the action(s) as defined by the role.
<tt>$entity-name-type-choice</tt> can only be text.
Other specifications can extend the <tt>$entity-name-type-choice</tt>.
See <xref target="sec-iana-comid"/>.</t>
          </li>
          <li>
            <t><tt>reg-id</tt> (index 1): A URI associated with the organization that owns the entity name.</t>
          </li>
          <li>
            <t><tt>role</tt> (index 2): A type choice defining the roles that the entity is claiming.
The role is supplied as a parameter at the time the <tt>entity-map</tt> generic is instantiated.</t>
          </li>
          <li>
            <t><tt>extension-socket</tt>: A CDDL socket used to add new information structures to the <tt>entity-map</tt>.</t>
          </li>
        </ul>
        <t>Examples of how the <tt>entity-map</tt> generic is instantiated can be found in
(<xref target="sec-corim-entity"/>) and (<xref target="sec-comid-entity"/>).</t>
      </section>
      <section anchor="sec-common-validity">
        <name>Validity</name>
        <t>A <tt>validity-map</tt> represents the time interval during which the signer
warrants that it will maintain information about the status of the signed
object (e.g., a manifest).</t>
        <t>In a <tt>validity-map</tt>, both ends of the interval are encoded as epoch-based
date/time as per <xref section="3.4.2" sectionFormat="of" target="STD94"/>.</t>
        <sourcecode type="cddl"><![CDATA[
validity-map = {
  ? &(not-before: 0) => time
  &(not-after: 1) => time
}
]]></sourcecode>
        <ul spacing="normal">
          <li>
            <t><tt>not-before</tt> (index 0): the date on which the signed manifest validity period
begins</t>
          </li>
          <li>
            <t><tt>not-after</tt> (index 1): the date on which the signed manifest validity period
ends</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-common-uuid">
        <name>UUID</name>
        <t>Used to tag a byte string as a binary UUID.
Defined in <xref section="4.1.2." sectionFormat="of" target="RFC4122"/>.</t>
        <sourcecode type="cddl"><![CDATA[
uuid-type = bytes .size 16
tagged-uuid-type = #6.37(uuid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-ueid">
        <name>UEID</name>
        <t>Used to tag a byte string as Universal Entity ID Claim (UUID).
Defined in <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-rats-eat"/>.</t>
        <sourcecode type="cddl"><![CDATA[
ueid-type = bytes .size 33
tagged-ueid-type = #6.550(ueid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-oid">
        <name>OID</name>
        <t>Used to tag a byte string as the BER encoding <xref target="X.690"/> of an absolute object
identifier <xref target="RFC9090"/>.</t>
        <sourcecode type="cddl"><![CDATA[
oid-type = bytes
tagged-oid-type = #6.111(oid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-hash-entry">
        <name>Digest</name>
        <t>A digest represents the value of a hashing operation together with the hash algorithm used.
The type of the digest algorithm identifier can be either <tt>int</tt> or <tt>text</tt> and is interpreted according to the <xref target="IANA.named-information"/> registry.
Specifically, <tt>int</tt> values are matched against "ID" entries, <tt>text</tt> values are matched against "Hash Name String" entries.
Whenever possible, using the <tt>int</tt> encoding is RECOMMENDED.</t>
        <sourcecode type="cddl"><![CDATA[
digest = [
  alg: (int / text),
  val: bytes
]

digests-type = [ + digest ]
]]></sourcecode>
        <t>A measurement can be obtained using different hash algorithms.
A <tt>digests-type</tt> can be used to collect multiple digest values obtained by applying different hash algorithms on the same input.
Each entry in the <tt>digests-type</tt> MUST have a unique <tt>alg</tt> value.</t>
      </section>
      <section anchor="sec-common-tagged-bytes">
        <name>Tagged Bytes Type</name>
        <t>An opaque, variable-length byte string.
It can be used in different contexts: as an instance, class or group identifier in an <tt>environment-map</tt>; as a raw value measurement in a <tt>measurement-values-map</tt>.
Its semantics are defined by the context in which it is found, and by the overarching CoRIM profile.
When used as an identifier the responsible allocator entity SHOULD ensure uniqueness within the context that it is used.</t>
        <sourcecode type="cddl"><![CDATA[
tagged-bytes = #6.560(bytes)
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-appr-corim-inputs">
      <name>Appraisal of CoRIM-based Inputs</name>
      <t>Inputs to a Verifier are mapped from their external representation to an internal representation.
CoRIM defines CBOR structures and content media types for Conceptual Messages that include Endorsements and Reference Values.
CoRIM data structures may also be used by Evidence and Attestation Results that wish to describe overlapping structure.
CoRIM-based data structures define an external representation of Conceptual Messages that are mapped to an internal representation.
Appraisal processing describes both mapping transformations and Verifier reconciliation (<xref target="sec-verifier-rec"/>).
Non-CoRIM-based data structures require mapping transformation, but these are out of scope for this document.</t>
      <t>If a CoRIM profile is specified, there are a few well-defined points in the procedure where Verifier behaviour depends on the profile.
The CoRIM profile MUST provide a description of the expected Verifier behavior for each of those well-defined points.</t>
      <t>Verifier implementations MUST exhibit the same externally visible behavior as described in this specification.
They are not required to use the same internal representation or evaluation order described by this specification.</t>
      <section anchor="sec-appraisal-procedure">
        <name>Appraisal Procedure</name>
        <t>The appraisal procedure is divided into several logical phases for clarity.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 1</strong>: Input Validation and Transformation</t>
          </li>
        </ul>
        <t>During Phase 1, Conceptual Message inputs are cryptographically validated, such as checking digital signatures.
Inputs are transformed from their external representations to an internal representation.
Internal representations are staged for appraisal processing, such as populating an input queue.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 2</strong>: Evidence Augmentation</t>
          </li>
        </ul>
        <t>During Phase 2, Evidence inputs are added to a list that describes the Attester's actual state.
These inputs are added with the Attester's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 3</strong>: Reference Values Corroboration and Augmentation</t>
          </li>
        </ul>
        <t>During Phase 3, Reference Values inputs are compared with Evidence inputs.
Reference Values inputs describe possible states of Attesters.
If the actual state of the Attester is described by the possible Attester states, then the overlapping (corroborated) actual states are added to the Attester's actual state.
These inputs are added with the Reference Value Provider's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 4</strong>: Endorsed Values Augmentation</t>
          </li>
        </ul>
        <t>During Phase 4, Endorsed Values inputs containing conditions that describe expected Attester state are processed.
If the comparison is satisfied, then additional Claims about the Attester are added to the ACS.
These inputs are added with the Endorser's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 5</strong>: Verifier Augmentation</t>
          </li>
        </ul>
        <t>During Phase 5, the Verifier may perform consistency, integrity, or additional validity checks.</t>
        <t>These checks may result in additional Claims about the Attester that are added to the ACS.
These Claims are added with the Verifier's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 6</strong>: Policy Augmentation</t>
          </li>
        </ul>
        <t>During Phase 6, appraisal policies are processed that describe Attester states that are desirable or undesirable.
If these conditions exist, the policy may add additional Claims about the Attester, to the ACS.
These Claims are added with the policy author's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 7</strong>: Attestation Results Production and Transformation</t>
          </li>
        </ul>
        <t>During Phase 7, the outcome of Appraisal and the set of Attester Claims that are interesting to a Relying Party are copied from the Attester state to an output staging area.
The Claims in the output staging area and other Verifier related metadata are transformed into an external representation suitable for consumption by a Relying Party.</t>
      </section>
      <section anchor="sec-verifier-abstraction">
        <name>Verifier Abstraction</name>
        <t>This document assumes that Verifier implementations may differ.
To facilitate the description of normative Verifier behavior, this document uses an abstract representation of Verifier internals.</t>
        <t>The following terms are used:</t>
        <dl newline="true">
          <dt>Claim:</dt>
          <dd>
            <t>A piece of information, in the form of a key-value pair.</t>
          </dd>
          <dt>Environment-Claim Tuple (ECT):</dt>
          <dd>
            <t>A structure containing a set of values that describe a Target Environment plus a set of measurement / Claim values that describe properties of the Target Environment.
The ECT also contains authority which identifies the entity that authored the ECT.</t>
          </dd>
          <dt>reference state:</dt>
          <dd>
            <t>Claims that describe various alternative states of a Target Environment.  Reference Values Claims typically describe various possible states due to versioning, manufactruing practices, or supplier configuration options.  See also <xref section="2" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>.</t>
          </dd>
          <dt>actual state:</dt>
          <dd>
            <t>Claims that describe a Target Environment instance at a given point in time.  Endorsed Values and Evidence typically are Claims about actual state.  An Attester may be composed of multiple components, where each component may represent a scope of appraisal.
See also (<xref section="2" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>).</t>
          </dd>
          <dt>Authority:</dt>
          <dd>
            <t>The entity asserting that a claim is true.
Typically, a Claim is asserted using a cryptographic key to digitally sign the Claim. A cryptographic key can be a proxy for a human or organizational entity.</t>
          </dd>
          <dt>Appraisal Claims Set (ACS):</dt>
          <dd>
            <t>A structure that holds ECTs that have been appraised.
The ACS contains Attester state that has been authorized by Verifier processing and Appraisal Policy.</t>
          </dd>
          <dt>Appraisal Policy:</dt>
          <dd>
            <t>A description of the conditions that, if met, allow acceptance of Claims. Typically, the entity asserting a Claim should have knowledge, expertise, or context that gives credibility to the assertion. Appraisal Policy resolves which entities are credible and under what conditions.  See also "Appraisal Policy for Evidence" in <xref target="RFC9334"/>.</t>
          </dd>
          <dt>Attestation Results Set (ARS):</dt>
          <dd>
            <t>A structure that holds results of Appraisal and ECTs that are to be conveyed to a Relying Party.</t>
          </dd>
        </dl>
        <section anchor="sec-ir-cm">
          <name>Internal Representation of Conceptual Messages</name>
          <t>Conceptual Messages are Verifier input and output values such as Evidence, Reference Values, Endorsed Values, Appraisal Policy, and Attestation Results.</t>
          <t>The internal representation of Conceptual Messages, as well as the ACS (<xref target="sec-ir-acs"/>) and ARS (<xref target="sec-ir-ars"/>), are constructed from a common building block structure called Environment-Claims Tuple (ECT).</t>
          <t>ECTs have five attributes:</t>
          <ol spacing="normal" type="%d."><li>
              <t>Environment : Identifies the Target Environment. Environments are identified using instance, class, or group identifiers. Environments may be composed of elements, each having an element identifier.</t>
            </li>
            <li>
              <t>Elements : Identifies the set of elements contained within a Target Environment and their trustworthiness Claims.</t>
            </li>
            <li>
              <t>Authority : Identifies the entity that issued the tuple. A certain type of key material by which the authority (and corresponding provenance) of the tuple can be determined, such as the public key of an asymmetric key pair that is associated with an authority's PKIX certificate.</t>
            </li>
            <li>
              <t>Conceptual Message Type : Identifies the type of Conceptual Message that originated the tuple.</t>
            </li>
            <li>
              <t>Profile : The profile that defines this tuple. If no profile is used, this attribute is omitted.</t>
            </li>
          </ol>
          <t>The following CDDL describes the ECT structure in more detail.</t>
          <sourcecode type="cddl"><![CDATA[
ECT = {
  ? environment: environment-map
  ? element-list: [ + element-map ]
  ? authority: [ + $crypto-key-type-choice ]
  cmtype: cm-type
  ? profile: $profile-type-choice
}

element-map = {
  ? element-id: $measured-element-type-choice
  element-claims: measurement-values-map
}

cm-type =  &(
  reference-values: 0
  endorsements: 1
  evidence: 2
  attestation-results: 3
  verifier: 4
  policy: 5
)
]]></sourcecode>
          <t>The Conceptual Message type determines which attributes are mandatory.</t>
          <section anchor="sec-ir-evidence">
            <name>Internal Representation of Evidence</name>
            <t>An internal representation of attestation Evidence uses the <tt>ae</tt> relation.</t>
            <sourcecode type="cddl"><![CDATA[
ae = [
  addition: [ + ECT ]
]
]]></sourcecode>
            <t>The <tt>addition</tt> is a list of ECTs with Evidence to be appraised.</t>
            <t>A Verifier may maintain multiple simultaneous sessions to different Attesters.
Each Attester has a different ACS. The Verifier ensures the Evidence inputs are associated with the correct ACS.
The <tt>addition</tt> is added to the ACS for a specific Attester.</t>
            <t><xref target="tbl-ae-ect-optionality"/> contains the requirements for the ECT fields of the Evidence tuple:</t>
            <table anchor="tbl-ae-ect-optionality">
              <name>Evidence tuple requirements</name>
              <thead>
                <tr>
                  <th align="left">ECT type</th>
                  <th align="left">ECT Field</th>
                  <th align="left">Requirement</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">addition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sec-ir-ref-val">
            <name>Internal Representation of Reference Values</name>
            <t>An internal representation of Reference Values uses the <tt>rv</tt> relation, which is a list of ECTs that contains possible states and a list of ECTs that contain actual states asserted with RVP authority.</t>
            <sourcecode type="cddl"><![CDATA[
rv = [ + {
  condition: ECT
  addition: ECT
} ]
]]></sourcecode>
            <t>The <tt>rv</tt> relation is a list of condition-addition pairings where each pairing is evaluated together.
If the <tt>condition</tt> containing reference ECTs overlaps Evidence ECTs then the Evidence ECTs are re-asserted, but with RVP authority as contained in the <tt>addition</tt>.</t>
            <t>The reference ECTs define the matching conditions that are applied to Evidence ECTs.
If the matching condition is satisfied, then the re-asserted ECTs are added to the ACS.</t>
            <t><xref target="tbl-rv-ect-optionality"/> contains the requirements for the ECT fields of the Reference Values tuple:</t>
            <table anchor="tbl-rv-ect-optionality">
              <name>Reference Values tuple requirements</name>
              <thead>
                <tr>
                  <th align="left">ECT type</th>
                  <th align="left">ECT Field</th>
                  <th align="left">Requirement</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">condition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left">addition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sec-ir-end-val">
            <name>Internal Representation of Endorsed Values</name>
            <t>An internal representation of Endorsed Values uses the <tt>ev</tt> and <tt>evs</tt> relations, which are lists of ECTs that describe matching conditions and the additions that are added if the conditions are satisfied.</t>
            <sourcecode type="cddl"><![CDATA[
ev = [
  condition: [ + ECT ]
  addition: [ + ECT ]
]

evs = [
  condition: [ + ECT ]
  series: [ + {
    selection: [ + ECT ]
    addition: [ + ECT ]
  } ]
]
]]></sourcecode>
            <t>The <tt>ev</tt> relation compares the <tt>condition</tt> ECTs to the ACS and if all of the ECTs are found in the ACS then the <tt>addition</tt> ECTs are added to the ACS.</t>
            <t>The <tt>evs</tt> relation compares the <tt>condition</tt> ECTs to the ACS and if all of the ECTs are found in the ACS then each entry in the series list is evaluated.
The <tt>selection</tt> ECTs are compared with the ACS and if the selection criteria is satisfied, then the <tt>addition</tt> ECTs are added to the ACS and evaluation of the series ends.
If the <tt>selection</tt> criteria is not satisfied, then evaluation procedes to the next series list entry.</t>
            <t><xref target="tbl-ev-ect-optionality"/> contains the requirements for the ECT fields of the Endorsed Values and Endorsed Values Series tuples:</t>
            <table anchor="tbl-ev-ect-optionality">
              <name>Endorsed Values and Endorsed Values Series tuples requirements</name>
              <thead>
                <tr>
                  <th align="left">ECT type</th>
                  <th align="left">ECT Field</th>
                  <th align="left">Requirement</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">condition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left">selection</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left">addition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sec-ir-policy">
            <name>Internal Representation of Policy Statements</name>
            <t>The <tt>policy</tt> relation compares the <tt>condition</tt> ECTs to the ACS.</t>
            <sourcecode type="cddl"><![CDATA[
policy = [
  condition: [ + ECT ]
  addition: [ + ECT ]
]
]]></sourcecode>
            <t>If all of the ECTs are found in the ACS then the <tt>addition</tt> ECTs are added to the ACS with the policy author's authority.</t>
            <t><xref target="tbl-policy-ect-optionality"/> contains the requirements for the ECT fields of the Policy tuple:</t>
            <table anchor="tbl-policy-ect-optionality">
              <name>Policy tuple requirements</name>
              <thead>
                <tr>
                  <th align="left">ECT type</th>
                  <th align="left">ECT Field</th>
                  <th align="left">Requirement</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">condition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left">addition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sec-ir-ar">
            <name>Internal Representation of Attestation Results</name>
            <t>The <tt>ar</tt> relation compares the <tt>acs-condition</tt> to the ACS.</t>
            <sourcecode type="cddl"><![CDATA[
ar = [
  acs-condition: [ + ECT ]
  ars-addition: [ + ECT ]
]
]]></sourcecode>
            <t>If the condition is satisfied, the <tt>ars-additions</tt> are copied from the ACS to the ARS.
If any of the <tt>ars-additions</tt> are not found in the ACS then these ACS entries are not copied to the ARS.</t>
            <t><xref target="tbl-ar-ect-optionality"/> contains the requirements for the ECT fields of the Attestation Results tuple:</t>
            <table anchor="tbl-ar-ect-optionality">
              <name>Attestation Results tuple requirements</name>
              <thead>
                <tr>
                  <th align="left">ECT type</th>
                  <th align="left">ECT Field</th>
                  <th align="left">Requirement</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">acs-condition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Optional</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">n/a</td>
                </tr>
                <tr>
                  <td align="left">ars-addition</td>
                  <td align="left">
                    <tt>environment</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>element-list</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>authority</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>cmtype</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>profile</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </section>
        </section>
        <section anchor="sec-ir-acs">
          <name>Internal Representation of Appraisal Claims Set (ACS)</name>
          <t>An ACS is a list of ECTs that describe an Attester's actual state.</t>
          <sourcecode type="cddl"><![CDATA[
ACS = [ + ECT ]
]]></sourcecode>
        </section>
        <section anchor="sec-ir-ars">
          <name>Internal Representation of Attestation Results Set (ARS)</name>
          <t>An ARS is a list of ECTs that describe ACS entries that are selected for use as Attestation Results.</t>
          <sourcecode type="cddl"><![CDATA[
ARS = [ + ECT ]
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-phase1">
        <name>Input Validation and Transformation (Phase 1)</name>
        <t>During the initialization phase, the CoRIM Appraisal Context is loaded with various conceptual message inputs such as CoMID tags (<xref target="sec-comid"/>), CoSWID tags <xref target="RFC9393"/>, CoBOM tags <xref target="I-D.ietf-rats-cobom"/>, and cryptographic validation key material (including raw public keys, root certificates, intermediate CA certificate chains), and Concise Trust Anchor Stores (CoTS) <xref target="I-D.ietf-rats-concise-ta-stores"/>.
These objects will be utilized in the Evidence Appraisal phase that follows.
The primary goal of this phase is to ensure that all necessary information is available for subsequent processing.</t>
        <t>After context initialization, additional inputs are held back until appraisal processing has completed.</t>
        <section anchor="sec-phase1-valid">
          <name>Input Validation</name>
          <section anchor="corim-selection">
            <name>CoRIM Selection</name>
            <t>All available CoRIMs are collected.</t>
            <t>CoRIMs that are not within their validity period, or that cannot be associated with an authenticated and authorized source MUST be discarded.</t>
            <t>Any CoRIM that has been secured by a cryptographic mechanism, such as a signature, that fails validation MUST be discarded.</t>
            <t>Other selection criteria MAY be applied.
For example, if the Evidence format is known in advance, CoRIMs using a profile that is not understood by a Verifier can be readily discarded.</t>
            <t>The selection process MUST yield at least one usable tag.</t>
            <t>Later stages will further select the CoRIMs appropriate to the Evidence Appraisal stage.</t>
          </section>
          <section anchor="tags-extraction-and-validation">
            <name>Tags Extraction and Validation</name>
            <t>The Verifier chooses tags from the selected CoRIMs - including CoMID, CoSWID, CoBOM, and CoTS.</t>
            <t>The Verifier MUST discard all tags which are not syntactically and semantically valid.
In particular, any cross-referenced triples (e.g., CoMID-CoSWID linking triples) MUST be successfully resolved.</t>
          </section>
          <section anchor="cobom-extraction">
            <name>CoBOM Extraction</name>
            <t>This section is not applicable if the Verifier appraisal policy does not require CoBOMs.</t>
            <t>CoBOMs which are not within their validity period are discarded.</t>
            <t>The Verifier processes all CoBOMs that are valid at the point in time of Evidence Appraisal and activates all tags referenced therein.</t>
            <t>A Verifier MAY decide to discard some of the available and valid CoBOMs depending on any locally configured authorization policies.
(Such policies model the trust relationships between the Verifier Owner and the relevant suppliers, and are out of the scope of the present document.)
For example, a composite device (<xref section="3.3" sectionFormat="of" target="RFC9334"/>) is likely to be fully described by multiple CoRIMs, each signed by a different supplier.
In such case, the Verifier Owner may instruct the Verifier to discard tags activated by supplier CoBOMs that are not also activated by the trusted integrator.</t>
            <t>After the Verifier has processed all CoBOMs it MUST discard any tags which have not been activated by a CoBOM.</t>
          </section>
        </section>
        <section anchor="sec-ev-coll">
          <name>Evidence Collection</name>
          <t>During the Evidence collection phase, the Verifier communicates with Attesters to gather Evidence.
The first part of this phase does not require any cryptographic validation.
This means that Verifiers can use untrusted code to discover Evidence sources.
Attesters are Evidence sources.</t>
          <t>Verifiers may rely on conveyance protocol specific context to identify an Evidence source, which is the Evidence input oracle for appraisal.</t>
          <t>The collected Evidence is then transformed to an internal representation, making it suitable for appraisal processing.</t>
          <section anchor="sec-crypto-validate-evidence">
            <name>Cryptographic Validation of Evidence</name>
            <t>If Evidence is cryptographically signed, its validation is applied before transforming Evidence to an internal representation.</t>
            <t>If Evidence is not cryptographically signed, the security context of the conveyance protocol that collected it is used to cryptographically validate Evidence.</t>
            <t>The way cryptographic signature validation works depends on the specific Evidence collection method used.
For example, in DICE, a proof of liveness is carried out on the final key in the certificate chain (a.k.a., the alias certificate).
If this is successful, a suitable certification path is looked up in the Appraisal Context, based on linking information obtained from the DeviceID certificate.
See Section 9.2.1 of <xref target="DICE.Layer"/>.
If a trusted root certificate is found, the usual X.509 certificate validation is performed.</t>
            <t>As a second example, in PSA <xref target="I-D.tschofenig-rats-psa-token"/> the verification public key is looked up in the appraisal context using the <tt>ueid</tt> claim found in the PSA claims-set.
If found, COSE Sign1 verification is performed accordingly.</t>
            <t>Regardless of the specific integrity protection method used, the Evidence's integrity MUST be validated successfully.</t>
            <ul empty="true">
              <li>
                <t>If a CoRIM profile is supplied, it MUST describe:</t>
                <ul spacing="normal">
                  <li>
                    <t>How cryptographic verification key material is represented (e.g., using Attestation Keys triples, or CoTS tags)</t>
                  </li>
                  <li>
                    <t>How key material is associated with the Attesting Environment</t>
                  </li>
                  <li>
                    <t>How the Attesting Environment is identified in Evidence</t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-phase1-trans">
          <name>Input Transformation</name>
          <t>Input Conceptual Messages, whether Endorsements, Reference Values, Evidence, or Policies, are transformed to an internal representation that is based on ECTs (<xref target="sec-ir-cm"/>).</t>
          <t>The following mapping conventions apply to all forms of input transformation:</t>
          <ul empty="true">
            <li>
              <ul spacing="normal">
                <li>
                  <t>The <tt>environment</tt> field is populated with a Target Environment identifier.</t>
                </li>
                <li>
                  <t>The <tt>element-list</tt> field is populated with the measurements collected by an Attesting Environment.</t>
                </li>
                <li>
                  <t>The <tt>authority</tt> field is populated with the identity of the entity that asserted (e.g., signed) the Conceptual Message.</t>
                </li>
                <li>
                  <t>The <tt>cmtype</tt> field is set based on the type of Conceptual Message inputted or to be output.</t>
                </li>
                <li>
                  <t>The <tt>profile</tt> field is set based on the <tt>corim-map</tt> <tt>profile</tt> value.</t>
                </li>
              </ul>
            </li>
          </ul>
          <section anchor="appraisal-context-construction">
            <name>Appraisal Context Construction</name>
            <t>All of the extracted and validated tags are loaded into an <em>appraisal context</em>.
The Appraisal Context contains an internal representation of the inputted Conceptual Messages.
The selected tags are mapped to an internal representation, making them suitable for appraisal processing.</t>
          </section>
          <section anchor="sec-ref-trans">
            <name>Reference Triples Transformation</name>
            <ol group="foo" spacing="normal" type="Step %d."><li>
                <t>An <tt>rv</tt> list entry (<xref target="sec-ir-ref-val"/>) is allocated.</t>
              </li>
              <li>
                <t>The <tt>cmtype</tt> of the <tt>addition</tt> ECT in the <tt>rv</tt> entry is set to <tt>reference-values</tt>.</t>
              </li>
              <li>
                <t>The Reference Values Triple (RVT) (<xref target="sec-comid-triple-refval"/>) populates the <tt>rv</tt> ECTs.</t>
              </li>
            </ol>
            <ol group="rtt2" spacing="normal" type="%i"><li>
                <t>RVT.<tt>ref-env</tt></t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>rv</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>rv</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="rtt2" spacing="normal" type="%i"><li>
                <t>For each e in RVT.<tt>ref-claims</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>measurement-map</tt>, <tt>rv</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="foo" spacing="normal" type="Step %d."><li>
                <t>The signer of the Endorsement conceptual message is copied to the <tt>rv</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Endorsement conceptual message has a profile, the profile identifier is copied to the <tt>rv</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
              </li>
            </ol>
          </section>
          <section anchor="sec-end-trans">
            <name>Endorsement Triples Transformations</name>
            <t>Endorsed Values Triple Transformation :</t>
            <ol group="ett" spacing="normal" type="Step %d."><li>
                <t>An <tt>ev</tt> entry (<xref target="sec-ir-end-val"/>) is allocated.</t>
              </li>
              <li>
                <t>The <tt>cmtype</tt> of the <tt>ev</tt> entry's <tt>addition</tt> ECT is set to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>The Endorsed Values Triple (EVT) (<xref target="sec-comid-triple-endval"/>) populates the <tt>ev</tt> ECTs.</t>
              </li>
            </ol>
            <ol group="ett2" spacing="normal" type="%i"><li>
                <t>EVT.<tt>condition</tt></t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="ett2" spacing="normal" type="%i"><li>
                <t>For each e in EVT.<tt>endorsement</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>endorsement</tt>.<tt>measurement-map</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="ett" spacing="normal" type="Step %d."><li>
                <t>The signer of the Endorsement conceptual message is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Endorsement conceptual message has a profile, the profile is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
              </li>
            </ol>
            <t>Conditional Endorsement Triple Transformation :</t>
            <ol group="cett" spacing="normal" type="Step %d."><li>
                <t>An <tt>ev</tt> entry (<xref target="sec-ir-end-val"/>) is allocated.</t>
              </li>
              <li>
                <t>The <tt>cmtype</tt> of the <tt>ev</tt> entry's <tt>addition</tt> ECT is set to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>Entries in the Conditional Endorsement Triple (CET) (<xref target="sec-comid-triple-cond-endors"/>) <tt>conditions</tt> list are copied to a suitable ECT in the internal representation.</t>
              </li>
            </ol>
            <ol group="cett2" spacing="normal" type="%i"><li>
                <t>For each e in CET.<tt>conditions</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>stateful-environment-record</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>stateful-environment-record</tt>.<tt>claims-list</tt>.<tt>measurement-map</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="cett2" spacing="normal" type="%i"><li>
                <t>For each e in CET.<tt>endorsements</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>endorsed-triple-record</tt>.<tt>condition</tt>.<tt>environment-map</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>endorsed-triple-record</tt>.<tt>endorsement</tt>.<tt>measurement-map</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="cett" spacing="normal" type="Step %d."><li>
                <t>The signer of the Conditional Endorsement conceptual message is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Endorsement conceptual message has a profile, the profile is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
              </li>
            </ol>
            <t>Conditional Endorsement Series Triple Transformation :</t>
            <ol group="cestt" spacing="normal" type="Step %d."><li>
                <t>An <tt>evs</tt> entry (<xref target="sec-ir-end-val"/>) is allocated.</t>
              </li>
              <li>
                <t>The <tt>cmtype</tt> of the <tt>evs</tt> entry's <tt>addition</tt> ECT is set to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>Populate the <tt>evs</tt> ECTs using the Conditional Endorsement Series Triple (CEST) (<xref target="sec-comid-triple-cond-series"/>).</t>
              </li>
            </ol>
            <ol group="cestt2" spacing="normal" type="%i."><li>
                <t>CEST.<tt>condition</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>stateful-environment-record</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>stateful-environment-record</tt>.<tt>claims-list</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="cestt2" spacing="normal" type="%i."><li>
                <t>For each e in CEST.<tt>series</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>selection</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>conditional-series-record</tt>.<tt>selection</tt>.<tt>measurement</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>selection</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>conditional-series-record</tt>.<tt>addition</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="cestt" spacing="normal" type="Step %d."><li>
                <t>The signer of the Conditional Endorsement conceptual message is copied to the <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Endorsement conceptual message has a profile, the profile is copied to the <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
              </li>
            </ol>
          </section>
          <section anchor="evidence-tranformation">
            <name>Evidence Tranformation</name>
            <t>Evidence is transformed from an external representation to an internal representation based on the <tt>ae</tt> relation (<xref target="sec-ir-evidence"/>).
The Evidence is mapped into one or more <tt>addition</tt> ECTs.
If the Evidence does not have a value for the mandatory <tt>ae</tt> fields, the Verifier MUST NOT process the Evidence.</t>
            <t>Evidence transformation algorithms may be well-known, defined by a CoRIM profile (<xref target="sec-corim-profile-types"/>), or supplied dynamically.
The handling of dynamic Evidence transformation algorithms is out of scope for this document.</t>
          </section>
        </section>
      </section>
      <section anchor="sec-phase2">
        <name>Evidence Augmentation (Phase 2)</name>
        <section anchor="sec-acs-initialization">
          <name>Appraisal Claims Set (ACS) Initialization</name>
          <t>The ACS is initialized by copying the internal representation of Evidence claims to the ACS.
See <xref target="sec-add-to-acs"/>.</t>
          <section anchor="sec-authority">
            <name>The authority field in the ACS</name>
            <t>The <tt>authority</tt> field in an ACS ECT indicates the entity whose authority backs the Claims.</t>
            <t>The Verifier keeps track of authority so that it can satisfy appraisal policy that specifies authority.</t>
            <t>When adding an Evidence entry to the ACS, the Verifier SHALL set the <tt>authority</tt> field using a <tt>$crypto-keys-type-choice</tt> representation of the entity that signed the Evidence.</t>
            <t>If multiple authorities approve the same Claim, for example if multiple key chains are available, then the <tt>authority</tt> field SHALL be set to include the <tt>$crypto-keys-type-choice</tt> representation for each key chain.</t>
            <t>When adding Endorsement or Reference Values Claims to the ACS that resulted from CoRIM processing (<xref target="sec-add-to-acs"/>).
The Verifier SHALL set the <tt>authority</tt> field using a <tt>$crypto-keys-type-choice</tt> representation of the entity that signed the CoRIM.</t>
            <t>When searching the ACS for an entry which matches a triple condition containing an <tt>authorized-by</tt> field, the Verifier SHALL ignore ACS entries if none of the entries present in the condition <tt>authorized-by</tt> field are present in the ACS <tt>authority</tt> field.
The Verifier SHALL match ACS entries if all of the entries present in the condition <tt>authorized-by</tt> field are present in the ACS <tt>authority</tt> field.</t>
          </section>
          <section anchor="acs-augmentation-using-comid-triples">
            <name>ACS augmentation using CoMID triples</name>
            <t>In the ACS augmentation phase, a CoRIM Appraisal Context and an Evidence Appraisal Policy are used by the Verifier to find CoMID triples which match the ACS.
Triples that specify an ACS matching condition will augment the ACS with Endorsements if the condition is met.</t>
            <t>Each triple is processed independently of other triples.
However, the ACS state may change as a result of processing a triple.
If a triple condition does not match, then the Verifier continues to process other triples.</t>
          </section>
          <section anchor="ordering-of-triple-processing">
            <name>Ordering of triple processing</name>
            <t>Triples interface with the ACS by either adding new ACS entries or by matching existing ACS entries before updating the ACS.
Most triples use an <tt>environment-map</tt> field to select the ACS entries to match or modify.
This field may be contained in an explicit matching condition, such as <tt>stateful-environment-record</tt>.</t>
            <t>The order of triples processing is important.
Processing a triple may result in ACS modifications that affect matching behavior of other triples.</t>
            <t>The Verifier MUST ensure that a triple including a matching condition is processed after any other triple that modifies or adds an ACS entry with an <tt>environment-map</tt> that is in the matching condition.</t>
            <t>This can be acheived by sorting the triples before processing, by repeating processing of some triples after ACS modifications or by other algorithms.</t>
          </section>
        </section>
      </section>
      <section anchor="sec-phase3">
        <name>Reference Values Corroboration and Augmentation (Phase 3)</name>
        <t>Reference Value Providers (RVP) publish Reference Values using the Reference Values Triple (<xref target="sec-comid-triple-refval"/>) which are transformed (<xref target="sec-ref-trans"/>) into an internal representation (<xref target="sec-ir-ref-val"/>).
Reference Values may describe multiple possible Attester states.</t>
        <t>Corroboration is the process of determining whether actual Attester state (as contained in the ACS) can be satisfied by Reference Values.
If satisfied, the RVP authority is added to the matching ACS entry.</t>
        <t>Reference Values are matched with ACS entries by iterating through the <tt>rv</tt> list.
For each <tt>rv</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains <tt>evidence</tt>.</t>
        <t><cref anchor="issue_4">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/302</t>
        <t>If the ECTs match except for authority, the <tt>rv</tt> <tt>addition</tt> ECT authority is added to the ACS ECT authority.</t>
      </section>
      <section anchor="sec-phase4">
        <name>Endorsed Values Augmentation (Phase 4)</name>
        <t><cref anchor="issue_5">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/179</t>
        <t>Endorsers publish Endorsements using endorsement triples (see <xref target="sec-comid-triple-endval"/>), <xref target="sec-comid-triple-cond-endors"/>, and <xref target="sec-comid-triple-cond-series"/>) which are transformed (<xref target="sec-end-trans"/>) into an internal representation (<xref target="sec-ir-end-val"/>).
Endorsements describe actual Attester state.
Endorsements are added to the ACS if the Endorsement condition is satisifed by the ACS.</t>
        <section anchor="sec-process-end">
          <name>Processing Endorsements</name>
          <t>Endorsements are matched with ACS entries by iterating through the <tt>ev</tt> list.
For each <tt>ev</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains either <tt>evidence</tt> or <tt>endorsements</tt>.
If the ECTs match (<xref target="sec-match-condition-ect"/>), the <tt>ev</tt> <tt>addition</tt> ECT is added to the ACS.</t>
        </section>
        <section anchor="sec-process-cond-end">
          <name>Processing Conditional Endorsements</name>
          <t>Conditional Endorsement Triples are transformed into an internal representation based on <tt>ev</tt>.
Conditional endorsements have the same processing steps as shown in (<xref target="sec-process-end"/>).</t>
        </section>
        <section anchor="sec-process-series">
          <name>Processing Conditional Endorsement Series</name>
          <t>Conditional Endorsement Series Triples are transformed into an internal representation based on <tt>evs</tt>.
Conditional series endorsements are matched with ACS entries first by iterating through the <tt>evs</tt> list,
where for each <tt>evs</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains either <tt>evidence</tt> or <tt>endorsements</tt>.
If the ECTs match (<xref target="sec-match-condition-ect"/>), the <tt>evs</tt> <tt>series</tt> array is iterated,
where for each <tt>series</tt> entry, if the <tt>selection</tt> ECT matches an ACS ECT,
the <tt>addition</tt> ECT is added to the ACS.
Series processing terminates when the first series entry matches.</t>
        </section>
      </section>
      <section anchor="sec-phases567">
        <name>Examples for optional phases 5, 6, and 7</name>
        <t>Phases 5, 6, and 7 are optional depending on implementation design.
Verifier implementations that apply consistency, integrity, or validity checks could be represented as Claims that augment the ACS or could be handled by application specific interfaces.
Processing appraisal policies may result in augmentation or modification of the ACS, but techniques for tracking the application of policies during appraisal need not result in ACS augmentation.
Additionally, the creation of Attestation Results is out-of-scope for this document, nevertheless internal staging may facilitate processing of Attestation Results.</t>
        <t>Phase 5: Verifier Augmentation</t>
        <t>Claims related to Verifier-applied consistency checks are asserted under the authority of the Verifier.
For example, the <tt>attest-key-triple-record</tt> may contain a cryptographic key to which the Verifier applies certificate path construction and validation.
Validation may reveal an expired certificate.
The Verifier implementation might generate a certificate path validation exception that is handled externally, or it could generate a Claim that the certificate path is invalid.</t>
        <t>Phase 6: Policy Augmentation</t>
        <t>Appraisal policy inputs could result in Claims that augment the ACS.
For example, an Appraisal Policy for Evidence may specify that if all of a collection of subcomponents satisfy a particular quality metric, the top-level component also satisfies the quality metric.
The Verifier might generate an Endorsement ECT for the top-level component that asserts a quality metric.
Details about the policy applied may also augment the ACS.
An internal representation of policy details, based on the policy ECT, as described in <xref target="sec-ir-policy"/>, contains the environments affected by the policy with policy identifiers as Claims.</t>
        <t>Phase 7: Attestation Results Production and Transformation</t>
        <t>Attestation Results rely on input from the ACS, but may not bear any similarity to its content.
For example, Attestation Results processing may map the ACS state to a generalized trustworthiness state such as <xref target="I-D.ietf-rats-ar4si"/>.
Generated Attestation Results Claims may be specific to a particular Relying Party.
Hence, the Verifier may need to maintain multiple Attestation Results contexts.
An internal representation of Attestation Results as separate contexts (<xref target="sec-ir-ars"/>) ensures Relying Party–specific processing does not modify the ACS, which is common to all Relying Parties.
Attestation Results contexts are the inputs to Attestation Results procedures that produce external representations.</t>
      </section>
      <section anchor="sec-add-to-acs">
        <name>Adding to the Appraisal Claims Set (ACS)</name>
        <section anchor="sec-acs-reqs">
          <name>ACS Processing Requirements</name>
          <t>At the end of the Evidence collection process Evidence has been converted into an internal represenetation suitable for appraisal.
See <xref target="sec-ir-cm"/>.</t>
          <t>Verifiers are not required to use this as their internal representation.
For the purposes of this document, appraisal is described in terms of the above cited internal representation.</t>
          <t>ACS entries contain Evidence (from Attesters), corroborated Reference Values, and Endorsements.
The ACS SHALL contain the Attester's <em>actual state</em> as defined by its Target Environments (TEs).</t>
          <t>Each ACS ECT entry SHALL contain <tt>authority</tt>.
See <xref target="sec-authority"/>.
There can be multiple entries in the ACS which have the same <tt>environment-map</tt> and a different authority.</t>
          <t>Each ACS entry is an ECT Claim.
The ECT <tt>environment</tt> and <tt>element-id</tt> together define the Claim's name.
The ECT <tt>element-claims</tt> are the Claim's <em>actual state</em>.</t>
          <t>This specification defines rules for determining when two Claim names are equivalent.
See <xref target="sec-compare-environment"/> and <xref target="sec-compare-element-map"/>.
Equivalence typically means values MUST be binary identical.</t>
          <t>If two Claims have the same Claim name, the CoRIM triples instruct the Verifier on how these Claims are related.</t>
          <t>If multiple Claims have the same name and the measurement values (i.e., <tt>measurement-values-map</tt> codepoints and values) are equivalent, they are considered <em>duplicates</em>.
Duplicate claims SHOULD be omitted.</t>
          <t>If multiple Claims have the same name and <tt>measurement-values-map</tt> contains duplicate codepoints but the measurement values are not equivalent, then a Verifier SHALL report an error and stop validation processing.</t>
        </section>
        <section anchor="sec-acs-aug">
          <name>ACS Augmentation Requirements</name>
          <t>The ordering of ECTs in the ACS is not significant.
Logically, new ECT entries are appended to the existing ACS.
Nevertheless, implementations may optimize ECT order, to achieve better performance.
Additions to the ACS MUST be atomic.</t>
        </section>
      </section>
      <section anchor="sec-match-condition-ect">
        <name>Comparing a condition ECT against the ACS</name>
        <t><cref anchor="issue_6">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/71</t>
        <t>A Verifier SHALL iterate over all ACS entries and SHALL attempt to match the condition ECT against each ACS entry. See <xref target="sec-match-one-condition-ect"/>.
A Verifier SHALL create a "matched entries" set, and SHALL populate it with all ACS entries which matched the condition ECT.</t>
        <t>If the matched entries array is not empty, then the condition ECT matches the ACS.</t>
        <t>If the matched entries array is empty, then the condition ECT does not match the ACS.</t>
        <section anchor="sec-match-one-condition-ect">
          <name>Comparing a condition ECT against a single ACS entry</name>
          <t>If the condition ECT contains a profile and the profile defines an algorithm for a codepoint and <tt>environment-map</tt> then a Verifier MUST use the algorithm defined by the profile (or a standard algorithm if the profile defines that).
If the condition ECT contains a profile, but the profile does not define an algorithm for a particular codepoint and <tt>environment-map</tt> then the verifier MUST use the standard algorithm described in this document to compare the data at that codepoint.</t>
          <t>A Verifier SHALL perform all of the comparisons defined in <xref target="sec-compare-environment"/>, <xref target="sec-compare-authority"/>, and <xref target="sec-compare-element-list"/>.</t>
          <t>Each of these comparisons compares one field in the condition ECT against the same field in the ACS entry.</t>
          <t>If all of the fields match, then the condition ECT matches the ACS entry.</t>
          <t>If any of the fields does not match, then the condition ECT does not match the ACS entry.</t>
        </section>
        <section anchor="sec-compare-environment">
          <name>Environment Comparison</name>
          <t>A Verifier SHALL compare each field which is present in the condition ECT <tt>environment-map</tt> against the corresponding field in the ACS entry <tt>environment-map</tt> using binary comparison.
Before performing the binary comparison, a Verifier SHOULD convert both <tt>environment-map</tt> fields into a form which meets CBOR Core Deterministic Encoding Requirements <xref target="STD94"/>.</t>
          <t>If all fields which are present in the condition ECT <tt>environment-map</tt> are present in the ACS entry and are binary identical, then the environments match.</t>
          <t>If any field which is present in the condition ECT <tt>environment-map</tt> is not present in the ACS entry, then the environments do not match.</t>
          <t>If any field which is present in the condition ECT <tt>environment-map</tt> is not binary identical to the corresponding ACS entry field, then the environments do not match.</t>
          <t>If a field is not present in the condition ECT <tt>environment-map</tt> then the presence of, and value of, the corresponding ACS entry field SHALL NOT affect whether the environments match.</t>
        </section>
        <section anchor="sec-compare-authority">
          <name>Authority comparison</name>
          <t>A Verifier SHALL compare the condition ECT's <tt>authority</tt> value to the candidate entry's <tt>authority</tt> value.</t>
          <t>If every entry in the condition ECT <tt>authority</tt> has a matching entry in the ACS entry <tt>authority</tt> field, then the authorities match.
The order of the fields in each <tt>authority</tt> field do not affect the result of the comparison.</t>
          <t>If any entry in the condition ECT <tt>authority</tt> does not have a matching entry in the ACS entry <tt>authority</tt> field then the authorities do not match.</t>
          <t>When comparing two <tt>$crypto-key-type-choice</tt> fields for equality, a Verifier SHALL treat them as equal if their deterministic CBOR encoding is binary equal.</t>
        </section>
        <section anchor="sec-compare-element-list">
          <name>Element list comparison</name>
          <t>A Verifier SHALL iterate over all the entries in the condition ECT <tt>element-list</tt> and compare each one against the corresponding entry in the ACS entry <tt>element-list</tt>.</t>
          <t>If every entry in the condition ECT <tt>element-list</tt> has a matching entry in the ACS entry <tt>element-list</tt> field then the element lists match.</t>
          <t>The order of the fields in each <tt>element-list</tt> field do not affect the result of the comparison.</t>
          <t>If any entry in the condition ECT <tt>element-list</tt> does not have a matching entry in the ACS entry <tt>element-list</tt> field then the <tt>element-list</tt> do not match.</t>
        </section>
        <section anchor="sec-compare-element-map">
          <name>Element map comparison</name>
          <t>A Verifier shall compare each <tt>element-map</tt> within the condition ECT <tt>element-list</tt> against the ACS entry <tt>element-list</tt>.</t>
          <t>First, a Verifier SHALL locate the entries in the ACS entry <tt>element-list</tt> which have a matching <tt>element-id</tt> as the condition ECT <tt>element-map</tt>.
Two <tt>element-id</tt> fields are the same if they are either both omitted, or both present with binary identical deterministic encodings.</t>
          <t>Before performing the binary comparison, a Verifier SHOULD convert both fields into a form which meets CBOR Core Deterministic Encoding Requirements <xref target="STD94"/>.</t>
          <t>If any condition ECT entry <tt>element-id</tt> does not have a corresponding <tt>element-id</tt> in the ACS entry then the element map does not match.</t>
          <t>If any condition ECT entry has multiple corresponding <tt>element-id</tt>s then the element map does not match.</t>
          <t>Second, a Verifier SHALL compare the <tt>element-claims</tt> field within the condition ECT <tt>element-list</tt> and the corresponding field from the ACS entry.
See <xref target="sec-compare-mvm"/>.</t>
        </section>
        <section anchor="sec-compare-mvm">
          <name>Measurement values map map Comparison</name>
          <t>A Verifier SHALL iterate over the codepoints which are present in the condition ECT element's <tt>measurement-values-map</tt>.
Each of the codepoints present in the condition ECT <tt>measurement-values-map</tt> is compared against the same codepoint in the candidate entry <tt>measurement-values-map</tt>.</t>
          <t>If any codepoint present in the condition ECT <tt>measurement-values-map</tt> does not have a corresponding codepoint within the candidate entry <tt>measurement-values-map</tt> then Verifier SHALL remove that candidate entry from the candidate entries array.</t>
          <t>If any codepoint present in the condition ECT <tt>measurement-values-map</tt> does not match the same codepoint within the candidate entry <tt>measurement-values-map</tt> then Verifier SHALL remove that candidate entry from the candidate entries array.</t>
          <section anchor="sec-match-one-codepoint">
            <name>Comparison of a single measurement-values-map codepoint</name>
            <t>A Verifier SHALL compare each condition ECT <tt>measurement-values-map</tt> value against the corresponding ACS entry value using the appropriate algorithm.</t>
            <t>Non-negative codepoints represent standard data representations.
The comparison algorithms for these are defined in this document (in the sections below) or in other specifications.
For some non-negative codepoints their behavior is modified by the CBOR tag at the start of the condition ECT <tt>measurement-values-map</tt> value.</t>
            <t>Negative codepoints represent profile defined data representations.
A Verifier SHALL use the codepoint number, the profile associated with the condition ECT, and the tag value (if present) to select the comparison algorithm.</t>
            <t>If a Verifier is unable to determine the comparison algorithm which applies to a codepoint then it SHALL behave as though the candidate entry does not match the condition ECT.</t>
            <t>Profile writers SHOULD use CBOR tags for widely applicable comparison methods to ease Verifier implementation compliance across profiles.</t>
            <t>The following subsections define the comparison algorithms for the <tt>measurement-values-map</tt> codepoints defined by this specification.</t>
            <section anchor="comparison-for-version-entries">
              <name>Comparison for version entries</name>
              <t>The value stored under <tt>measurement-values-map</tt> codepoint 0 is an version label, which must have type <tt>version-map</tt>.
Two <tt>version-map</tt> values can only be compared for equality, as they are colloquial versions that cannot specify ordering.</t>
            </section>
            <section anchor="comparison-for-svn-entries">
              <name>Comparison for svn entries</name>
              <t>The ACS entry value stored under <tt>measurement-values-map</tt> codepoint 1 is a security version number, which must have type <tt>svn-type</tt>.</t>
              <t>If the entry <tt>svn-type</tt> is a <tt>uint</tt> or a <tt>uint</tt> tagged with #6.552, then comparison with the <tt>uint</tt> named as SVN is as follows.</t>
              <ul spacing="normal">
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is an untagged <tt>uint</tt> or a <tt>uint</tt> tagged with #6.552 then an equality comparison is performed on the <tt>uint</tt> components.
The comparison MUST return true if the value of SVN is equal to the <tt>uint</tt> value in the condition ECT.</t>
                </li>
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is a <tt>uint</tt> tagged with #6.553 then a minimum comparison is performed.
The comparison MUST return true if the value of SVN is less or equal to than the <tt>uint</tt> value in the condition ECT.</t>
                </li>
              </ul>
              <t>If the entry <tt>svn-type</tt> is a <tt>uint</tt> tagged with #6.553, then comparison with the <tt>uint</tt> named as MINSVN is as follows.</t>
              <ul spacing="normal">
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is an untagged <tt>uint</tt> or a <tt>uint</tt> tagged with #6.552 then the comparison MUST return false.</t>
                </li>
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is a <tt>uint</tt> tagged with #6.553 then an equality comparison is performed.
The comparison MUST return true if the value of MINSVN is equal to the <tt>uint</tt> value in the condition ECT.</t>
                </li>
              </ul>
              <t>The meaning of a minimum SVN as an entry value is only meaningful as an endorsed value that has been added to the ACS.
The condition therefore treats the minimum SVN as an exact state and not one to compare with inequality.</t>
            </section>
            <section anchor="sec-cmp-digests">
              <name>Comparison for digests entries</name>
              <t>A <tt>digests</tt> entry contains one or more digests, each measuring the same object.
When multiple digests are provided, each represents a different algorithm acceptable to the condition ECT author.</t>
              <t>In the simple case, a condition ECT digests entry containing one digest matches matches a candidate entry containing a single entry with the same algorithm and value.</t>
              <t>To prevent downgrade attacks, if there are multiple algorithms in common between the condition ECT and candidate entry, then the bytes paired with common algorithms must be equal.
A Verifier SHALL treat two algorithm identifiers as equal if they have the same deterministic binary encoding.
If both an integer and a string representation are defined for an algorithm then entities creating ECTs SHOULD use the integer representation.
If condition ECT and ACS entry use different names for the same algorithm, and the Verifier does not recognize that they are the same, then a downgrade attack is possible.</t>
              <t>The comparison MUST return false if the CBOR encoding of the <tt>digests</tt> entry in the condition ECT or the ACS value with the same codepoint is incorrect (for example if fields are missing or the wrong type).</t>
              <t>The comparison MUST return false if the condition ECT digests entry does not contain any digests.</t>
              <t>The comparison MUST return false if either digests entry contains multiple values for the same hash algorithm.</t>
              <t>The Verifier MUST iterate over the condition ECT <tt>digests</tt> array, locating common hash algorithm identifiers (which are present in the condition ECT and in the candidate entry).
If the value associated with any common hash algorithm identifier in the condition ECT differs from the value for the same algorithm identifier in the candidate entry then the comparison MUST return false.</t>
              <t>The comparison MUST return false if there are no hash algorithms from the condition ECT in common with the hash algorithms from the candidate entry ECT.</t>
            </section>
            <section anchor="comparison-for-raw-value-entries">
              <name>Comparison for raw-value entries</name>
              <t><cref anchor="issue_7">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/71</t>
            </section>
            <section anchor="sec-cryptokeys-matching">
              <name>Comparison for cryptokeys entries</name>
              <t>The CBOR tag of the first entry of the condition ECT <tt>cryptokeys</tt> array is compared with the CBOR tag of the first entry of the candidate entry <tt>cryptokeys</tt> value.
If the CBOR tags match, then the bytes following the CBOR tag from the condition ECT entry are compared with the bytes following the CBOR tag from the candidate entry.
If the byte strings match, and there is another array entry, then the next entry from the condition ECTs array is likewise compared with the next entry of the ACS array.
If all entries of the condition ECTs array match a corresponding entry in the ACS array, then the <tt>cryptokeys</tt> condition ECT matches.
Otherwise, <tt>cryptokeys</tt> does not match.</t>
            </section>
            <section anchor="sec-cmp-integrity-registers">
              <name>Comparison for Integrity Registers</name>
              <t>For each Integrity Register entry in the condition ECT, the Verifier will use the associated identifier (i.e., <tt>integrity-register-id-type-choice</tt>) to look up the matching Integrity Register entry in the candidate entry.
If no entry is found, the comparison MUST return false.
Instead, if an entry is found, the digest comparison proceeds as defined in <xref target="sec-cmp-digests"/> after equivalence has been found according to <xref target="sec-comid-integrity-registers"/>.
Note that it is not required for all the entries in the candidate entry to be used during matching: the condition ECT could consist of a subset of the device's register space. In TPM parlance, a TPM "quote" may report all PCRs in Evidence, while a condition ECT could describe a subset of PCRs.</t>
            </section>
          </section>
        </section>
        <section anchor="sec-compare-profile">
          <name>Profile-directed Comparison</name>
          <t>A profile MUST specify comparison algorithms for its additions to <tt>$</tt>-prefixed CoRIM CDDL codepoints when this specification does not prescribe binary comparison.
The profile must specify how to compare the CBOR tagged Reference Value against the ACS.</t>
          <t>Note that a Verifier may compare Reference Values in any order, so the comparison should not be stateful.</t>
        </section>
      </section>
    </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 anchor="veraison">
        <name>Veraison</name>
        <ul spacing="normal">
          <li>
            <t>Organization responsible for the implementation: Veraison Project, Linux
Foundation</t>
          </li>
          <li>
            <t>Implementation's web page:
<eref target="https://github.com/veraison/corim/blob/main/README.md">https://github.com/veraison/corim/README.md</eref></t>
          </li>
          <li>
            <t>Brief general description: The <tt>corim/corim</tt> and <tt>corim/comid</tt> packages
provide a golang API for low-level manipulation of Concise Reference
Integrity Manifest (CoRIM) and Concise Module Identifier (CoMID) tags
respectively.  The <tt>corim/cocli</tt> package uses the API above (as well as the
API from the <tt>veraison/swid</tt> package) to provide a user command line
interface for working with CoRIM, CoMID and CoSWID. Specifically, it allows
creating, signing, verifying, displaying, uploading, and more. See
<eref target="https://github.com/veraison/corim/blob/main/cocli/README.md">https://github.com/cocli/README.md</eref> for
further details.</t>
          </li>
          <li>
            <t>Implementation's level of maturity: alpha.</t>
          </li>
          <li>
            <t>Coverage: the whole protocol is implemented, including PSA-specific
extensions <xref target="I-D.fdb-rats-psa-endorsements"/>.</t>
          </li>
          <li>
            <t>Version compatibility: Version -02 of the draft</t>
          </li>
          <li>
            <t>Licensing: Apache 2.0
<eref target="https://github.com/veraison/corim/blob/main/LICENSE">https://github.com/veraison/corim/blob/main/LICENSE</eref></t>
          </li>
          <li>
            <t>Implementation experience: n/a</t>
          </li>
          <li>
            <t>Contact information:
<eref target="https://veraison.zulipchat.com">https://veraison.zulipchat.com</eref></t>
          </li>
          <li>
            <t>Last updated:
<eref target="https://github.com/veraison/corim/commits/main">https://github.com/veraison/corim/commits/main</eref></t>
          </li>
        </ul>
      </section>
    </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 the Verifier system should be considered throughout its 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 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 (Endorsers, RVPs, Verifier Owners).
These links must reach as deep as possible - possibly terminating within the appraisal session context - 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>
      <t><cref anchor="issue_8">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/11</t>
    </section>
    <section anchor="sec-iana-cons">
      <name>IANA Considerations</name>
      <section anchor="new-cose-header-parameters">
        <name>New COSE Header Parameters</name>
        <t><cref anchor="issue_9">Content missing. Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/12</t>
      </section>
      <section anchor="sec-iana-cbor-tags">
        <name>New CBOR Tags</name>
        <t>IANA is requested to allocate the following tags in the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, preferably with the specific CBOR tag value requested:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">500</td>
              <td align="left">
                <tt>tag</tt></td>
              <td align="left">A tagged-concise-rim-type-choice, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">501</td>
              <td align="left">
                <tt>map</tt></td>
              <td align="left">A tagged-corim-map, see <xref target="sec-corim-map"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">502</td>
              <td align="left">
                <tt>tag</tt></td>
              <td align="left">A tagged-signed-corim, see <xref target="sec-corim-signed"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">503-504</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">505</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-swid-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">506</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-mid-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">507</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">508</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-bom-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">509-549</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">550</td>
              <td align="left">
                <tt>bytes .size 33</tt></td>
              <td align="left">tagged-ueid-type, see <xref target="sec-common-ueid"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">552</td>
              <td align="left">
                <tt>uint</tt></td>
              <td align="left">tagged-svn, see <xref target="sec-comid-svn"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">553</td>
              <td align="left">
                <tt>uint</tt></td>
              <td align="left">tagged-min-svn, see <xref target="sec-comid-svn"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">554</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-key-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">555</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-cert-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">556</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-cert-path-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">557</td>
              <td align="left">
                <tt>[int/text, bytes]</tt></td>
              <td align="left">tagged-thumbprint-type, see <xref target="sec-common-hash-entry"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">558</td>
              <td align="left">
                <tt>COSE_Key/ COSE_KeySet</tt></td>
              <td align="left">tagged-cose-key-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">559</td>
              <td align="left">
                <tt>digest</tt></td>
              <td align="left">tagged-cert-thumbprint-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">560</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">tagged-bytes, see <xref target="sec-common-tagged-bytes"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">561</td>
              <td align="left">
                <tt>digest</tt></td>
              <td align="left">tagged-cert-path-thumbprint-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">562</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">tagged-pkix-asn1der-cert-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">563-599</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>Tags designated as "Earmarked for CoRIM" can be reassigned by IANA based on advice from the designated expert for the CBOR Tags registry.</t>
      </section>
      <section anchor="sec-iana-corim">
        <name>CoRIM Map Registry</name>
        <t>This document defines a new registry titled "CoRIM Map".
The registry uses integer values as index values for items in 'unsigned-corim-map' CBOR maps.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-corim-map-items-reg-procedures">
          <name>CoRIM Map Items Registration Procedures</name>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-127</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">128-255</td>
              <td align="left">Specification Required</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoRIM Map" registry are provided below.
Assignments consist of an integer index value, the item name, and a reference to the defining specification.</t>
        <table anchor="tbl-iana-corim-map-items">
          <name>CoRIM Map Items Initial Registrations</name>
          <thead>
            <tr>
              <th align="left">Index</th>
              <th align="left">Item Name</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">id</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">tags</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">dependent-rims</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">profile</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">rim-validity</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">entities</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-comid">
        <name>CoMID Map Registry</name>
        <t>This document defines a new registry titled "CoMID Map".
The registry uses integer values as index values for items in 'concise-mid-tag' CBOR maps.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-comid-map-items-reg-procedures">
          <name>CoMID Map Items Registration Procedures</name>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-127</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">128-255</td>
              <td align="left">Specification Required</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoMID Map" registry are provided below.
Assignments consist of an integer index value, the item name, and a reference to the defining specification.</t>
        <table anchor="tbl-iana-comid-map-items">
          <name>CoMID Map Items Initial Registrations</name>
          <thead>
            <tr>
              <th align="left">Index</th>
              <th align="left">Item Name</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">language</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">tag-identity</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">entity</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">linked-tags</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-cobom">
        <name>CoBOM Map Registry</name>
        <t>This document defines a new registry titled "CoBOM Map".
The registry uses integer values as index values for items in 'concise-bom-tag' CBOR maps.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-cobom-map-items-reg-procedures">
          <name>CoBOM Map Items Registration Procedures</name>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-127</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">128-255</td>
              <td align="left">Specification Required</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoBOM Map" registry are provided below.
Assignments consist of an integer index value, the item name, and a reference to the defining specification.</t>
        <table anchor="tbl-iana-cobom-map-items">
          <name>CoBOM Map Items Initial Registrations</name>
          <thead>
            <tr>
              <th align="left">Index</th>
              <th align="left">Item Name</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">tag-identity</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">tags-list</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">bom-validity</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-media-types">
        <name>New Media Types</name>
        <t>IANA is requested to add the following media types to the "Media Types"
registry <xref target="IANA.media-types"/>.</t>
        <table align="left" anchor="tbl-media-type">
          <name>New Media Types</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">corim-signed+cbor</td>
              <td align="left">application/corim-signed+cbor</td>
              <td align="left">RFCthis, (<xref target="sec-mt-corim-signed"/>)</td>
            </tr>
            <tr>
              <td align="left">corim-unsigned+cbor</td>
              <td align="left">application/corim-unsigned+cbor</td>
              <td align="left">RFCthis, (<xref target="sec-mt-corim-unsigned"/>)</td>
            </tr>
          </tbody>
        </table>
        <section anchor="sec-mt-corim-signed">
          <name>corim-signed+cbor</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t><tt>application</tt></t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t><tt>corim-signed+cbor</tt></t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>"profile" (CoRIM profile in string format.  OIDs MUST use the dotted-decimal
notation.)</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>(<xref target="sec-sec"/>) of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attestation Verifiers, Endorsers and Reference-Value providers that need to
transfer COSE Sign1 wrapped CoRIM payloads over HTTP(S), CoAP(S), and other
transports.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Magic number(s):</dt>
            <dd>
              <t><tt>D9 01 F6 D2</tt>, <tt>D9 01 F4 D9 01 F6 D2</tt></t>
            </dd>
            <dt>File extension(s):</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Macintosh file type code(s):</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Person and email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration?</dt>
            <dd>
              <t>Maybe</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-mt-corim-unsigned">
          <name>corim-unsigned+cbor</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t><tt>application</tt></t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t><tt>corim-unsigned+cbor</tt></t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>"profile" (CoRIM profile in string format.  OIDs MUST use the dotted-decimal
notation.)</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="sec-sec"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attestation Verifiers, Endorsers and Reference-Value providers that need to
transfer unprotected CoRIM payloads over HTTP(S), CoAP(S), and other
transports.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Magic number(s):</dt>
            <dd>
              <t><tt>D9 01 F5</tt>, <tt>D9 01 F4 D9 01 F5</tt></t>
            </dd>
            <dt>File extension(s):</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Macintosh file type code(s):</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Person and email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration?</dt>
            <dd>
              <t>Maybe</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="coap-content-formats-registration">
        <name>CoAP Content-Formats Registration</name>
        <t>IANA is requested to register the two following Content-Format numbers in the
"CoAP Content-Formats" sub-registry, within the "Constrained RESTful
Environments (CoRE) Parameters" Registry <xref target="IANA.core-parameters"/>:</t>
        <table align="left">
          <name>New Content-Formats</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/corim-signed+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">application/corim-unsigned+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4122">
          <front>
            <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4122"/>
          <seriesInfo name="DOI" value="10.17487/RFC4122"/>
        </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="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <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="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles. SWID tag representations can be too large for devices with network and storage constraints. This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags. CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </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="IANA.language-subtag-registry" target="https://www.iana.org/assignments/language-subtag-registry">
          <front>
            <title>Language Subtag Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="I-D.fdb-rats-psa-endorsements">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Verifier Endorsements</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="30" month="August" year="2024"/>
            <abstract>
              <t>   PSA Endorsements include reference values, cryptographic key material
   and certification status information that a Verifier needs in order
   to appraise attestation Evidence produced by a PSA device.  This memo
   defines such PSA Endorsements as a profile of the CoRIM data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fdb-rats-psa-endorsements-05"/>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="23" month="September" year="2024"/>
            <abstract>
              <t>   The Arm Platform Security Architecture (PSA) is a family of hardware
   and firmware security specifications, as well as open-source
   reference implementations, to help device makers and chip
   manufacturers build best-practice security into products.  Devices
   that are PSA compliant can produce attestation tokens as described in
   this memo, which are the basis for many different protocols,
   including secure provisioning and network access control.  This
   document specifies the PSA attestation token structure and semantics.

   The PSA attestation token is a profile of the Entity Attestation
   Token (EAT).  This specification describes what claims are used in an
   attestation token generated by PSA compliant systems, how these
   claims get serialized to the wire, and how they are cryptographically
   protected.

   This informational document is published as an independent submission
   to improve interoperability with Arm's architecture.  It is not a
   standard nor a product of the IETF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-24"/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
         </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="23" month="July" 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-03"/>
        </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="IANA.coswid" target="https://www.iana.org/assignments/coswid">
          <front>
            <title>Concise Software Identifier (CoSWID)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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="I-D.ietf-rats-concise-ta-stores">
          <front>
            <title>Concise TA Stores (CoTS)</title>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software</organization>
            </author>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <date day="5" month="December" year="2023"/>
            <abstract>
              <t>   Trust anchor (TA) stores may be used for several purposes in the
   Remote Attestation Procedures (RATS) architecture including verifying
   endorsements, reference values, digital letters of approval,
   attestations, or public key certificates.  This document describes a
   Concise Reference Integrity Manifest (CoRIM) extension that may be
   used to convey optionally constrained trust anchor stores containing
   optionally constrained trust anchors in support of these purposes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-concise-ta-stores-02"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="2" month="September" year="2024"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-07"/>
        </reference>
        <reference anchor="I-D.ietf-rats-cobom">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <?line 2970?>

<section anchor="sec-corim-cddl">
      <name>Base CoRIM CDDL</name>
      <sourcecode type="cddl"><![CDATA[
corim = tagged-concise-rim-type-choice

$concise-rim-type-choice /= tagged-corim-map
$concise-rim-type-choice /= tagged-signed-corim

concise-bom-tag = {
  &(tag-identity: 0) => tag-identity-map
  &(tags-list: 1) => [ + tag-identity-map ],
  &(bom-validity: 2) => validity-map
  * $$concise-bom-tag-extension
}

$concise-tag-type-choice /= tagged-concise-swid-tag
$concise-tag-type-choice /= tagged-concise-mid-tag
$concise-tag-type-choice /= tagged-concise-bom-tag

corim-entity-map =
  entity-map<$corim-role-type-choice, $$corim-entity-map-extension>

$corim-id-type-choice /= tstr
$corim-id-type-choice /= uuid-type

corim-locator-map = {
  &(href: 0) => uri
  ? &(thumbprint: 1) => digest
}

corim-map = {
  &(id: 0) => $corim-id-type-choice
  &(tags: 1) => [ + $concise-tag-type-choice ]
  ? &(dependent-rims: 2) => [ + corim-locator-map ]
  ? &(profile: 3) => $profile-type-choice
  ? &(rim-validity: 4) => validity-map
  ? &(entities: 5) => [ + corim-entity-map ]
  * $$corim-map-extension
}

corim-meta-map = {
  &(signer: 0) => corim-signer-map
  ? &(signature-validity: 1) => validity-map
}

$corim-role-type-choice /= &(manifest-creator: 1)

corim-signer-map = {
  &(signer-name: 0) => $entity-name-type-choice
  ? &(signer-uri: 1) => uri
  * $$corim-signer-map-extension
}

COSE-Sign1-corim = [
  protected: bstr .cbor protected-corim-header-map
  unprotected: unprotected-corim-header-map
  payload: bstr .cbor tagged-corim-map
  signature: bstr
]

$profile-type-choice /= uri 
$profile-type-choice /= tagged-oid-type

protected-corim-header-map = {
  &(alg: 1) => int
  &(content-type: 3) => "application/corim-unsigned+cbor"
  &(kid: 4) => bstr
  &(corim-meta: 8) => bstr .cbor corim-meta-map
  * cose-label => cose-value
}

signed-corim = #6.18(COSE-Sign1-corim)

tagged-corim-map = #6.501(corim-map)


tagged-concise-rim-type-choice = #6.500($concise-rim-type-choice)

tagged-signed-corim = #6.502(signed-corim)

tagged-concise-swid-tag = #6.505(bytes .cbor concise-swid-tag)

tagged-concise-mid-tag = #6.506(bytes .cbor concise-mid-tag)

tagged-concise-bom-tag = #6.508(bytes .cbor concise-bom-tag)

unprotected-corim-header-map = {
  * cose-label => cose-value
}

validity-map = {
  ? &(not-before: 0) => time
  &(not-after: 1) => time
}

concise-mid-tag = {
  ? &(language: 0) => text
  &(tag-identity: 1) => tag-identity-map
  ? &(entities: 2) => [ + comid-entity-map ]
  ? &(linked-tags: 3) => [ + linked-tag-map ]
  &(triples: 4) => triples-map
  * $$concise-mid-tag-extension
}

accepted-claims-set = {
  &(state-triples: 0) => [ + endorsed-triple-record ]
  ? &(identity-triples: 1) => [ + identity-triple-record ]
  ? &(coswid-triples: 2) => [ + ev-coswid-triple-record ]
  * $$accepted-claims-set-extension
}

attest-key-triple-record = [
  environment-map
  [ + $crypto-key-type-choice ]
]

$class-id-type-choice /= tagged-oid-type
$class-id-type-choice /= tagged-uuid-type
$class-id-type-choice /= tagged-bytes

class-map = non-empty<{
  ? &(class-id: 0) => $class-id-type-choice
  ? &(vendor: 1) => tstr
  ? &(model: 2) => tstr
  ? &(layer: 3) => uint
  ? &(index: 4) => uint
}>

comid-entity-map =
  entity-map<$comid-role-type-choice, $$comid-entity-map-extension>

$comid-role-type-choice /= &(tag-creator: 0)
$comid-role-type-choice /= &(creator: 1)
$comid-role-type-choice /= &(maintainer: 2)

conditional-endorsement-series-triple-record = [
  condition: stateful-environment-record
  series: [ + conditional-series-record ]
]

conditional-series-record = [
  selection: [ + measurement-map]
  addition: [ + measurement-map ]
]

COSE_KeySet = [ + COSE_Key ]

COSE_Key = {
    1 => tstr / int
    ? 2 => bstr 
    ? 3 => tstr / int 
    ? 4 => [+ (tstr / int) ]
    ? 5 => bstr
    * cose-label => cose-value
}

cose-label = int / tstr
cose-value = any

coswid-triple-record = [
  environment-map
  [ + concise-swid-tag-id ]
]

concise-swid-tag-id = text / bstr .size 16

$crypto-key-type-choice /= tagged-pkix-base64-key-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-type
$crypto-key-type-choice /= tagged-pkix-base64-cert-path-type
$crypto-key-type-choice /= tagged-cose-key-type
$crypto-key-type-choice /= tagged-thumbprint-type
$crypto-key-type-choice /= tagged-cert-thumbprint-type
$crypto-key-type-choice /= tagged-cert-path-thumbprint-type
$crypto-key-type-choice /= tagged-pkix-asn1der-cert-type
$crypto-key-type-choice /= tagged-bytes

tagged-pkix-base64-key-type = #6.554(tstr)
tagged-pkix-base64-cert-type = #6.555(tstr)
tagged-pkix-base64-cert-path-type = #6.556(tstr)
tagged-thumbprint-type = #6.557(digest)
tagged-cose-key-type = #6.558(COSE_KeySet / COSE_Key)
tagged-cert-thumbprint-type = #6.559(digest)
tagged-cert-path-thumbprint-type = #6.561(digest)
tagged-pkix-asn1der-cert-type = #6.562(bstr)

domain-dependency-triple-record = [
  $domain-type-choice
  [ + $domain-type-choice ]
]

domain-membership-triple-record = [
  $domain-type-choice
  [ + environment-map ]
]

conditional-endorsement-triple-record = [
  conditions: [ + stateful-environment-record ]
  endorsements: [ + endorsed-triple-record ]
]

$domain-type-choice /= uint
$domain-type-choice /= text
$domain-type-choice /= tagged-uuid-type
$domain-type-choice /= tagged-oid-type

endorsed-triple-record = [
  condition: environment-map
  endorsement: [ + measurement-map ]
]

entity-map<role-type-choice, extension-socket> = {
  &(entity-name: 0) => $entity-name-type-choice
  ? &(reg-id: 1) => uri
  &(role: 2) => [ + role-type-choice ]
  * extension-socket
}

$entity-name-type-choice /= text

environment-map = non-empty<{
  ? &(class: 0) => class-map
  ? &(instance: 1) => $instance-id-type-choice
  ? &(group: 2) => $group-id-type-choice
}>

flags-map = {
  ? &(is-configured: 0) => bool
  ? &(is-secure: 1) => bool
  ? &(is-recovery: 2) => bool
  ? &(is-debug: 3) => bool
  ? &(is-replay-protected: 4) => bool
  ? &(is-integrity-protected: 5) => bool
  ? &(is-runtime-meas: 6) => bool
  ? &(is-immutable: 7) => bool
  ? &(is-tcb: 8) => bool
  ? &(is-confidentiality-protected: 9) => bool
  * $$flags-map-extension
}

$group-id-type-choice /= tagged-uuid-type
$group-id-type-choice /= tagged-bytes

identity-triple-record = [
  environment-map
  [ + $crypto-key-type-choice ]
]

$instance-id-type-choice /= tagged-ueid-type
$instance-id-type-choice /= tagged-uuid-type
$instance-id-type-choice /= $crypto-key-type-choice
$instance-id-type-choice /= tagged-bytes

ip-addr-type-choice = ip4-addr-type / ip6-addr-type
ip4-addr-type = bytes .size 4
ip6-addr-type = bytes .size 16

linked-tag-map = {
  &(linked-tag-id: 0) => $tag-id-type-choice
  &(tag-rel: 1) => $tag-rel-type-choice
}

mac-addr-type-choice = eui48-addr-type / eui64-addr-type
eui48-addr-type = bytes .size 6
eui64-addr-type = bytes .size 8

$measured-element-type-choice /= tagged-oid-type
$measured-element-type-choice /= tagged-uuid-type
$measured-element-type-choice /= uint
$measured-element-type-choice /= tstr

measurement-map = {
  ? &(mkey: 0) => $measured-element-type-choice
  &(mval: 1) => measurement-values-map
  ? &(authorized-by: 2) => [ + $crypto-key-type-choice ]
}

measurement-values-map = non-empty<{
  ? &(version: 0) => version-map
  ? &(svn: 1) => svn-type-choice
  ? &(digests: 2) => digests-type
  ? &(flags: 3) => flags-map
  ? (
      &(raw-value: 4) => $raw-value-type-choice,
      ? &(raw-value-mask: 5) => raw-value-mask-type
    )
  ? &(mac-addr: 6) => mac-addr-type-choice
  ? &(ip-addr: 7) =>  ip-addr-type-choice
  ? &(serial-number: 8) => text
  ? &(ueid: 9) => ueid-type
  ? &(uuid: 10) => uuid-type
  ? &(name: 11) => text
  ? &(cryptokeys: 13) => [ + $crypto-key-type-choice ]
  ? &(integrity-registers: 14) => integrity-registers
  * $$measurement-values-map-extension
}>

non-empty<M> = (M) .and ({ + any => any })

oid-type = bytes
tagged-oid-type = #6.111(oid-type)

$raw-value-type-choice /= tagged-bytes

raw-value-mask-type = bytes

reference-triple-record = [
  ref-env: environment-map
  ref-claims: [ + measurement-map ]
]

stateful-environment-record = [
  environment: environment-map,
  claims-list: [ + measurement-map ]
]

svn-type = uint
svn = svn-type
min-svn = svn-type
tagged-svn = #6.552(svn)
tagged-min-svn = #6.553(min-svn)
svn-type-choice = svn / tagged-svn / tagged-min-svn

$tag-id-type-choice /= tstr
$tag-id-type-choice /= uuid-type

tag-identity-map = {
  &(tag-id: 0) => $tag-id-type-choice
  ? &(tag-version: 1) => tag-version-type
}

$tag-rel-type-choice /= &(supplements: 0)
$tag-rel-type-choice /= &(replaces: 1)

tag-version-type = uint .default 0

tagged-bytes = #6.560(bytes)

triples-map = non-empty<{
  ? &(reference-triples: 0) =>
    [ + reference-triple-record ]
  ? &(endorsed-triples: 1) =>
    [ + endorsed-triple-record ]
  ? &(identity-triples: 2) =>
    [ + identity-triple-record ]
  ? &(attest-key-triples: 3) =>
    [ + attest-key-triple-record ]
  ? &(dependency-triples: 4) =>
    [ + domain-dependency-triple-record ]
  ? &(membership-triples: 5) =>
    [ + domain-membership-triple-record ]
  ? &(coswid-triples: 6) =>
    [ + coswid-triple-record ]
  ? &(conditional-endorsement-series-triples: 8) =>
    [ + conditional-endorsement-series-triple-record ]
  ? &(conditional-endorsement-triples: 10) =>
    [ + conditional-endorsement-triple-record ]
  * $$triples-map-extension
}>

ueid-type = bytes .size 33
tagged-ueid-type = #6.550(ueid-type)

uuid-type = bytes .size 16
tagged-uuid-type = #6.37(uuid-type)

version-map = {
  &(version: 0) => text
  ? &(version-scheme: 1) => $version-scheme
}

digest = [
  alg: (int / text),
  val: bytes
]

digests-type = [ + digest ]

integrity-register-id-type-choice = uint / text

integrity-registers = {
  + integrity-register-id-type-choice => digests-type
}

concise-swid-tag = {
  tag-id => text / bstr .size 16,
  tag-version => integer,
  ? corpus => bool,
  ? patch => bool,
  ? supplemental => bool,
  software-name => text,
  ? software-version => text,
  ? version-scheme => $version-scheme,
  ? media => text,
  ? software-meta => one-or-more<software-meta-entry>,
  entity => one-or-more<entity-entry>,
  ? link => one-or-more<link-entry>,
  ? payload-or-evidence,
  * $$coswid-extension,
  global-attributes,
}

payload-or-evidence //= ( payload => payload-entry )
payload-or-evidence //= ( evidence => evidence-entry )

any-uri = uri
label = text / int

$version-scheme /= multipartnumeric
$version-scheme /= multipartnumeric-suffix
$version-scheme /= alphanumeric
$version-scheme /= decimal
$version-scheme /= semver
$version-scheme /= int / text

any-attribute = (
  label => one-or-more<text> / one-or-more<int>
)

one-or-more<T> = T / [ 2* T ]

global-attributes = (
  ? lang => text,
  * any-attribute,
)

hash-entry = [
  hash-alg-id: int,
  hash-value: bytes,
]

entity-entry = {
  entity-name => text,
  ? reg-id => any-uri,
  role => one-or-more<$role>,
  ? thumbprint => hash-entry,
  * $$entity-extension,
  global-attributes,
}

$role /= tag-creator
$role /= software-creator
$role /= aggregator
$role /= distributor
$role /= licensor
$role /= maintainer
$role /= int / text

link-entry = {
  ? artifact => text,
  href => any-uri,
  ? media => text,
  ? ownership => $ownership,
  rel => $rel,
  ? media-type => text,
  ? use => $use,
  * $$link-extension,
  global-attributes,
}

$ownership /= shared
$ownership /= private
$ownership /= abandon
$ownership /= int / text

$rel /= ancestor
$rel /= component
$rel /= feature
$rel /= installationmedia
$rel /= packageinstaller
$rel /= parent
$rel /= patches
$rel /= requires
$rel /= see-also
$rel /= supersedes
$rel /= supplemental
$rel /= -256..64436 / text

$use /= optional
$use /= required
$use /= recommended
$use /= int / text

software-meta-entry = {
  ? activation-status => text,
  ? channel-type => text,
  ? colloquial-version => text,
  ? description => text,
  ? edition => text,
  ? entitlement-data-required => bool,
  ? entitlement-key => text,
  ? generator =>  text / bstr .size 16,
  ? persistent-id => text,
  ? product => text,
  ? product-family => text,
  ? revision => text,
  ? summary => text,
  ? unspsc-code => text,
  ? unspsc-version => text,
  * $$software-meta-extension,
  global-attributes,
}

path-elements-group = ( ? directory => one-or-more<directory-entry>,
                        ? file => one-or-more<file-entry>,
                      )

resource-collection = (
  path-elements-group,
  ? process => one-or-more<process-entry>,
  ? resource => one-or-more<resource-entry>,
  * $$resource-collection-extension,
)

file-entry = {
  filesystem-item,
  ? size => uint,
  ? file-version => text,
  ? hash => hash-entry,
  * $$file-extension,
  global-attributes,
}

directory-entry = {
  filesystem-item,
  ? path-elements => { path-elements-group },
  * $$directory-extension,
  global-attributes,
}

process-entry = {
  process-name => text,
  ? pid => integer,
  * $$process-extension,
  global-attributes,
}

resource-entry = {
  type => text,
  * $$resource-extension,
  global-attributes,
}

filesystem-item = (
  ? key => bool,
  ? location => text,
  fs-name => text,
  ? root => text,
)

payload-entry = {
  resource-collection,
  * $$payload-extension,
  global-attributes,
}

evidence-entry = {
  resource-collection,
  ? date => integer-time,
  ? device-id => text,
  ? location => text,
  * $$evidence-extension,
  global-attributes,
}

integer-time = #6.1(int)

tag-id = 0
software-name = 1
entity = 2
evidence = 3
link = 4
software-meta = 5
payload = 6
hash = 7
corpus = 8
patch = 9
media = 10
supplemental = 11
tag-version = 12
software-version = 13
version-scheme = 14
lang = 15
directory = 16
file = 17
process = 18
resource = 19
size = 20
file-version = 21
key = 22
location = 23
fs-name = 24
root = 25
path-elements = 26
process-name = 27
pid = 28
type = 29
entity-name = 31
reg-id = 32
role = 33
thumbprint = 34
date = 35
device-id = 36
artifact = 37
href = 38
ownership = 39
rel = 40
media-type = 41
use = 42
activation-status = 43
channel-type = 44
colloquial-version = 45
description = 46
edition = 47
entitlement-data-required = 48
entitlement-key = 49
generator = 50
persistent-id = 51
product = 52
product-family = 53
revision = 54
summary = 55
unspsc-code = 56
unspsc-version = 57

multipartnumeric = 1
multipartnumeric-suffix = 2
alphanumeric = 3
decimal = 4
semver = 16384

tag-creator=1
software-creator=2
aggregator=3
distributor=4
licensor=5
maintainer=6

abandon=1
private=2
shared=3

ancestor=1
component=2
feature=3
installationmedia=4
packageinstaller=5
parent=6
patches=7
requires=8
see-also=9
supersedes=10

optional=1
required=2
recommended=3

]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Carl Wallace"/> for review and comments on this document.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization>Universität Bremen TZI</organization>
        <address>
          <postal>
            <street>Postfach 330440</street>
            <city>Bremen</city>
            <code>D-28359</code>
            <country>Germany</country>
          </postal>
          <phone>+49-421-218-63921</phone>
          <email>cabo@tzi.org</email>
        </address>
      </contact>
      <t>Carsten Bormann contributed to the CDDL specifications and the IANA considerations.</t>
      <contact initials="A." surname="Draper" fullname="Andrew Draper">
        <organization>Intel Corporation</organization>
        <address>
          <email>andrew.draper@intel.com</email>
        </address>
      </contact>
      <t>Andrew contributed the concept, description, and semantics of conditional endorsements as well as consistent contribution to weekly reviews of others' edits.</t>
      <contact initials="D." surname="Glaze" fullname="Dionna Glaze">
        <organization>Google LLC</organization>
        <address>
          <email>dionnaglaze@google.com</email>
        </address>
      </contact>
      <t>Dionna contributed many clarifying questions and disambiguations to the semantics of attestation appraisal as well as consistent contribution to weekly reviews of others' edits.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
UU0eW33CUeXYxoF/75ZkGGk6XeCTPfiXaxbg5wKFvfRL+StwEAUyYUd0E5dn
6DX6pZaXGOvT0MNUn2o+/37LMY4k04JR0l9scxUAyV/P7fbSB51Uwrv4RO6L
vfQhujB40j+Wa3EvfYRuDHL/7KWP4RcrQfbSJ8mOd0ftQzz2fjbRingYrYcv
mc7KGdqYXYLoNReo49jdranzZ0eANReUWZpNHK+JCbP81CUACZKq5OrdEaRT
RUwMU6gGyRt9ukm6ZUIdNzMShhVN9kNdovMhdOJEU+CfWZlzpdemUWuHd2Ew
2m9ywnDsLEcImoYHxxzX4cZkc35UO8EqUnu8Y4l8TlunNIsBEGkhhdN3ofI6
O1j8Tz+1Z/Nxlo/xQlUnf/Ln9Lw5OyaQhS5MToD7cI6ptZw078GM9Aru8p+p
EaFiyn9/hx+k/N/PgGWu3/Tn5OfxeAyfuDSy0MC6eJzSJy8VZfEXtPb/YWtD
d05vbe0o0Kk8WduaidCpf7K2tRClU/fktRZBptbAw3zRD3oQmlvkeUJYBjuA
TNBtp7Wjk3CnFotlcD2F9Ye204M/sPWVP7Aj76cenTwN9mI0ijUeVBt6+IPY
oBOkzw6qTViKUV+JZ9dPYWpo6D4gI/j7QxrUYjFLCtfiuvH5jZGzoHJmRr0g
zyguiG3TdAjZJ9BZYGyyWKOC8+opAoTYubxEofDJw7gxfszR5aYYCTo+dOFE
tl+bWqUNKIfwCtFMxLcEm7psNbExisiUuMnbtGHYgVt49+s+ExTTGlNlRNfX
tawI7aqvPhPt6qD7J9Ewv8q/NQ0L6cxtNKy8n/n3t9KwuPX/SpS6i2hKqfsx
584UO9aSejarnG1EsOMOPL3OtVBSftV4Mtco6cYDhvvQhJTYKX77Tr4awRQF
Osn4io5qLc6I7kvpXHWT+XtGb4j9g8+a9d/ZlP94IXQy92vD/iHS9ENcisde
EuJF0XToOkPQs1/kp31OQbvKJylZC5KUY1tHBQ1Lt44IyrSav8m88o6DMUOY
r0p78U00IbzLOO66Dp1PorlwnxoZ6bKUD9wUm8CIerbOYud24uiB5+/mvgTp
kg8lHt70yF5hPiKrpOKkBjA553yXCyv/XBdWr1UleiZVODhp/3/eZevuMo92
/zOv8n+lG7t70pxsddejc+fLXAwnxyi98EF21zkrcDR6nX99BPm2F6g4xnzE
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
AgA=

-->

</rfc>
