<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-corim-10" category="std" consensus="true" submissionType="IETF" tocDepth="3" 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-10"/>
    <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="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>RIM, RATS, attestation, verifier, supply chain</keyword>
    <abstract>
      <?line 139?>

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

<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-conc-mess"/>.</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>The internal representations of Conceptual Messages and ACS SHOULD satisfy the requirements in <xref target="tbl-cmrr"/> 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>
          </tbody>
        </table>
      </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[
;# import measured-component as eatmc

corim-locator-map = {
  &(href: 0) => uri / [ + uri ]
  ? &(thumbprint: 1) => eatmc.digest / [ eatmc.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 / hash-envelope-digest / nil
  signature: bstr
]

hash-envelope-digest = 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>: When the payload is signed directly, either a CBOR-encoded tagged CoRIM, or nil if it is detached.
When the payload is signed indirectly, the digest of a CBOR-encoded tagged CoRIM.</t>
          </li>
          <li>
            <t><tt>signature</tt>: A COSE signature block, as defined in <xref section="4" sectionFormat="of" target="STD96"/>.</t>
          </li>
        </ul>
        <section anchor="protected-header-map">
          <name>Protected Header Map</name>
          <sourcecode type="cddl"><![CDATA[
; protected corim header map needs to contain at least one of corim-meta (8) or CWT-Claims (15)
protected-corim-header-map = protected-corim-header-map-inline / protected-corim-header-map-hash-envelope

protected-corim-header-map-inline =
  {
    &(alg: 1) => int,
    &(content-type: 3) => "application/rim+cbor",
    meta-group,
    * cose-label => cose-value
  }

protected-corim-header-map-hash-envelope =
  {
    &(alg: 1) => int,
    &(payload_hash_alg: 258) => int
    &(payload_preimage_content_type: 259) => "application/rim+cbor",
    ? &(payload_location: 260) => tstr
    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>
          </ul>
          <t>Either, when the payload is signed directly:</t>
          <ul spacing="normal">
            <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>Or, when the payload is signed indirectly using a Hash Envelope (<xref target="I-D.ietf-cose-hash-envelope"/>):</t>
          <ul spacing="normal">
            <li>
              <t><tt>payload_hash_alg</tt> (index 258): The hash algorithm used to produce the payload.</t>
            </li>
            <li>
              <t><tt>payload_preimage_content_type</tt> (index 259): A string that represents the "MIME Content type" of the CoRIM document used as the pre-image of the payload.</t>
            </li>
            <li>
              <t><tt>payload_location</tt> (index 260): An optional identifier enabling retrieval of the original resource (preimage) identified by the 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, or <tt>&amp;(payload_preimage_content_type: 259)</tt> in the case of hash envelopes.</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 Endorsements that are applicable based on the acceptance of a condition.
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>
          <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): An EUI-48 (Extended Unique Identifier 48) or EUI-64 MAC address <xref target="IEEE-802.OandA"/> 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[
;# import rfc9393 as coswid

version-map = {
  &(version: 0) => text
  ? &(version-scheme: 1) => coswid.$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.
Note that, while the fields may not be completely independent of one another, this specification imposes no restrictions on combinations of the <tt>flags-map</tt> booleans.
However, a profile may restrict the possible <tt>flags-map</tt> booleans and their valid combinations.</t>
              <sourcecode type="cddl"><![CDATA[
flags-map = non-empty<{
  ? &(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>This specification defines types for 48-bit and 64-bit MAC identifiers.
For IP addresses, it reuses the "Address Format" types defined in <xref target="RFC9164"/> with the CBOR tag removed.</t>
              <t>All the types represent a single address.</t>
              <sourcecode type="cddl"><![CDATA[
mac-addr-type-choice = eui48-addr-type / eui64-addr-type
eui48-addr-type = bytes .size 6
eui64-addr-type = bytes .size 8

;# import rfc9164 as cbor-ip

ip-addr-type-choice /= cbor-ip.ipv4-address
ip-addr-type-choice /= cbor-ip.ipv6-address
]]></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[
;# import measured-component as eatmc

$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(eatmc.digest)
tagged-cose-key-type = #6.558(COSE_Key)
tagged-cert-thumbprint-type = #6.559(eatmc.digest)
tagged-cert-path-thumbprint-type = #6.561(eatmc.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 employs a 2-stage matching convention to assert endorsed values based on an initial condition match followed by a series selection match. If both the condition and selection criteria are satisfied, a set of endorsed values are added to the matching triple records. The condition match identifies the set of Claims to which the selection criteria are applied.
The selection specifies a pattern of measurements that, if present, controls when a focused set of endorsed values are to be asserted.
The 2-stage approach enables Endorsement authors the ability to craft powerful search criteria while avoiding probelmatic repetition of search criteria.</t>
          <t>The Conditional Endorsement Series Triple has the following structure:</t>
          <sourcecode type="cddl"><![CDATA[
conditional-endorsement-series-triple-record = [
  condition: [
    environment: environment-map
    claims-list: [ * measurement-map ]
    ? authorized-by: [ + $crypto-key-type-choice ]
  ]
  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>: Initial selection criteria that locates Evidence, corroborated Evidence, or Endorsements from the current set of accepted Claims.
The condition consists of an <tt>environment-map</tt>, a (possibly empty) <tt>claims-list</tt>, and an optional <tt>authorized-by</tt>.</t>
            </li>
            <li>
              <t><tt>series</tt>: A sequence 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>: Secondary selection criteria that locates Evidence, corroborated Evidence, or Endorsements from the initial selection criteria's <tt>condition</tt> result.</t>
            </li>
            <li>
              <t><tt>addition</tt>: Endorsements that are added if the <tt>selection</tt> criteria are satisfied.</t>
            </li>
          </ul>
          <section anchor="condition-matching">
            <name>Condition Matching</name>
            <t>The condition matching criteria is applied to the set of Claims the Verifier has previously accepted. The criteria is expressed in terms of environments (i.e., <tt>environment-map</tt>) and optionally measurements (i.e., <tt>claims-list</tt>) or authority (i.e., <tt>authorized-by</tt>).
Condition matching is intended to powerfully enable broad or narrow searches that serve as staging for subsequent selection matching.</t>
            <t>Note that <tt>measurement-map</tt> can also specify authority criteria. To avoid conflicting criteria, the <tt>authorized-by</tt> in <tt>condition</tt> takes precedence over the <tt>authorized-by</tt> in <tt>measurement-map</tt>.</t>
            <section anchor="selection-matching">
              <name>Selection Matching</name>
              <t>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>
            </section>
            <section anchor="processing-the-addition">
              <name>Processing the Addition</name>
              <t>To process a <tt>conditional-endorsement-series-record</tt> the selection criteria in <tt>condition</tt> entries are matched with existing Evidence, corroborated Evidence, and Endorsements.
If the selection 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>
        </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 (DDT) links a domain to a set of <em>trustee</em> domains.
A domain dependency triple is used by an Endorser to assert that a trust dependency exists between various components.
A DDT specifies which component (identified by <tt>domain-id</tt>) depends on which other components (identified by <tt>trustees</tt>) for proper operation.
A series of DDTs can be used to describe the trust dependencies of a system of components as a graph.
CoRIM uses <tt>environment-map</tt> to identify components and groupings of components (i.e., domains).</t>
            <t>Trust dependency means that an environment can only be fully trusted if one or more trustee environments have been appraised and found to be trustworthy.
A candidate environment can only be trusted if the trustee environments it depends on exist, have been appraised and are found to be trustworthy.</t>
            <t>The first four phases of appraisal (see <xref target="sec-appraisal-procedure"/>) might not determine whether a component is trustworthy.
Subsequent Verifier stages or Relying Party processing might be needed to finalize trustworthiness.
Therefore, the trustworthiness of trustee domains MUST be appraised before the trustworthiness of the subject domain can be finalized.
Consequently, trust dependency semantics may need to be represented in Attestation Results if Relying Parties play a role in finalizing which components are trustworthy.</t>
            <t>There are a variety of use cases where trust dependency might exist.
For example, trust in an operating system (OS) might depend on trustworthy loading of the OS loader image.
Consequently, the OS loader is a trustee domain of the OS.
Alternatively, trust in a peripheral device might depend on trustworthy operation of a perpheral device's bus controller.
The bus controller is therefore a trustee domain of the peripheral device.</t>
            <t>DDTs cannot create domains.
Instead, DDT processing first checks that a <tt>domain-id</tt> has already been accepted into the ACS before adding trust dependencies.</t>
            <t>The domain dependency triple subject (<tt>domain-id</tt>) identifies the member domain (see <xref target="sec-comid-triple-domain-membership"/>) that has trustees.
The triple object <tt>trustees</tt> lists the domains that are trustees of the subject domain.
The triple predicate asserts that a trust appraisal of <tt>domain-id</tt> is not complete without appraisal of the <tt>trustees</tt>.</t>
            <sourcecode type="cddl"><![CDATA[
domain-dependency-triple-record = [
  domain-id: domain-type
  trustees: [ + domain-type ]
]
]]></sourcecode>
            <t>All of the DDT subjects (<tt>domain-id</tt>) and objects (<tt>trustees</tt>) MUST also be domain members for the DDT expression to be processed.</t>
            <t>Trust dependency graphs are acyclic, meaning a <tt>domain-id</tt> MUST NOT appear in the <tt>trustees</tt> list or within a trustee's subtree.</t>
            <t>A terminating "leaf" trustee is a "root of trust" for that subtree.
Leaf trustees SHOULD have a corresponding Endorsement triple.
Verifiers MAY use DDTs with appraisal policies to assess the veracity of domain-to-trustee linkages.</t>
            <t>Trust dependency typically exists if any of the following are true:</t>
            <ul spacing="normal">
              <li>
                <t>A trustee performs any Attesting Environment functions relating to a Target Environment (TE), such as Claims collection, Claims signing, loading or initialization of the TE, provisioning TE secrets - including cryptographic keys or other security-relevant material.</t>
              </li>
              <li>
                <t>A trustee executes security-relevant code in response to an execution thread that originates from the <tt>domain-id</tt> environment.</t>
              </li>
              <li>
                <t>A trustee is a component embedded within another component identified by <tt>domain-id</tt>.</t>
              </li>
            </ul>
            <t>Trust dependency processing is described in <xref target="processing-domain-dependency"/>.</t>
          </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[
;# import rfc9393 as coswid

coswid-triple-record = [
  environment-map
  [ + coswid.tag-id ]
]
]]></sourcecode>
        </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.
This specification reuses the <tt>digest</tt> type defined in <xref section="4.2" sectionFormat="of" target="I-D.ietf-rats-eat-measured-component"/>.
Only the CBOR serialization is used.</t>
        <sourcecode type="cddl"><![CDATA[
;# import measured-component as eatmc

digests-type = [ + eatmc.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 Appraisal Context 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>Subsequent Phases</strong>: Before producing an Attestation Result, a Verifier may go through subsequent phases of the appraisal procedure.</t>
          </li>
        </ul>
        <t>For example, the Verifier may perform consistency, integrity, or additional validity checks.
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>
        <t>Typically, a Verifier applies Appraisal Policy for Evidence on the ACS that describes desirable or undesirable Attester states.
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>
        <t>Finally, the outcome of Appraisal and the set of Attester Claims of interest 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. This external representation is the Attestation Result message <xref section="8.4" sectionFormat="of" target="RFC9334"/>.</t>
        <t>Please note, a detail description of Subsequent Phases is out of scope of this document.
They are mentioned here to provide an overall context to the Appraisal procedure.</t>
      </section>
    </section>
    <section anchor="sec-verifier-abstraction">
      <name>Reference Verifier Sequence</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 Processing Flow</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="752" width="504" viewBox="0 0 504 752" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,240 L 8,272" fill="none" stroke="black"/>
              <path d="M 8,336 L 8,368" fill="none" stroke="black"/>
              <path d="M 72,272 L 72,312" fill="none" stroke="black"/>
              <path d="M 72,384 L 72,400" fill="none" stroke="black"/>
              <path d="M 144,240 L 144,272" fill="none" stroke="black"/>
              <path d="M 144,336 L 144,368" fill="none" stroke="black"/>
              <path d="M 184,144 L 184,544" fill="none" stroke="black"/>
              <path d="M 208,384 L 208,528" fill="none" stroke="black"/>
              <path d="M 224,400 L 224,432" fill="none" stroke="black"/>
              <path d="M 224,464 L 224,496" fill="none" stroke="black"/>
              <path d="M 248,528 L 248,584" fill="none" stroke="black"/>
              <path d="M 272,400 L 272,432" fill="none" stroke="black"/>
              <path d="M 272,464 L 272,496" fill="none" stroke="black"/>
              <path d="M 288,384 L 288,528" fill="none" stroke="black"/>
              <path d="M 296,272 L 296,352" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,96" fill="none" stroke="black"/>
              <path d="M 312,176 L 312,208" fill="none" stroke="black"/>
              <path d="M 312,304 L 312,336" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,64" fill="none" stroke="black"/>
              <path d="M 336,32 L 336,48" fill="none" stroke="black"/>
              <path d="M 336,416 L 336,480" fill="none" stroke="black"/>
              <path d="M 360,304 L 360,336" fill="none" stroke="black"/>
              <path d="M 384,96 L 384,152" fill="none" stroke="black"/>
              <path d="M 384,224 L 384,264" fill="none" stroke="black"/>
              <path d="M 384,352 L 384,392" fill="none" stroke="black"/>
              <path d="M 384,592 L 384,640" fill="none" stroke="black"/>
              <path d="M 408,304 L 408,336" fill="none" stroke="black"/>
              <path d="M 432,416 L 432,480" fill="none" stroke="black"/>
              <path d="M 440,688 L 440,720" fill="none" stroke="black"/>
              <path d="M 448,176 L 448,208" fill="none" stroke="black"/>
              <path d="M 456,304 L 456,336" fill="none" stroke="black"/>
              <path d="M 464,64 L 464,96" fill="none" stroke="black"/>
              <path d="M 472,272 L 472,352" fill="none" stroke="black"/>
              <path d="M 480,48 L 480,80" fill="none" stroke="black"/>
              <path d="M 496,32 L 496,64" fill="none" stroke="black"/>
              <path d="M 496,144 L 496,544" fill="none" stroke="black"/>
              <path d="M 496,592 L 496,640" fill="none" stroke="black"/>
              <path d="M 496,688 L 496,720" fill="none" stroke="black"/>
              <path d="M 336,32 L 496,32" fill="none" stroke="black"/>
              <path d="M 320,48 L 480,48" fill="none" stroke="black"/>
              <path d="M 304,64 L 464,64" fill="none" stroke="black"/>
              <path d="M 480,64 L 496,64" fill="none" stroke="black"/>
              <path d="M 464,80 L 480,80" fill="none" stroke="black"/>
              <path d="M 304,96 L 464,96" fill="none" stroke="black"/>
              <path d="M 200,128 L 480,128" fill="none" stroke="black"/>
              <path d="M 328,160 L 432,160" fill="none" stroke="black"/>
              <path d="M 328,224 L 432,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 144,240" fill="none" stroke="black"/>
              <path d="M 8,272 L 144,272" fill="none" stroke="black"/>
              <path d="M 296,272 L 472,272" fill="none" stroke="black"/>
              <path d="M 312,304 L 360,304" fill="none" stroke="black"/>
              <path d="M 408,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 24,320 L 128,320" fill="none" stroke="black"/>
              <path d="M 312,336 L 360,336" fill="none" stroke="black"/>
              <path d="M 408,336 L 456,336" fill="none" stroke="black"/>
              <path d="M 296,352 L 472,352" fill="none" stroke="black"/>
              <path d="M 24,384 L 128,384" fill="none" stroke="black"/>
              <path d="M 208,384 L 288,384" fill="none" stroke="black"/>
              <path d="M 224,400 L 272,400" fill="none" stroke="black"/>
              <path d="M 352,400 L 416,400" fill="none" stroke="black"/>
              <path d="M 88,416 L 200,416" fill="none" stroke="black"/>
              <path d="M 288,416 L 328,416" fill="none" stroke="black"/>
              <path d="M 224,432 L 272,432" fill="none" stroke="black"/>
              <path d="M 224,464 L 272,464" fill="none" stroke="black"/>
              <path d="M 296,480 L 336,480" fill="none" stroke="black"/>
              <path d="M 224,496 L 272,496" fill="none" stroke="black"/>
              <path d="M 352,496 L 416,496" fill="none" stroke="black"/>
              <path d="M 208,528 L 288,528" fill="none" stroke="black"/>
              <path d="M 200,560 L 480,560" fill="none" stroke="black"/>
              <path d="M 184,592 L 312,592" fill="none" stroke="black"/>
              <path d="M 384,592 L 496,592" fill="none" stroke="black"/>
              <path d="M 328,608 L 376,608" fill="none" stroke="black"/>
              <path d="M 184,624 L 312,624" fill="none" stroke="black"/>
              <path d="M 384,640 L 496,640" fill="none" stroke="black"/>
              <path d="M 352,688 L 400,688" fill="none" stroke="black"/>
              <path d="M 440,688 L 496,688" fill="none" stroke="black"/>
              <path d="M 352,720 L 400,720" fill="none" stroke="black"/>
              <path d="M 440,720 L 496,720" fill="none" stroke="black"/>
              <path d="M 200,128 C 191.16936,128 184,135.16936 184,144" fill="none" stroke="black"/>
              <path d="M 480,128 C 488.83064,128 496,135.16936 496,144" fill="none" stroke="black"/>
              <path d="M 328,160 C 319.16936,160 312,167.16936 312,176" fill="none" stroke="black"/>
              <path d="M 432,160 C 440.83064,160 448,167.16936 448,176" fill="none" stroke="black"/>
              <path d="M 328,224 C 319.16936,224 312,216.83064 312,208" fill="none" stroke="black"/>
              <path d="M 432,224 C 440.83064,224 448,216.83064 448,208" fill="none" stroke="black"/>
              <path d="M 24,320 C 15.16936,320 8,327.16936 8,336" fill="none" stroke="black"/>
              <path d="M 128,320 C 136.83064,320 144,327.16936 144,336" fill="none" stroke="black"/>
              <path d="M 24,384 C 15.16936,384 8,376.83064 8,368" fill="none" stroke="black"/>
              <path d="M 128,384 C 136.83064,384 144,376.83064 144,368" fill="none" stroke="black"/>
              <path d="M 352,400 C 343.16936,400 336,407.16936 336,416" fill="none" stroke="black"/>
              <path d="M 416,400 C 424.83064,400 432,407.16936 432,416" fill="none" stroke="black"/>
              <path d="M 88,416 C 79.16936,416 72,408.83064 72,400" fill="none" stroke="black"/>
              <path d="M 352,496 C 343.16936,496 336,488.83064 336,480" fill="none" stroke="black"/>
              <path d="M 416,496 C 424.83064,496 432,488.83064 432,480" fill="none" stroke="black"/>
              <path d="M 200,560 C 191.16936,560 184,552.83064 184,544" fill="none" stroke="black"/>
              <path d="M 480,560 C 488.83064,560 496,552.83064 496,544" fill="none" stroke="black"/>
              <path d="M 184,592 C 175.16936,592 168,599.16936 168,608" fill="none" stroke="black"/>
              <path d="M 312,592 C 320.83064,592 328,599.16936 328,608" fill="none" stroke="black"/>
              <path d="M 184,624 C 175.16936,624 168,616.83064 168,608" fill="none" stroke="black"/>
              <path d="M 312,624 C 320.83064,624 328,616.83064 328,608" fill="none" stroke="black"/>
              <path d="M 352,688 C 343.16936,688 336,695.16936 336,704" fill="none" stroke="black"/>
              <path d="M 400,688 C 408.83064,688 416,695.16936 416,704" fill="none" stroke="black"/>
              <path d="M 352,720 C 343.16936,720 336,712.83064 336,704" fill="none" stroke="black"/>
              <path d="M 400,720 C 408.83064,720 416,712.83064 416,704" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="392,392 380,386.4 380,397.6" fill="black" transform="rotate(90,384,392)"/>
              <polygon class="arrowhead" points="392,264 380,258.4 380,269.6" fill="black" transform="rotate(90,384,264)"/>
              <polygon class="arrowhead" points="392,152 380,146.4 380,157.6" fill="black" transform="rotate(90,384,152)"/>
              <polygon class="arrowhead" points="384,608 372,602.4 372,613.6" fill="black" transform="rotate(0,376,608)"/>
              <polygon class="arrowhead" points="336,416 324,410.4 324,421.6" fill="black" transform="rotate(0,328,416)"/>
              <polygon class="arrowhead" points="304,480 292,474.4 292,485.6" fill="black" transform="rotate(180,296,480)"/>
              <polygon class="arrowhead" points="256,584 244,578.4 244,589.6" fill="black" transform="rotate(90,248,584)"/>
              <polygon class="arrowhead" points="208,416 196,410.4 196,421.6" fill="black" transform="rotate(0,200,416)"/>
              <polygon class="arrowhead" points="80,312 68,306.4 68,317.6" fill="black" transform="rotate(90,72,312)"/>
              <g class="text">
                <text x="352" y="84">CoRIM</text>
                <text x="408" y="84">file(s)</text>
                <text x="216" y="148">CoRIM</text>
                <text x="280" y="148">Processor</text>
                <text x="364" y="180">Validation</text>
                <text x="416" y="180">&amp;</text>
                <text x="356" y="196">Internal</text>
                <text x="416" y="196">Repr.</text>
                <text x="380" y="212">Transformation</text>
                <text x="76" y="260">Evidence</text>
                <text x="360" y="292">Staging</text>
                <text x="412" y="292">Area</text>
                <text x="336" y="324">ECT</text>
                <text x="384" y="324">...</text>
                <text x="432" y="324">ECT</text>
                <text x="60" y="340">Validation</text>
                <text x="112" y="340">&amp;</text>
                <text x="52" y="356">Internal</text>
                <text x="112" y="356">Repr.</text>
                <text x="76" y="372">Transformation</text>
                <text x="248" y="420">ECT</text>
                <text x="360" y="436">ACS</text>
                <text x="248" y="452">...</text>
                <text x="384" y="452">Condition</text>
                <text x="380" y="468">Matching</text>
                <text x="248" y="484">ECT</text>
                <text x="248" y="516">ACS</text>
                <text x="220" y="612">Subsequent</text>
                <text x="292" y="612">Phases</text>
                <text x="440" y="612">Attestation</text>
                <text x="424" y="628">Results</text>
                <text x="40" y="692">Legend:</text>
                <text x="40" y="708">ACS</text>
                <text x="64" y="708">=</text>
                <text x="112" y="708">Appraisal</text>
                <text x="180" y="708">Claims</text>
                <text x="224" y="708">Set</text>
                <text x="376" y="708">Process</text>
                <text x="468" y="708">Data</text>
                <text x="40" y="724">ECT</text>
                <text x="64" y="724">=</text>
                <text x="148" y="724">Environment-Claims</text>
                <text x="248" y="724">Tuple</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                                          .-------------------.
                                        .-+-----------------. |
                                      .-+-----------------. +-'
                                      |   CoRIM file(s)   +-'
                                      '---------+---------'
                                                |
                        .-----------------------+------------.
                       | CoRIM Processor        v             |
                       |                .--------------.      |
                       |               | Validation &   |     |
                       |               | Internal Repr. |     |
                       |               | Transformation |     |
                       |                '-------+------'      |
 .----------------.    |                        |             |
 |    Evidence    |    |                        v             |
 '-------+--------'    |             .---------------------.  |
         |             |             |    Staging Area     |  |
         v             |             | .-----.     .-----. |  |
  .--------------.     |             | | ECT | ... | ECT | |  |
 | Validation &   |    |             | '-----'     '-----' |  |
 | Internal Repr. |    |             '----------+----------'  |
 | Transformation |    |                        |             |
  '------+-------'     |  .---------.           v             |
         |             |  | .-----. |      .---------.        |
          '------------+->| | ECT | +---->|           |       |
                       |  | '-----' |     | ACS       |       |
                       |  |   ...   |     | Condition |       |
                       |  | .-----. |     | Matching  |       |
                       |  | | ECT | |<----+           |       |
                       |  | '-----' |      '---------'        |
                       |  |   ACS   |                         |
                       |  '----+----'                         |
                       |       |                              |
                        '------+-----------------------------'
                               v
                      .-----------------.       .-------------.
                     | Subsequent Phases +----->| Attestation |
                      '-----------------'       | Results     |
                                                '-------------'


  Legend:                                  .-------.   .------.
    ACS = Appraisal Claims Set            | Process |  | Data |
    ECT = Environment-Claims Tuple         '-------'   '------'
]]></artwork>
        </artset>
      </figure>
      <section anchor="sec-conc-mess">
        <name>Processing 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>All the Conceptual Messages once fully processed are transformed into a common internal representation known as Environment Claims Tuple(ECT).
This section describes the internal structure of ECT and explains the process of transformation of external conceptual messages into ECTs.</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 ]
  ? trustees: [ + 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
  trustee: 7
)
]]></sourcecode>
          <t>The Conceptual Message type (<tt>cmtype</tt>) determines which attributes are mandatory.</t>
        </section>
        <section anchor="common-conventions-for-input-transformation">
          <name>Common Conventions for Input Transformation</name>
          <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>
        <section anchor="sec-ev-processing">
          <name>Processing of Evidence</name>
          <section anchor="sec-ir-evidence">
            <name>Internal Representation of Evidence</name>
            <t>An internal representation of Attestation Evidence uses the <tt>ae</tt> relation.
<tt>ae</tt> implies Attestation Evidence and refers to a collection of evidence ECTs.</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>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>trustees</tt></td>
                  <td align="left">n/a</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="evidence-transformation">
            <name>Evidence Transformation</name>
            <t>Evidence is transformed from an external representation to an internal representation as specified in <xref target="sec-ir-evidence"/>. The Evidence is mapped into one or more addition 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 (Section 4.1.4), or supplied dynamically.
The handling of Evidence transformation algorithms is out of scope for this document.</t>
          </section>
        </section>
        <section anchor="processing-of-reference-value-triples">
          <name>Processing of Reference Value Triples</name>
          <t>Upon processing of CoRIMs containing Reference Value Triples, the RV Triples are transformed to an internal representation.</t>
          <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"> </td>
                  <td align="left">
                    <tt>trustees</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>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>trustees</tt></td>
                  <td align="left">n/a</td>
                </tr>
              </tbody>
            </table>
          </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>
        <section anchor="processing-of-endorsed-value-triple-conditional-endorsement-triple-conditional-endorsement-series-triples">
          <name>Processing of Endorsed Value Triple, Conditional Endorsement Triple &amp; Conditional Endorsement Series Triples</name>
          <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.
The <tt>ev</tt> relation is applicable to Endorsed Values  (EV) and Conditional Endorsement (CE) Triple.
The <tt>evs</tt> relation is applicable to the Conditional Endorsement Series Triples.</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.
Note, when <tt>ev</tt> relation is for EV Triple, then the <tt>element-list</tt> inside <tt>condition</tt> is Optional while it is Mandatory for CE Triple.</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"> </td>
                  <td align="left">
                    <tt>trustees</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"> </td>
                  <td align="left">
                    <tt>trustees</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>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>trustees</tt></td>
                  <td align="left">n/a</td>
                </tr>
              </tbody>
            </table>
          </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>For <tt>c</tt> in CEST.<tt>condition</tt>:</t>
                </li>
              </ol>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>c</tt>.<tt>environment</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t>If the <tt>c</tt>.<tt>claims-list</tt> is not empty then <strong>copy</strong>(<tt>c</tt>.<tt>claims-list</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>element-list</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t>If <tt>c</tt>.<tt>authorized-by</tt> is present then <strong>copy</strong>(<tt>c</tt>.<tt>authorized-by</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>authority</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ol group="cestt2" spacing="normal" type="%i."><li>
                  <t>For each <tt>s</tt> 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>evs</tt>.<tt>series[s]</tt>.<tt>selection</tt>.<tt>environment</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>s</tt>.<tt>selection</tt>, <tt>evs</tt>.<tt>series[s]</tt>.<tt>selection</tt>.<tt>element-list</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>evs</tt>.<tt>series[s]</tt>.<tt>addition</tt>.<tt>environment</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>s</tt>.<tt>addition</tt>, <tt>evs</tt>.<tt>series[s]</tt>.<tt>addition</tt>.<tt>element-list</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 for each addition.</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 for each addition.</t>
                </li>
              </ol>
            </section>
          </section>
        </section>
        <section anchor="processing-of-attest-key-and-device-identity-key-triples">
          <name>Processing of Attest Key and Device Identity Key Triples</name>
          <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-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="processing-of-domain-membership-triples">
          <name>Processing of Domain Membership Triples</name>
          <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>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>trustees</tt></td>
                  <td align="left">Optional</td>
                </tr>
              </tbody>
            </table>
          </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>[<em>e</em>].<tt>environment</tt>, <tt>domain</tt>.<tt>members</tt>[<em>e</em>].<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 anchor="processing-domain-dependency">
          <name>Processing of Domain Dependency Triples</name>
          <section anchor="sec-ir-dd">
            <name>Internal Representation of Domain Dependency</name>
            <t>An internal representation of trust dependency is a directed acyclic graph where each node in the graph identifies a member domain and contains edges to dependent, or "trustee" domains.
An ECT structure <tt>environment</tt> field contains the domain identifier, and the ECT trustees list are the edges.
The <tt>cmtype</tt> is inclusive of <tt>trustee</tt> to indicate the ECT is being used to model a trust dependency graph.</t>
            <sourcecode type="cddl"><![CDATA[
ddg = [ + ( dde: ECT ) ]
]]></sourcecode>
            <t><xref target="tbl-dd-ect-optionality"/> contains the requirements for the ECT fields of the Domain Dependency tuple:</t>
            <table anchor="tbl-dd-ect-optionality">
              <name>Domain Dependency 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>
                <tr>
                  <td align="left"> </td>
                  <td align="left">
                    <tt>trustees</tt></td>
                  <td align="left">Mandatory</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sec-ir-dd-trans">
            <name>Domain Dependency Triples Transformation</name>
            <t>This section describes how the external representation of a Domain Dependency Triple (DDT) (<xref target="sec-comid-triple-domain-dependency"/>) is transformed into its CoRIM internal representation of a domain dependency graph (<tt>ddg</tt>) (see <xref target="sec-ir-dd"/>).</t>
            <t>For each <tt>domain-dependency-triple-record</tt> (<tt>ddtr</tt>) in the DDT list, perform the following steps:</t>
            <ol group="ddt1" spacing="normal" type="Step %d."><li>
                <t>Allocate a domain dependency edge <tt>dde</tt> ECT entry.</t>
              </li>
              <li>
                <t>Set the conceptual message type <tt>cmtype</tt> for the <tt>dde</tt> ECT to <tt>trustee</tt>.</t>
              </li>
            </ol>
            <ol group="ddt2" spacing="normal" type="%i"><li>
                <t><strong>assign</strong>(<tt>trustee</tt>, <tt>dde</tt>.<tt>cmtype</tt>)</t>
              </li>
            </ol>
            <ol group="ddt1" spacing="normal" type="Step %d."><li>
                <t>Set the authority for the trust domain ECT to the ddt signer (<xref target="sec-corim-signer"/>).</t>
              </li>
            </ol>
            <ol group="ddt3" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(<tt>ddtr</tt>.<tt>signer</tt>, <tt>dde</tt>.<tt>authority</tt>)</t>
              </li>
            </ol>
            <ol group="ddt1" spacing="normal" type="Step %d."><li>
                <t>Populate the ECT <tt>environment</tt> using the domain identifier.</t>
              </li>
            </ol>
            <ol group="ddt4" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(<tt>ddtr</tt>.<tt>domain-id</tt>, <tt>dde</tt>.<tt>environment</tt>)</t>
              </li>
            </ol>
            <ol group="ddt1" spacing="normal" type="Step %d."><li>
                <t>Populate the ECT <tt>trustees</tt>.</t>
              </li>
            </ol>
            <ol group="ddt5" spacing="normal" type="%i"><li>
                <t>For each <tt>environment</tt> <em>e</em> in <tt>ddtr</tt>.<tt>trustees</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>([<em>e</em>].<tt>environment</tt>, <tt>dde</tt>.<tt>trustees</tt>[<em>e</em>].<tt>environment</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="ddt1" spacing="normal" type="Step %d."><li>
                <t>If the conceptual message containing the DDT has a profile, it is used to populate the profile for the <tt>dde</tt> ECT.</t>
              </li>
            </ol>
            <ol group="ddt6" spacing="normal" type="%i"><li>
                <t><strong>copy</strong>(<tt>ddtr</tt>.<tt>profile</tt>, <tt>dde</tt>.<tt>profile</tt>)</t>
              </li>
            </ol>
            <t>Append the domain dependency edge (<tt>dde</tt>) to the domain dependency graph (<tt>ddg</tt>).</t>
            <t>Process each domain dependency triple record (<tt>ddtr</tt>) in the DDT list until every entry has been transformed to the internal representation and is contained in the domain dependency graph.</t>
            <t>The domain dependency graph becomes input to domain dependency processing steps in <xref target="sec-process-dd"/>.</t>
          </section>
        </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>
            <t>Once Evidence is validated it is transformed into an internal representation as given in <xref target="sec-ev-processing"/>.</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-conc-mess"/>).</t>
          <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.
As the Conceptual Messages are processed during Appraisal, the <em>appraisal context</em> starts to get populated using a data structure
as given below. See <xref target="sec-ir-acs"/></t>
          </section>
        </section>
        <section anchor="sec-ir-acs">
          <name>Internal Representation of Appraisal Claims Set (ACS)</name>
          <t>An ACS is a list of ECTs that describe an Attester's actual state.</t>
          <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>
      <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-conc-mess"/>.</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"/>.</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 Verifications</name>
            <t>To process key verification triples, the internal representation of ECTs containing <tt>intrep-keys</tt> is used to identify ACS entries containing <tt>$crypto-key-type-choice</tt> values that require additional key verification steps.
If the <tt>key-type</tt> field is set, the Verifier will apply the verification steps defined below.
If the key verification check succeeds, the key is re-asserted by the Verifier as an Endorsement by constructing an ECT that contains the verified key using the <tt>authority</tt> of the Verifier.
Note that, in this case, the Verifier is acting in the role of an Endorser.</t>
            <t>For each ECT from endorsed value (<tt>ev</tt>) or attestation evidence (<tt>ae</tt>) entries, the candidate ECT (C-ECT) is compared with an ACS ECT (ACS-ECT), where the ACS-ECT <tt>cmtype</tt> contains either <tt>evidence</tt> or <tt>endorsements</tt>.
If the C-ECT and ACS-ECT match (<xref target="sec-match-condition-ect"/>), then for each <em>key</em> in the C-ECT.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>, do the following steps:</t>
            <ol group="kvp" spacing="normal" type="Step %d."><li>
                <t>Verify the certificate signatures for each certificate in the certification path.</t>
              </li>
              <li>
                <t>Verify certificate revocation status for each certificate in the certification path.</t>
              </li>
              <li>
                <t>Verify key usage restrictions appropriate for the type of key in <tt>key-type</tt>.</t>
              </li>
              <li>
                <t>If key verification succeeds for any <em>key</em>, allocate an addition ECT (ADDITION).</t>
              </li>
              <li>
                <t>For each verified <em>key</em> in C-ECT:</t>
              </li>
            </ol>
            <ol group="kvp2" spacing="normal" type="%i"><li>
                <t><strong>append</strong>(<em>key</em>, ADDITION.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>).</t>
              </li>
            </ol>
            <ol group="kvp" spacing="normal" type="Step %d."><li>
                <t><strong>copy</strong>(ACS-ECT<tt>.</tt>environment<tt>, ADDITION.</tt>environment`).</t>
              </li>
              <li>
                <t><strong>copy</strong>(ACS-ECT.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>, ADDITION.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
              <li>
                <t>Set ADDITION.<tt>cmtype</tt> to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>Add the Verifier authority <tt>$crypto-key-type-choice</tt> to the ADDITION.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>Add the ADDITION to the ACS.</t>
              </li>
            </ol>
            <t>Otherwise, do not add the ADDITION to the ACS.</t>
            <t>It is possible that a candidate key has been verified during Phase 1 processing (<xref target="sec-phase1"/>) or is replicated across Evidence or Endorsement ECTs.
Implementations might optimize processing of key verifications by checking whether a key has already been verified by the Verifier.</t>
          </section>
          <section anchor="sec-process-dm">
            <name>Processing Domain Membership</name>
            <t>This section assumes that each Domain Membership Triple (see <xref target="sec-comid-triple-domain-membership"/>) 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 (i.e., <tt>cmtype</tt> equals <tt>domain-member</tt>) in the <tt>dm</tt> staging area are matched with ACS entries where <tt>cmtype</tt> is set to <tt>evidence</tt>, <tt>reference-values</tt> i.e. corroborated evidence,  or <tt>domain-member</tt> using the following algorithm:</t>
            <t>For each <tt>domain</tt> in the <tt>dm</tt> staging area, which has not been processed (outer loop):</t>
            <t>For each member <tt>m</tt> in <tt>domain</tt>.<tt>members</tt> (inner loop):</t>
            <ul spacing="normal">
              <li>
                <t>Check that there is a corresponding ACS entry <tt>environment</tt> that matches <tt>m</tt>.<tt>environment</tt>.</t>
              </li>
              <li>
                <t>Check that the ACS entry <tt>cmtype</tt> is one of <tt>evidence</tt>, <tt>reference-values</tt>, or <tt>domain-member</tt>.</t>
              </li>
            </ul>
            <t>Outer loop resumes:</t>
            <ul spacing="normal">
              <li>
                <t>If all <tt>domain</tt>.<tt>members</tt> matched a corresponding ACS entry, add the <tt>domain</tt> ECT to the ACS.</t>
              </li>
              <li>
                <t>If none of the <tt>domain</tt>.<tt>members</tt> matched, proceed to next <tt>dm</tt> entry.</t>
              </li>
              <li>
                <t>If some, but not all of the <tt>domain</tt>.<tt>members</tt> matched, proceed to the next <tt>dm</tt> entry.
If the previous execution of the outer loop added any <tt>domain</tt> entry to the ACS, then run the outer loop again
Else STOP processing <tt>dm</tt> entries.</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 any of the expected Domain Membership ECTs have not been added to the ACS, then this may affect outcomes in subsequent phases.</t>
          </section>
          <section anchor="sec-process-dd">
            <name>Processing Domain Dependency</name>
            <t>This section assumes that each Domain Dependency Triple (see <xref target="sec-comid-triple-domain-dependency"/>) has been transformed into domain dependency graph (see <xref target="sec-ir-dd"/>) following the steps described in <xref target="sec-ir-dd-trans"/>.</t>
            <t>Processing a domain dependency graph (DDG) has the following objectives:</t>
            <ul spacing="normal">
              <li>
                <t>Verify each edge in a DDG has a corresponding edge in a domain membership graph.
DDGs need not be isomorphic to domain membership graphs.</t>
              </li>
              <li>
                <t>Verify the DDG is acyclic.</t>
              </li>
            </ul>
            <t>If, in a later processing phase, an appraisal policy for trust dependency exists, the DDG can be further evaluated.
For example, a trust dependency policy might specify a strength of function requirement for how Evidence about a TE is integrity protected by its AE.</t>
            <t>Domain Dependency ECTs are processed using the following algorithm:</t>
            <t>For each <tt>dde</tt> in the <tt>ddg</tt> staging array (outer loop):</t>
            <ul spacing="normal">
              <li>
                <t>Check that the ACS.<tt>cmtype</tt> contains <tt>domain-member</tt>.</t>
              </li>
              <li>
                <t>Check that the <tt>dde</tt>.<tt>environment</tt> matches a domain member ACS entry <tt>environment</tt>.</t>
              </li>
              <li>
                <t>OR that the <tt>dde</tt>.<tt>environment</tt> matches one of it's ACS.<tt>members</tt>.<tt>environment</tt>.</t>
              </li>
            </ul>
            <t>For each trustee <em>t</em> in <tt>dde</tt>.<tt>trustees</tt> (inner loop):</t>
            <ul spacing="normal">
              <li>
                <t>Check that the ACS.<tt>cmtype</tt> contains <tt>domain-member</tt>.</t>
              </li>
              <li>
                <t>Check that <em>t</em> matches an ACS.<tt>environment</tt>.</t>
              </li>
            </ul>
            <t>Outer loop resumes:</t>
            <ul spacing="normal">
              <li>
                <t>If the <tt>dde</tt>.<tt>environment</tt> record AND all <tt>dde</tt>.<tt>trustees</tt> matched an ACS with <tt>cmtype</tt> <tt>domain-member</tt> entry.
Then add the <tt>dde</tt> to the ACS.</t>
              </li>
              <li>
                <t>Continue to the next <tt>dde</tt> until all are processed.</t>
              </li>
            </ul>
            <t>Subsequent Verifier stages or Relying Party processing of the ACS can be impacted when Domain Dependency ECTs are not added to the ACS.
For example, trust in an ACS entry that depends on <tt>trustee</tt> ACS entries might not be considered.</t>
          </section>
        </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: There are three CoRIM libraries under project Veraison.
            </t>
            <ol spacing="normal" type="1"><li>
                <t><eref target="https://github.com/veraison/corim">CoRIM golang library</eref> 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.</t>
              </li>
              <li>
                <t><eref target="https://github.com/veraison/corim-rs">CoRIM rust library</eref> provide a rust implementation of
CoRIM specification.</t>
              </li>
              <li>
                <t><eref target="https://github.com/veraison/cover">CoRIM Processor</eref> provides a library for appraisal of Evidence by processing CoRIMs as outlined in <xref target="sec-verifier-abstraction"/>} of this specification.</t>
              </li>
            </ol>
            <t>
In addition to the base CoRIM Libraries, the <eref target="https://github.com/veraison/cocli">cocli package</eref> uses the golang 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 -06 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>
              <eref target="https://github.com/veraison/corim-rs/commits/master/">https://github.com/veraison/corim-rs/commits/master/</eref>
              <eref target="https://github.com/veraison/cover/commits/main/">https://github.com/veraison/cover/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>Please review the Security and Privacy Considerations in Sections <xref target="I-D.ietf-rats-endorsements" section="8" sectionFormat="bare"/> and <xref target="I-D.ietf-rats-endorsements" section="9" sectionFormat="bare"/> of <xref target="I-D.ietf-rats-endorsements"/>; these considerations apply to this document as well.</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="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </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="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) 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 RFC 9334 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.  Introducing a shared message format such as
   CMW enables consistent support for different attestation message
   types, evolving message serialization formats without breaking
   compatibility, and avoiding the need to redefine how messages are
   handled within each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-measured-component">
          <front>
            <title>Entity Attestation Token (EAT) Measured Component</title>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm</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="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="20" month="February" year="2026"/>
            <abstract>
              <t>   The term "measured component" refers to an object within the
   attester's target environment whose state can be sampled and
   typically digested using a cryptographic hash function.  Examples of
   measured components include firmware stored in flash memory, software
   loaded into memory at start time, data stored in a file system, or
   values in a CPU register.  This document provides the information
   model for the "measured component" and two associated data models.
   This separation is intentional: the JSON and CBOR serializations,
   coupled with the media types and associated Constrained Application
   Protocol (CoAP) Content-Formats, enable the immediate use of the
   semantics within the Entity Attestation Token (EAT) framework.
   Meanwhile, the information model can be reused in future
   specifications to provide additional serializations, for example,
   using ASN.1.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-measured-component-12"/>
        </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">
          <front>
            <title>ASN.1 encoding rules: Specification of basic encoding Rules (BER), Canonical encoding rules (CER) and Distinguished encoding rules (DER)</title>
            <author>
              <organization>International Telephone and Telegraph
Consultative Committee</organization>
            </author>
            <date month="July" year="2002"/>
          </front>
          <seriesInfo name="CCITT" value="Recommendation X.690"/>
        </reference>
        <reference anchor="I-D.ietf-cose-hash-envelope">
          <front>
            <title>COSE Hash Envelope</title>
            <author fullname="Orie Steele" initials="O." surname="Steele">
         </author>
            <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="15" month="November" year="2025"/>
            <abstract>
              <t>   This document defines new COSE header parameters for signaling a
   payload as an output of a hash function.  This mechanism enables
   faster validation, as access to the original payload is not required
   for signature validation.  Additionally, hints of the hashed
   payload's content format and availability are defined, providing
   references to optional discovery mechanisms that can help to find
   original payload content.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hash-envelope-10"/>
        </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="5" month="January" year="2026"/>
            <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-09"/>
        </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="2" month="March" year="2026"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and uses Appraisal Policy for Evidence,
   typically with additional input from Endorsements and Reference
   Values, to generate 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-09"/>
        </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="IEEE-802.OandA">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture</title>
            <author>
              <organization/>
            </author>
            <date month="July" year="2014"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/ieeestd.2014.6847097"/>
          <seriesInfo name="ISBN" value="[&quot;9780738192192&quot;]"/>
          <refcontent>IEEE</refcontent>
        </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 3945?>

<section anchor="sec-corim-cddl">
      <name>Base CoRIM CDDL</name>
      <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

corim = concise-rim-type-choice
concise-rim-type-choice /= tagged-unsigned-corim-map / signed-corim
concise-tl-tag = {
  &(tag-identity: 0) => tag-identity-map,
  &(tags-list: 1) => [+ tag-identity-map],
  &(tl-validity: 2) => validity-map,
}
$concise-tag-type-choice /= tagged-concise-swid-tag / tagged-concise\
                                     -mid-tag / tagged-concise-tl-tag
corim-entity-map = entity-map<$corim-role-type-choice, $$corim-\
                                                entity-map-extension>
$corim-id-type-choice /= tstr / uuid-type
corim-locator-map = {
  &(href: 0) => uri / [+ uri],
  ? &(thumbprint: 1) => eatmc.digest / [eatmc.digest],
}
corim-map = {
  &(id: 0) => $corim-id-type-choice,
  &(tags: 1) => [+ $concise-tag-type-choice],
  ? &(dependent-rims: 2) => [+ corim-locator-map],
  ? &(profile: 3) => $profile-type-choice,
  ? &(rim-validity: 4) => validity-map,
  ? &(entities: 5) => [+ corim-entity-map],
  * $$corim-map-extension,
}
unsigned-corim-map = corim-map
corim-meta-map = {
  &(signer: 0) => corim-signer-map,
  ? &(signature-validity: 1) => validity-map,
}
$corim-role-type-choice /= &(manifest-creator: 1) / &(manifest-\
                                                           signer: 2)
corim-signer-map = {
  &(signer-name: 0) => $entity-name-type-choice,
  ? &(signer-uri: 1) => uri,
  * $$corim-signer-map-extension,
}
COSE-Sign1-corim = [
  protected: bstr .cbor protected-corim-header-map,
  unprotected: unprotected-corim-header-map,
  payload: bstr .cbor tagged-unsigned-corim-map / hash-envelope-\
                                                        digest / nil,
  signature: bstr,
]
hash-envelope-digest = bstr
$profile-type-choice /= uri / tagged-oid-type
cwt-claims = {
  &(iss: 1) => tstr,
  ? &(sub: 2) => tstr,
  ? &(exp: 4) => int / float,
  ? &(nbf: 5) => int / float,
  * int => any,
}
protected-corim-header-map = protected-corim-header-map-inline / \
                             protected-corim-header-map-hash-envelope
protected-corim-header-map-inline = {
  &(alg: 1) => int,
  &(content-type: 3) => "application/rim+cbor",
  meta-group,
  * cose-label => cose-value,
}
protected-corim-header-map-hash-envelope = {
  &(alg: 1) => int,
  &(payload_hash_alg: 258) => int,
  &(payload_preimage_content_type: 259) => "application/rim+cbor",
  ? &(payload_location: 260) => tstr,
  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)
signed-corim = #6.18(COSE-Sign1-corim)
tagged-concise-swid-tag = #6.505(bytes .cbor coswid.concise-swid-tag)
tagged-concise-mid-tag = #6.506(bytes .cbor concise-mid-tag)
tagged-concise-tl-tag = #6.508(bytes .cbor concise-tl-tag)
tagged-unsigned-corim-map = #6.501(unsigned-corim-map)
unprotected-corim-header-map = {* cose-label => cose-value}
validity-map = {
  ? &(not-before: 0) => time,
  &(not-after: 1) => time,
}
concise-mid-tag = {
  ? &(language: 0) => text,
  &(tag-identity: 1) => tag-identity-map,
  ? &(entities: 2) => [+ comid-entity-map],
  ? &(linked-tags: 3) => [+ linked-tag-map],
  &(triples: 4) => triples-map,
  * $$concise-mid-tag-extension,
}
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],
}>,
]
$class-id-type-choice /= tagged-oid-type / tagged-uuid-type / tagged\
                                                               -bytes
class-map = non-empty<{
    ? &(class-id: 0) => $class-id-type-choice,
    ? &(vendor: 1) => tstr,
    ? &(model: 2) => tstr,
    ? &(layer: 3) => uint,
    ? &(index: 4) => uint,
}>
comid-entity-map = entity-map<$comid-role-type-choice, $$comid-\
                                                entity-map-extension>
$comid-role-type-choice /= &(tag-creator: 0) / &(creator: 1) / &(\
                                                       maintainer: 2)
conditional-endorsement-series-triple-record = [
  condition: [
        environment: environment-map,
        claims-list: [* measurement-map],
        ? authorized-by: [+ $crypto-key-type-choice],
],
  series: [+ conditional-series-record],
]
conditional-series-record = [
  selection: [+ measurement-map],
  addition: [+ measurement-map],
]
COSE_Key = {
  1 => tstr / int,
  ? 2 => bstr,
  ? 3 => tstr / int,
  ? 4 => [+ tstr / int],
  ? 5 => bstr,
  * cose-label => cose-value,
}
cose-label = int / tstr
cose-value = any
coswid-triple-record = [
  environment-map,
  [+ coswid.tag-id],
]
$crypto-key-type-choice /= tagged-pkix-base64-key-type / tagged-pkix\
-base64-cert-type / tagged-pkix-base64-cert-path-type / tagged-cose-\
key-type / tagged-pkix-asn1der-cert-type / tagged-key-thumbprint-\
type / tagged-cert-thumbprint-type / tagged-cert-path-thumbprint-\
                                                  type / 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(eatmc.digest)
tagged-cose-key-type = #6.558(COSE_Key)
tagged-cert-thumbprint-type = #6.559(eatmc.digest)
tagged-cert-path-thumbprint-type = #6.561(eatmc.digest)
tagged-pkix-asn1der-cert-type = #6.562(bstr)
domain-dependency-triple-record = [
  domain-id: domain-type,
  trustees: [+ domain-type],
]
domain-membership-triple-record = [
  domain-id: domain-type,
  members: [+ domain-type],
]
conditional-endorsement-triple-record = [
  conditions: [+ stateful-environment-record],
  endorsements: [+ endorsed-triple-record],
]
domain-type = environment-map
endorsed-triple-record = [
  condition: environment-map,
  endorsement: [+ measurement-map],
]
entity-map<role-type-choice, extension-socket> = {
    &(entity-name: 0) => $entity-name-type-choice,
    ? &(reg-id: 1) => uri,
    &(role: 2) => [+ role-type-choice],
    * extension-socket,
}
$entity-name-type-choice /= text
environment-map = non-empty<{
    ? &(class: 0) => class-map,
    ? &(instance: 1) => $instance-id-type-choice,
    ? &(group: 2) => $group-id-type-choice,
}>
flags-map = non-empty<{
    ? &(is-configured: 0) => bool,
    ? &(is-secure: 1) => bool,
    ? &(is-recovery: 2) => bool,
    ? &(is-debug: 3) => bool,
    ? &(is-replay-protected: 4) => bool,
    ? &(is-integrity-protected: 5) => bool,
    ? &(is-runtime-meas: 6) => bool,
    ? &(is-immutable: 7) => bool,
    ? &(is-tcb: 8) => bool,
    ? &(is-confidentiality-protected: 9) => bool,
    * $$flags-map-extension,
}>
$group-id-type-choice /= tagged-uuid-type / tagged-bytes
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],
}>,
]
$instance-id-type-choice /= tagged-ueid-type / tagged-uuid-type / \
tagged-bytes / tagged-pkix-base64-key-type / tagged-pkix-base64-cert\
-type / tagged-cose-key-type / tagged-key-thumbprint-type / tagged-\
                 cert-thumbprint-type / tagged-pkix-asn1der-cert-type
ip-addr-type-choice /= cbor-ip.ipv4-address / cbor-ip.ipv6-address
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
linked-tag-map = {
  &(linked-tag-id: 0) => $tag-id-type-choice,
  &(tag-rel: 1) => $tag-rel-type-choice,
}
mac-addr-type-choice = eui48-addr-type / eui64-addr-type
eui48-addr-type = bytes .size 6
eui64-addr-type = bytes .size 8
$measured-element-type-choice /= tagged-oid-type / tagged-uuid-type \
                                                        / uint / tstr
measurement-map = {
  ? &(mkey: 0) => $measured-element-type-choice,
  &(mval: 1) => measurement-values-map,
  ? &(authorized-by: 2) => [+ $crypto-key-type-choice],
}
measurement-values-map = non-empty<{
    ? &(version: 0) => version-map,
    ? &(svn: 1) => svn-type-choice,
    ? &(digests: 2) => digests-type,
    ? &(flags: 3) => flags-map,
    ? (
                  &(raw-value: 4) => $raw-value-type-choice,
                  ? &(raw-value-mask-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,
}>
non-empty<M> = M .and ({+ any => any})
oid-type = bytes
tagged-oid-type = #6.111(oid-type)
$raw-value-type-choice /= tagged-bytes / tagged-masked-raw-value
raw-value-mask-type = bytes
tagged-masked-raw-value = #6.563([
    value: bytes,
    mask: bytes,
])
reference-triple-record = [
  ref-env: environment-map,
  ref-claims: [+ measurement-map],
]
stateful-environment-record = [
  environment: environment-map,
  claims-list: [+ measurement-map],
]
svn-type = uint
svn = svn-type
min-svn = svn-type
tagged-svn = #6.552(svn)
tagged-min-svn = #6.553(min-svn)
svn-type-choice = svn / tagged-svn / tagged-min-svn
$tag-id-type-choice /= tstr / uuid-type
tag-identity-map = {
  &(tag-id: 0) => $tag-id-type-choice,
  ? &(tag-version: 1) => tag-version-type,
}
$tag-rel-type-choice /= &(supplements: 0) / &(replaces: 1)
tag-version-type = uint .default 0
tagged-bytes = #6.560(bytes)
triples-map = non-empty<{
    ? &(reference-triples: 0) => [+ reference-triple-record],
    ? &(endorsed-triples: 1) => [+ endorsed-triple-record],
    ? &(identity-triples: 2) => [+ identity-triple-record],
    ? &(attest-key-triples: 3) => [+ attest-key-triple-record],
    ? &(dependency-triples: 4) => [+ domain-dependency-triple-record\
                                                                   ],
    ? &(membership-triples: 5) => [+ domain-membership-triple-record\
                                                                   ],
    ? &(coswid-triples: 6) => [+ coswid-triple-record],
    ? &(conditional-endorsement-series-triples: 8) => [+ conditional\
                                  -endorsement-series-triple-record],
    ? &(conditional-endorsement-triples: 10) => [+ conditional-\
                                          endorsement-triple-record],
    * $$triples-map-extension,
}>
ueid-type = bytes .size (7 .. 33)
tagged-ueid-type = #6.550(ueid-type)
uuid-type = bytes .size 16
tagged-uuid-type = #6.37(uuid-type)
version-map = {
  &(version: 0) => text,
  ? &(version-scheme: 1) => coswid.$version-scheme,
}
digests-type = [+ eatmc.digest]
integrity-register-id-type-choice = uint / text
integrity-registers = {+ integrity-register-id-type-choice => \
                                                        digests-type}
eatmc.measured-component = {
  eatmc.component-id-label => eatmc.component-id,
  eatmc.measurement,
  ? eatmc.authorities-label => [+ eatmc.authority-id-type],
  ? eatmc.flags-label => eatmc.flags-type,
}
eatmc.measurement //= (eatmc.digested-measurement-label => eatmc.\
                      digest // eatmc.raw-measurement-label => bytes)
eatmc.authority-id-type = eatmc.eat.JC<eatmc.bytes-b64u, bytes>
eatmc.flags-type = eatmc.eat.JC<eatmc.bytes8-b64u, eatmc.bytes8>
eatmc.component-id = [
  name: text,
  ? version: eatmc.version,
]
eatmc.version = [
  val: text,
  ? scheme: eatmc.coswid.$version-scheme,
]
eatmc.digest = [
  alg: int / text,
  val: eatmc.digest-value-type,
]
eatmc.digest-value-type = eatmc.eat.JC<eatmc.bytes-b64u, bytes>
eatmc.bytes-b64u = text .b64u bytes
eatmc.bytes8 = bytes .size 8
eatmc.bytes8-b64u = text .b64u eatmc.bytes8
eatmc.component-id-label = eatmc.eat.JC<"id", 1>
eatmc.digested-measurement-label = eatmc.eat.JC<"digested-\
                                                     measurement", 2>
eatmc.raw-measurement-label = eatmc.eat.JC<"raw-measurement", 5>
eatmc.authorities-label = eatmc.eat.JC<"authorities", 3>
eatmc.flags-label = eatmc.eat.JC<"flags", 4>
eatmc.mc-cbor = bytes .cbor eatmc.measured-component
eatmc.mc-json = text .json eatmc.measured-component
eatmc.$measurements-body-cbor /= eatmc.mc-cbor / eatmc.mc-json
eatmc.$measurements-body-json /= eatmc.mc-json / text .b64u eatmc.mc\
                                                                -cbor
eatmc.eat.JSON-ONLY<J> = J .feature "json"
eatmc.eat.CBOR-ONLY<C> = C .feature "cbor"
eatmc.eat.JC<J, C> = eatmc.eat.JSON-ONLY<J> / eatmc.eat.CBOR-ONLY<C>
eatmc.coswid.$version-scheme /= eatmc.coswid.multipartnumeric / \
eatmc.coswid.multipartnumeric-suffix / eatmc.coswid.alphanumeric / \
              eatmc.coswid.decimal / eatmc.coswid.semver / int / text
eatmc.coswid.multipartnumeric = 1
eatmc.coswid.multipartnumeric-suffix = 2
eatmc.coswid.alphanumeric = 3
eatmc.coswid.decimal = 4
eatmc.coswid.semver = 16384
coswid.concise-swid-tag = {
  coswid.tag-id => text / bstr .size 16,
  coswid.tag-version => integer,
  ? coswid.corpus => bool,
  ? coswid.patch => bool,
  ? coswid.supplemental => bool,
  coswid.software-name => text,
  ? coswid.software-version => text,
  ? coswid.version-scheme => coswid.$version-scheme,
  ? coswid.media => text,
  ? coswid.software-meta => coswid.one-or-more<coswid.software-meta-\
                                                              entry>,
  coswid.entity => coswid.one-or-more<coswid.entity-entry>,
  ? coswid.link => coswid.one-or-more<coswid.link-entry>,
  ? coswid.payload-or-evidence,
  * $$coswid-extension,
  coswid.global-attributes,
}
coswid.tag-id = 0
coswid.$version-scheme /= coswid.multipartnumeric / coswid.\
multipartnumeric-suffix / coswid.alphanumeric / coswid.decimal / \
                                           coswid.semver / int / text
coswid.one-or-more<T> = T / [2*T]
coswid.tag-version = 12
coswid.corpus = 8
coswid.patch = 9
coswid.supplemental = 11
coswid.software-name = 1
coswid.software-version = 13
coswid.version-scheme = 14
coswid.media = 10
coswid.software-meta = 5
coswid.software-meta-entry = {
  ? coswid.activation-status => text,
  ? coswid.channel-type => text,
  ? coswid.colloquial-version => text,
  ? coswid.description => text,
  ? coswid.edition => text,
  ? coswid.entitlement-data-required => bool,
  ? coswid.entitlement-key => text,
  ? coswid.generator => text / bstr .size 16,
  ? coswid.persistent-id => text,
  ? coswid.product => text,
  ? coswid.product-family => text,
  ? coswid.revision => text,
  ? coswid.summary => text,
  ? coswid.unspsc-code => text,
  ? coswid.unspsc-version => text,
  * $$software-meta-extension,
  coswid.global-attributes,
}
coswid.entity = 2
coswid.entity-entry = {
  coswid.entity-name => text,
  ? coswid.reg-id => coswid.any-uri,
  coswid.role => coswid.one-or-more<coswid.$role>,
  ? coswid.thumbprint => coswid.hash-entry,
  * $$entity-extension,
  coswid.global-attributes,
}
coswid.link = 4
coswid.link-entry = {
  ? coswid.artifact => text,
  coswid.href => coswid.any-uri,
  ? coswid.media => text,
  ? coswid.ownership => coswid.$ownership,
  coswid.rel => coswid.$rel,
  ? coswid.media-type => text,
  ? coswid.use => coswid.$use,
  * $$link-extension,
  coswid.global-attributes,
}
coswid.payload-or-evidence //= (coswid.payload => coswid.payload-\
                   entry // coswid.evidence => coswid.evidence-entry)
coswid.global-attributes = (
  ? coswid.lang => text,
  * coswid.any-attribute,
  )
coswid.multipartnumeric = 1
coswid.multipartnumeric-suffix = 2
coswid.alphanumeric = 3
coswid.decimal = 4
coswid.semver = 16384
coswid.activation-status = 43
coswid.channel-type = 44
coswid.colloquial-version = 45
coswid.description = 46
coswid.edition = 47
coswid.entitlement-data-required = 48
coswid.entitlement-key = 49
coswid.generator = 50
coswid.persistent-id = 51
coswid.product = 52
coswid.product-family = 53
coswid.revision = 54
coswid.summary = 55
coswid.unspsc-code = 56
coswid.unspsc-version = 57
coswid.entity-name = 31
coswid.reg-id = 32
coswid.any-uri = uri
coswid.role = 33
coswid.$role /= coswid.tag-creator / coswid.software-creator / \
coswid.aggregator / coswid.distributor / coswid.licensor / coswid.\
                                              maintainer / int / text
coswid.thumbprint = 34
coswid.hash-entry = [
  hash-alg-id: int,
  hash-value: bytes,
]
coswid.artifact = 37
coswid.href = 38
coswid.ownership = 39
coswid.$ownership /= coswid.shared / coswid.private / coswid.\
                                                 abandon / int / text
coswid.rel = 40
coswid.$rel /= coswid.ancestor / coswid.component / coswid.feature \
/ coswid.installationmedia / coswid.packageinstaller / coswid.\
parent / coswid.patches / coswid.requires / coswid.see-also / coswid\
             .supersedes / coswid.supplemental / -256 .. 65536 / text
coswid.media-type = 41
coswid.use = 42
coswid.$use /= coswid.optional / coswid.required / coswid.\
                                             recommended / int / text
coswid.payload = 6
coswid.payload-entry = {
  coswid.resource-collection,
  * $$payload-extension,
  coswid.global-attributes,
}
coswid.evidence = 3
coswid.evidence-entry = {
  coswid.resource-collection,
  ? coswid.date => coswid.integer-time,
  ? coswid.device-id => text,
  ? coswid.location => text,
  * $$evidence-extension,
  coswid.global-attributes,
}
coswid.lang = 15
coswid.any-attribute = (coswid.label => coswid.one-or-more<text> / \
                                             coswid.one-or-more<int>)
coswid.tag-creator = 1
coswid.software-creator = 2
coswid.aggregator = 3
coswid.distributor = 4
coswid.licensor = 5
coswid.maintainer = 6
coswid.shared = 3
coswid.private = 2
coswid.abandon = 1
coswid.ancestor = 1
coswid.component = 2
coswid.feature = 3
coswid.installationmedia = 4
coswid.packageinstaller = 5
coswid.parent = 6
coswid.patches = 7
coswid.requires = 8
coswid.see-also = 9
coswid.supersedes = 10
coswid.optional = 1
coswid.required = 2
coswid.recommended = 3
coswid.resource-collection = (
  coswid.path-elements-group,
  ? coswid.process => coswid.one-or-more<coswid.process-entry>,
  ? coswid.resource => coswid.one-or-more<coswid.resource-entry>,
  * $$resource-collection-extension,
  )
coswid.date = 35
coswid.integer-time = #6.1(int)
coswid.device-id = 36
coswid.location = 23
coswid.label = text / int
coswid.path-elements-group = (
  ? coswid.directory => coswid.one-or-more<coswid.directory-entry>,
  ? coswid.file => coswid.one-or-more<coswid.file-entry>,
  )
coswid.process = 18
coswid.process-entry = {
  coswid.process-name => text,
  ? coswid.pid => integer,
  * $$process-extension,
  coswid.global-attributes,
}
coswid.resource = 19
coswid.resource-entry = {
  coswid.type => text,
  * $$resource-extension,
  coswid.global-attributes,
}
coswid.directory = 16
coswid.directory-entry = {
  coswid.filesystem-item,
  ? coswid.path-elements => {coswid.path-elements-group},
  * $$directory-extension,
  coswid.global-attributes,
}
coswid.file = 17
coswid.file-entry = {
  coswid.filesystem-item,
  ? coswid.size => uint,
  ? coswid.file-version => text,
  ? coswid.hash => coswid.hash-entry,
  * $$file-extension,
  coswid.global-attributes,
}
coswid.process-name = 27
coswid.pid = 28
coswid.type = 29
coswid.filesystem-item = (
  ? coswid.key => bool,
  ? coswid.location => text,
  coswid.fs-name => text,
  ? coswid.root => text,
  )
coswid.path-elements = 26
coswid.size = 20
coswid.file-version = 21
coswid.hash = 7
coswid.key = 22
coswid.fs-name = 24
coswid.root = 25
cbor-ip.ipv4-address = bytes .size 4
cbor-ip.ipv6-address = bytes .size 16
]]></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+y923Icx7Ug+l5fUQdUmADd3cSNIAlbsmEQsjDD2yFAyx6N
gih0VwNldle1q6oBQjJ3zG/M2zycL5nzJ/MlZ10zV2ZVA6BkT8SJGO+ILaIr
77ly3S/D4TC52k93kqQt2lm+nx5W5bho8vRdPs3rvBzn6XHZ5hd10d6kr7Ky
mOZNm2Tn53V+hY3fHb9KJtW4zObQd1Jn03ZY5O10WGdtMxxXdTEfbm0m4wyG
qOqb/bRpJ8m4Kpu8bJbNftrWyzxplufzommKqmxvFjDM8dHpt0lSLGr63rTb
m5vPN7eTrM6z/XTtJB8vcTVryXVVf7yoq+UCfn2Xz6s2Tw9OW1hf1sJY6du6
GueTZZ2frCUf8xtoPdlPYb2D9N3B6ckgzVrXdpBe5XUxLfJ6kDbLxWJ2k44v
s6JMEmhQTj5ks6rMZbWLYj9J07Ya76c3eQP/bKq6rfNp4/6+mds/oeUkX7SX
dMjZsr2s6v1kmBYltPhulP6pqD9eVrOfoCUf4nd5+dH+WtUX++m3dbYsLyu4
kvTk+BR+zedZMdtPL6Hx6Fwa/xFPfgSn22bjVqc4HaXfVk0D23QznF5W86wx
P8MUcLM/0VHspy+LMqsrPwc3H0nzP87o8wj66BR/G6Uv8uZyASeVu0n+Vl3A
b8GHcJqsnvs5bqj1aKKt/whfYSdzneL1KD2ZF+2lG/51PnG/0AkdQ69FDv+v
bP2wZT4ZNdhqhEfzx2rZzqrqox34+1H6NivdsN/nhfxNg363zK7hl9N8fFlW
s+qioBuVwa+L2azI5iNYMDT64yW1pbERwtu6OF+2eNdpKnMdwm1X9TwrcXyd
8TCrmzYvgy809/uyAKBsivb//X/a9E91PodGp//lmBo0AHB5u5++rZp2mo0v
052dzd3dTfo2hrexLx34h2oC87wYbj/befJcflnC+qDVn3Oc9IZ+XFwSjP92
9/lwd3truL31bLi383x7iz7KlsfZefXH9qeCbp9Hko3SlX5Dv6XxnnwruLS2
StvLPD188eJl2izyMby6MUFEk8LF07fjg9cH2KcpJnnN30b+FA8A2upskdfm
EA/KSZ1f29/pCA9mLQxgN5BRw9GEGv4xo+90Zas3I2MHe4BFwt9jeNaDFGB2
XBcLRiO4hQbmKtti3KTVFJtNCvyWzVKAzqpu8F5a2GyTXuezGf6XtooH1gZL
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
XVNEtDecnntddNfVAETv6gLz2HqCq0qrSC4gNzsDCcxJrn34wDe1RhasnvdF
BqzfptDK85s/nP7pBWaloOJcgQXfGe7RA9r00cwhaFQzlpwAlPCBIOZDfRF3
m1bsXKgh6Mw+aFa/oIqIKRJko1zDKQbekZJ5KmZ4vM8mTYtRK5tnzsEFAXAN
+6zRb//p5M3rkZBFU/EPp+VFKwKTgtsUQzMsCO+LfoXhTBOTnbmwh7OwQeqd
s5zxCNsishYS5EoRh6FJPQc7ycczIVVFzbHy6qQ/zruxc7R45p6cKl5iqisM
EenZvxQ38nvPgq3JKZzn1jmc2qH0drasy31svX/2gVvSVod8IB/uPSFaUm+b
K6IgtMOBmxJ79841tSjdhBCc2eIafFzkhY/UZApHfJ1hOBCFk2XAl5Q/5XVl
KkbUiKuJtL9/95IicqX6u6f0HXWkkvkJtCw5FRAxbg1xwtUcqNkk88mIzpfl
hGwtAjFyUGIfFX4FI45Ic9rxb20YkRDywCJ3ydfh/1ARe7SfPvyvD1PyDSCH
LhZt6vTdt4fps6fPt9Oo09dJ8jiN8dHjCB/tr8ZGa4D78mfjye5wN999Otzd
25oOz3d2t4bb2Xm2k+W74/NJtrZPFm2daH6NURqMt37/e0xDFCEs+AnDzH4W
Ozigqgn8v8399PKhToez4WQ4l53q4cB1ohDNx+nWfvrD4xVROzTR3vrvf/+z
s8g/FogVWZH6+6/+uy5oZ+vJeDre3N58Nnmy+yzPn4+fPX++uTeZPt/Ln07P
nz10fT8P7CSSCv9xuhuP7wBu6BvBVD/8YFpJO7R64m09RsV7Iw31L7fIJ3ub
65cPx5uT/OHG5/8ajPIL/2e24tciuv/HwXb48xztip2j1K/qFzytKvhruLu5
u9+zyMuHfUvf23y+u/fsyfTZ+fnz872nkyyb7jx5uvn0fLI93nm+NX2ys5dt
Tabb4/zJ1hP4aTx+GI3y+fOPPw6CC+AAM3P6e53T/5ITjw7rB4CZvefZ3t6z
Z7tPtrZ3N2HhT3efbz4535pMnkyz/Pn04Y8//vj58zffbPzooVlZ/cfpjjxH
wT4jwB+D7c3tJ4/lBw3EWfOdQ5ICP2zDjizMY/yPgJlZ7JqjBE+2sifTvZ2d
4dOt8eZw98n0yfDZkyf5cHcnf7b9ZHe89Wxzb83uc+2ybRfN/uPHZpWP79r3
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
6Q6mQ5/v7PlF9ceeHafAu8sX8Kc/39H186c+397xJ5duG1jrBu+f5smL5fGR
W6ih25grrG36WWoOEWSstTgiVviSnSxevXzrcZZarJC0yqtGrfeSqKWx4yLl
lxrvSBL93si3vqzt2ET/YnUv2CN3bd2sDHgPpBcibB+mubpxAv0EsWpjY7Xf
C9DJd82b5FY6b1q7Y+9pT+Rbj7LaFli/z2g6MpHHwY5rNY6BcNtqoKDu3FXN
DvZfvq2Dw32Xb+seZrlq+8ssPcr4FLJVrWZ5S3F5qbHlGMxns8Aw0kkSBOig
Z2w41fn2wyw5xfm2UneaWs9ASNXc9hzMz49yKepQvu3IXypIIbyk3s1SIQt5
zZ/m73//O6DCPR2+nc6ux8UIYRWr7N3BckruwAXlzS441rnKr2fL8Sgfl28Z
lnowfRtBK18Ws0ufNrSc56DZFtcIk0gMbIFwhQuLrH6QvXv37nAwH+d/BT49
LG5vb+HRH8EyUOXH1fBidlZMy3N+frQoropp/ofCtTp8yw//NDjP3wwmgyn/
/pfSKbIvXbs3g4l84oY0uclf3Xs2m87OL5bYjvsC3r0shxcDxwbewH/no2qG
9WTf/09UzYsfD/JNRINnuBfEvKwYk5Q+GfUBfw9xKN2TyeyKUUZzN7sw/oyk
dfCDhDeYCBUwwatqWQCw6Pf/czEbzaCh71zdxUibmrhPMC+pVg/x3a4KKQ30
mmCsF3MnzhRzrA1fueoO42qO8aNRPnATD63ST3di3cf23f8D0+2oCZs4AwA=

-->

</rfc>
