<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-corim-09" category="std" consensus="true" submissionType="IETF" tocDepth="6" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="CoRIM">Concise Reference Integrity Manifest</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-09"/>
    <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>Independent</organization>
      <address>
        <email>ned.smith.ietf@outlook.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="2025" month="October" day="20"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>RIM, RATS, attestation, verifier, supply chain</keyword>
    <abstract>
      <?line 146?>

<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 154?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>The RATS Architecture <xref section="4" sectionFormat="of" target="RFC9334"/> specifies several roles, including Endorsers and Reference Value Providers.
These two roles are typically fulfilled by supply chain actors, such as manufacturers, distributors, or device owners.
Endorsers and Reference Value Providers supply Endorsements (e.g., test results or certification data) and Reference Values (e.g., digest ) relating to an Attester.
This information is used by a Verifier to appraise Evidence received from an Attester which describes Attester operational state.</t>
      <t>In a complex supply chain, multiple actors will likely produce these values over several points in time.
As such, one supply chain actor might only supply a portion of the Reference Values or Endorsements that otherwise fully characterizes an Attester.
Ideally, only the supply chain actor who is the most knowledgable entity regarding a particular component will supply Reference Values or Endorsements for that component.</t>
      <t>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>In order to promote inter-operability, consistency and accuracy in the representation of Endorsements and Reference Values this document specifies a data model for Endorsements and Reference Values known as Concise Reference Integrity Manifests (CoRIM).
The CoRIM data model is expressed in CDDL which is used to realize a CBOR <xref target="STD94"/> encoding suitable for cryptographic operations (e.g., hashing, signing, encryption) and transmission over computer networks.
Additionally, this document describes multiple phases of a Verifier Appraisal and provides an example of a possible use of CoRIM messages from multiple supply chain actors to represent a homogeneous representation of Attester state.
CoRIM is extensible to accommodate supply chain diversity while supporting a common representation for Endorsement and Reference Value inputs to Verifiers.
See <xref target="sec-verifier-rec"/>.</t>
      <section anchor="terminology-and-requirements-language">
        <name>Terminology and Requirements Language</name>
        <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>
        <t>This document uses terms and concepts defined by the RATS architecture.
Specifically the terms Attester, Reference Value Provider, Endorser, Verifier Owner, and Relying Party are taken from <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
        <t>For a complete glossary, see <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
        <t>This document uses the terms <em>"actual state"</em> and <em>"reference state"</em> as defined in <xref section="2" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>.</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>
        <section anchor="sec-glossary">
          <name>Glossary</name>
          <t>This document uses the following terms:</t>
          <dl newline="true">
            <dt>Appraisal Claims Set (ACS):</dt>
            <dd>
              <t>A structure that holds Environment-Claim Tuples 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 appraisal 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 Environment-Claim Tuples that are used to construct an Attestation Results message that is conveyed to a Relying Party.</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>Claim:</dt>
            <dd>
              <t>A piece of information, in the form of a key-value pair.
See also <xref section="4.2" sectionFormat="of" target="RFC9334"/> and <xref section="2" sectionFormat="of" target="RFC7519"/>.</t>
            </dd>
            <dt>Class ID:</dt>
            <dd>
              <t>An identifier for an Environment that is shared among similar Environment instances, such as those with the same hardware assembly.
See also <xref section="4.2.4" sectionFormat="of" target="RFC9711"/>.</t>
            </dd>
            <dt>Composite Attester:</dt>
            <dd>
              <t>A Composite Attester is either a Composite Device (<xref section="3.3" sectionFormat="of" target="RFC9334"/>) or a Layered Attester (<xref section="3.2" sectionFormat="of" target="RFC9334"/>) or any composition involving a combination of one or more Composite Devices or Layered Attesters.</t>
            </dd>
            <dt>Domain:</dt>
            <dd>
              <t>A domain is a hierarchical description of a Composite Attester in terms of its constituent Environments and their compositional relationships.</t>
            </dd>
            <dt>Endorsed values:</dt>
            <dd>
              <t>A set of characteristics of an Attester that do not appear in Evidence.
For example, Endorsed Values may include testing or certification data related to a hardware or firmware module.
Endorsed Values are said to be "conditional" when they apply if Attester's actual state matches Verifier's accepted Claims.
See also <xref section="3" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>.</t>
            </dd>
            <dt>Environment:</dt>
            <dd>
              <t>A logical partition within an Attester.
The term "Target Environment" refers to the group of system security metrics that are reported through Evidence.
The term "Attesting Environment" refers to the entity that collects and cryptographically signs such security metrics.
See also <xref section="3.1" sectionFormat="of" target="RFC9334"/>.</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>Instance ID:</dt>
            <dd>
              <t>An identifier of an Environment that is unique to that Environment instance, such as the serial number of a hardware module.
See also <xref section="4.2.1" sectionFormat="of" target="RFC9711"/>.</t>
            </dd>
            <dt>Measurement:</dt>
            <dd>
              <t>A value associated with specific security characteristics of an Attester that influences the trustworthiness of that Attester.
The object of a Measurement could be the invariant part of a firmware component loaded into memory during startup, a run-time integrity check (RTIC), a file system object, or a CPU register.
A measured object is part of the Attester's Target Environment.
Expected, or "golden," Measurements are compiled as Reference Values, which are used by the Verifier to assess the trust state of the Attester.
See also <xref target="TNC.Arch"/>, and Section 9.5.5 of <xref target="TPM2.Part1"/>.</t>
            </dd>
            <dt>Reference Values:</dt>
            <dd>
              <t>A set of values that represent the desired or undesired state of an Attester.
Reference Values are compared against Evidence to determine whether Attester state is corroborated by a Reference Value Provider.
Reference Values with matching Evidence produce "acceptable Claims."
See also <xref section="4.2" sectionFormat="of" target="RFC9334"/>, <xref section="8.3" sectionFormat="of" target="RFC9334"/>, and <xref section="2" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>.</t>
            </dd>
            <dt>Triple:</dt>
            <dd>
              <t>A term derived from the Resource Description Framework (RDF) to mean a statement expressing a relationship between a subject and an object resource.
The nature of the relationship between subject and object is expressed via a predicate.
In CoRIM, unlike RDF, the predicate of the triple is implicit and is encoded in the triple's name/codepoint.
CoRIM triples typically represent assertions made by the CoRIM author regarding Attesting or Target Environments and their security features, such as Measurements and cryptographic key material.
See also Section 3.1 of <xref target="W3C.rdf11-primer"/>.</t>
            </dd>
          </dl>
        </section>
      </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. Please see <xref target="fig-verifier-internal"/>.</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.
The processing sequence of Conceptual Message interaction with ACS is guided by <xref target="sec-appraisal-procedure"/>.</t>
        <t>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 is a structured, machine-readable data format used to uniquely identify, describe, and manage 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"/>) are used to identify, describe and manage software components.</t>
        </li>
        <li>
          <t>Concise Tag List (CoTL) tags (<xref target="sec-cotl"/>) 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>CoRIM allows for new types of tags to be added in future specifications.
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.</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 #6.501 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 = concise-rim-type-choice

concise-rim-type-choice /= tagged-unsigned-corim-map
concise-rim-type-choice /= 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
}
unsigned-corim-map = corim-map
]]></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, CoSWID or CoTL 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>
        <t>A <tt>corim-map</tt> is unsigned, and its tagged form is an entrypoint for parsing a CoRIM, so it is named <tt>tagged-unsigned-corim-map</tt>.
~~~ cddl
tagged-unsigned-corim-map = #6.501(unsigned-corim-map)
~~~</t>
        <section anchor="sec-corim-id">
          <name>CoRIM Identifier</name>
          <t>A CoRIM Identifier uniquely identifies a CoRIM instance within the context of a CoRIM issuer.
In other words the CoRIM identifier is not guaranteed to be globally unique, but can be used to distinguish CoRIMs that come from the same issuer.
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 CoTL (<xref target="sec-cotl"/>).</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-tl-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 / [ + uri ]
  ? &(thumbprint: 1) => digest / [digest]
}
]]></sourcecode>
          <t>The following describes each child element of this type.</t>
          <ul spacing="normal">
            <li>
              <t><tt>href</tt> (index 0): a URI or array of alternative URIs identifying locations where the additional resource can be fetched.</t>
            </li>
            <li>
              <t><tt>thumbprint</tt> (index 1): expected digest or an array of digests referenced by <tt>href</tt> or an array of <tt>href</tt>s. 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 type defined in <xref target="sec-mt-rim-cbor"/> 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>
          <t>The CoRIM profile must describe at a minimum the following:  (a) how cryptographic verification key material is represented (e.g., using Attestation Keys triples, or CoTS tags), and
(b) how key material is associated with the Attesting Environment.
The CoRIM profile should also specify whether CBOR deterministic encoding is required.</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)
$corim-role-type-choice /= &(manifest-signer: 2)
]]></sourcecode>
          <t>The <tt>corim-entity-map</tt> MUST NOT contain two entities with the <tt>manifest-signer</tt> role.</t>
        </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"/>) or alternatively in a <tt>CWT-Claims</tt> (<xref target="RFC9597"/>).</t>
        <sourcecode type="cddl"><![CDATA[
COSE-Sign1-corim = [
  protected: bstr .cbor protected-corim-header-map
  unprotected: unprotected-corim-header-map
  payload: bstr .cbor tagged-unsigned-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 header map needs to contain at least one of corim-meta (8) or CWT-Claims (15)
protected-corim-header-map =
  {
    &(alg: 1) => int,
    &(content-type: 3) => "application/rim+cbor",
    meta-group,
    * cose-label => cose-value
  }

meta-group = ((
        corim-meta-identity,
        ? cwt-claims-identity,
      ) // cwt-claims-identity)

corim-meta-identity = (&(corim-meta: 8) => bstr .cbor corim-meta-map)
cwt-claims-identity = (&(CWT-Claims: 15) => cwt-claims)
]]></sourcecode>
          <t>The CoRIM protected header map uses some common COSE header parameters plus additional metadata.
Additional metadata can either be carried in a <tt>CWT_Claims</tt> (index: 15) parameter as defined by <xref target="RFC9597"/>,
or in a <tt>corim-meta</tt> map as a legacy alternative, described in <xref target="sec-corim-meta"/>.</t>
          <t>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>
          </ul>
          <t>At least one of:</t>
          <ul spacing="normal">
            <li>
              <t><tt>CWT-Claims</tt> (index 15): A map that contains metadata associated with a signed CoRIM.
Described in <xref target="RFC9597"/>.</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>Documents MAY include both <tt>CWT-Claims</tt> and <tt>corim-meta</tt>, in which case the signer MUST ensure that their contents are semantically identical: the <tt>CWT-Claims</tt> issuer (<tt>iss</tt>) MUST have the same value as <tt>signer-name</tt> in <tt>corim-meta</tt>, and the <tt>nbf</tt> and <tt>exp</tt> values in the <tt>CWT-Claims</tt> MUST match the <tt>signature-validity</tt> in <tt>corim-meta</tt>.</t>
          <t>Additional data can be included in the COSE header map as per (<xref section="3" sectionFormat="of" target="STD96"/>).</t>
        </section>
        <section anchor="cwt-claims">
          <name>CWT Claims</name>
          <t>The CWT Claims (<xref target="RFC9597"/>) map identifies the entity that created and signed the CoRIM.
This ensures the consumer is able to identify credentials used to authenticate its signer.
To avoid any possible ambiguity with the contents of the CoRIM tags, the CWT Claims map MUST NOT contain claims that have semantic overlap with the information contained in CoRIM tags.</t>
          <t>The following describes each child item of this group.</t>
          <ul spacing="normal">
            <li>
              <t><tt>iss</tt> (index 1): Issuer or signer for the CoRIM, formerly <tt>signer-name</tt> or <tt>signer-uri</tt> in <xref target="sec-corim-signer"/>.</t>
            </li>
            <li>
              <t><tt>sub</tt> (index 2): Optional - identifies the CoRIM document, equivalent to a string representation of $corim-id-type-choice</t>
            </li>
          </ul>
          <t>Additional data can be included in the CWT Claims, as per <xref target="RFC8392"/>, such as:</t>
          <ul spacing="normal">
            <li>
              <t><tt>exp</tt> (index 4): Expiration time, formerly <tt>signature-validity</tt> in <xref target="sec-common-validity"/>.</t>
            </li>
            <li>
              <t><tt>nbf</tt> (index 5): Not before time, formerly <tt>signature-validity</tt> in <xref target="sec-common-validity"/>.</t>
            </li>
          </ul>
        </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 anchor="sec-conveyed-signer">
        <name>Signer authority of securely conveyed unsigned CoRIM</name>
        <t>An unsigned (#6.501-tagged) CoRIM may be a payload in an enveloping signed document, or it may be conveyed unsigned within the protection scope of a secure channel.
The CoRIM signer authority is taken from the authenticated credential (e.g., OAUTH token) of the entity that originates the CoRIM.
For example, this entity could be the sending peer in a secure channel.
A CoRIM role entry expressing the origin of the unsigned CoRIM (i.e., the enveloping signed document or the origin endpoint of the secure channel) via the <tt>manifest-signer</tt> role MUST be added to <tt>corim-entity-map</tt>.
If the authority cannot be expressed directly via the existing authority types, the receiver SHOULD establish a local authority in one of the supported authority formats (e.g., if an unsigned CoRIM is received over a secure channel where authentication is token- or password-based).
If it is impossible to assert the authority of the origin, the Verifier's appraisal policy MAY assert the Verifier’s authority as the CoRIM origin.</t>
        <t>It is out of scope of this document to specify a method of delegating the signer role in the case that an unsigned CoRIM is conveyed through multiple secured links with different notions of authenticity without end-to-end integrity protection.</t>
        <section anchor="corim-collections">
          <name>CoRIM collections</name>
          <t>Several CoRIMs may share the same signer (e.g., as collection payload in a different signed message) and use locally-resolvable references to each other, for example using a RATS Conceptual Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>.
The Collection CMW type is similar to a profile in its way of restricting the shape of the CMW collection.
The Collection CMW type for a CoRIM collection SHALL be <tt>tag:{{&amp;SELF}}:corim</tt>.</t>
          <t>A COSE_Sign1-signed CoRIM Collection CMW has a similar requirement to a signed CoRIM.
The signing operation MUST include either a <tt>CWT-Claims</tt> or a <tt>corim-meta</tt> and MAY contain both, in the COSE_Sign1 <tt>protected-header</tt> parameter.
These metadata containers ensure that each CoRIM in the collection has an identified signer.
The COSE protected header can include a Collection CMW type name by using the <tt>cmwc_t</tt> content type parameter for the <tt>&amp;(content-type: 3)</tt> COSE header.</t>
          <t>If using other signing envelope formats, the CoRIM signing authority MUST be specified. For example, this can be accomplished by adding the <tt>manifest-signer</tt> role to every CoRIM, or by using a protected header analogous to <tt>corim-meta</tt>.</t>
          <sourcecode type="cddl"><![CDATA[
corim-cbor-collection = {
  "__cmwc_t" => "tag:{{&SELF}}:corim",
  + cmw-label => [TBD1, bytes .cbor tagged-corim-map]
}
cmw-label = text / int
]]></sourcecode>
          <t>The Collection CMW MAY use any label for its CoRIMs.
If there is a hierarchical structure to the CoRIM Collection CMW, the base entry point SHOULD be labeled <tt>0</tt> in CBOR or <tt>"base"</tt> in JSON.
It is RECOMMENDED to label a CoRIM with its tag-id in string format, where <tt>uuid-type</tt> string format is specified by <xref target="RFC9562"/>.
CoRIMs distributed in a CoRIM Collection CMW MAY declare their interdependence <tt>dependent-rims</tt> with local resource indicators.
It is RECOMMENDED that a CoRIM with a <tt>uuid-type</tt> tag-id be referenced with URI <tt>urn:uuid:</tt><em>tag-id-uuid-string</em>.
It is RECOMMENDED that a CoRIM with a <tt>tstr</tt> tag-id be referenced with <tt>tag:{{&amp;SELF}}:local,</tt><em>tag-id-tstr</em>.
It is RECOMMENDED for a <tt>corim-locator-map</tt> containing local URIs to afterwards list a nonzero number of reachable URLs as remote references.</t>
          <t>The following example demonstrates these recommendations for bundling CoRIMs with a common signer but have different profiles.</t>
          <sourcecode type="cbor-diag"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

/ cbor-collection / {
  "__cmwc_t": "tag:{{&SELF}}:corim",
  "adee8cd4-4e47-461f-b341-2aba3ae4cbda":
    / cbor-cmw / [TBD1, << / tagged-corim-map / 501({
      / id / 0: h'adee8cd44e47461fb3412aba3ae4cbda',
      / tags / 1: [/ tagged-concise-mid-tag / 506(<<{
        / tag-identity / 1: {
          / tag-id / 0: h'315cfc0208d548ee9c89906df96e7fb8'
        },
        / triples / 4: {
          / reference-triples / 0: [[
            / ref-env / {/ class / 0: {/ class-id / 0: 560(h'c0de')}\
                                                                   },
            / ref-claims / {
              / mval / 1: {
                / profile-foo / -404:
                  h'\
                  6094685f8bb9b67daaf35707bd2c391f536a1df2ce5152c3cc'
              }}]],
          / coswid-triples / 6: [[
            {/ class / 0: {/ class-id / 0: 560(h'c0de')}},
            [h'369a6688451240b9b74905b1dd5fae9f']]]}}>>)],
      / profile / 3: "tag:example.com,2025/example-profile",
      / dependent-rims / 2: [{
        / href / 0: [
          "urn:uuid:51a5f633-71c0-45f5-855e-43e8254c1806",
          "https://example.com/369a6688451240b9b74905b1dd5fae9f.\
                                                               corim"
        ]}]}) >>],
  "51a5f633-71c0-45f5-855e-43e8254c1806":
    / cbor-cmw / [TBD1, << / tagged-corim-map / 501({
      / id: / 0: h'51a5f63371c045f5855e43e8254c1806',
      / tags / 1: [/ tagged-concise-swid-tag / 505(<<{
          / tag-id / 0: h'369a6688451240b9b74905b1dd5fae9f',
          / tag-version / 12: 2,
          / software-name / 1: "Gadget Firmware",
          / entity / 2: {
            / entity-name / 31: "ACME Firmware",
            / role / 33: / software-creator / 2
          },
          / profile-bar / 4294967295: {
           / profile-baz / 0: 5,
           / profile-qux / 1: h'f76e41f3462a62e8'}}>>)],
      / profile / 3: "tag:example.com,2025/software-profile"})>>]
}
]]></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 CoTL 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>This specification defines two classes of triples, the Mandatory To Implement (MTI) and the Optional To Implement (OTI).
The MTI triples are essential to basic appraisal processing as illustrated in <xref target="RFC9334"/> and <xref target="I-D.ietf-rats-endorsements"/>.
Every CoRIM Verifier MUST implement the MTI triples.
The OTI class of triples are generally useful across profiles.
A CoRIM Verifier SHOULD implement OTI triples.
Verifiers may be constrained in various ways that may make implementation of the OTI class infeasible or unnecessary.
For example, deployment environments may have constrained resources, limited code size, or limited scope Attesters.</t>
      <t>MTI Triples:</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>Conditional Endorsement triples: describing one or more conditions that, once matched, result in augmenting the Attester's actual state with the supplied Endorsed Values (<xref target="sec-comid-triple-cond-endors"/>).</t>
        </li>
      </ul>
      <t>OTI Triples:</t>
      <ul spacing="normal">
        <li>
          <t>Conditional Endorsement Series triples: describing conditional endorsements that are evaluated using a special matching algorithm (<xref target="sec-comid-triple-cond-endors"/>).</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 Payload tags (<xref target="sec-comid-triple-coswid"/>).</t>
        </li>
      </ul>
      <t>CoMID triples are extensible (<xref target="sec-comid-triples"/>).
Triples added via the extensibility feature MUST be OTI class triples.
This document specifies profiles (see <xref target="sec-extensibility"/>).
OTI triples MAY be reclassified as MTI using a profile.
Conversely, profiles can choose not to <em>use</em> certain MTI triples.
Profiles MUST NOT reclassify MTI triples as OTI.</t>
      <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="RFC9562"/>. 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="RFC9562"/>, 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 Endorsement that are applicable based on the acceptance of a series of stateful environment records.
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 conditional Endorsements based on the acceptance of a stateful environment.
Described in <xref target="sec-comid-triple-cond-endors"/>.</t>
            </li>
          </ul>
          <section anchor="sec-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 <tt>instance-id</tt> is a unique value that identifies a Target Environment instance.
The identifier is reliably bound to the Target Environment.
For example, if an X.509 certificate's subject public key is unique for each instance of a target environment, the <tt>instance-id</tt> might be created from that subject public key.
See <xref section="4.1" sectionFormat="of" target="RFC5280"/>.
Alternatively, if the certificate's subject public key is large, the <tt>instance-id</tt> might be a key identifier that is a digest of that public key.
See <xref section="4.2.1.2" sectionFormat="of" target="RFC5280"/>.
The key identifier is reliably bound to the subject public key because the identifier is a digest of the key.</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"/>), cryptographic keys, or cryptographic key identifiers.</t>
              <sourcecode type="cddl"><![CDATA[
$instance-id-type-choice /= tagged-ueid-type
$instance-id-type-choice /= tagged-uuid-type
$instance-id-type-choice /= tagged-bytes
$instance-id-type-choice /= tagged-pkix-base64-key-type
$instance-id-type-choice /= tagged-pkix-base64-cert-type
$instance-id-type-choice /= tagged-cose-key-type
$instance-id-type-choice /= tagged-key-thumbprint-type
$instance-id-type-choice /= tagged-cert-thumbprint-type
$instance-id-type-choice /= tagged-pkix-asn1der-cert-type
]]></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 SHALL be unique within the scope of the <tt>environment-map</tt> they are associated with.
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-DEPRECATED: 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
  ? &(int-range: 15) => int-range-type-choice
  * $$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.
The vendor determines the encoding of <tt>raw-value</tt>.
When used for comparison, the <tt>tagged-masked-raw-value</tt> variant includes a mask indicating which bits in the value to compare.
Described in <xref target="sec-comid-raw-value-types"/></t>
                  </li>
                  <li>
                    <t><tt>raw-value-mask-DEPRECATED</tt> (index 5): Is an obsolete method of indicating which bits in a raw value to compare. New CoMID files should use the <tt>tagged-masked-raw-value</tt> on index 4 instead of using index 5.</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 rollback to previous software images.</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. A profile may choose
to define more specific semantic meaning to a raw value.</t>
                <t>A <tt>raw-value</tt> measurement, or an Endorsement, is a tagged value of type <tt>bytes</tt>.
This specification defines tag #6.560.
The default raw value measurement is of type <tt>tagged-bytes</tt> (<xref target="sec-common-tagged-bytes"/>).</t>
                <t>Additional value types can be added to <tt>$raw-value-type-choice</tt>. These additional values MUST be CBOR tagged <tt>bstr</tt>s.
Constraining all raw value types to be <tt>bstr</tt> lets Verifiers compare raw values without understanding their contents.</t>
                <t>A raw value intended for comparison can include a mask value, which selects the bits to compare during appraisal.
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>The <tt>raw-value-mask-DEPRECATED</tt> in <tt>measurement-values-map</tt> is deprecated, but retained for backwards compatibility.
This code point may be removed in a future revision of this specification.</t>
                <sourcecode type="cddl"><![CDATA[
$raw-value-type-choice /= tagged-bytes
$raw-value-type-choice /= tagged-masked-raw-value

raw-value-mask-type = bytes
tagged-masked-raw-value = #6.563([
  value: bytes
  mask : 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-key-thumbprint-type</tt>: a <tt>digest</tt> (e.g., the SHA-2 hash) of a raw public key.
For example, the digest value can be used to locate a public key contained in a lookup table.
Ultimately, the discovered keys have to be successfully byte-by-byte compared with the corresponding keys.</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-pkix-asn1der-cert-type
$crypto-key-type-choice /= tagged-key-thumbprint-type
$crypto-key-type-choice /= tagged-cert-thumbprint-type
$crypto-key-type-choice /= tagged-cert-path-thumbprint-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-key-thumbprint-type = #6.557(digest)
tagged-cose-key-type = #6.558(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-int-range">
              <name>Int Range</name>
              <t>An int range describes an integer value that can be compared with linear order in the target environment.
An int range is represented with either major type 0 or major type 1 ints.</t>
              <sourcecode type="cddl"><![CDATA[
int-range-type-choice = int / tagged-int-range
int-range = [min: int / negative-inf, max: int / positive-inf]
tagged-int-range = #6.564(int-range)
positive-inf = null
negative-inf = null
]]></sourcecode>
              <t>The signed integer range representation is an inclusive range unless either <tt>min</tt> or <tt>max</tt> are infinite as represented by <tt>null</tt>, in which case, each infinity is necessarily exclusive.</t>
            </section>
          </section>
          <section anchor="sec-comid-triple-refval">
            <name>Reference Values Triple</name>
            <t>Reference Values Triples describe the possible intended states of an Attester.
At any given point in time, an Attester is expected to match only one of these states.</t>
            <t>A Reference Values Triple provides reference values pertaining to a Target Environment.
In a Reference Value triple, the subject identifies a Target Environment, the object contains reference measurements associated with one or more measured elements of the Environment, and the predicate asserts that these represent the expected state of the Target Environment.</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>: Identifies the Target Environment</t>
              </li>
              <li>
                <t><tt>ref-claims</tt>: Contains one or more reference measurements for the Target Environment</t>
              </li>
            </ul>
            <t>CoMID triples (<xref target="sec-comid-triples"/>) may contain multiple <tt>reference-triple-record</tt> entries, each of which describes one or more possible states for a particular Target Environment.</t>
            <t>The <tt>ref-claims</tt> in a <tt>reference-triple-record</tt> can contain one or more entries.
This multiplicity can have different meanings:</t>
            <ol spacing="normal" type="1"><li>
                <t>Each <tt>ref-claims</tt> entry can represent a different possible state of the Environment.</t>
              </li>
              <li>
                <t>Each <tt>ref-claims</tt> entry can represent a possible state of a different measured element (identified by its <tt>mkey</tt>) within the Environment.</t>
              </li>
            </ol>
            <t>Note that the same semantics can be expressed using multiple Reference Value Triples.</t>
            <t>Note also that a measurement key-value pair could be defined to have multiple values or use "wild carding" to describe a range of acceptable values, for example when using <tt>int-range</tt> and <tt>min-svn</tt>.</t>
            <t>Any of these multiplicities could be used in the context of Reference Values Triples.</t>
            <t>To process a <tt>reference-triple-record</tt>, the <tt>ref-env</tt> and <tt>ref-claims</tt> criteria are compared with Evidence entries.
First, <tt>ref-env</tt> is used as search criteria to locate matching Evidence environments.
Then, the <tt>ref-claims</tt> from this triple are used to match against the Evidence measurements for a matched environment.
If the search criteria are satisfied, the matching entry is added to the body of Attester state, except these Claims are asserted with the Reference Value Provider's authority.
By re-asserting Evidence matched with Reference Values using the RVP's authority, the Verifier avoids confusing Reference Values (reference / possible state) with Evidence (actual state).
See <xref target="I-D.ietf-rats-endorsements"/>.
Evidence Claims that are re-asserted using RVP authority are said to be "corroborated Evidence" because the actual state in Evidence was found within the corpus of the RVP's possible state.</t>
          </section>
          <section anchor="sec-comid-triple-endval">
            <name>Endorsed Values Triple</name>
            <t>An Endorsed Values triple provides additional Endorsements - i.e., claims reflecting the actual state - for an existing Target Environment.
For Endorsed Values Claims, the subject is a Target Environment, the object contains Endorsement Claims for the Environment, and the predicate defines semantics for how the object relates to the subject.</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>A Conditional Endorsement Triple declares one or more conditions that, once matched, results in augmenting the Attester's actual state with the Endorsement Claims.
The conditions are expressed via <tt>stateful-environment-records</tt>, which match Target Environments from Evidence in certain reference state.</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>The Conditional Endorsement Series Triple is used to assert endorsed values based on an initial condition match (specified in <tt>condition:</tt>) followed by a series condition match (specified in <tt>selection:</tt> inside <tt>conditional-series-record</tt>).
Every <tt>conditional-series-record</tt> selection MUST select the same mkeys where every selected mkey's corresponding set of code points represented as mval.key MUST be the same across each <tt>conditional-series-record</tt>.
For example, if a selection matches on 3 <tt>measurement-map</tt> statements; <tt>mkey</tt> is the same for all 3 statements and <tt>mval</tt> contains only A= variable-X, B= variable-Y, and C= variable-Z (exactly the set of code points A, B, and C) respectively for every <tt>conditional-series-record</tt> in the series.</t>
            <t>These restrictions ensure that evaluation order does not change the meaning of the triple during the appraisal process.
Series entries are ordered such that the most precise match is evaluated first and least precise match is evaluated last.
The first series condition that matches terminates series matching and the endorsement values are added to the Attester's actual state.</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 an ordered list of <tt>conditional-series-record</tt> entries.
Evaluation order begins at list position 0.</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>Device Identity triples (see <tt>identity-triples</tt> in <xref target="sec-comid-triples"/>) endorse that the keys were securely provisioned to the named Target Environment.
A single Target Environment (as identified by <tt>environment</tt> and <tt>mkey</tt>) may contain one or more cryptographic keys.
The existence of these keys is asserted in Evidence, Reference Values, or Endorsements.</t>
            <t>The device identity keys may have been used to authenticate the Attester device or may be held in reserve for later use.</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>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, the Verifier SHOULD enforce key use restrictions.</t>
            <t>Each successful verification of a key in <tt>key-list</tt> SHALL produce Endorsement Claims that are added to the Attester's Claim set.
Claims are asserted with the joint authority of the Endorser (CoRIM signer) and the Verifier.
The Verifier MAY report key verification results as part of an error reporting function.</t>
            <sourcecode type="cddl"><![CDATA[
identity-triple-record = [
  environment: environment-map
  key-list: [ + $crypto-key-type-choice ]
  ? conditions: non-empty<{
    ? &(mkey: 0) => $measured-element-type-choice,
    ? &(authorized-by: 1) => [ + $crypto-key-type-choice ] 
  }>
]
]]></sourcecode>
            <ul spacing="normal">
              <li>
                <t><tt>environment</tt>: An <tt>environment-map</tt> condition used to identify the target Evidence or Reference Value.
See <xref target="sec-environments"/>.</t>
              </li>
              <li>
                <t><tt>key-list</tt>: A list of <tt>$crypto-key-type-choice</tt> keys that identifies which keys are to be verified.
See <xref target="sec-crypto-keys"/>.</t>
              </li>
              <li>
                <t><tt>mkey</tt>: An optional <tt>$measured-element-type-choice</tt> condition used to identify the element within the target Evidence or Reference Value.
See <xref target="sec-comid-mkey"/>.</t>
              </li>
              <li>
                <t><tt>authorized-by</tt>: An optional list of <tt>$crypto-key-type-choice</tt> keys that identifies the authorities that asserted the <tt>key-list</tt> in the target Evidence or Reference Values.</t>
              </li>
            </ul>
          </section>
          <section anchor="sec-comid-triple-attest-key">
            <name>Attest Key Triple</name>
            <t>Attest Key triples (see <tt>attest-key-triples</tt> in <xref target="sec-comid-triples"/>) endorse that the keys were securely provisioned to the named Attesting Environment.
An Attesting Environment (as identified by <tt>environment</tt> and <tt>mkey</tt>) may contain one or more cryptographic keys.
The existence of these keys is asserted in Evidence, Reference Values, or Endorsements.</t>
            <t>The attestation keys may have been used to sign Evidence or may be held in reserve for later use.</t>
            <t>Attest Key triples instruct a Verifier to perform key validation checks, such as revocation, certification path construction and validation, or proof of possession.
The Verifier SHOULD verify keys contained in Attest Key triples.</t>
            <t>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 (e.g., see Section 5.1.5.3 in <xref target="DICE.cert"/>).
The Verifier SHOULD enforce key use restrictions.</t>
            <t>Each successful verification of a key in <tt>key-list</tt> SHALL produce Endorsement Claims that are added to the Attester's Claim set.
Claims are asserted with the joint authority of the Endorser (CoRIM signer) and the Verifier.
The Verifier MAY report key verification results as part of an error reporting function.</t>
            <sourcecode type="cddl"><![CDATA[
attest-key-triple-record = [
  environment: environment-map
  key-list: [ + $crypto-key-type-choice ]
  ? conditions: non-empty< {
    ? &(mkey: 0) => $measured-element-type-choice,
    ? &(authorized-by: 1) => [ + $crypto-key-type-choice ]
  }>
]
]]></sourcecode>
            <t>See <xref target="sec-comid-triple-identity"/> for additional details.</t>
          </section>
          <section anchor="sec-comid-domains">
            <name>Triples for domain definitions</name>
            <t>A domain is a hierarchical description of a Composite Attester in terms of its constituent Environments and their compositional relationships.</t>
            <t>The following CDDL describes domain type.</t>
            <sourcecode type="cddl"><![CDATA[
domain-type = environment-map
]]></sourcecode>
            <t>Domain structure is defined with the following types of triples.</t>
            <section anchor="sec-comid-triple-domain-membership">
              <name>Domain Membership Triple</name>
              <t>A Domain Membership Triple (DMT) links a domain identifier to its member Environments.
The triple's subject is the domain identifier while the triple’s object lists all the member Environments within the domain.</t>
              <t>The Domain Membership Triple allows an Endorser (for example, an Integrator) to issue an authoritative statement about the composition of an Attester as a collection of Environments.
This allows a topological description of an Attester to be expressed by linking a parent Environment (e.g., a lead Attester) to its child Environments (e.g., one or more sub-Attesters).</t>
              <t>If the Verifier Appraisal policy requires Domain Membership, the Domain Membership Triple is used to match an Attester's reference composition with the actual composition represented in Evidence.</t>
              <t>Representing members of a DMT as domains enables the recursive construction of an entity's topology, such as a Composite Device (see <xref section="3.3" sectionFormat="of" target="RFC9334"/>), where multiple lower-level domains can be aggregated into a higher-level domain.</t>
              <sourcecode type="cddl"><![CDATA[
domain-membership-triple-record = [
  domain-id: domain-type
  members: [ +  domain-type ]
]
]]></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-triple-domain-membership"/>) 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 exist.</t>
              <sourcecode type="cddl"><![CDATA[
domain-dependency-triple-record = [
  domain-type
  [ + domain-type ]
]
]]></sourcecode>
            </section>
          </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-cotl">
      <name>CoTL</name>
      <t>A Concise Tag List (CoTL) object represents the signal for the
Verifier to activate the listed tags. Verifier policy determines whether CoTLs are required.</t>
      <t>When CoTLs are required, each tag MUST be activated by a CoTL before being processed.
All the tags listed in the CoTL MUST be activated atomically. If any tag activated by a CoTL is not available to the Verifier, the entire CoTL is rejected.</t>
      <t>The number of CoTLs 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 CoTL, 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 CoTL 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 CoTLs at different points in time.
An Appraisal Policy for Evidence may dictate how multiple CoTLs are to be processed within the Verifier.</t>
      <section anchor="structure-1">
        <name>Structure</name>
        <t>The CDDL specification for the <tt>concise-tl-tag</tt> map and additional grammatical requirements specified in the text of this Section MUST be followed when creating or validating a CoTL tag are given below:</t>
        <sourcecode type="cddl"><![CDATA[
concise-tl-tag = {
  &(tag-identity: 0) => tag-identity-map
  &(tags-list: 1) => [ + tag-identity-map ],
  &(tl-validity: 2) => validity-map
}
]]></sourcecode>
        <t>The following describes each member of the <tt>concise-tl-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 CoTL.
Described in <xref target="sec-comid-tag-id"/>.</t>
          </li>
          <li>
            <t><tt>tags-list</tt> (index 1): One or more <tt>tag-identity-maps</tt> identifying
the CoMID and CoSWID tags that constitute the list, 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, and 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>tl-validity</tt> (index 2): Specifies the validity period of the CoTL.
Described in <xref target="sec-common-validity"/>.</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 CoTL.</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" sectionFormat="of" target="RFC9562"/>.</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 (UEID).
Defined in <xref section="4.2.1" sectionFormat="of" target="RFC9711"/>.</t>
        <sourcecode type="cddl"><![CDATA[
ueid-type = bytes .size (7..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 provide the specified information model of the ACS at the end of phase 4 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, all available Conceptual Messages are processed for validation.
This involves checking digital signatures to verify their integrity and authenticity, ensuring they are not outdated, and confirming their relevance to the current appraisal.
If validation fails, the input Conceptual Message is discarded.
If validation succeeds, the input Conceptual Message is transformed from its external representation into an internal one.
These internal representations are then collected in an implementation-specific "staging area", which acts as a database for subsequent appraisal processing.</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>
    <section anchor="sec-verifier-abstraction">
      <name>Reference Verifier Algorithm</name>
      <t>This document presumes that Verifier implementations will differ.
To facilitate the description of normative Verifier behavior, this document describes the internal representation for a reference Verifier and demonstrates how the data is used in the appraisal phases outlined in <xref target="sec-appraisal-procedure"/>.
If the Verifier operates on CoRIM documents, it is RECOMMENDED that it follows this algorithm.</t>
      <t>The terms
Claim,
Environment-Claim Tuple (ECT),
Authority,
Appraisal Claims Set (ACS),
Appraisal Policy, and
Attestation Results Set (ARS)
are used with the meaning defined in <xref target="sec-glossary"/>.</t>
      <figure anchor="fig-verifier-internal">
        <name>CoRIM Verifier Flow</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="720" width="800" viewBox="0 0 800 720" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,128 L 8,704" fill="none" stroke="black"/>
              <path d="M 48,336 L 48,432" fill="none" stroke="black"/>
              <path d="M 56,160 L 56,192" fill="none" stroke="black"/>
              <path d="M 56,240 L 56,288" fill="none" stroke="black"/>
              <path d="M 56,512 L 56,560" fill="none" stroke="black"/>
              <path d="M 64,368 L 64,416" fill="none" stroke="black"/>
              <path d="M 88,32 L 88,80" fill="none" stroke="black"/>
              <path d="M 96,640 L 96,672" fill="none" stroke="black"/>
              <path d="M 120,80 L 120,152" fill="none" stroke="black"/>
              <path d="M 120,464 L 120,504" fill="none" stroke="black"/>
              <path d="M 120,560 L 120,592" fill="none" stroke="black"/>
              <path d="M 144,368 L 144,416" fill="none" stroke="black"/>
              <path d="M 168,368 L 168,416" fill="none" stroke="black"/>
              <path d="M 176,32 L 176,80" fill="none" stroke="black"/>
              <path d="M 192,32 L 192,80" fill="none" stroke="black"/>
              <path d="M 192,512 L 192,560" fill="none" stroke="black"/>
              <path d="M 200,192 L 200,232" fill="none" stroke="black"/>
              <path d="M 200,288 L 200,328" fill="none" stroke="black"/>
              <path d="M 200,432 L 200,448" fill="none" stroke="black"/>
              <path d="M 224,80 L 224,152" fill="none" stroke="black"/>
              <path d="M 232,464 L 232,608" fill="none" stroke="black"/>
              <path d="M 248,368 L 248,416" fill="none" stroke="black"/>
              <path d="M 256,512 L 256,560" fill="none" stroke="black"/>
              <path d="M 288,32 L 288,80" fill="none" stroke="black"/>
              <path d="M 296,368 L 296,416" fill="none" stroke="black"/>
              <path d="M 304,32 L 304,80" fill="none" stroke="black"/>
              <path d="M 312,512 L 312,560" fill="none" stroke="black"/>
              <path d="M 328,608 L 328,632" fill="none" stroke="black"/>
              <path d="M 336,80 L 336,152" fill="none" stroke="black"/>
              <path d="M 352,160 L 352,192" fill="none" stroke="black"/>
              <path d="M 360,240 L 360,288" fill="none" stroke="black"/>
              <path d="M 376,368 L 376,416" fill="none" stroke="black"/>
              <path d="M 392,32 L 392,80" fill="none" stroke="black"/>
              <path d="M 400,336 L 400,432" fill="none" stroke="black"/>
              <path d="M 416,464 L 416,608" fill="none" stroke="black"/>
              <path d="M 416,640 L 416,672" fill="none" stroke="black"/>
              <path d="M 440,128 L 440,688" fill="none" stroke="black"/>
              <path d="M 88,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 192,32 L 288,32" fill="none" stroke="black"/>
              <path d="M 304,32 L 392,32" fill="none" stroke="black"/>
              <path d="M 88,80 L 176,80" fill="none" stroke="black"/>
              <path d="M 192,80 L 288,80" fill="none" stroke="black"/>
              <path d="M 304,80 L 392,80" fill="none" stroke="black"/>
              <path d="M 24,112 L 424,112" fill="none" stroke="black"/>
              <path d="M 56,160 L 352,160" fill="none" stroke="black"/>
              <path d="M 56,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 56,240 L 360,240" fill="none" stroke="black"/>
              <path d="M 56,288 L 360,288" fill="none" stroke="black"/>
              <path d="M 48,336 L 400,336" fill="none" stroke="black"/>
              <path d="M 64,368 L 144,368" fill="none" stroke="black"/>
              <path d="M 168,368 L 248,368" fill="none" stroke="black"/>
              <path d="M 296,368 L 376,368" fill="none" stroke="black"/>
              <path d="M 64,416 L 144,416" fill="none" stroke="black"/>
              <path d="M 168,416 L 248,416" fill="none" stroke="black"/>
              <path d="M 296,416 L 376,416" fill="none" stroke="black"/>
              <path d="M 48,432 L 400,432" fill="none" stroke="black"/>
              <path d="M 120,464 L 184,464" fill="none" stroke="black"/>
              <path d="M 232,464 L 416,464" fill="none" stroke="black"/>
              <path d="M 56,512 L 192,512" fill="none" stroke="black"/>
              <path d="M 256,512 L 312,512" fill="none" stroke="black"/>
              <path d="M 200,528 L 232,528" fill="none" stroke="black"/>
              <path d="M 56,560 L 192,560" fill="none" stroke="black"/>
              <path d="M 256,560 L 312,560" fill="none" stroke="black"/>
              <path d="M 120,592 L 224,592" fill="none" stroke="black"/>
              <path d="M 232,608 L 416,608" fill="none" stroke="black"/>
              <path d="M 96,640 L 416,640" fill="none" stroke="black"/>
              <path d="M 96,672 L 416,672" fill="none" stroke="black"/>
              <path d="M 8,704 L 424,704" fill="none" stroke="black"/>
              <path d="M 24,112 C 15.16936,112 8,119.16936 8,128" fill="none" stroke="black"/>
              <path d="M 424,112 C 432.83064,112 440,119.16936 440,128" fill="none" stroke="black"/>
              <path d="M 184,464 C 192.83064,464 200,456.83064 200,448" fill="none" stroke="black"/>
              <path d="M 424,704 C 432.83064,704 440,696.83064 440,688" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="344,152 332,146.4 332,157.6" fill="black" transform="rotate(90,336,152)"/>
              <polygon class="arrowhead" points="336,632 324,626.4 324,637.6" fill="black" transform="rotate(90,328,632)"/>
              <polygon class="arrowhead" points="232,592 220,586.4 220,597.6" fill="black" transform="rotate(0,224,592)"/>
              <polygon class="arrowhead" points="232,152 220,146.4 220,157.6" fill="black" transform="rotate(90,224,152)"/>
              <polygon class="arrowhead" points="208,528 196,522.4 196,533.6" fill="black" transform="rotate(180,200,528)"/>
              <polygon class="arrowhead" points="208,328 196,322.4 196,333.6" fill="black" transform="rotate(90,200,328)"/>
              <polygon class="arrowhead" points="208,232 196,226.4 196,237.6" fill="black" transform="rotate(90,200,232)"/>
              <polygon class="arrowhead" points="128,504 116,498.4 116,509.6" fill="black" transform="rotate(90,120,504)"/>
              <polygon class="arrowhead" points="128,152 116,146.4 116,157.6" fill="black" transform="rotate(90,120,152)"/>
              <g class="text">
                <text x="132" y="52">Evidence</text>
                <text x="240" y="52">Reference</text>
                <text x="348" y="52">Endorsed</text>
                <text x="228" y="68">Values</text>
                <text x="340" y="68">Values</text>
                <text x="192" y="132">CORIM</text>
                <text x="268" y="132">VERIFIER</text>
                <text x="160" y="180">Input</text>
                <text x="228" y="180">Validation</text>
                <text x="160" y="260">Input</text>
                <text x="244" y="260">Transformation</text>
                <text x="144" y="276">(Internal</text>
                <text x="248" y="276">Representation)</text>
                <text x="160" y="356">Staging</text>
                <text x="212" y="356">Area</text>
                <text x="96" y="388">ECT</text>
                <text x="200" y="388">ECT</text>
                <text x="328" y="388">ECT</text>
                <text x="84" y="404">(ct=</text>
                <text x="120" y="404">Ev)</text>
                <text x="188" y="404">(ct=</text>
                <text x="224" y="404">RV)</text>
                <text x="268" y="404">..</text>
                <text x="336" y="404">(ct=EndV)</text>
                <text x="280" y="484">Appraisal</text>
                <text x="348" y="484">Claims</text>
                <text x="392" y="484">Set</text>
                <text x="288" y="500">(ACS)</text>
                <text x="80" y="532">ACS</text>
                <text x="140" y="532">Matching</text>
                <text x="280" y="532">ECT</text>
                <text x="104" y="548">Condition</text>
                <text x="196" y="660">OUTPUT</text>
                <text x="284" y="660">TRANSFORMATION</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
          .----------. .-----------. .----------.
          | Evidence | | Reference | | Endorsed |
          |          | | Values    | | Values   |
          '---+------' '---+-------' '---+------'
              |            |             |
 .------------+------------+-------------+-----------.
|             |      CORIM | VERIFIER    |            |
|             v            v             v            |    
|     +------------------------------------+          |    
|     |          Input Validation          |          |  
|     +-----------------+------------------+          |
|                       |                             | 
|                       v                             |
|     +-----------------+-------------------+         |
|     |          Input Transformation       |         |                                            
|     |      (Internal Representation)      |         |
|     +-----------------+-------------------+         |
|                       |                             | 
|                       v                             | 
|    +------------------+------------------------+    |
|    |          Staging Area                     |    |                                            
|    | +---------+  +---------+     +---------+  |    |
|    | |  ECT    |  |  ECT    |     |  ECT    |  |    |
|    | |(ct= Ev) |  |(ct= RV) | ..  |(ct=EndV)|  |    |
|    | +---------+  +---------+     +---------+  |    |
|    +------------------+------------------------+    |
|                       |                             |
|             +--------+    +----------------------+  | 
|             |             | Appraisal Claims Set |  |              
|             v             |    (ACS)             |  |
|     +-------+--------+    |  +------+            |  |
|     + ACS  Matching  +<---+  | ECT  |            |  |
|     | Condition      |    |  |      |            |  |
|     +-------+--------+    |  +------+            |  |
|             |             |                      |  |
|             +------------>|                      |  |
|                           +-----------+----------+  |
|                                       v             |
|          +----------------------------+----------+  |
|          |         OUTPUT TRANSFORMATION         |  |
|          +---------------------------------------+  |
|                                                     |
'----------------------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <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>
        <section anchor="sec-ir-ect">
          <name>Internal structure of ECT</name>
          <t>Environment-Claims Tuples (ECT) have six 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 (<tt>mkey</tt>).
If the Conceptual Message Type is <tt>domain-member</tt>, this field contains the domain identifier (<tt>domain-id</tt>) of the domain triple.</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>Members : Identifies the set of Environments that act as members when a Domain Membership is expressed in an ECT</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 ]
  ? members: [ + environment-map ]
  ? 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
  domain-member: 6
)
]]></sourcecode>
          <t>The Conceptual Message type (<tt>cmtype</tt>) determines which attributes are mandatory.
See <xref target="sec-ir-evidence"/> through to <xref target="sec-ir-ars"/> for ECTs of various conceptual messages.</t>
        </section>
        <section anchor="sec-ir-ext">
          <name>Internal Representation of Cryptographic Keys</name>
          <t>The internal representation for keys use the extension slot within <tt>measurement-values-map</tt> with the <tt>intrep-keys</tt> claim that consists of a list of <tt>typed-crypto-key</tt>.
<tt>typed-crypto-key</tt> consists of a <tt>key</tt> and an optional <tt>key-type</tt>.
There are two types of keys <tt>attest-key</tt> and <tt>identity-key</tt>.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(intrep-keys: 65534) => [ + typed-crypto-key ]
)

typed-crypto-key = {
  key: $crypto-key-type-choice
  ? key-type: uint .bits key-type
}

key-type = &(
  attest-key: 0
  identity-key: 1
)

]]></sourcecode>
        </section>
        <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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">n/a</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 matches Evidence ECTs then the Evidence ECTs are re-asserted, but with RVP authority as contained in the <tt>addition</tt> and <tt>cmtype</tt> set to <tt>reference-values</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.
Refer to <xref target="sec-phase3"/> for how the <tt>rv</tt> entries are processed.</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"> </td>
                <td align="left">
                  <tt>members</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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">n/a</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"> </td>
                <td align="left">
                  <tt>members</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"> </td>
                <td align="left">
                  <tt>members</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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">n/a</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-ir-dm">
          <name>Internal Representation of Domain Membership</name>
          <t>An internal representation of Domain Membership is expressed in a single ECT, where the domain identifier is set in the <tt>environment</tt> field of the ECT, and the domain members are expressed in the <tt>members</tt> field.
The <tt>cmtype</tt> is set to domain-member.</t>
          <sourcecode type="cddl"><![CDATA[
dm = [ + ( domain: ECT ) ]
]]></sourcecode>
          <t><xref target="tbl-dm-ect-optionality"/> contains the requirements for the ECT fields of the Domain Membership tuple:</t>
          <table anchor="tbl-dm-ect-optionality">
            <name>Domain Membership 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">domain</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">Optional</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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">Mandatory</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"> </td>
                <td align="left">
                  <tt>members</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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">n/a</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"> </td>
                <td align="left">
                  <tt>members</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>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>members</tt></td>
                <td align="left">Optional</td>
              </tr>
            </tbody>
          </table>
        </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>
          <t>For ECTs present in the ACS, the <tt>cmtype</tt> field is mandatory.
Table <xref target="tbl-acs-ect-optionality"/> shows the minimum required mandatory fields applicable to all ECTs in an ACS.</t>
          <table anchor="tbl-acs-ect-optionality">
            <name>ACS tuple minimum 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">n/a</td>
                <td align="left">
                  <tt>environment</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>
            </tbody>
          </table>
          <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"/>, CoTL tags, 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>CoRIM tags MUST be discarded if they are expired, or if they are not associated with an authenticated and authorized source, or if they have been revoked by an authorized source.</t>
            <t>Any CoRIM that has been secured by a cryptographic mechanism that fails validation MUST be discarded.
An example of such a mechanism is a digital signature.</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>Later stages will further select the CoRIMs appropriate to the Evidence Appraisal stage.</t>
          </section>
          <section anchor="corim-trust-anchors">
            <name>CoRIM Trust Anchors</name>
            <t>If CoRIM tags are signed, the signatures MUST be validated using the appropriate trust anchors (certification paths) available to the Verifier.
The Verifier is expected to have a trust anchor store.
The way in which these trust anchors (i.e., root certificates) are provisioned in the Verifier is beyond the scope of this specification.
If signed, the CoRIM itself should include at least one certificate (e.g., as part of the <tt>x5chain</tt> in the COSE header), which corresponds to the key pair used for signing.
This certificate (the "leaf certificate") must be linked to one of the Verifier trust anchors.</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, CoTL, and CoTS.</t>
            <t>The Verifier MUST discard all tags which are not syntactically and semantically valid.
Cross-referenced triples MUST be successfully resolved. An example of a cross-referenced triple is a CoMID-CoSWID linking triple.</t>
          </section>
          <section anchor="cotl-extraction">
            <name>CoTL Extraction</name>
            <t>This section is not applicable if the Verifier appraisal policy does not require CoTLs.</t>
            <t>CoTLs which are not within their validity period MUST be discarded.</t>
            <t>The Verifier processes all CoTLs that are valid at the point in time of Evidence Appraisal and activates all tags referenced therein.</t>
            <t>The Verifier MAY decide to discard some of the available and valid CoTLs 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 a case, the Verifier Owner may instruct the Verifier to discard tags activated by supplier CoTLs that are not also activated by the trusted integrator.</t>
            <t>After the Verifier has processed all CoTLs it MUST discard any tags which have not been activated by a CoTL.</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.
Discovery of Evidence sources is untrusted.
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>
          <t>The exact protocol used to collect Evidence is out of scope of this specification.</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 underlying conveyance protocol that collected it, should provide the required security.
In such cases, the cryptographic validation of Evidence is determined by the security offered by the conveyance protocol.</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, X.509 certificate validation is performed.</t>
            <t>As a second example, in PSA <xref target="RFC9783"/> 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 Verifier MUST NOT process Evidence which is not successfully validated.</t>
          </section>
        </section>
        <section anchor="sec-phase1-trans">
          <name>Input Transformation</name>
          <t>Input Conceptual Messages, whether Evidence, Reference Values, Endorsements, 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="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 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>condition</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 Reference Values conceptual message is copied to the <tt>rv</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Reference Values 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>
            <section anchor="sec-end-trans-evt">
              <name>Endorsed Values Triple Transformation</name>
              <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>
            </section>
            <section anchor="sec-end-trans-cet">
              <name>Conditional Endorsement Triple Transformation</name>
              <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 Conditional 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>
            </section>
            <section anchor="sec-end-trans-cest">
              <name>Conditional Endorsement Series Triple Transformation</name>
              <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 Series 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 Conditional Endorsement Series 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="sec-end-trans-kvt">
              <name>Key Verification Triples Transformation</name>
              <t>The following transformation steps are applied for both the <tt>identity-triples</tt> and <tt>attest-key-triples</tt> with noted exceptions:</t>
              <ol group="ckvt" 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>Populate the <tt>ev</tt> <tt>condition</tt> ECT using either the <tt>identity-triple-record</tt> or <tt>attest-key-triple-record</tt> (<xref target="sec-comid-triple-identity"/>) as follows:</t>
                </li>
              </ol>
              <ol group="kvt2" spacing="normal" type="%i."><li>
                  <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>).</t>
                </li>
                <li>
                  <t>Foreach <em>key</em> in <tt>keylist</tt>.<tt>$crypto-key-type-choice</tt>, <strong>copy</strong>(<em>key</em>, <tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key</tt>).</t>
                </li>
                <li>
                  <t>If <tt>key-list</tt> originated from <tt>attest-key-triples</tt>, <strong>set</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key-type</tt> = <tt>attest-key</tt>).</t>
                </li>
                <li>
                  <t>Else if <tt>key-list</tt> originated from <tt>identity-triples</tt>, <strong>set</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key-type</tt> = <tt>identity-key</tt>).</t>
                </li>
                <li>
                  <t>If populated, <strong>copy</strong>(<tt>mkey</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
                </li>
                <li>
                  <t>If populated, <strong>copy</strong>(<tt>authorized-by</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>authority</tt>).</t>
                </li>
              </ol>
              <ol group="ckvt" spacing="normal" type="Step %d."><li>
                  <t>The signer of the Identity or Attest Key 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>
            </section>
          </section>
          <section anchor="sec-ir-dm-trans">
            <name>Domain Membership Triples Transformation</name>
            <t>This section describes how the external representation of a Domain Membership Triple (DMT) (<xref target="sec-comid-triple-domain-membership"/>) is transformed into its CoRIM internal representation <tt>dm</tt> (see <xref target="sec-ir-dm"/>).</t>
            <ol group="dmt1" spacing="normal" type="Step %d."><li>
                <t>Allocate a <tt>domain</tt> ECT entry.</t>
              </li>
              <li>
                <t>Set the conceptual message type for the <tt>domain</tt> ECT to 6 (<tt>domain-member</tt>).</t>
              </li>
            </ol>
            <ol group="dmt4" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(<tt>domain-member</tt>, <tt>domain</tt>.<tt>cmtype</tt>)</t>
              </li>
            </ol>
            <ol group="dmt1" spacing="normal" type="Step %d."><li>
                <t>Set the authority for the domain ECT to the DMT signer (<xref target="sec-corim-signer"/>).</t>
              </li>
            </ol>
            <ol group="dmt5" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(DMT.<tt>signer</tt>, <tt>domain</tt>.<tt>authority</tt>)</t>
              </li>
            </ol>
            <ol group="dmt1" spacing="normal" type="Step %d."><li>
                <t>Use the DMT to populate the <tt>dm</tt> internal representation.</t>
              </li>
            </ol>
            <ol group="dmt2" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(DMT.<tt>domain-id</tt>, <tt>domain</tt>.<tt>environment</tt>)</t>
              </li>
            </ol>
            <ol group="dmt2" spacing="normal" type="%i"><li>
                <t>For each <tt>environment</tt> <tt>e</tt> in DMT.<tt>members</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(DMT.<tt>members</tt>[e].<tt>environment</tt>, <tt>domain</tt>.<tt>members</tt>[e].<tt>environment</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="dmt1" spacing="normal" type="Step %d."><li>
                <t>If the conceptual message containing the DMT has a profile, it is used to populate the profile for the <tt>domain</tt> ECT.</t>
              </li>
            </ol>
            <ol group="dmt3" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(DMT.<tt>profile</tt>, <tt>domain</tt>.<tt>profile</tt>)</t>
              </li>
            </ol>
          </section>
        </section>
      </section>
      <section anchor="sec-acs-aug">
        <name>ACS Augmentation - Phases 2, 3, and 4</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 anchor="sec-acs-reqs">
          <name>ACS Requirements</name>
          <t>At the end of the Evidence collection process, the Evidence has been converted into an internal representation 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>
          <section anchor="acs-processing-requirements">
            <name>ACS Processing Requirements</name>
            <t>The ACS contains the actual state of Attester's Target Environments (TEs).
The ACS contains Evidence ECTs (from Attesters) and Endorsement ECTs
(e.g. from <tt>endorsed-triple-record</tt>).</t>
            <t>CoMID Reference Values will be matched against the ACS following the comparison rules in <xref target="sec-match-condition-ect"/>.
This document describes an example evidence structure which can be
matched against these Reference Values.</t>
            <t>Each Endorsement ECT contains the environment and internal representation of <tt>measurement-map</tt>s as extracted from an <tt>endorsed-triple-record</tt>.
When an <tt>endorsed-triple-record</tt> is transformed to Endorsements ECTs it
indicates that the authority named by <tt>measurement-map</tt>.<tt>authorized-by</tt>
asserts that the actual state of one or more Claims within the
Target Environment, as identified by <tt>environment-map</tt>, have the
measurement values in <tt>measurement-map</tt>.<tt>mval</tt>.</t>
            <t>ECT authority is represented by cryptographic keys. Authority
is asserted by digitally signing a Claim using the key. Hence, Claims are
added to the ACS under the authority of a cryptographic key.</t>
            <t>Each Claim is encoded as an ECT. The <tt>environment-map</tt>, the <tt>mkey</tt> or <tt>element-id</tt>, and a
key within <tt>measurement-values-map</tt> encode the name of the Claim.
The value matching that key within <tt>measurement-values-map</tt> is the actual
state of the Claim.</t>
            <t>This specification does not assign special meanings to any Claim name,
it only specifies rules for determining when two Claim names are the same.</t>
            <t>If two Claims have the same <tt>environment-map</tt> encoding then this does not
trigger special encoding in the Verifier. The Verifier follows instructions
in the CoRIM file which tell it how claims are related.</t>
            <t>If Evidence or Endorsements from different sources has the same <tt>environment-map</tt>
and <tt>authorized-by</tt> then the <tt>measurement-values-map</tt>s are merged.</t>
            <t>The ACS MUST maintain the authority information for each ECT. There can be
multiple entries in <tt>state-triples</tt> which have the same <tt>environment-map</tt>
and a different authority.
See <xref target="sec-authority"/>.</t>
            <t>If the merged <tt>measurement-values-map</tt> contains duplicate codepoints and the
measurement values are equivalent, then duplicate claims SHOULD be omitted.
Equivalence typically means values MUST be binary identical.</t>
            <t>If the merged <tt>measurement-values-map</tt> contains duplicate codepoints and the
measurement values are not equivalent, then the Verifier SHALL report
an error and stop validation processing.</t>
            <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 anchor="sec-acs-aug-req">
            <name>ACS Augmentation Requirements</name>
            <t>The ordering of ECTs in the ACS is not significant.
Logically, the ACS represents the conjunction of all claims, so adding an ECT entry to the existing ACS at the end is equivalent to inserting it anywhere else.
Implementations may optimize ECT order to achieve better performance.
Additions to the ACS MUST be atomic.</t>
          </section>
        </section>
        <section anchor="sec-phase2">
          <name>Evidence Augmentation (Phase 2)</name>
          <section anchor="sec-acs-initialization">
            <name>Appraisal Claims Set Initialization</name>
            <t>The ACS is initialized by copying the internal representation of Evidence claims to the ACS.
See <xref target="sec-acs-aug"/>.</t>
          </section>
          <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,
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>
        <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"/>).
Each Reference Value Triple describes a single possible Attester state.</t>
          <t>Corroboration is the process of determining whether actual Attester state (as contained in the ACS) can be satisfied by Reference Values.</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>If satisfied, for the <tt>rv</tt> entry, the following three steps are performed:</t>
          <ol spacing="normal" type="1"><li>
              <t>The <tt>addition</tt> ECT is moved to the ACS, with <tt>cmtype</tt> set to <tt>reference-values</tt></t>
            </li>
            <li>
              <t>The claims, i.e., the <tt>element-list</tt> from the ACS ECT with <tt>cmtype</tt> set to <tt>evidence</tt> is copied to the <tt>element-list</tt> of the <tt>addition</tt> ECT</t>
            </li>
            <li>
              <t>The <tt>authority</tt> field of the <tt>addition</tt> ECT has been confirmed as being set correctly to the RVP authority</t>
            </li>
          </ol>
        </section>
        <section anchor="sec-phase4">
          <name>Endorsed Values Augmentation (Phase 4)</name>
          <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>Endorsed Values Triple and Conditional Endorsement Triple share the same internal representation.</t>
            <t>After transformation into an <tt>ev</tt> entry, the processing steps of both triples are the same, as described below.
Each <tt>ev</tt> entry is processed independently of other <tt>ev</tt>s.</t>
            <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>, <tt>reference-values</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>
            <t>Some condition values can match against multiple ACS-ECTs, or sets of ACS-ECTs.
If there are multiple matches, then each match is processed independently from the others.</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>, <tt>reference-values</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 iteration terminates after the first matching series entry is processed or when no series entries match.</t>
          </section>
          <section anchor="sec-process-keys">
            <name>Processing Key Verification Endorsements</name>
            <t>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>, <tt>reference-values</tt>, or <tt>endorsements</tt>.
If the ECTs match (<xref target="sec-match-condition-ect"/>), for each <em>key</em> in <tt>ev</tt>.<tt>condition</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>:</t>
            <ul spacing="normal">
              <li>
                <t>Verify the certificate signatures for the certification path.</t>
              </li>
              <li>
                <t>Verify certificate revocation status for the certification path.</t>
              </li>
              <li>
                <t>Verify key usage restrictions appropriate for the type of key.</t>
              </li>
              <li>
                <t>If key verification succeeds, <strong>append</strong>(<em>key</em>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>).</t>
              </li>
            </ul>
            <t>If key verification succeeds for any <em>key</em>:</t>
            <ul spacing="normal">
              <li>
                <t><strong>copy</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>environment</tt>).</t>
              </li>
              <li>
                <t><strong>copy</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
              <li>
                <t>Set <tt>ev</tt>.<tt>addition</tt>.<tt>cmtype</tt> to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>Add the Verifier authority <tt>$crypto-key-type-choice</tt> to the <tt>ev</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>Add the <tt>addition</tt> ECT to the ACS.</t>
              </li>
            </ul>
            <t>Otherwise, do not add the <tt>addition</tt> ECT to the ACS.</t>
          </section>
          <section anchor="sec-process-dm">
            <name>Processing Domain Membership</name>
            <t>This section assumes that each Domain Membership Triple has been transformed into an internal representation following the steps described in <xref target="sec-ir-dm-trans"/>, resulting in the representation specified in <xref target="sec-ir-dm"/>.</t>
            <t>Domain Membership ECTs (cmtype: domain-member) in the staging area are matched with ACS entries (of cmtype: evidence) OR (of cmtype: domain-member) using the following algorithm:</t>
            <t>For every Domain Membership ECT entry (cmtype: domain-member) in staging area, which has not been processed:</t>
            <t>For each i in members, check that there is a corresponding ACS entry with a matching <tt>environment</tt> and (cmtype:evidence OR cmtype: domain-member)</t>
            <ul spacing="normal">
              <li>
                <t>If all members match a corresponding ACS entry, add the Domain Membership ECT to ACS</t>
              </li>
              <li>
                <t>If none of the members match, proceed to next Domain Membership ECT in the staging area</t>
              </li>
              <li>
                <t>If there is a partial match, proceed to the next Domain Membership ECT in the staging area
If the previous execution of the loop added any Domain Membership ECTs to the ACS, then run the loop again
Else STOP processing Domain Membership ECTs</t>
              </li>
            </ul>
            <t>The processing terminates, when all the Domain Membership ECTs which are appropriate to the Evidence have been added to the ACS.</t>
            <t>If expected Domain Membership ECTs have not been added, then this may affect the processing in a later phase.</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>Verifiers may add value to accepted Claims, such as ensuring freshness, consistency, and integrity.
The results of the added value may be asserted as Claims with Verifier authority.
For example, if a Verifier is able to ensure collected Evidence is fresh, it might create a freshness Claim that is included with the Evidence Claims in the ACS.</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 applied policy may 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>
      <section anchor="sec-match-condition-ect">
        <name>Comparing a condition ECT against the ACS</name>
        <t>The 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"/>.
The 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 the Verifier MUST use the algorithm defined by the profile, or it MUST use 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>The 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>The 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, the 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> (e.g., instance-id or group-id) are also 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>The Verifier MUST compare byte-by-byte 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> matches byte-by-byte a corresponding 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, the 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>The 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>The 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, the 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, the 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, the 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>The 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>The 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.
The Verifier SHALL use the codepoint number, the profile associated with the condition ECT, and, if present, the tag value to select the comparison algorithm.</t>
            <t>If the 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 <tt>uint</tt> value in the condition ECT is less than or equal to the value of SVN.</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 a candidate entry containing a single entry with the same algorithm and value.</t>
              <t>If there are multiple algorithms in common between the condition ECT and candidate entry, then the bytes paired with common algorithms MUST be equal.
This is to prevent downgrade attacks.
The 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 if they are 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 the common hash algorithm identifiers which are present in both 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>A <tt>raw-value</tt> entry contains binary data.</t>
              <t>The value stored under <tt>measurement-values-map</tt> codepoint 4 in an ACS entry MUST be a <tt>raw-value</tt> entry, which MUST be tagged and have type <tt>bytes</tt>.</t>
              <t>The value stored under the condition ECT <tt>measurement-values-map</tt> codepoint 4 may additionally be a <tt>tagged-masked-raw-value</tt> entry, which specifies an expected value and a mask.</t>
              <t>If the condition ECT <tt>measurement-value-map</tt> codepoint 4 is of <tt>tagged-bytes</tt>, and there is no value stored under codepoint 5, then the Verifier treats it in the same way as a <tt>tagged-masked-raw-value</tt> with the <tt>value</tt> field holding the same contents and a <tt>mask</tt> of the same length as the value with all bits set.
The standard comparison function defined in this document removes the tag before performing the comparison.</t>
              <t>For backwards compatibility, if the condition ECT <tt>measurement-value-map</tt> codepoint 4 is of type <tt>tagged-bytes</tt>, and there is a mask stored under codepoint 5, then the Verifier treats it in the same way as a <tt>tagged-masked-raw-value</tt> with the <tt>value</tt> field holding the same contents and a <tt>mask</tt> holding the contents of codepoint 5.</t>
              <t>The comparison MUST return false if the lengths of the candidate entry value and the condition ECT value are different.</t>
              <t>The comparison MUST return false if the lengths of the condition ECT mask and value are different.</t>
              <t>The comparison MUST use the mask to determine which bits to compare.
If a bit in the mask is 0 then this indicates that the corresponding bit in the ACS Entry value may have either value.
If, for every bit position in the mask whose value is 1, the corresponding bits in both values are equal then the comparison MUST return true.</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 byte-by-byte 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 anchor="comparison-for-int-range-entries">
              <name>Comparison for int-range entries</name>
              <t>The ACS entry value stored under <tt>measurement-values-map</tt> codepoint 15 is an int range value, which MUST have type <tt>int-range-type-choice</tt>.</t>
              <t>Consider an <tt>int</tt> ACS entry value named ENTRY in a <tt>measurement-values-map</tt> codepoint (e.g., 15) that allows comparing <tt>int</tt> against a either another <tt>int</tt> or an <tt>int-range</tt> named CONDITION.</t>
              <ul spacing="normal">
                <li>
                  <t>If CONDITION is an <tt>int</tt> then an equality comparison is performed with ENTRY.</t>
                </li>
                <li>
                  <t>If CONDITION is an <tt>int-range</tt> (CBOR tag 564), then a range inclusion comparison is performed.
The comparison MUST return true if and only if all the following conditions are true:  </t>
                  <ul spacing="normal">
                    <li>
                      <t>CONDITION.min is <tt>null</tt> or ENTRY is greater than or equal to CONDITION.min.</t>
                    </li>
                    <li>
                      <t>CONDITION.max is <tt>null</tt> or ENTRY is less than or equal to CONDITION.max.</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <t>Consider an <tt>int-range</tt> or <tt>int-range</tt> (CBOR tag 564) value named ENTRY in a <tt>measurement-values-map</tt> codepoint (e.g., 15) that allows comparing an <tt>int-range</tt> against either another <tt>int-range</tt> or an <tt>int</tt> named CONDITION.</t>
              <ul spacing="normal">
                <li>
                  <t>If CONDITION is an <tt>int</tt>, then the comparison MUST return true if and only if ENTRY.min and ENTRY.max are both equal to CONDITION.</t>
                </li>
                <li>
                  <t>If CONDITION is an <tt>int-range</tt> (CBOR tag 564), then a range subsumption comparison is performed (i.e., the condition range includes all values of the entry range).
The comparison MUST return true if and only if all the following conditions are true:  </t>
                  <ul spacing="normal">
                    <li>
                      <t>CONDITION.min is <tt>null</tt> or ENTRY.min is an <tt>int</tt> that is greater than or equal to CONDITION.min</t>
                    </li>
                    <li>
                      <t>CONDITION.max is <tt>null</tt> or ENTRY.max is an <tt>int</tt> that is less than or equal to CONDITION.max.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </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 the 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/cocli/README.md">https://github.com/veraison/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 procedure conducted by the Verifier 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>It is critical that appraisal procedures are auditable and reproducible.
The integrity of code and data during execution is an explicit objective, for example, ensuring that the appraisal functions are executed 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"/>.
Utilizing the public part of an asymmetric key pair that is used for Evidence generation to identify an Attesting Environment raises privacy considerations that must be carefully considered.</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.
Minimizing the use of intermediaries is also vital: each intermediary becomes another party that might need to be trusted and therefore factored in the Attesters and Relying Parties' TCBs.
Refer to <xref section="12.2" sectionFormat="of" target="RFC9334"/> for information on Conceptual Messages protection.</t>
    </section>
    <section anchor="sec-iana-cons">
      <name>IANA Considerations</name>
      <section anchor="new-cose-header-parameters">
        <name>New COSE Header Parameters</name>
      </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">Reserved for backward compatibility</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-unsigned-corim-map, see <xref target="sec-corim-map"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">502-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-tl-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 (7..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-key-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</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</td>
              <td align="left">
                <tt>tagged-masked-raw-value</tt></td>
              <td align="left">tagged-masked-raw-value, see <xref target="sec-comid-raw-value-types"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">564</td>
              <td align="left">
                <tt>array</tt></td>
              <td align="left">tagged-int-range, see <xref target="sec-comid-int-range"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">565-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 <tt>corim-map</tt> 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-corim-entity-map">
        <name>CoRIM Entity Map Registry</name>
        <t>This document defines a new registry titled "CoRIM Entity Map".
The registry uses integer values as index values for items in <tt>corim-entity-map</tt> 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-entity-map-items-reg-procedures">
          <name>CoRIM Entity 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 Entity 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-entity-map-items">
          <name>CoRIM Entity Map Items Initial Registrations</name>
          <thead>
            <tr>
              <th align="left">Index</th>
              <th align="left">Item Name</th>
              <th align="left">Value Type</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">entity-name</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">Name of the entity responsible for the actions of the role.</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">reg-id</td>
              <td align="left">
                <tt>uri</tt></td>
              <td align="left">A URI associated with the organization that owns the entity name.</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">role</td>
              <td align="left">
                <tt>[ + role-type-choice ]</tt></td>
              <td align="left">A type choice defining the roles that the entity is claiming.</td>
            </tr>
            <tr>
              <td align="left">3-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-corim-signer-map">
        <name>CoRIM Signer Map Registry</name>
        <t>This document defines a new registry titled "CoRIM Signer Map".
The registry uses integer values as index values for items in <tt>corim-signer-map</tt> 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-signer-map-items-reg-procedures">
          <name>CoRIM Signer 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 Signer 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-signer-map-items">
          <name>CoRIM Signer 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">signer-name</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">signer-uri</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2-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 <tt>concise-mid-tag</tt> 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-comid-entity-map">
        <name>CoMID Entity Map Registry</name>
        <t>This document defines a new registry titled "CoRIM Entity Map".
The registry uses integer values as index values for items in <tt>corim-entity-map</tt> 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-entity-map-items-reg-procedures">
          <name>CoMID Entity 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 Entity 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-entity-map-items">
          <name>CoMID Entity Map Items Initial Registrations</name>
          <thead>
            <tr>
              <th align="left">Index</th>
              <th align="left">Item Name</th>
              <th align="left">Value Type</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">entity-name</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">Name of the entity responsible for the actions of the role.</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">reg-id</td>
              <td align="left">
                <tt>uri</tt></td>
              <td align="left">A URI associated with the organization that owns the entity name.</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">role</td>
              <td align="left">
                <tt>[ + role-type-choice ]</tt></td>
              <td align="left">A type choice defining the roles that the entity is claiming.</td>
            </tr>
            <tr>
              <td align="left">3-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-triples-map">
        <name>CoMID Triples Map Registry</name>
        <t>This document defines a new registry titled "CoMID Triples Map".
The registry uses integer values as index values for items in the <tt>triples-map</tt> CBOR maps in <tt>concise-mid-tag</tt> codepoint 4.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-comid-triples-map-items-reg-procedures">
          <name>CoMID Triples 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-1023</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">1024-65535</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">65536-18446744073709551616</td>
              <td align="left">First come first served</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoMID Triples 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-triples-map-items">
          <name>CoMID Triples 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">reference-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">endorsed-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">identity-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">attest-key-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">dependency-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">membership-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">coswid-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">(reserved)</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">conditional-endorsement-series-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">(reserved)</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">10</td>
              <td align="left">conditional-endorsement-triples</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">11-18446744073709551616</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-comid-measurement-values-map">
        <name>CoMID Measurement Values Map Registry</name>
        <t>This document defines a new registry titled "CoMID Measurement Values Map".
The registry uses integer values as index values for items in multiple triples' representations.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-comid-measurement-values-map-items-reg-procedures">
          <name>CoMID Measurement Values 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-1023</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">1024-65535</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">65536-18446744073709551616</td>
              <td align="left">First come first served</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoMID Measurement Values 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-measurement-values-map-items">
          <name>Measurement Values 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">version</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">svn</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">digests</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">flags</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">raw-value</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">raw-value-mask-DEPRECATED</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">mac-addr</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">ip-addr</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">serial-number</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">ueid</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">10</td>
              <td align="left">uuid</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">11</td>
              <td align="left">name</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">12</td>
              <td align="left">(reserved)</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">13</td>
              <td align="left">cryptokeys</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">14</td>
              <td align="left">integrity-registers</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">15</td>
              <td align="left">int-range</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">16-18446744073709551616</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-comid-flags-map">
        <name>CoMID Flags Map Registry</name>
        <t>This document defines a new registry titled "CoMID Flags Map".
The registry uses integer values as index values for items in <tt>measurement-values-map</tt> codepoint 3.</t>
        <t>Future registrations for this registry are to be made based on <xref target="RFC8126"/> as follows:</t>
        <table anchor="tbl-iana-comid-flags-map-items-reg-procedures">
          <name>CoMID Flags 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-1023</td>
              <td align="left">Standards Action</td>
            </tr>
            <tr>
              <td align="left">1024-65535</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">65536-18446744073709551616</td>
              <td align="left">First come first served</td>
            </tr>
          </tbody>
        </table>
        <t>All negative values are reserved for Private Use.</t>
        <t>Initial registrations for the "CoMID Measurement Values 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-flags-map-items">
          <name>Flags 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">is-configured</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">is-secure</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">is-recovery</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">is-debug</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">is-replay-protected</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">is-integrity-protected</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">is-runtime-meas</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">is-immutable</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">is-tcb</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">is-confidentiality-protected</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">10-18446744073709551616</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-cotl">
        <name>CoTL Map Registry</name>
        <t>This document defines a new registry titled "CoTL Map".
The registry uses integer values as index values for items in 'concise-tl-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-cotl-map-items-reg-procedures">
          <name>CoTL 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 "CoTL 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-tl-map-items">
          <name>CoTL 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">tl-validity</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-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">rim+cbor</td>
              <td align="left">application/rim+cbor</td>
              <td align="left">RFCthis, (<xref target="sec-mt-rim-cbor"/>)</td>
            </tr>
            <tr>
              <td align="left">rim+cose</td>
              <td align="left">application/rim+cose</td>
              <td align="left">RFCthis, (<xref target="sec-mt-rim-cose"/>)</td>
            </tr>
          </tbody>
        </table>
        <section anchor="sec-mt-rim-cbor">
          <name>rim+cbor</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t><tt>application</tt></t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t><tt>rim+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></t>
            </dd>
            <dt>File extension(s):</dt>
            <dd>
              <t>.corim</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-rim-cose">
          <name>rim+cose</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t><tt>application</tt></t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t><tt>rim+cose</tt></t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a (cose-type is explicitly not supported, as it is understood to be "cose-sign1")</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 CoRIM payloads protected using COSE Sign1 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>D2 84</tt></t>
            </dd>
            <dt>File extension(s):</dt>
            <dd>
              <t>.corim</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/rim+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">application/rim+cose</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="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </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="RFC9597">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author fullname="T. Looker" initials="T." surname="Looker"/>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document describes how to include CBOR Web Token (CWT) claims in the header parameters of any CBOR Object Signing and Encryption (COSE) structure. This functionality helps to facilitate applications that wish to make use of CWT claims in encrypted COSE structures and/or COSE structures featuring detached signatures, while having some of those claims be available before decryption and/or without inspecting the detached payload. Another use case is using CWT claims with payloads that are not CWT Claims Sets, including payloads that are not CBOR at all.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9597"/>
          <seriesInfo name="DOI" value="10.17487/RFC9597"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (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.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="17" month="October" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC9334)
   are protocol-agnostic data units that are conveyed between RATS roles
   during remote attestation procedures.  Conceptual Messages describe
   the meaning and function of such data units within RATS data flows
   without specifying a wire format, encoding, transport mechanism, or
   processing details.  The initial set of Conceptual Messages is
   defined in Section 8 of RFC9334 and includes Evidence, Attestation
   Results, Endorsements, Reference Values, and Appraisal Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  By introducing a shared message format like
   the CMW, we can consistently support different attestation message
   types, evolve message serialization formats without breaking
   compatibility, and avoid having to redefine how messages are handled
   in each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-19"/>
        </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="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="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="I-D.fdb-rats-psa-endorsements">
          <front>
            <title>A CoRIM Profile for Arm's Platform Security Architecture (PSA) 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="4" month="July" year="2025"/>
            <abstract>
              <t>   PSA Endorsements comprise reference values, endorsed 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 PSA Endorsements as a profile of
   the CoRIM data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fdb-rats-psa-endorsements-08"/>
        </reference>
        <reference anchor="RFC9783">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="S. Frost" initials="S." surname="Frost"/>
            <author fullname="M. Brossard" initials="M." surname="Brossard"/>
            <author fullname="A. Shaw" initials="A." surname="Shaw"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Arm's Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, along with open-source reference implementations, aimed at helping device makers and chip manufacturers integrate best-practice security into their products. Devices that comply with PSA can generate attestation tokens as described in this document, which serve as the foundation for various protocols, including secure provisioning and network access control. This document specifies the structure and semantics of the PSA attestation token.</t>
              <t>The PSA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes the claims used in an attestation token generated by PSA-compliant systems, how these claims are serialized for transmission, and how they are cryptographically protected.</t>
              <t>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="RFC" value="9783"/>
          <seriesInfo name="DOI" value="10.17487/RFC9783"/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="25" month="August" year="2025"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-07"/>
        </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-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="15" month="August" year="2025"/>
            <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.

   This document also defines two serialisations of the proposed
   information model, utilising CBOR and JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-09"/>
        </reference>
        <reference anchor="DICE.cert" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Certificate-Profiles-r01_pub.pdf">
          <front>
            <title>DICE Certificate Profiles</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.01" value=""/>
        </reference>
        <reference anchor="TNC.Arch" target="https://trustedcomputinggroup.org/wp-content/uploads/TNC_Architecture_v1_1_r2.pdf">
          <front>
            <title>TCG Trusted Network Connect TNC Architecture for Interoperability</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2006" month="May"/>
          </front>
          <seriesInfo name="Specification Version 1.1 Revision 2" value=""/>
        </reference>
        <reference anchor="TPM2.Part1" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library, Part 1: Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Family &quot;2.0&quot;, Level 00, Revision 01.83" value=""/>
        </reference>
        <reference anchor="W3C.rdf11-primer" target="https://www.w3.org/TR/rdf11-primer/">
          <front>
            <title>RDF 1.1 Primer</title>
            <author/>
          </front>
          <seriesInfo name="W3C NOTE" value="rdf11-primer"/>
          <seriesInfo name="W3C" value="rdf11-primer"/>
        </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 3796?>

<section anchor="sec-corim-cddl">
      <name>Base CoRIM CDDL</name>
      <sourcecode type="cddl"><![CDATA[
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the following people for their review and comments on this document:
<contact fullname="Carl Wallace"/>
        <contact fullname="Hannes Tschofenig"/>
        <contact fullname="Steven Bellock"/>
        <contact fullname="Jag Raman"/>
        <contact fullname="Giri Mandyam"/>
        <contact fullname="Jeremy O'Donoghue"/>
and
<contact fullname="Michael Richardson"/></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>Altera</organization>
        <address>
          <email>andrew.draper@altera.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:
H4sIAAAAAAAAA+y92XYcR5Yg+O5f4QNpkoAUEcRGkESllAmBUAo93JoAU5Wt
1giOCA/AkxHhke4eACGKdeoj5qXf+mG+pOdP+kvmrmbXzN0BUFLWmTmnVedU
EuG227W7L8PhMLnaT3eSpCmaWb6fHpaLcVHn6Zt8mlf5Ypynx4smv6iK5iZ9
kS2KaV43SXZ+XuVX2PjN8YtkUo4X2Rz6Tqps2gyLvJkOq6yph+OyKubDzafJ
OIMhyupmP62bSTIuF3W+qFf1ftpUqzypV+fzoq6LctHcLGGY46PTb5OkWFb0
vW62Nzefbm4nWZVn++naST5e4WrWkuuyendRlasl/Pomn5dNnh6cNrC+rIGx
0tdVOc4nqyo/WUve5TfQerKfwnoH6ZuD05NBmjWu7SC9yqtiWuTVIK1Xy+Xs
Jh1fZsUiSaDBYvJTNisXuax2WewnadqU4/30Jq/hn3VZNVU+rd3fN3P7J7Sc
5Mvmcj/dS5Js1VyW1X4yTIsFtPhulH5TVO8uy9nP0JIP8bt88c7+WlYX++m3
VbZaXJZwJenJ8Sn8ms+zYrafXkLj0bk0/jOe/AhOt8nGjU5xOkq/Lesatulm
OL0s51ltfoYp4GZ/pqPYT58Xi6wq/RzcfCTN/zyjzyPoo1P8bZQ+y+vLJZxU
7ib5W3kBvwUfwmmyau7nuKHWo4m2/jN8hZ3MdYqXo/RkXjSXbviX+cT9Qid0
DL2WOfy/ReOHXeSTUY2tRng0fy5Xzaws39mBvx+lr7OFG/b7vJC/adDvVtk1
/HKajy8X5ay8KOhGZfDrYjYrsvkIFgyN/nxJbWlshPCmKs5XDd51mspch3Db
ZTXPFji+zniYVXWTL4IvNPfbRQFAWRfN//N/N+k3VT6HRqf/5Zga1ABwebOf
vi7rZpqNL9Odnc3d3U36Noa3sS8d+IdyAvM8G24/2Xn0VH5Zwfqg1V9ynPSG
flxeEox/uft0uLu9NdzeejLc23m6vUUfZcvj7Lz8c/NzQbfPI8lG6Uq/pt/S
eE++FVxaU6bNZZ4ePnv2PK2X+Rhe3Zggok7h4unb8cHLA+xTF5O84m8jf4oH
AG1Vtswrc4gHi0mVX9vf6QgPZg0MYDeQUcPRhBr+OaPvdGX9m5Gxgz3AIuHv
MTzrQQowO66KJaMR3EINcy2aYlyn5RSbTQr8ls1SgM6yqvFeGthsnV7nsxn+
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
Lsc5C7rIZtiPL//hFNZUW8laE8y2OXR6YYPGBwJYHA/grQnIW52RU/DZ6NZC
QgBEyDDtbTIvqEl5qq5jpwPQwa3jcZw4r+3yfODdAIRrp7vXesGu4n23wfuM
RIo6t94EcskabG3DIs7OsRpqzRl8KBE8l/iYWbsAzc8yJ7dPZzkAlq/vI2YD
413svOMo6yO6VmhZ46LSMs1U18rMg0h4MWmZZKKS0GRukWyNbMuo8xmlvEJQ
JLuGN2SkkxUpzK07Br5bMtn0O0wYLarp+QrtrSQJuiXTdMTfU+ItjBykfZ6+
eXvEs5yLt5muaNKxJOaObzHxoDa2zxWGVKxA4MYc/oeZr6pcUnxRdVeggVxj
llbQSEEEAXWKxuMSxyJzY3lZyfqUAedBsYAmr2naTo4WaMM6gbIdbXJXs9iw
lCQdzhnApfNwPZ1EwtnbWf9Bg/X2pUfKt6N//rgRyDEHYulpY93QbGMDIxDf
2Oob3DDOy8wFjLrIBmeYcwfZ4TAC2ymWu/5nrOq43PN/J+HXr7T4NtavSneT
oG30dWsvSbq8WaBZvip2nwSTwi97ZqIkbhEOvZdE7aPvT2woxiFZBgKvS2M3
QXTRjqnSeIyFMw57MUKsKi7FZl8Y09l++vrohVS8m2DpBNQDvqZYNVjMMdxg
ryJ5a8dHxqG21GRL7I1+iubjCEYTGmeC/3rnffRp08LTv9S5WxGTkstOQxoZ
H7KeHT/7JBzkhL646Vi9GY2SXkvwPynVcST72VRSkOF5cxw0XEuMAEl+kwLz
Gc7ckdDbJZF+QUn8xjki3GDrQdgY7JbonS728NXJ0U9Y7Aneq/77JG96T/mx
GgnyrgNuBX+doTVSiCTGWZ28HG2lz47e/Lar3m3HXnY+BYma/NQX0RE2x/vg
8c5UH44jnXx3MNwmn4wNVp8hMbSxoy0fb1kUY+SolBLVSUeqbg/EZqjMJD96
KgLG2xnIStBFk2kbzTRZQ8mXk1mVejVGbyEWnhHjAO3hzOOOFDvNXEi9OTTE
QlRHgGB4QnQU0VWexpuPYkumhZg57EMsprcfQLwqftafsDSEJ+z0q1eInT9l
mcz27rdDken0FySdqx2WyxGtGOrZfSXM7Nzto3hXjOondTMhqp/ez2HZe3SO
wlvvN1k73PTujp1hsXcvrzMq9n7duqDyHn0Dbq7rKlVnvbuOLu8bXU3dwWjb
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
+BIgk+1hr/TnIF+4l+2z/w/dU8XTQc0CAA==

-->

</rfc>
