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

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

<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.
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="I-D.ietf-rats-eat"/>.</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="I-D.ietf-rats-eat"/>.</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.</t>
      <t>A Verifier relies on input from appraisal policy to identify relevant assertions included in the ACS.
For example, if a policy requires corroborated assertions issued by a particular RVP, then those assertions may be conveyed as Attestation Results.
The Verifier may produce new assertions as a result of an applied appraisal policy.
For example, if an appraisal procedure finds all of the components of a subsystem are configured correctly, the policy may direct the Verifier to produce new assertions, "Subsystem=X" has the Claim "TRUSTED=TRUE".
Consequently, the internal ACS structure is a reconciled conversation between several producers of RATS Conceptual Messages that has mapped each message into a consistent internal representation, has associated the identity of the corresponding RATS role with each assertion (the authority), and has applied Conceptual Message constraints to the assertion.</t>
      <t>The CoRIM data model specified in this document covers the RATS Conceptual Message types, "Reference Values" and "Endorsements".
Reference values and Endorsements are required for Verifier reconciliation, and Evidence is required for corresponding internal ACS creation as illustrated in <xref target="sec-interact-acs"/>.</t>
      <section anchor="sec-internal-rep">
        <name>Internal Representation</name>
        <t>In this document CDDL is used to specify both the CoRIM structure and to specify an internal representation for use in the appraisal procedure.
The actual internal representation of a Verifier is implementation-specific and out-of-scope of this document.
Requirements for an internal representation of Conceptual Messages are defined in <xref target="tbl-cmrr"/>, where each Conceptual Message type has a structure as depicted by the <em>Structure</em> column.
The internal representations used by this document are defined in <xref target="sec-ir-cm"/>.</t>
      </section>
      <section anchor="sec-interact-acs">
        <name>Interacting with an ACS</name>
        <t>Conceptual Messages interact with an ACS by specifying criteria that should be met by the ACS and by presenting the assertions that should be added to the ACS if the criteria are satisfied.
Internal representations of Conceptual Messages, ACS, and Attestation Results Set (ARS) should satisfy the following requirements for Verifier reconciliation and appraisal processing:</t>
        <table anchor="tbl-cmrr">
          <name>Conceptual Message Representation Requirements</name>
          <thead>
            <tr>
              <th align="left">CM Type</th>
              <th align="left">Structure</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Evidence</td>
              <td align="left">List of Evidence claims</td>
              <td align="left">If the Attester is authenticated, add Evidence claims to the ACS with Attester authority</td>
            </tr>
            <tr>
              <td align="left">Reference Values</td>
              <td align="left">List of Reference Values claims</td>
              <td align="left">If a reference value in a CoRIM matches claims in the ACS, then the authority of the CoRIM issuer is added to those claims.</td>
            </tr>
            <tr>
              <td align="left">Endorsements</td>
              <td align="left">List of expected actual state claims, List of Endorsed Values claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Endorsed Values claims to the ACS with Endorser authority</td>
            </tr>
            <tr>
              <td align="left">Series Endorsements</td>
              <td align="left">List of expected actual state claims and a series of selection-addition tuples</td>
              <td align="left">If the expected claims are in the ACS, and if the series selection condition is satisfied, then add the additional claims to the ACS with Endorser authority. See <xref target="sec-ir-end-val"/></td>
            </tr>
            <tr>
              <td align="left">Verifier</td>
              <td align="left">List of expected actual state claims, List of Verifier-generated claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Verifier-generated claims to the ACS with Verifier authority</td>
            </tr>
            <tr>
              <td align="left">Policy</td>
              <td align="left">List of expected actual state claims, List of Policy-generated claims</td>
              <td align="left">If the list of expected claims are in the ACS, then add the list of Policy-generated claims to the ACS with Policy Owner authority</td>
            </tr>
            <tr>
              <td align="left">Attestation Results</td>
              <td align="left">List of expected actual state claims, List of expected Attestation Results claims</td>
              <td align="left">If the list of expected claims are in the ACS, then copy the list of Attestation Results claims into the ARS. See <xref target="sec-ir-ars"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-quantize">
        <name>Quantizing Inputs</name>
        <t><cref anchor="tracked-at">Tracked at:</cref> https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/242</t>
      </section>
    </section>
    <section anchor="sec-type-conv">
      <name>Typographical Conventions for CDDL</name>
      <t>The CDDL definitions in this document follows the naming conventions illustrated in <xref target="tbl-typography"/>.</t>
      <table anchor="tbl-typography">
        <name>Type Traits and Typographical Conventions</name>
        <thead>
          <tr>
            <th align="left">Type trait</th>
            <th align="left">Example</th>
            <th align="left">Typographical convention</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">extensible type choice</td>
            <td align="left">
              <tt>int / text / ...</tt></td>
            <td align="left">
              <tt>$</tt>NAME<tt>-type-choice</tt></td>
          </tr>
          <tr>
            <td align="left">closed type choice</td>
            <td align="left">
              <tt>int / text</tt></td>
            <td align="left">NAME<tt>-type-choice</tt></td>
          </tr>
          <tr>
            <td align="left">group choice</td>
            <td align="left">
              <tt>( 1 =&gt; int // 2 =&gt; text )</tt></td>
            <td align="left">
              <tt>$$</tt>NAME<tt>-group-choice</tt></td>
          </tr>
          <tr>
            <td align="left">group</td>
            <td align="left">
              <tt>( 1 =&gt; int, 2 =&gt; text )</tt></td>
            <td align="left">NAME<tt>-group</tt></td>
          </tr>
          <tr>
            <td align="left">type</td>
            <td align="left">
              <tt>int</tt></td>
            <td align="left">NAME<tt>-type</tt></td>
          </tr>
          <tr>
            <td align="left">tagged type</td>
            <td align="left">
              <tt>#6.123(int)</tt></td>
            <td align="left">
              <tt>tagged-</tt>NAME<tt>-type</tt></td>
          </tr>
          <tr>
            <td align="left">map</td>
            <td align="left">
              <tt>{ 1 =&gt; int, 2 =&gt; text }</tt></td>
            <td align="left">NAME-<tt>map</tt></td>
          </tr>
          <tr>
            <td align="left">flags</td>
            <td align="left">
              <tt>&amp;( a: 1, b: 2 )</tt></td>
            <td align="left">NAME-<tt>flags</tt></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-corim">
      <name>Concise Reference Integrity Manifest (CoRIM)</name>
      <t>A CoRIM is a collection of tags and related metadata in a concise CBOR <xref target="STD94"/> encoding.
A CoRIM can be digitally signed with a COSE <xref target="STD96"/> signature.
A tag 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 or CoSWID tags.  Described
in <xref target="sec-corim-tags"/>.</t>
          </li>
          <li>
            <t><tt>dependent-rims</tt> (index 2): One or more services supplying additional,
possibly dependent, manifests or related files.
Described in <xref target="sec-corim-locator-map"/>.</t>
          </li>
          <li>
            <t><tt>profile</tt> (index 3): An optional profile identifier for the tags contained in
this CoRIM.  The profile MUST be understood by the CoRIM processor.  Failure
to recognize the profile identifier MUST result in the rejection of the
entire CoRIM.
See <xref target="sec-corim-profile-types"/></t>
          </li>
          <li>
            <t><tt>rim-validity</tt> (index 4): Specifies the validity period of the CoRIM.
Described in <xref target="sec-common-validity"/>.</t>
          </li>
          <li>
            <t><tt>entities</tt> (index 5): A list of entities involved in a CoRIM life-cycle.
Described in <xref target="sec-corim-entity"/>.</t>
          </li>
          <li>
            <t><tt>$$corim-map-extension</tt>: This CDDL socket is used to add new information
structures to the <tt>corim-map</tt>.
Described in <xref target="sec-iana-corim"/>.</t>
          </li>
        </ul>
        <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>Identity</name>
          <t>A CoRIM Identifier uniquely identifies a CoRIM instance.
The base CDDL definition allows UUID and text identifiers.
Other types of identifiers could be defined as needed.</t>
          <sourcecode type="cddl"><![CDATA[
$corim-id-type-choice /= tstr
$corim-id-type-choice /= uuid-type
]]></sourcecode>
        </section>
        <section anchor="sec-corim-tags">
          <name>Tags</name>
          <t>A <tt>$concise-tag-type-choice</tt> is a tagged CBOR payload that carries either a
CoMID (<xref target="sec-comid"/>), a CoSWID (<xref target="RFC9393"/>), or a CoTL (<xref target="sec-cotl"/>).</t>
          <sourcecode type="cddl"><![CDATA[
$concise-tag-type-choice /= tagged-concise-swid-tag
$concise-tag-type-choice /= tagged-concise-mid-tag
$concise-tag-type-choice /= tagged-concise-tl-tag
]]></sourcecode>
        </section>
        <section anchor="sec-corim-locator-map">
          <name>Locator Map</name>
          <t>The locator map contains pointers to repositories where dependent manifests,
certificates, or other relevant information can be retrieved by the Verifier.</t>
          <sourcecode type="cddl"><![CDATA[
corim-locator-map = {
  &(href: 0) => uri / [ + uri ]
  ? &(thumbprint: 1) => digest
}
]]></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 of the resource referenced by <tt>href</tt>.
See sec-common-hash-entry}}.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-corim-profile-types">
          <name>Profile Types</name>
          <t>Profiling is the mechanism that allows the base CoRIM CDDL definition to be customized to fit a specific Attester.</t>
          <t>A profile defines which of the optional parts of a CoRIM are required, which are prohibited and which extension points are exercised and how.
A profile MUST NOT alter the syntax or semantics of CoRIM types defined in this document.</t>
          <t>A profile MAY constrain the values of a given CoRIM type to a subset of the values.
A profile MAY extend the set of a given CoRIM type using the defined extension points (<xref target="sec-extensibility"/>).
Exercised extension points should preserve the intent of the original semantics.</t>
          <t>CoRIM profiles SHOULD be specified in a publicly available document.</t>
          <t>A CoRIM profile can use one of the base CoRIM media 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>
          <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>
        </section>
      </section>
      <section anchor="sec-corim-signed">
        <name>Signed CoRIM</name>
        <sourcecode type="cddl"><![CDATA[
signed-corim = #6.18(COSE-Sign1-corim)
]]></sourcecode>
        <t>Signing a CoRIM follows the procedures defined in CBOR Object Signing and
Encryption <xref target="STD96"/>. A CoRIM tag MUST be wrapped in a COSE_Sign1 structure.
The CoRIM MUST be signed by the CoRIM creator.</t>
        <t>The following CDDL specification defines a restrictive subset of COSE header
parameters that MUST be used in the protected header alongside additional
information about the CoRIM encoded in a <tt>corim-meta-map</tt> (<xref target="sec-corim-meta"/>).</t>
        <sourcecode type="cddl"><![CDATA[
COSE-Sign1-corim = [
  protected: bstr .cbor protected-corim-header-map
  unprotected: unprotected-corim-header-map
  payload: bstr .cbor tagged-unsigned-corim-map
  signature: bstr
]
]]></sourcecode>
        <t>The following describes each child element of this type.</t>
        <ul spacing="normal">
          <li>
            <t><tt>protected</tt>: A CBOR Encoded protected header which is protected by the COSE
signature. Contains information as given by Protected Header Map below.</t>
          </li>
          <li>
            <t><tt>unprotected</tt>: A COSE header that is not protected by COSE signature.</t>
          </li>
          <li>
            <t><tt>payload</tt>: A CBOR encoded tagged CoRIM.</t>
          </li>
          <li>
            <t><tt>signature</tt>: A COSE signature block which is the signature over the protected
and payload components of the signed CoRIM.</t>
          </li>
        </ul>
        <section anchor="protected-header-map">
          <name>Protected Header Map</name>
          <sourcecode type="cddl"><![CDATA[
protected-corim-header-map = {
  &(alg: 1) => int
  &(content-type: 3) => "application/rim+cbor"
  &(kid: 4) => bstr
  &(corim-meta: 8) => bstr .cbor corim-meta-map
  * cose-label => cose-value
}
]]></sourcecode>
          <t>The CoRIM protected header map uses some common COSE header parameters plus an additional <tt>corim-meta</tt> parameter.
The following describes each child item of this map.</t>
          <ul spacing="normal">
            <li>
              <t><tt>alg</tt> (index 1): An integer that identifies a signature algorithm.</t>
            </li>
            <li>
              <t><tt>content-type</tt> (index 3): A string that represents the "MIME Content type" carried in the CoRIM payload.</t>
            </li>
            <li>
              <t><tt>kid</tt> (index 4): A byte string which is a key identity pertaining to the CoRIM Issuer.</t>
            </li>
            <li>
              <t><tt>corim-meta</tt> (index 8): A map that contains metadata associated with a signed CoRIM.
Described in <xref target="sec-corim-meta"/>.</t>
            </li>
          </ul>
          <t>Additional data can be included in the COSE header map as per (<xref section="3" sectionFormat="of" target="STD96"/>).</t>
        </section>
        <section anchor="sec-corim-meta">
          <name>Meta Map</name>
          <t>The CoRIM meta map identifies the entity or entities that create and sign the CoRIM.
This ensures the consumer is able to identify credentials used to authenticate its signer.</t>
          <sourcecode type="cddl"><![CDATA[
corim-meta-map = {
  &(signer: 0) => corim-signer-map
  ? &(signature-validity: 1) => validity-map
}
]]></sourcecode>
          <t>The following describes each child item of this group.</t>
          <ul spacing="normal">
            <li>
              <t><tt>signer</tt> (index 0): Information about the entity that signs the CoRIM.
Described in <xref target="sec-corim-signer"/>.</t>
            </li>
            <li>
              <t><tt>signature-validity</tt> (index 1): Validity period for the CoRIM.
Described in <xref target="sec-common-validity"/>.</t>
            </li>
          </ul>
          <section anchor="sec-corim-signer">
            <name>Signer Map</name>
            <sourcecode type="cddl"><![CDATA[
corim-signer-map = {
  &(signer-name: 0) => $entity-name-type-choice
  ? &(signer-uri: 1) => uri
  * $$corim-signer-map-extension
}
]]></sourcecode>
            <ul spacing="normal">
              <li>
                <t><tt>signer-name</tt> (index 0): Name of the organization that performs the signer
role</t>
              </li>
              <li>
                <t><tt>signer-uri</tt> (index 1): A URI identifying the same organization</t>
              </li>
              <li>
                <t><tt>$$corim-signer-map-extension</tt>: Extension point for future expansion of the
Signer map.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-corim-unprotected-header">
          <name>Unprotected CoRIM Header Map</name>
          <sourcecode type="cddl"><![CDATA[
unprotected-corim-header-map = {
  * cose-label => cose-value
}
]]></sourcecode>
        </section>
      </section>
      <section 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.
The CoRIM signer authority is taken from the authenticated credential of the entity that originates the CoRIM.
A CoRIM role entry that contains the <tt>manifest-signer</tt> role MUST be added to <tt>corim-entity-map</tt>.</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 the <tt>corim-meta</tt> in the COSE_Sign1 <tt>protected-header</tt> parameter.
The <tt>corim-meta</tt> statement ensures that each CoRIM in the collection has an identified signer.
The COSE protected header can include a Collection CMW type name by using the <tt>cmwc_t</tt> content type parameter for the <tt>&amp;(content-type: 3)</tt> COSE header.</t>
          <t>If using other signing envelope formats, the CoRIM signing authority MUST be specified, e.g., 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}}:bundle",
  + 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[
/ cbor-collection / {
  "__cmwc_t": "tag:{{&SELF}}:bundle",
  "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="RFC4122"/>. There are no strict guidelines on how the
identifier is structured, but examples include a 16-byte GUID (e.g., class 4
UUID) <xref target="RFC4122"/>, or a URI <xref target="STD66"/>.</t>
          </section>
          <section anchor="sec-tag-version">
            <name>Tag Version</name>
            <sourcecode type="cddl"><![CDATA[
tag-version-type = uint .default 0
]]></sourcecode>
            <t>Tag Version is an integer value that indicates the specific release revision of
the tag.  Typically, the initial value of this field is set to 0 and the value
is increased for subsequent tags produced for the same module release.  This
value allows a CoMID tag producer to correct an incorrect tag previously
released without indicating a change to the underlying module the tag
represents. For example, the tag version could be changed to add new metadata,
to correct a broken link, to add a missing reference value, etc. When producing
a revised tag, the new tag-version value MUST be greater than the old
tag-version value.</t>
          </section>
        </section>
        <section anchor="sec-comid-entity">
          <name>Entities</name>
          <sourcecode type="cddl"><![CDATA[
comid-entity-map =
  entity-map<$comid-role-type-choice, $$comid-entity-map-extension>
]]></sourcecode>
          <t>The CoMID Entity is an instantiation of <tt>entity-map</tt> (<xref target="sec-common-entity"/>) using a <tt>$comid-role-type-choice</tt>.</t>
          <t>The <tt>$$comid-entity-map-extension</tt> extension socket is empty in this
specification.</t>
          <sourcecode type="cddl"><![CDATA[
$comid-role-type-choice /= &(tag-creator: 0)
$comid-role-type-choice /= &(creator: 1)
$comid-role-type-choice /= &(maintainer: 2)
]]></sourcecode>
          <t>The roles defined for a CoMID entity are:</t>
          <ul spacing="normal">
            <li>
              <t><tt>tag-creator</tt> (value 0): creator of the CoMID tag.</t>
            </li>
            <li>
              <t><tt>creator</tt> (value 1): original maker of the module described by the CoMID tag.</t>
            </li>
            <li>
              <t><tt>maintainer</tt> (value 2): an entity making changes to the module described by the CoMID tag.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-comid-linked-tag">
          <name>Linked Tag</name>
          <t>The linked tag map represents a typed relationship between the embedding CoMID
tag (the source) and another CoMID tag (the target).</t>
          <sourcecode type="cddl"><![CDATA[
linked-tag-map = {
  &(linked-tag-id: 0) => $tag-id-type-choice
  &(tag-rel: 1) => $tag-rel-type-choice
}
]]></sourcecode>
          <t>The following describes each member of the <tt>tag-identity-map</tt>.</t>
          <ul spacing="normal">
            <li>
              <t><tt>linked-tag-id</tt> (index 0): Unique identifier for the target tag.
See <xref target="sec-tag-id"/>.</t>
            </li>
            <li>
              <t><tt>tag-rel</tt> (index 1): the kind of relation linking the source tag to the
target identified by <tt>linked-tag-id</tt>.</t>
            </li>
          </ul>
          <sourcecode type="cddl"><![CDATA[
$tag-rel-type-choice /= &(supplements: 0)
$tag-rel-type-choice /= &(replaces: 1)
]]></sourcecode>
          <t>The relations defined in this specification are:</t>
          <ul spacing="normal">
            <li>
              <t><tt>supplements</tt> (value 0): the source tag provides additional information about
the module described in the target tag.</t>
            </li>
            <li>
              <t><tt>replaces</tt> (value 1): the source tag corrects erroneous information
contained in the target tag.  The information in the target MUST be
disregarded.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-comid-triples">
          <name>Triples</name>
          <t>The <tt>triples-map</tt> contains all the CoMID triples broken down per category.  Not
all category need to be present but at least one category MUST be present and
contain at least one entry.</t>
          <t>In most cases, the supply chain entity that is responsible for providing a triple (i.e., Reference Values or Endorsed Values) is by default the CoRIM signer.
The signer of a triple is said to be its <em>authority</em>.
However, multiple authorities may be involved in signing triples.
See <xref target="STD96"/>.
Consequently, authority may differ for search criteria.
See <xref target="sec-measurements"/>.</t>
          <sourcecode type="cddl"><![CDATA[
triples-map = non-empty<{
  ? &(reference-triples: 0) =>
    [ + reference-triple-record ]
  ? &(endorsed-triples: 1) =>
    [ + endorsed-triple-record ]
  ? &(identity-triples: 2) =>
    [ + identity-triple-record ]
  ? &(attest-key-triples: 3) =>
    [ + attest-key-triple-record ]
  ? &(dependency-triples: 4) =>
    [ + domain-dependency-triple-record ]
  ? &(membership-triples: 5) =>
    [ + domain-membership-triple-record ]
  ? &(coswid-triples: 6) =>
    [ + coswid-triple-record ]
  ? &(conditional-endorsement-series-triples: 8) =>
    [ + conditional-endorsement-series-triple-record ]
  ? &(conditional-endorsement-triples: 10) =>
    [ + conditional-endorsement-triple-record ]
  * $$triples-map-extension
}>
]]></sourcecode>
          <t>The following describes each member of the <tt>triples-map</tt>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>reference-triples</tt> (index 0): Triples containing reference values.
Described in <xref target="sec-comid-triple-refval"/>.</t>
            </li>
            <li>
              <t><tt>endorsed-triples</tt> (index 1): Triples containing endorsed values.
Described in <xref target="sec-comid-triple-endval"/>.</t>
            </li>
            <li>
              <t><tt>identity-triples</tt> (index 2): Triples containing identity credentials.
Described in <xref target="sec-comid-triple-identity"/>.</t>
            </li>
            <li>
              <t><tt>attest-key-triples</tt> (index 3): Triples containing verification keys associated with attesting environments.
Described in <xref target="sec-comid-triple-attest-key"/>.</t>
            </li>
            <li>
              <t><tt>dependency-triples</tt> (index 4): Triples describing trust relationships between domains.
Described in <xref target="sec-comid-triple-domain-dependency"/>.</t>
            </li>
            <li>
              <t><tt>membership-triples</tt> (index 5): Triples describing topological relationships between (sub-)modules.
Described in <xref target="sec-comid-triple-domain-membership"/>.</t>
            </li>
            <li>
              <t><tt>coswid-triples</tt> (index 6): Triples associating modules with existing CoSWID tags.
Described in <xref target="sec-comid-triple-coswid"/>.</t>
            </li>
            <li>
              <t><tt>conditional-endorsement-series-triples</tt> (index 8): Triples describing a series of Endorsement that are applicable based on the acceptance of a series of stateful environment records.
Described in <xref target="sec-comid-triple-cond-series"/>.</t>
            </li>
            <li>
              <t><tt>conditional-endorsement-triples</tt> (index 10): Triples describing a series of conditional Endorsements based on the acceptance of a stateful environment.
Described in <xref target="sec-comid-triple-cond-endors"/>.</t>
            </li>
          </ul>
          <section anchor="sec-environments">
            <name>Environments</name>
            <t>An <tt>environment-map</tt> may be used to represent a whole Attester, an Attesting
Environment, or a Target Environment.  The exact semantic depends on the
context (triple) in which the environment is used.</t>
            <t>An environment is named after a class, instance or group identifier (or a
combination thereof).</t>
            <t>An environment MUST be globally unique.
The combination of values within <tt>class-map</tt> must combine to form a globally unique identifier.</t>
            <sourcecode type="cddl"><![CDATA[
environment-map = non-empty<{
  ? &(class: 0) => class-map
  ? &(instance: 1) => $instance-id-type-choice
  ? &(group: 2) => $group-id-type-choice
}>
]]></sourcecode>
            <t>The following describes each member of the <tt>environment-map</tt>:</t>
            <ul spacing="normal">
              <li>
                <t><tt>class</tt> (index 0): Contains "class" attributes associated with the module.
Described in <xref target="sec-comid-class"/>.</t>
              </li>
              <li>
                <t><tt>instance</tt> (index 1): Contains a unique identifier of a module's instance.
Described in <xref target="sec-comid-instance"/>.</t>
              </li>
              <li>
                <t><tt>group</tt> (index 2): identifier for a group of instances, e.g., if an
anonymization scheme is used.
Described in <xref target="sec-comid-group"/>.</t>
              </li>
            </ul>
            <section anchor="sec-comid-class">
              <name>Environment Class</name>
              <t>The Class name consists of class attributes that distinguish the class of
environment from other classes. The class attributes include class-id, vendor,
model, layer, and index. The CoMID author determines which attributes are
needed.</t>
              <sourcecode type="cddl"><![CDATA[
class-map = non-empty<{
  ? &(class-id: 0) => $class-id-type-choice
  ? &(vendor: 1) => tstr
  ? &(model: 2) => tstr
  ? &(layer: 3) => uint
  ? &(index: 4) => uint
}>

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

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

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

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

integrity-registers = {
  + integrity-register-id-type-choice => digests-type
}
]]></sourcecode>
              <t>All the measured objects in an Integrity Registers map are explicitly named and the order in which they appear in the map is irrelevant.
Any digests associated with a measured object represent an acceptable state for the object.
Therefore, if multiple digests are provided, the acceptable state is their cross-product.
For example, given the following Integrity Registers:</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ [ 0, h'00' ] ],
  1: [ [ 0, h'11' ], [ 1, h'12' ] ]
}
]]></sourcecode>
              <t>then both</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ 0, h'00' ],
  1: [ 0, h'11' ]
}
]]></sourcecode>
              <t>and</t>
              <sourcecode type="cbor-diag"><![CDATA[
{
  0: [ 0, h'00' ],
  1: [ 1, h'12' ]
}
]]></sourcecode>
              <t>are acceptable states.</t>
              <t>Integrity Registers can be used to model the PCRs in a TPM or vTPM, in which case the identifier is the register index, or other kinds of vendor-specific measured objects.</t>
            </section>
            <section anchor="sec-comid-domain-type">
              <name>Domain Types</name>
              <t>A domain is a context for bundling a collection of related environments and their measurements.</t>
              <t>The following CDDL describes domain type choices.</t>
              <sourcecode type="cddl"><![CDATA[
$domain-type-choice /= uint
$domain-type-choice /= text
$domain-type-choice /= tagged-uuid-type
$domain-type-choice /= tagged-oid-type
]]></sourcecode>
              <t>The <tt>uint</tt> and <tt>text</tt> types MUST NOT be interpreted in a global scope.</t>
            </section>
          </section>
          <section anchor="sec-comid-triple-refval">
            <name>Reference Values Triple</name>
            <t>A Reference Values Triple provides reference measurements or reference claims pertaining to a Target Environment.
For a Reference Value triple, the subject identifies a Target Environment, the object contains reference measurements associated to one or more measured elements of the Environment, and the predicate asserts that these are expected (i.e., reference) measurements for 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>: One or more measurement claims for the Target Environment</t>
              </li>
            </ul>
            <t>To process <tt>reference-triple-record</tt> both the <tt>ref-env</tt> and <tt>ref-claims</tt> criteria are compared with Evidence entries.
First <tt>ref-env</tt> is used as a search criterion to locate the Evidence environment that matches the reference environment.
Subsequently, the <tt>ref-claims</tt> from this triple are used to match against the Evidence measurements for the matched environment.
If the search criteria are satisfied, the matching entry is re-asserted, except with the Reference Value Provider's authority.
By re-asserting Evidence using the RVP's authority, the Verifier can avoid mixing Reference Values (reference state) with Evidence (actual state).
See <xref target="I-D.ietf-rats-endorsements"/>.
Re-asserted Evidence using RVP authority is said to be "corroborated".</t>
          </section>
          <section anchor="sec-comid-triple-endval">
            <name>Endorsed Values Triple</name>
            <t>An Endorsed Values triple provides additional Endorsements - i.e., claims reflecting the actual state - for an existing Target Environment.
For Endorsed Values Claims, the subject is a Target Environment, the object contains Endorsement Claims for the Environment, and the predicate defines semantics for how the object relates to the subject.</t>
            <t>The Endorsed Values Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
endorsed-triple-record = [
  condition: environment-map
  endorsement: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>endorsed-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>condition</tt>: Search criterion that locates an Evidence, corroborated Evidence, or Endorsements environment.</t>
              </li>
              <li>
                <t><tt>endorsement</tt>: Additional Endorsement Claims.</t>
              </li>
            </ul>
            <t>To process a <tt>endorsed-triple-record</tt> the <tt>condition</tt> is compared with existing Evidence, corroborated Evidence, and Endorsements.
If the search criterion is satisfied, the <tt>endorsement</tt> Claims are combined with the <tt>condition</tt> <tt>environment-map</tt> to form a new (actual state) entry.
The new entry is added to the existing set of entries using the Endorser's authority.</t>
          </section>
          <section anchor="sec-comid-triple-cond-endors">
            <name>Conditional Endorsement Triple</name>
            <t>A Conditional Endorsement Triple declares one or more conditions that, once matched, results in augmenting the Attester's actual state with the Endorsement Claims.
The conditions are expressed via <tt>stateful-environment-records</tt>, which match Target Environments from Evidence in certain reference state.</t>
            <t>The Conditional Endorsement Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
conditional-endorsement-triple-record = [
  conditions: [ + stateful-environment-record ]
  endorsements: [ + endorsed-triple-record ]
]

stateful-environment-record = [
  environment: environment-map,
  claims-list: [ + measurement-map ]
]
]]></sourcecode>
            <t>The <tt>conditional-endorsement-triple-record</tt> has the following parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>conditions</tt>: Search criteria that locates Evidence, corroborated Evidence, or Endorsements.</t>
              </li>
              <li>
                <t><tt>endorsements</tt>: Additional Endorsements.</t>
              </li>
            </ul>
            <t>To process a <tt>conditional-endorsement-triple-record</tt> the <tt>conditions</tt> are compared with existing Evidence, corroborated Evidence, and Endorsements.
If the search criteria are satisfied, the <tt>endorsements</tt> entries are asserted with the Endorser's authority as new Endorsements.</t>
          </section>
          <section anchor="sec-comid-triple-cond-series">
            <name>Conditional Endorsement Series Triple</name>
            <t>The Conditional Endorsement Series Triple is used to assert endorsed values based on an initial condition match (specified in <tt>condition:</tt>) followed by a series condition match (specified in <tt>selection:</tt> inside <tt>conditional-series-record</tt>).
Every <tt>conditional-series-record</tt> selection MUST select the same mkeys where every selected mkey's corresponding set of code points (i.e., mval.key) MUST be the same across each <tt>conditional-series-record</tt>.
For example, if a selection matches on 3 <tt>measurement-map</tt> statements; <tt>mkey</tt> is the same for all 3 statements and <tt>mval</tt> contains only A= variable-X, B= variable-Y, and C= variable-Z (exactly the set of code points A, B, and C) respectively for every <tt>conditional-series-record</tt> in the series.</t>
            <t>These restrictions ensure that evaluation order does not change the meaning of the triple during the appraisal process.
Series entries are ordered such that the most precise match is evaluated first and least precise match is evaluated last.
The first series condition that matches terminates series matching and the endorsement values are added to the Attester's actual state.</t>
            <t>The Conditional Endorsement Series Triple has the following structure:</t>
            <sourcecode type="cddl"><![CDATA[
conditional-endorsement-series-triple-record = [
  condition: stateful-environment-record
  series: [ + conditional-series-record ]
]

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

concise-swid-tag-id = text / bstr .size 16
]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="sec-extensibility">
        <name>Extensibility</name>
        <t>The base CoRIM document definition is described using CDDL <xref target="RFC8610"/> that can be extended only at specific allowed points known as "extension points".</t>
        <t>The following types of extensions are supported in CoRIM.</t>
        <section anchor="map-extensions">
          <name>Map Extensions</name>
          <t>Map extensions provide extensibility support to CoRIM map structures.
CDDL map extensibility enables a CoRIM profile to extend the base CoRIM CDDL definition.
CDDL map extension points have the form <tt>($$NAME-extension)</tt> where "NAME" is the name of the map and '$$' signifies map extensibility.
Typically, map extension requires a convention for code point naming that avoids code-point reuse.
Well-known code points may be in a registry, such as CoSWID <xref target="IANA.coswid"/>.
Non-negative integers are reserved for IANA to assign meaning globally.</t>
        </section>
        <section anchor="data-type-extensions">
          <name>Data Type Extensions</name>
          <t>Data type extensibility has the form <tt>($NAME-type-choice)</tt> where "NAME" is the type name and '$' signifies type extensibility.</t>
          <t>New data type extensions SHOULD be documented to facilitate interoperability.
CoRIM profiles are best used to document vendor or industry defined extensions.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-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 is as follows and this
rule and its constraints MUST be followed when creating or validating a CoTL
tag:</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): A list of one or more <tt>tag-identity-maps</tt> identifying
the CoMID and CoSWID tags that constitute the "bill of material", i.e.,
a complete set of verification-related information.  The <tt>tags-list</tt> behaves
like a signaling mechanism from the supply chain (e.g., a product vendor) to
a Verifier that activates the tags in <tt>tags-list</tt> for use in the Evidence
appraisal process. The activation is atomic: all tags listed in <tt>tags-list</tt>
MUST be activated or no tags are activated.</t>
          </li>
          <li>
            <t><tt>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.1.2." sectionFormat="of" target="RFC4122"/>.</t>
        <sourcecode type="cddl"><![CDATA[
uuid-type = bytes .size 16
tagged-uuid-type = #6.37(uuid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-ueid">
        <name>UEID</name>
        <t>Used to tag a byte string as Universal Entity ID Claim (UUID).
Defined in <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-rats-eat"/>.</t>
        <sourcecode type="cddl"><![CDATA[
ueid-type = bytes .size 33
tagged-ueid-type = #6.550(ueid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-oid">
        <name>OID</name>
        <t>Used to tag a byte string as the BER encoding <xref target="X.690"/> of an absolute object
identifier <xref target="RFC9090"/>.</t>
        <sourcecode type="cddl"><![CDATA[
oid-type = bytes
tagged-oid-type = #6.111(oid-type)
]]></sourcecode>
      </section>
      <section anchor="sec-common-hash-entry">
        <name>Digest</name>
        <t>A digest represents the value of a hashing operation together with the hash algorithm used.
The type of the digest algorithm identifier can be either <tt>int</tt> or <tt>text</tt> and is interpreted according to the <xref target="IANA.named-information"/> registry.
Specifically, <tt>int</tt> values are matched against "ID" entries, <tt>text</tt> values are matched against "Hash Name String" entries.
Whenever possible, using the <tt>int</tt> encoding is RECOMMENDED.</t>
        <sourcecode type="cddl"><![CDATA[
digest = [
  alg: (int / text),
  val: bytes
]

digests-type = [ + digest ]
]]></sourcecode>
        <t>A measurement can be obtained using different hash algorithms.
A <tt>digests-type</tt> can be used to collect multiple digest values obtained by applying different hash algorithms on the same input.
Each entry in the <tt>digests-type</tt> MUST have a unique <tt>alg</tt> value.</t>
      </section>
      <section anchor="sec-common-tagged-bytes">
        <name>Tagged Bytes Type</name>
        <t>An opaque, variable-length byte string.
It can be used in different contexts: as an instance, class or group identifier in an <tt>environment-map</tt>; as a raw value measurement in a <tt>measurement-values-map</tt>.
Its semantics are defined by the context in which it is found, and by the overarching CoRIM profile.
When used as an identifier the responsible allocator entity SHOULD ensure uniqueness within the context that it is used.</t>
        <sourcecode type="cddl"><![CDATA[
tagged-bytes = #6.560(bytes)
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-appr-corim-inputs">
      <name>Appraisal of CoRIM-based Inputs</name>
      <t>Inputs to a Verifier are mapped from their external representation to an internal representation.
CoRIM defines CBOR structures and content media types for Conceptual Messages that include Endorsements and Reference Values.
CoRIM data structures may also be used by Evidence and Attestation Results that wish to describe overlapping structure.
CoRIM-based data structures define an external representation of Conceptual Messages that are mapped to an internal representation.
Appraisal processing describes both mapping transformations and Verifier reconciliation (<xref target="sec-verifier-rec"/>).
Non-CoRIM-based data structures require mapping transformation, but these are out of scope for this document.</t>
      <t>If a CoRIM profile is specified, there are a few well-defined points in the procedure where Verifier behaviour depends on the profile.
The CoRIM profile MUST provide a description of the expected Verifier behavior for each of those well-defined points.</t>
      <t>Verifier implementations MUST provide the specified information model of the ACS at the end of phase 4 as described in this specification.
They are not required to use the same internal representation or evaluation order described by this specification.</t>
      <section anchor="sec-appraisal-procedure">
        <name>Appraisal Procedure</name>
        <t>The appraisal procedure is divided into several logical phases for clarity.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 1</strong>: Input Validation and Transformation</t>
          </li>
        </ul>
        <t>During Phase 1, Conceptual Message inputs are cryptographically validated, such as checking digital signatures.
Inputs are transformed from their external representations to an internal representation.
Internal representations are staged for appraisal processing, such as populating an input queue.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 2</strong>: Evidence Augmentation</t>
          </li>
        </ul>
        <t>During Phase 2, Evidence inputs are added to a list that describes the Attester's actual state.
These inputs are added with the Attester's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 3</strong>: Reference Values Corroboration and Augmentation</t>
          </li>
        </ul>
        <t>During Phase 3, Reference Values inputs are compared with Evidence inputs.
Reference Values inputs describe possible states of Attesters.
If the actual state of the Attester is described by the possible Attester states, then the overlapping (corroborated) actual states are added to the Attester's actual state.
These inputs are added with the Reference Value Provider's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 4</strong>: Endorsed Values Augmentation</t>
          </li>
        </ul>
        <t>During Phase 4, Endorsed Values inputs containing conditions that describe expected Attester state are processed.
If the comparison is satisfied, then additional Claims about the Attester are added to the ACS.
These inputs are added with the Endorser's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 5</strong>: Verifier Augmentation</t>
          </li>
        </ul>
        <t>During Phase 5, the Verifier may perform consistency, integrity, or additional validity checks.</t>
        <t>These checks may result in additional Claims about the Attester that are added to the ACS.
These Claims are added with the Verifier's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 6</strong>: Policy Augmentation</t>
          </li>
        </ul>
        <t>During Phase 6, appraisal policies are processed that describe Attester states that are desirable or undesirable.
If these conditions exist, the policy may add additional Claims about the Attester, to the ACS.
These Claims are added with the policy author's authority.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Phase 7</strong>: Attestation Results Production and Transformation</t>
          </li>
        </ul>
        <t>During Phase 7, the outcome of Appraisal and the set of Attester Claims that are interesting to a Relying Party are copied from the Attester state to an output staging area.
The Claims in the output staging area and other Verifier related metadata are transformed into an external representation suitable for consumption by a Relying Party.</t>
      </section>
    </section>
    <section anchor="sec-verifier-abstraction">
      <name>Example Verifier Algorithm</name>
      <t>This document assumes that Verifier implementations may differ.
To facilitate the description of normative Verifier behavior, this document describes the internal representation for an example Verifier and demonstrates how the data is used in the appraisal phases outlined in <xref target="sec-appraisal-procedure"/>.</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>
      <section anchor="sec-ir-cm">
        <name>Internal Representation of Conceptual Messages</name>
        <t>Conceptual Messages are Verifier input and output values such as Evidence, Reference Values, Endorsed Values, Appraisal Policy, and Attestation Results.</t>
        <t>The internal representation of Conceptual Messages, as well as the ACS (<xref target="sec-ir-acs"/>) and ARS (<xref target="sec-ir-ars"/>), are constructed from a common building block structure called Environment-Claims Tuple (ECT).</t>
        <section anchor="sec-ir-ect">
          <name>Internal structure of ECT</name>
          <t>Environment-Claims Tuples (ECT) have five attributes:</t>
          <ol spacing="normal" type="%d."><li>
              <t>Environment : Identifies the Target Environment. Environments are identified using instance, class, or group identifiers. Environments may be composed of elements, each having an element identifier.</t>
            </li>
            <li>
              <t>Elements : Identifies the set of elements contained within a Target Environment and their trustworthiness Claims.</t>
            </li>
            <li>
              <t>Authority : Identifies the entity that issued the tuple. A certain type of key material by which the authority (and corresponding provenance) of the tuple can be determined, such as the public key of an asymmetric key pair that is associated with an authority's PKIX certificate.</t>
            </li>
            <li>
              <t>Conceptual Message Type : Identifies the type of Conceptual Message that originated the tuple.</t>
            </li>
            <li>
              <t>Profile : The profile that defines this tuple. If no profile is used, this attribute is omitted.</t>
            </li>
          </ol>
          <t>The following CDDL describes the ECT structure in more detail.</t>
          <sourcecode type="cddl"><![CDATA[
ECT = {
  ? environment: environment-map
  ? element-list: [ + element-map ]
  ? authority: [ + $crypto-key-type-choice ]
  cmtype: cm-type
  ? profile: $profile-type-choice
}

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

cm-type =  &(
  reference-values: 0
  endorsements: 1
  evidence: 2
  attestation-results: 3
  verifier: 4
  policy: 5
)
]]></sourcecode>
          <t>The Conceptual Message type determines which attributes are mandatory.</t>
        </section>
        <section anchor="sec-ir-ext">
          <name>Internal Representation of Cryptographic Keys</name>
          <t>The internal representation for keys use the extension slot within <tt>measurement-values-map</tt> with the <tt>intrep-keys</tt> claim that consists of a list of <tt>typed-crypto-key</tt>.
<tt>typed-crypto-key</tt> consists of a <tt>key</tt> and an optional <tt>key-type</tt>.
There are two types of keys <tt>attest-key</tt> and <tt>identity-key</tt>.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(intrep-keys: 65534) => [ + typed-crypto-key ]
)

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

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

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

evs = [
  condition: [ + ECT ]
  series: [ + {
    selection: [ + ECT ]
    addition: [ + ECT ]
  } ]
]
]]></sourcecode>
          <t>The <tt>ev</tt> relation compares the <tt>condition</tt> ECTs to the ACS and if all of the ECTs are found in the ACS then the <tt>addition</tt> ECTs are added to the ACS.</t>
          <t>The <tt>evs</tt> relation compares the <tt>condition</tt> ECTs to the ACS and if all of the ECTs are found in the ACS then each entry in the series list is evaluated.
The <tt>selection</tt> ECTs are compared with the ACS and if the selection criteria is satisfied, then the <tt>addition</tt> ECTs are added to the ACS and evaluation of the series ends.
If the <tt>selection</tt> criteria is not satisfied, then evaluation procedes to the next series list entry.</t>
          <t><xref target="tbl-ev-ect-optionality"/> contains the requirements for the ECT fields of the Endorsed Values and Endorsed Values Series tuples:</t>
          <table anchor="tbl-ev-ect-optionality">
            <name>Endorsed Values and Endorsed Values Series tuples requirements</name>
            <thead>
              <tr>
                <th align="left">ECT type</th>
                <th align="left">ECT Field</th>
                <th align="left">Requirement</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">condition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left">selection</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left">addition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">Optional</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-ir-policy">
          <name>Internal Representation of Policy Statements</name>
          <t>The <tt>policy</tt> relation compares the <tt>condition</tt> ECTs to the ACS.</t>
          <sourcecode type="cddl"><![CDATA[
policy = [
  condition: [ + ECT ]
  addition: [ + ECT ]
]
]]></sourcecode>
          <t>If all of the ECTs are found in the ACS then the <tt>addition</tt> ECTs are added to the ACS with the policy author's authority.</t>
          <t><xref target="tbl-policy-ect-optionality"/> contains the requirements for the ECT fields of the Policy tuple:</t>
          <table anchor="tbl-policy-ect-optionality">
            <name>Policy tuple requirements</name>
            <thead>
              <tr>
                <th align="left">ECT type</th>
                <th align="left">ECT Field</th>
                <th align="left">Requirement</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">condition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left">addition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">Optional</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-ir-ar">
          <name>Internal Representation of Attestation Results</name>
          <t>The <tt>ar</tt> relation compares the <tt>acs-condition</tt> to the ACS.</t>
          <sourcecode type="cddl"><![CDATA[
ar = [
  acs-condition: [ + ECT ]
  ars-addition: [ + ECT ]
]
]]></sourcecode>
          <t>If the condition is satisfied, the <tt>ars-additions</tt> are copied from the ACS to the ARS.
If any of the <tt>ars-additions</tt> are not found in the ACS then these ACS entries are not copied to the ARS.</t>
          <t><xref target="tbl-ar-ect-optionality"/> contains the requirements for the ECT fields of the Attestation Results tuple:</t>
          <table anchor="tbl-ar-ect-optionality">
            <name>Attestation Results tuple requirements</name>
            <thead>
              <tr>
                <th align="left">ECT type</th>
                <th align="left">ECT Field</th>
                <th align="left">Requirement</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">acs-condition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">n/a</td>
              </tr>
              <tr>
                <td align="left">ars-addition</td>
                <td align="left">
                  <tt>environment</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>element-list</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>authority</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>cmtype</tt></td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>profile</tt></td>
                <td align="left">Optional</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-ir-acs">
          <name>Internal Representation of Appraisal Claims Set (ACS)</name>
          <t>An ACS is a list of ECTs that describe an Attester's actual state.</t>
          <sourcecode type="cddl"><![CDATA[
ACS = [ + ECT ]
]]></sourcecode>
        </section>
        <section anchor="sec-ir-ars">
          <name>Internal Representation of Attestation Results Set (ARS)</name>
          <t>An ARS is a list of ECTs that describe ACS entries that are selected for use as Attestation Results.</t>
          <sourcecode type="cddl"><![CDATA[
ARS = [ + ECT ]
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-phase1">
        <name>Input Validation and Transformation (Phase 1)</name>
        <t>During the initialization phase, the CoRIM Appraisal Context is loaded with various conceptual message inputs such as CoMID tags (<xref target="sec-comid"/>), CoSWID tags <xref target="RFC9393"/>, 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>CoRIMs that are not within their validity period, or that cannot be associated with an authenticated and authorized source MUST be discarded.</t>
            <t>Any CoRIM that has been secured by a cryptographic mechanism, such as a signature, that fails validation MUST be discarded.</t>
            <t>Other selection criteria MAY be applied.
For example, if the Evidence format is known in advance, CoRIMs using a profile that is not understood by a Verifier can be readily discarded.</t>
            <t>Later stages will further select the CoRIMs appropriate to the Evidence Appraisal stage.</t>
          </section>
          <section anchor="tags-extraction-and-validation">
            <name>Tags Extraction and Validation</name>
            <t>The Verifier chooses tags from the selected CoRIMs - including CoMID, CoSWID, 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>A 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.
The first part of this phase does not require any cryptographic validation.
This means that Verifiers can use untrusted code to discover Evidence sources.
Attesters are Evidence sources.</t>
          <t>Verifiers may rely on conveyance protocol specific context to identify an Evidence source, which is the Evidence input oracle for appraisal.</t>
          <t>The collected Evidence is then transformed to an internal representation, making it suitable for appraisal processing.</t>
          <section anchor="sec-crypto-validate-evidence">
            <name>Cryptographic Validation of Evidence</name>
            <t>If Evidence is cryptographically signed, its validation is applied before transforming Evidence to an internal representation.</t>
            <t>If Evidence is not cryptographically signed, the security context of the conveyance protocol that collected it is used to cryptographically validate Evidence.</t>
            <t>The way cryptographic signature validation works depends on the specific Evidence collection method used.
For example, in DICE, a proof of liveness is carried out on the final key in the certificate chain (a.k.a., the alias certificate).
If this is successful, a suitable certification path is looked up in the Appraisal Context, based on linking information obtained from the DeviceID certificate.
See Section 9.2.1 of <xref target="DICE.Layer"/>.
If a trusted root certificate is found, X.509 certificate validation is performed.</t>
            <t>As a second example, in PSA <xref target="I-D.tschofenig-rats-psa-token"/> the verification public key is looked up in the appraisal context using the <tt>ueid</tt> claim found in the PSA claims-set.
If found, COSE Sign1 verification is performed accordingly.</t>
            <t>Regardless of the specific integrity protection method used, the Verifier MUST NOT process Evidence which is not successfully validated.</t>
            <ul empty="true">
              <li>
                <t>If a CoRIM profile is supplied, it MUST describe:</t>
                <ul spacing="normal">
                  <li>
                    <t>How cryptographic verification key material is represented (e.g., using Attestation Keys triples, or CoTS tags)</t>
                  </li>
                  <li>
                    <t>How key material is associated with the Attesting Environment</t>
                  </li>
                  <li>
                    <t>How the Attesting Environment is identified in Evidence</t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="sec-phase1-trans">
          <name>Input Transformation</name>
          <t>Input Conceptual Messages, whether Evidence, Reference Values, Endorsements, or Policies, are transformed to an internal representation that is based on ECTs (<xref target="sec-ir-cm"/>).</t>
          <t>The following mapping conventions apply to all forms of input transformation:</t>
          <ul empty="true">
            <li>
              <ul spacing="normal">
                <li>
                  <t>The <tt>environment</tt> field is populated with a Target Environment identifier.</t>
                </li>
                <li>
                  <t>The <tt>element-list</tt> field is populated with the measurements collected by an Attesting Environment.</t>
                </li>
                <li>
                  <t>The <tt>authority</tt> field is populated with the identity of the entity that asserted (e.g., signed) the Conceptual Message.</t>
                </li>
                <li>
                  <t>The <tt>cmtype</tt> field is set based on the type of Conceptual Message inputted or to be output.</t>
                </li>
                <li>
                  <t>The <tt>profile</tt> field is set based on the <tt>corim-map</tt> <tt>profile</tt> value.</t>
                </li>
              </ul>
            </li>
          </ul>
          <section anchor="appraisal-context-construction">
            <name>Appraisal Context Construction</name>
            <t>All of the extracted and validated tags are loaded into an <em>appraisal context</em>.
The Appraisal Context contains an internal representation of the inputted Conceptual Messages.
The selected tags are mapped to an internal representation, making them suitable for appraisal processing.</t>
          </section>
          <section anchor="evidence-tranformation">
            <name>Evidence Tranformation</name>
            <t>Evidence is transformed from an external representation to an internal representation based on the <tt>ae</tt> relation (<xref target="sec-ir-evidence"/>).
The Evidence is mapped into one or more <tt>addition</tt> ECTs.
If the Evidence does not have a value for the mandatory <tt>ae</tt> fields, the Verifier MUST NOT process the Evidence.</t>
            <t>Evidence transformation algorithms may be well-known, defined by a CoRIM profile (<xref target="sec-corim-profile-types"/>), or supplied dynamically.
The handling of dynamic Evidence transformation algorithms is out of scope for this document.</t>
          </section>
          <section anchor="sec-ref-trans">
            <name>Reference Triples Transformation</name>
            <ol group="foo" spacing="normal" type="Step %d."><li>
                <t>An <tt>rv</tt> list entry (<xref target="sec-ir-ref-val"/>) is allocated.</t>
              </li>
              <li>
                <t>The <tt>cmtype</tt> of the <tt>addition</tt> ECT in the <tt>rv</tt> entry is set to <tt>reference-values</tt>.</t>
              </li>
              <li>
                <t>The Reference Values Triple (RVT) (<xref target="sec-comid-triple-refval"/>) populates the <tt>rv</tt> ECTs.</t>
              </li>
            </ol>
            <ol group="rtt2" spacing="normal" type="%i"><li>
                <t>RVT.<tt>ref-env</tt></t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>rv</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>rv</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="rtt2" spacing="normal" type="%i"><li>
                <t>For each e in RVT.<tt>ref-claims</tt>:</t>
              </li>
            </ol>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <t><strong>copy</strong>(e.<tt>measurement-map</tt>, <tt>rv</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                  </li>
                </ul>
              </li>
            </ul>
            <ol group="foo" spacing="normal" type="Step %d."><li>
                <t>The signer of the Endorsement conceptual message is copied to the <tt>rv</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>If the Endorsement conceptual message has a profile, the profile identifier is copied to the <tt>rv</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
              </li>
            </ol>
          </section>
          <section anchor="sec-end-trans">
            <name>Endorsement Triples Transformations</name>
            <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 Triple Transformation</name>
              <ol group="cestt" spacing="normal" type="Step %d."><li>
                  <t>An <tt>evs</tt> entry (<xref target="sec-ir-end-val"/>) is allocated.</t>
                </li>
                <li>
                  <t>The <tt>cmtype</tt> of the <tt>evs</tt> entry's <tt>addition</tt> ECT is set to <tt>endorsements</tt>.</t>
                </li>
                <li>
                  <t>Populate the <tt>evs</tt> ECTs using the Conditional Endorsement Series Triple (CEST) (<xref target="sec-comid-triple-cond-series"/>).</t>
                </li>
              </ol>
              <ol group="cestt2" spacing="normal" type="%i."><li>
                  <t>CEST.<tt>condition</tt>:</t>
                </li>
              </ol>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>stateful-environment-record</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>stateful-environment-record</tt>.<tt>claims-list</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ol group="cestt2" spacing="normal" type="%i."><li>
                  <t>For each e in CEST.<tt>series</tt>:</t>
                </li>
              </ol>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>selection</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(e.<tt>conditional-series-record</tt>.<tt>selection</tt>.<tt>measurement</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>selection</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(<tt>evs</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>environment</tt>.<tt>environment-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ul empty="true">
                <li>
                  <ul empty="true">
                    <li>
                      <t><strong>copy</strong>(e.<tt>conditional-series-record</tt>.<tt>addition</tt>.<tt>measurement-map</tt>, <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>)</t>
                    </li>
                  </ul>
                </li>
              </ul>
              <ol group="cestt" spacing="normal" type="Step %d."><li>
                  <t>The signer of the Conditional Endorsement Series conceptual message is copied to the <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
                </li>
                <li>
                  <t>If the Conditional Endorsement Series conceptual message has a profile, the profile is copied to the <tt>evs</tt>.<tt>series</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
                </li>
              </ol>
            </section>
            <section anchor="sec-end-trans-kvt">
              <name>Key Verification Triples Transformation</name>
              <t>The following transformation steps are applied for both the <tt>identity-triples</tt> and <tt>attest-key-triples</tt> with noted exceptions:</t>
              <ol group="ckvt" spacing="normal" type="Step %d."><li>
                  <t>An <tt>ev</tt> entry (<xref target="sec-ir-end-val"/>) is allocated.</t>
                </li>
                <li>
                  <t>The <tt>cmtype</tt> of the <tt>ev</tt> entry's <tt>addition</tt> ECT is set to <tt>endorsements</tt>.</t>
                </li>
                <li>
                  <t>Populate the <tt>ev</tt> <tt>condition</tt> ECT using either the <tt>identity-triple-record</tt> or <tt>attest-key-triple-record</tt> (<xref target="sec-comid-triple-identity"/>) as follows:</t>
                </li>
              </ol>
              <ol group="kvt2" spacing="normal" type="%i."><li>
                  <t><strong>copy</strong>(<tt>environment-map</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>.<tt>environment-map</tt>).</t>
                </li>
                <li>
                  <t>Foreach <em>key</em> in <tt>keylist</tt>.<tt>$crypto-key-type-choice</tt>, <strong>copy</strong>(<em>key</em>, <tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key</tt>).</t>
                </li>
                <li>
                  <t>If <tt>key-list</tt> originated from <tt>attest-key-triples</tt>, <strong>set</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key-type</tt> = <tt>attest-key</tt>).</t>
                </li>
                <li>
                  <t>Else if <tt>key-list</tt> originated from <tt>identity-triples</tt>, <strong>set</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>.<tt>key-type</tt> = <tt>identity-key</tt>).</t>
                </li>
                <li>
                  <t>If populated, <strong>copy</strong>(<tt>mkey</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
                </li>
                <li>
                  <t>If populated, <strong>copy</strong>(<tt>authorized-by</tt>, <tt>ev</tt>.<tt>condition</tt>.<tt>authority</tt>).</t>
                </li>
              </ol>
              <ol group="ckvt" spacing="normal" type="Step %d."><li>
                  <t>The signer of the Identity or Attest Key Endorsement conceptual message is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
                </li>
                <li>
                  <t>If the Endorsement conceptual message has a profile, the profile is copied to the <tt>ev</tt>.<tt>addition</tt>.<tt>profile</tt> field.</t>
                </li>
              </ol>
            </section>
          </section>
        </section>
      </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 Evidence has been converted into an internal represenetation suitable for appraisal.
See <xref target="sec-ir-cm"/>.</t>
          <t>Verifiers are not required to use this as their internal representation.
For the purposes of this document, appraisal is described in terms of the above cited internal representation.</t>
          <section anchor="acs-processing-requirements">
            <name>ACS Processing Requirements</name>
            <t>The ACS contains the actual state of Attester's Target Environments (TEs).
The ACS contains Evidence ECTs (from Attesters) and Endorsement ECTs
(e.g. from <tt>endorsed-triple-record</tt>).</t>
            <t>CoMID Reference Values will be matched against the ACS following the comparison rules in <xref target="sec-match-condition-ect"/>.
This document describes an example evidence structure which can be
matched against these Reference Values.</t>
            <t>Each Endorsement ECT contains the environment and internal representation of <tt>measurement-map</tt>s as extracted from an <tt>endorsed-triple-record</tt>.
When an <tt>endorsed-triple-record</tt> is transformed to Endorsements ECTs it
indicates that the authority named by <tt>measurement-map</tt>.<tt>authorized-by</tt>
asserts that the actual state of one or more Claims within the
Target Environment, as identified by <tt>environment-map</tt>, have the
measurement values in <tt>measurement-map</tt>.<tt>mval</tt>.</t>
            <t>ECT authority is represented by cryptographic keys. Authority
is asserted by digitally signing a Claim using the key. Hence, Claims are
added to the ACS under the authority of a cryptographic key.</t>
            <t>Each Claim is encoded as an ECT. The <tt>environment-map</tt>, the <tt>mkey</tt> or <tt>element-id</tt>, and a
key within <tt>measurement-values-map</tt> encode the name of the Claim.
The value matching that key within <tt>measurement-values-map</tt> is the actual
state of the Claim.</t>
            <t>This specification does not assign special meanings to any Claim name,
it only specifies rules for determining when two Claim names are the same.</t>
            <t>If two Claims have the same <tt>environment-map</tt> encoding then this does not
trigger special encoding in the Verifier. The Verifier follows instructions
in the CoRIM file which tell it how claims are related.</t>
            <t>If Evidence or Endorsements from different sources has the same <tt>environment-map</tt>
and <tt>authorized-by</tt> then the <tt>measurement-values-map</tt>s are merged.</t>
            <t>The ACS must maintain the authority information for each ECT. There can be
multiple entries in <tt>state-triples</tt> which have the same <tt>environment-map</tt>
and a different authority.
See <xref target="sec-authority"/>.</t>
            <t>If the merged <tt>measurement-values-map</tt> contains duplicate codepoints and the
measurement values are equivalent, then duplicate claims SHOULD be omitted.
Equivalence typically means values MUST be binary identical.</t>
            <t>If the merged <tt>measurement-values-map</tt> contains duplicate codepoints and the
measurement values are not equivalent, then a 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"/>).
Reference Values may describe multiple possible Attester states.</t>
          <t>Corroboration is the process of determining whether actual Attester state (as contained in the ACS) can be satisfied by Reference Values.
If satisfied, the RVP authority is added to the matching ACS entry.</t>
          <t>Reference Values are matched with ACS entries by iterating through the <tt>rv</tt> list.
For each <tt>rv</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains <tt>evidence</tt>.</t>
          <t>If the ECTs match except for authority, the <tt>rv</tt> <tt>addition</tt> ECT authority is added to the ACS ECT authority.</t>
        </section>
        <section anchor="sec-phase4">
          <name>Endorsed Values Augmentation (Phase 4)</name>
          <t>Endorsers publish Endorsements using endorsement triples (see <xref target="sec-comid-triple-endval"/>), <xref target="sec-comid-triple-cond-endors"/>, and <xref target="sec-comid-triple-cond-series"/>) which are transformed (<xref target="sec-end-trans"/>) into an internal representation (<xref target="sec-ir-end-val"/>).
Endorsements describe actual Attester state.
Endorsements are added to the ACS if the Endorsement condition is satisifed by the ACS.</t>
          <section anchor="sec-process-end">
            <name>Processing Endorsements</name>
            <t>Endorsements are matched with ACS entries by iterating through the <tt>ev</tt> list.
For each <tt>ev</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains either <tt>evidence</tt>, <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>
          </section>
          <section anchor="sec-process-cond-end">
            <name>Processing Conditional Endorsements</name>
            <t>Conditional Endorsement Triples are transformed into an internal representation based on <tt>ev</tt>.
Conditional endorsements have the same processing steps as shown in (<xref target="sec-process-end"/>).</t>
          </section>
          <section anchor="sec-process-series">
            <name>Processing Conditional Endorsement Series</name>
            <t>Conditional Endorsement Series Triples are transformed into an internal representation based on <tt>evs</tt>.
Conditional series endorsements are matched with ACS entries first by iterating through the <tt>evs</tt> list,
where for each <tt>evs</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains either <tt>evidence</tt>, <tt>reference-values</tt>, or <tt>endorsements</tt>.
If the ECTs match (<xref target="sec-match-condition-ect"/>), the <tt>evs</tt> <tt>series</tt> array is iterated,
where for each <tt>series</tt> entry, if the <tt>selection</tt> ECT matches an ACS ECT,
the <tt>addition</tt> ECT is added to the ACS.
Series iteration terminates after the first matching series entry is processed or when no series entries match.</t>
          </section>
          <section anchor="sec-process-keys">
            <name>Processing Key Verification Endorsements</name>
            <t>For each <tt>ev</tt> entry, the <tt>condition</tt> ECT is compared with an ACS ECT, where the ACS ECT <tt>cmtype</tt> contains either <tt>evidence</tt>, <tt>reference-values</tt>, or <tt>endorsements</tt>.
If the ECTs match (<xref target="sec-match-condition-ect"/>), for each <em>key</em> in <tt>ev</tt>.<tt>condition</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>:</t>
            <ul spacing="normal">
              <li>
                <t>Verify the certificate signatures for the certification path.</t>
              </li>
              <li>
                <t>Verify certificate revocation status for the certification path.</t>
              </li>
              <li>
                <t>Verify key usage restrictions appropriate for the type of key.</t>
              </li>
              <li>
                <t>If key verification succeeds, <strong>append</strong>(<em>key</em>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>measurement-values-map</tt>.<tt>intrep-keys</tt>).</t>
              </li>
            </ul>
            <t>If key verification succeeds for any <em>key</em>:</t>
            <ul spacing="normal">
              <li>
                <t><strong>copy</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>environment</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>environment</tt>).</t>
              </li>
              <li>
                <t><strong>copy</strong>(<tt>ev</tt>.<tt>condition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>, <tt>ev</tt>.<tt>addition</tt>.<tt>element-list</tt>.<tt>element-map</tt>.<tt>element-id</tt>).</t>
              </li>
              <li>
                <t>Set <tt>ev</tt>.<tt>addition</tt>.<tt>cmtype</tt> to <tt>endorsements</tt>.</t>
              </li>
              <li>
                <t>Add the Verifier authority <tt>$crypto-key-type-choice</tt> to the <tt>ev</tt>.<tt>addition</tt>.<tt>authority</tt> field.</t>
              </li>
              <li>
                <t>Add the <tt>addition</tt> ECT to the ACS.</t>
              </li>
            </ul>
            <t>Otherwise, do not add the <tt>addition</tt> ECT to the ACS.</t>
          </section>
        </section>
        <section anchor="sec-phases567">
          <name>Examples for optional phases 5, 6, and 7</name>
          <t>Phases 5, 6, and 7 are optional depending on implementation design.
Verifier implementations that apply consistency, integrity, or validity checks could be represented as Claims that augment the ACS or could be handled by application specific interfaces.
Processing appraisal policies may result in augmentation or modification of the ACS, but techniques for tracking the application of policies during appraisal need not result in ACS augmentation.
Additionally, the creation of Attestation Results is out-of-scope for this document, nevertheless internal staging may facilitate processing of Attestation Results.</t>
          <t>Phase 5: Verifier Augmentation</t>
          <t>Verifiers may add value to accepted Claims, such as ensuring freshness, consistency, and integrity.
The results of the added value may be asserted as Claims with Verifier authority.
For example, if a Verifier is able to ensure collected Evidence is fresh, it might create a freshness Claim that is included with the Evidence Claims in the ACS.</t>
          <t>Phase 6: Policy Augmentation</t>
          <t>Appraisal policy inputs could result in Claims that augment the ACS.
For example, an Appraisal Policy for Evidence may specify that if all of a collection of subcomponents satisfy a particular quality metric, the top-level component also satisfies the quality metric.
The Verifier might generate an Endorsement ECT for the top-level component that asserts a quality metric.
Details about the applied policy may augment the ACS.
An internal representation of policy details, based on the policy ECT, as described in <xref target="sec-ir-policy"/>, contains the environments affected by the policy with policy identifiers as Claims.</t>
          <t>Phase 7: Attestation Results Production and Transformation</t>
          <t>Attestation Results rely on input from the ACS, but may not bear any similarity to its content.
For example, Attestation Results processing may map the ACS state to a generalized trustworthiness state such as <xref target="I-D.ietf-rats-ar4si"/>.
Generated Attestation Results Claims may be specific to a particular Relying Party.
Hence, the Verifier may need to maintain multiple Attestation Results contexts.
An internal representation of Attestation Results as separate contexts (<xref target="sec-ir-ars"/>) ensures Relying Party–specific processing does not modify the ACS, which is common to all Relying Parties.
Attestation Results contexts are the inputs to Attestation Results procedures that produce external representations.</t>
        </section>
      </section>
      <section anchor="sec-match-condition-ect">
        <name>Comparing a condition ECT against the ACS</name>
        <t>A Verifier SHALL iterate over all ACS entries and SHALL attempt to match the condition ECT against each ACS entry. See <xref target="sec-match-one-condition-ect"/>.
A Verifier SHALL create a "matched entries" set, and SHALL populate it with all ACS entries which matched the condition ECT.</t>
        <t>If the matched entries array is not empty, then the condition ECT matches the ACS.</t>
        <t>If the matched entries array is empty, then the condition ECT does not match the ACS.</t>
        <section anchor="sec-match-one-condition-ect">
          <name>Comparing a condition ECT against a single ACS entry</name>
          <t>If the condition ECT contains a profile and the profile defines an algorithm for a codepoint and <tt>environment-map</tt> then a Verifier MUST use the algorithm defined by the profile (or a standard algorithm if the profile defines that).
If the condition ECT contains a profile, but the profile does not define an algorithm for a particular codepoint and <tt>environment-map</tt> then the verifier MUST use the standard algorithm described in this document to compare the data at that codepoint.</t>
          <t>A Verifier SHALL perform all of the comparisons defined in <xref target="sec-compare-environment"/>, <xref target="sec-compare-authority"/>, and <xref target="sec-compare-element-list"/>.</t>
          <t>Each of these comparisons compares one field in the condition ECT against the same field in the ACS entry.</t>
          <t>If all of the fields match, then the condition ECT matches the ACS entry.</t>
          <t>If any of the fields does not match, then the condition ECT does not match the ACS entry.</t>
        </section>
        <section anchor="sec-compare-environment">
          <name>Environment Comparison</name>
          <t>A Verifier SHALL compare each field which is present in the condition ECT <tt>environment-map</tt> against the corresponding field in the ACS entry <tt>environment-map</tt> using binary comparison.
Before performing the binary comparison, a Verifier SHOULD convert both <tt>environment-map</tt> fields into a form which meets CBOR Core Deterministic Encoding Requirements <xref target="STD94"/>.</t>
          <t>If all fields which are present in the condition ECT <tt>environment-map</tt> are present in the ACS entry and are binary identical, then the environments match.</t>
          <t>If any field which is present in the condition ECT <tt>environment-map</tt> is not present in the ACS entry, then the environments do not match.</t>
          <t>If any field which is present in the condition ECT <tt>environment-map</tt> is not binary identical to the corresponding ACS entry field, then the environments do not match.</t>
          <t>If a field is not present in the condition ECT <tt>environment-map</tt> then the presence of, and value of, the corresponding ACS entry field SHALL NOT affect whether the environments match.</t>
        </section>
        <section anchor="sec-compare-authority">
          <name>Authority comparison</name>
          <t>A Verifier SHALL compare the condition ECT's <tt>authority</tt> value to the candidate entry's <tt>authority</tt> value.</t>
          <t>If every entry in the condition ECT <tt>authority</tt> has a matching entry in the ACS entry <tt>authority</tt> field, then the authorities match.
The order of the fields in each <tt>authority</tt> field do not affect the result of the comparison.</t>
          <t>If any entry in the condition ECT <tt>authority</tt> does not have a matching entry in the ACS entry <tt>authority</tt> field then the authorities do not match.</t>
          <t>When comparing two <tt>$crypto-key-type-choice</tt> fields for equality, a Verifier SHALL treat them as equal if their deterministic CBOR encoding is binary equal.</t>
        </section>
        <section anchor="sec-compare-element-list">
          <name>Element list comparison</name>
          <t>A Verifier SHALL iterate over all the entries in the condition ECT <tt>element-list</tt> and compare each one against the corresponding entry in the ACS entry <tt>element-list</tt>.</t>
          <t>If every entry in the condition ECT <tt>element-list</tt> has a matching entry in the ACS entry <tt>element-list</tt> field then the element lists match.</t>
          <t>The order of the fields in each <tt>element-list</tt> field do not affect the result of the comparison.</t>
          <t>If any entry in the condition ECT <tt>element-list</tt> does not have a matching entry in the ACS entry <tt>element-list</tt> field then the <tt>element-list</tt> do not match.</t>
        </section>
        <section anchor="sec-compare-element-map">
          <name>Element map comparison</name>
          <t>A Verifier shall compare each <tt>element-map</tt> within the condition ECT <tt>element-list</tt> against the ACS entry <tt>element-list</tt>.</t>
          <t>First, a Verifier SHALL locate the entries in the ACS entry <tt>element-list</tt> which have a matching <tt>element-id</tt> as the condition ECT <tt>element-map</tt>.
Two <tt>element-id</tt> fields are the same if they are either both omitted, or both present with binary identical deterministic encodings.</t>
          <t>Before performing the binary comparison, a Verifier SHOULD convert both fields into a form which meets CBOR Core Deterministic Encoding Requirements <xref target="STD94"/>.</t>
          <t>If any condition ECT entry <tt>element-id</tt> does not have a corresponding <tt>element-id</tt> in the ACS entry then the element map does not match.</t>
          <t>If any condition ECT entry has multiple corresponding <tt>element-id</tt>s then the element map does not match.</t>
          <t>Second, a Verifier SHALL compare the <tt>element-claims</tt> field within the condition ECT <tt>element-list</tt> and the corresponding field from the ACS entry.
See <xref target="sec-compare-mvm"/>.</t>
        </section>
        <section anchor="sec-compare-mvm">
          <name>Measurement values map map Comparison</name>
          <t>A Verifier SHALL iterate over the codepoints which are present in the condition ECT element's <tt>measurement-values-map</tt>.
Each of the codepoints present in the condition ECT <tt>measurement-values-map</tt> is compared against the same codepoint in the candidate entry <tt>measurement-values-map</tt>.</t>
          <t>If any codepoint present in the condition ECT <tt>measurement-values-map</tt> does not have a corresponding codepoint within the candidate entry <tt>measurement-values-map</tt> then Verifier SHALL remove that candidate entry from the candidate entries array.</t>
          <t>If any codepoint present in the condition ECT <tt>measurement-values-map</tt> does not match the same codepoint within the candidate entry <tt>measurement-values-map</tt> then Verifier SHALL remove that candidate entry from the candidate entries array.</t>
          <section anchor="sec-match-one-codepoint">
            <name>Comparison of a single measurement-values-map codepoint</name>
            <t>A Verifier SHALL compare each condition ECT <tt>measurement-values-map</tt> value against the corresponding ACS entry value using the appropriate algorithm.</t>
            <t>Non-negative codepoints represent standard data representations.
The comparison algorithms for these are defined in this document (in the sections below) or in other specifications.
For some non-negative codepoints their behavior is modified by the CBOR tag at the start of the condition ECT <tt>measurement-values-map</tt> value.</t>
            <t>Negative codepoints represent profile defined data representations.
A Verifier SHALL use the codepoint number, the profile associated with the condition ECT, and the tag value (if present) to select the comparison algorithm.</t>
            <t>If a Verifier is unable to determine the comparison algorithm which applies to a codepoint then it SHALL behave as though the candidate entry does not match the condition ECT.</t>
            <t>Profile writers SHOULD use CBOR tags for widely applicable comparison methods to ease Verifier implementation compliance across profiles.</t>
            <t>The following subsections define the comparison algorithms for the <tt>measurement-values-map</tt> codepoints defined by this specification.</t>
            <section anchor="comparison-for-version-entries">
              <name>Comparison for version entries</name>
              <t>The value stored under <tt>measurement-values-map</tt> codepoint 0 is an version label, which must have type <tt>version-map</tt>.
Two <tt>version-map</tt> values can only be compared for equality, as they are colloquial versions that cannot specify ordering.</t>
            </section>
            <section anchor="comparison-for-svn-entries">
              <name>Comparison for svn entries</name>
              <t>The ACS entry value stored under <tt>measurement-values-map</tt> codepoint 1 is a security version number, which must have type <tt>svn-type</tt>.</t>
              <t>If the entry <tt>svn-type</tt> is a <tt>uint</tt> or a <tt>uint</tt> tagged with #6.552, then comparison with the <tt>uint</tt> named as SVN is as follows.</t>
              <ul spacing="normal">
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is an untagged <tt>uint</tt> or a <tt>uint</tt> tagged with #6.552 then an equality comparison is performed on the <tt>uint</tt> components.
The comparison MUST return true if the value of SVN is equal to the <tt>uint</tt> value in the condition ECT.</t>
                </li>
                <li>
                  <t>If the condition ECT value for <tt>measurement-values-map</tt> codepoint 1 is a <tt>uint</tt> tagged with #6.553 then a minimum comparison is performed.
The comparison MUST return true if the <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 matches a candidate entry containing a single entry with the same algorithm and value.</t>
              <t>To prevent downgrade attacks, if there are multiple algorithms in common between the condition ECT and candidate entry, then the bytes paired with common algorithms must be equal.
A Verifier SHALL treat two algorithm identifiers as equal if they have the same deterministic binary encoding.
If both an integer and a string representation are defined for an algorithm then entities creating ECTs SHOULD use the integer representation.
If condition ECT and ACS entry use different names for the same algorithm, and the Verifier does not recognize that they are the same, then a downgrade attack is possible.</t>
              <t>The comparison MUST return false if the CBOR encoding of the <tt>digests</tt> entry in the condition ECT or the ACS value with the same codepoint is incorrect (for example if fields are missing or the wrong type).</t>
              <t>The comparison MUST return false if the condition ECT digests entry does not contain any digests.</t>
              <t>The comparison MUST return false if either digests entry contains multiple values for the same hash algorithm.</t>
              <t>The Verifier MUST iterate over the condition ECT <tt>digests</tt> array, locating common hash algorithm identifiers (which are present in the condition ECT and in the candidate entry).
If the value associated with any common hash algorithm identifier in the condition ECT differs from the value for the same algorithm identifier in the candidate entry then the comparison MUST return false.</t>
              <t>The comparison MUST return false if there are no hash algorithms from the condition ECT in common with the hash algorithms from the candidate entry ECT.</t>
            </section>
            <section anchor="comparison-for-raw-value-entries">
              <name>Comparison for raw-value entries</name>
              <t>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 with the bytes following the CBOR tag from the candidate entry.
If the byte strings match, and there is another array entry, then the next entry from the condition ECTs array is likewise compared with the next entry of the ACS array.
If all entries of the condition ECTs array match a corresponding entry in the ACS array, then the <tt>cryptokeys</tt> condition ECT matches.
Otherwise, <tt>cryptokeys</tt> does not match.</t>
            </section>
            <section anchor="sec-cmp-integrity-registers">
              <name>Comparison for Integrity Registers</name>
              <t>For each Integrity Register entry in the condition ECT, the Verifier will use the associated identifier (i.e., <tt>integrity-register-id-type-choice</tt>) to look up the matching Integrity Register entry in the candidate entry.
If no entry is found, the comparison MUST return false.
Instead, if an entry is found, the digest comparison proceeds as defined in <xref target="sec-cmp-digests"/> after equivalence has been found according to <xref target="sec-comid-integrity-registers"/>.
Note that it is not required for all the entries in the candidate entry to be used during matching: the condition ECT could consist of a subset of the device's register space. In TPM parlance, a TPM "quote" may report all PCRs in Evidence, while a condition ECT could describe a subset of PCRs.</t>
            </section>
          </section>
        </section>
        <section anchor="sec-compare-profile">
          <name>Profile-directed Comparison</name>
          <t>A profile MUST specify comparison algorithms for its additions to <tt>$</tt>-prefixed CoRIM CDDL codepoints when this specification does not prescribe binary comparison.
The profile must specify how to compare the CBOR tagged Reference Value against the ACS.</t>
          <t>Note that a Verifier may compare Reference Values in any order, so the comparison should not be stateful.</t>
        </section>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>. The description of
implementations in this section is intended to assist the IETF in its decision
processes in progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.  This is not intended as, and must not
be construed to be, a catalogue of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as Evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.  It is up to the individual working
groups to use this information as they see fit".</t>
      <section anchor="veraison">
        <name>Veraison</name>
        <ul spacing="normal">
          <li>
            <t>Organization responsible for the implementation: Veraison Project, Linux
Foundation</t>
          </li>
          <li>
            <t>Implementation's web page:
<eref target="https://github.com/veraison/corim/blob/main/README.md">https://github.com/veraison/corim/README.md</eref></t>
          </li>
          <li>
            <t>Brief general description: The <tt>corim/corim</tt> and <tt>corim/comid</tt> packages
provide a golang API for low-level manipulation of Concise Reference
Integrity Manifest (CoRIM) and Concise Module Identifier (CoMID) tags
respectively.  The <tt>corim/cocli</tt> package uses the API above (as well as the
API from the <tt>veraison/swid</tt> package) to provide a user command line
interface for working with CoRIM, CoMID and CoSWID. Specifically, it allows
creating, signing, verifying, displaying, uploading, and more. See
<eref target="https://github.com/veraison/corim/blob/main/cocli/README.md">https://github.com/cocli/README.md</eref> for
further details.</t>
          </li>
          <li>
            <t>Implementation's level of maturity: alpha.</t>
          </li>
          <li>
            <t>Coverage: the whole protocol is implemented, including PSA-specific
extensions <xref target="I-D.fdb-rats-psa-endorsements"/>.</t>
          </li>
          <li>
            <t>Version compatibility: Version -02 of the draft</t>
          </li>
          <li>
            <t>Licensing: Apache 2.0
<eref target="https://github.com/veraison/corim/blob/main/LICENSE">https://github.com/veraison/corim/blob/main/LICENSE</eref></t>
          </li>
          <li>
            <t>Implementation experience: n/a</t>
          </li>
          <li>
            <t>Contact information:
<eref target="https://veraison.zulipchat.com">https://veraison.zulipchat.com</eref></t>
          </li>
          <li>
            <t>Last updated:
<eref target="https://github.com/veraison/corim/commits/main">https://github.com/veraison/corim/commits/main</eref></t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-sec">
      <name>Security and Privacy Considerations</name>
      <t>Evidence appraisal is at the core of any RATS protocol flow, mediating all interactions between Attesters and their Relying Parties.
The Verifier is effectively part of the Attesters' and Relying Parties' trusted computing base (TCB).
Any mistake in the appraisal procedure conducted by the Verifier could have security implications.
For instance, it could lead to the subversion of an access control function, which creates a chance for privilege escalation.</t>
      <t>Therefore, the Verifier’s code and configuration, especially those of the CoRIM processor, are primary security assets that must be built and maintained as securely as possible.</t>
      <t>The protection of the Verifier system should be considered throughout its entire lifecycle, from design to operation.
This includes the following aspects:</t>
      <ul spacing="normal">
        <li>
          <t>Minimizing implementation complexity (see also <xref section="6.1" sectionFormat="of" target="I-D.ietf-rats-endorsements"/>);</t>
        </li>
        <li>
          <t>Using memory-safe programming languages;</t>
        </li>
        <li>
          <t>Using secure defaults;</t>
        </li>
        <li>
          <t>Minimizing the attack surface by avoiding unnecessary features that could be exploited by attackers;</t>
        </li>
        <li>
          <t>Applying the principle of least privilege to the system's users;</t>
        </li>
        <li>
          <t>Minimizing the potential impact of security breaches by implementing separation of duties in both the software and operational architecture;</t>
        </li>
        <li>
          <t>Conducting regular, automated audits and reviews of the system, such as ensuring that users' privileges are correctly configured and that any new code has been audited and approved by independent parties;</t>
        </li>
        <li>
          <t>Failing securely in the event of errors to avoid compromising the security of the system.</t>
        </li>
      </ul>
      <t>It is critical that appraisal procedures are auditable and reproducible.
The integrity of code and data during execution is an explicit objective, for example, ensuring that the appraisal functions are executed in an attestable trusted execution environment (TEE).</t>
      <t>The integrity of public and private key material and the secrecy of private key material must be ensured at all times.
This includes key material carried in attestation key triples and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).
For more detailed information on protecting Trust Anchors, refer to <xref section="12.4" sectionFormat="of" target="RFC9334"/>.
Utilizing the public part of an asymmetric key pair that is used for Evidence generation to identify an Attesting Environment raises privacy considerations that must be carefully considered.</t>
      <t>The Verifier should use cryptographically protected, mutually authenticated secure channels to all its trusted input sources (Endorsers, RVPs, Verifier Owners).
These links must reach as deep as possible - possibly terminating within the appraisal session context - to avoid man-in-the-middle attacks.
Minimizing the use of intermediaries is also vital: each intermediary becomes another party that might need to be trusted and therefore factored in the Attesters and Relying Parties' TCBs.
Refer to <xref section="12.2" sectionFormat="of" target="RFC9334"/> for information on Conceptual Messages protection.</t>
    </section>
    <section anchor="sec-iana-cons">
      <name>IANA Considerations</name>
      <section anchor="new-cose-header-parameters">
        <name>New COSE Header Parameters</name>
      </section>
      <section anchor="sec-iana-cbor-tags">
        <name>New CBOR Tags</name>
        <t>IANA is requested to allocate the following tags in the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, preferably with the specific CBOR tag value requested:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">500</td>
              <td align="left">
                <tt>tag</tt></td>
              <td align="left">Reserved for backward compatibility</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">501</td>
              <td align="left">
                <tt>map</tt></td>
              <td align="left">A tagged-unsigned-corim-map, see <xref target="sec-corim-map"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">502-504</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">505</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-swid-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">506</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-mid-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">507</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">508</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">A tagged-concise-tl-tag, see <xref target="sec-corim-tags"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">509-549</td>
              <td align="left">
                <tt>any</tt></td>
              <td align="left">Earmarked for CoRIM</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">550</td>
              <td align="left">
                <tt>bytes .size 33</tt></td>
              <td align="left">tagged-ueid-type, see <xref target="sec-common-ueid"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">552</td>
              <td align="left">
                <tt>uint</tt></td>
              <td align="left">tagged-svn, see <xref target="sec-comid-svn"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">553</td>
              <td align="left">
                <tt>uint</tt></td>
              <td align="left">tagged-min-svn, see <xref target="sec-comid-svn"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">554</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-key-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">555</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-cert-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">556</td>
              <td align="left">
                <tt>text</tt></td>
              <td align="left">tagged-pkix-base64-cert-path-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">557</td>
              <td align="left">
                <tt>[int/text, bytes]</tt></td>
              <td align="left">tagged-thumbprint-type, see <xref target="sec-common-hash-entry"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">558</td>
              <td align="left">
                <tt>COSE_Key/ COSE_KeySet</tt></td>
              <td align="left">tagged-cose-key-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">559</td>
              <td align="left">
                <tt>digest</tt></td>
              <td align="left">tagged-cert-thumbprint-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">560</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">tagged-bytes, see <xref target="sec-common-tagged-bytes"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">561</td>
              <td align="left">
                <tt>digest</tt></td>
              <td align="left">tagged-cert-path-thumbprint-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">562</td>
              <td align="left">
                <tt>bytes</tt></td>
              <td align="left">tagged-pkix-asn1der-cert-type, see <xref target="sec-crypto-keys"/></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">563</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-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>
        <artwork><![CDATA[
Future registrations for this registry are to be made based on {{RFC8126}} as follows:
]]></artwork>
        <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-trples</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-endorsment-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</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-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="RFC4122">
          <front>
            <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4122"/>
          <seriesInfo name="DOI" value="10.17487/RFC4122"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9090">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="July" year="2021"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), defined in RFC 8949, is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>This document defines CBOR tags for object identifiers (OIDs) and is the reference document for the IANA registration of the CBOR tags so defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9090"/>
          <seriesInfo name="DOI" value="10.17487/RFC9090"/>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="STD66">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles. SWID tag representations can be too large for devices with network and storage constraints. This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags. CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="IANA.language-subtag-registry" target="https://www.iana.org/assignments/language-subtag-registry">
          <front>
            <title>Language Subtag Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </reference>
        <reference anchor="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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="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="I-D.fdb-rats-psa-endorsements">
          <front>
            <title>A CoRIM Profile for Arm's Platform Security Architecture (PSA)</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Ltd</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="3" month="March" year="2025"/>
            <abstract>
              <t>   PSA Endorsements include reference values, endorsed values,
   cryptographic key material and certification status information that
   a Verifier may need 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-06"/>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="23" month="September" year="2024"/>
            <abstract>
              <t>   The Arm Platform Security Architecture (PSA) is a family of hardware
   and firmware security specifications, as well as open-source
   reference implementations, to help device makers and chip
   manufacturers build best-practice security into products.  Devices
   that are PSA compliant can produce attestation tokens as described in
   this memo, which are the basis for many different protocols,
   including secure provisioning and network access control.  This
   document specifies the PSA attestation token structure and semantics.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-24"/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="8" month="November" year="2024"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-05"/>
        </reference>
        <reference anchor="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>Intel</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="28" month="February" year="2025"/>
            <abstract>
              <t>   This document defines a conceptual message wrapper (CMW) format - an
   encapsulation method applicable to any RATS conceptual message, such
   as Evidence, Attestation Results, Endorsements, and Reference Values.
   It also describes a collection type that aggregates one or more CMWs
   into a single message.

   In addition, this document specifies a corresponding CBOR tag, JSON
   Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, and an X.509
   extension.  These mechanisms enable the embedding of enveloped
   conceptual messages into CBOR-based protocols, web APIs, and PKIX
   protocols.  Moreover, a Media Type and a CoAP Content-Format are
   defined for transporting CMWs over HTTP, MIME, CoAP, and other
   Internet protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-12"/>
        </reference>
        <reference anchor="DICE.Layer" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Layering-Architecture-r19_pub.pdf">
          <front>
            <title>DICE Layering Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.19" value=""/>
        </reference>
        <reference anchor="IANA.coswid" target="https://www.iana.org/assignments/coswid">
          <front>
            <title>Concise Software Identifier (CoSWID)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </reference>
        <reference anchor="I-D.ietf-rats-concise-ta-stores">
          <front>
            <title>Concise TA Stores (CoTS)</title>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software</organization>
            </author>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <date day="5" month="December" year="2023"/>
            <abstract>
              <t>   Trust anchor (TA) stores may be used for several purposes in the
   Remote Attestation Procedures (RATS) architecture including verifying
   endorsements, reference values, digital letters of approval,
   attestations, or public key certificates.  This document describes a
   Concise Reference Integrity Manifest (CoRIM) extension that may be
   used to convey optionally constrained trust anchor stores containing
   optionally constrained trust anchors in support of these purposes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-concise-ta-stores-02"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="6" month="February" 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-08"/>
        </reference>
        <reference anchor="DICE.cert" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Certificate-Profiles-r01_pub.pdf">
          <front>
            <title>DICE Certificate Profiles</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.01" value=""/>
        </reference>
        <reference anchor="TNC.Arch" target="https://trustedcomputinggroup.org/wp-content/uploads/TNC_Architecture_v1_1_r2.pdf">
          <front>
            <title>TCG Trusted Network Connect TNC Architecture for Interoperability</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2006" month="May"/>
          </front>
          <seriesInfo name="Specification Version 1.1 Revision 2" value=""/>
        </reference>
        <reference anchor="TPM2.Part1" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library, Part 1: Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Family &quot;2.0&quot;, Level 00, Revision 01.83" value=""/>
        </reference>
        <reference anchor="W3C.rdf11-primer" target="https://www.w3.org/TR/rdf11-primer/">
          <front>
            <title>RDF 1.1 Primer</title>
            <author/>
          </front>
          <seriesInfo name="W3C NOTE" value="rdf11-primer"/>
          <seriesInfo name="W3C" value="rdf11-primer"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <?line 3494?>

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

concise-rim-type-choice /= tagged-unsigned-corim-map
concise-rim-type-choice /= 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
$concise-tag-type-choice /= tagged-concise-mid-tag
$concise-tag-type-choice /= tagged-concise-tl-tag

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

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

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

corim-map = {
  &(id: 0) => $corim-id-type-choice
  &(tags: 1) => [ + $concise-tag-type-choice ]
  ? &(dependent-rims: 2) => [ + corim-locator-map ]
  ? &(profile: 3) => $profile-type-choice
  ? &(rim-validity: 4) => validity-map
  ? &(entities: 5) => [ + corim-entity-map ]
  * $$corim-map-extension
}
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)
$corim-role-type-choice /= &(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
  signature: bstr
]

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

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

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

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

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

tagged-concise-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
$class-id-type-choice /= tagged-uuid-type
$class-id-type-choice /= tagged-bytes

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

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

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

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

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

COSE_KeySet = [ + COSE_Key ]

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

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

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

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

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

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

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

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

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

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

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

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

$entity-name-type-choice /= text

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

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

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

identity-triple-record = [
  environment: 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
$instance-id-type-choice /= tagged-uuid-type
$instance-id-type-choice /= $crypto-key-type-choice
$instance-id-type-choice /= tagged-bytes

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

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

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

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

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

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

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

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

$raw-value-type-choice /= tagged-bytes
$raw-value-type-choice /= 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
$tag-id-type-choice /= uuid-type

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

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

tag-version-type = uint .default 0

tagged-bytes = #6.560(bytes)

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

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

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

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

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

digests-type = [ + digest ]

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

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

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

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

any-uri = uri
label = text / int

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

integer-time = #6.1(int)

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

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

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

abandon=1
private=2
shared=3

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

optional=1
required=2
recommended=3

]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Carl Wallace"/> for review and comments on this document.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization>Universität Bremen TZI</organization>
        <address>
          <postal>
            <street>Postfach 330440</street>
            <city>Bremen</city>
            <code>D-28359</code>
            <country>Germany</country>
          </postal>
          <phone>+49-421-218-63921</phone>
          <email>cabo@tzi.org</email>
        </address>
      </contact>
      <t>Carsten Bormann contributed to the CDDL specifications and the IANA considerations.</t>
      <contact initials="A." surname="Draper" fullname="Andrew Draper">
        <organization>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+y92Xbk1rUg+I6vQFNqi5QjIjkrk9eSTTEpmVU5VZLyUF5q
ERGBIOFEAGEAQSaVYq36iH7pt3roL6n+k/qS3uM5+wCIIFOS3UNdeS0nAzg4
4z57HobDYXRzFO9FUZM1eXoUn5TFJKvT+G06S6u0mKTxWdGkV1XW3MUvkyKb
pXUTJeNxld5g47dnL6NpOSmSOXw7rZJZM8zSZjaskqYeTsoqmw+3v4gmCXRR
VndHcd1Mo0lZ1GlRL+ujuKmWaVQvx/OsrrOyaO4W0M3Z6cU3UZQtKnpfN7vb
28+2d6OkSpOjeOM8nSxxNhvRbVm9u6rK5QKevk3nZZPGxxcNzC9poK/4TVVO
0umySs83onfpHbSeHsUw30H89vjifBAnjWs7iG/SKptlaTWI6+Vikd/Fk+sk
K6IIGhTTH5K8LFKZ7SI7iuK4KSdH8V1aw591WTVVOqvd77u5/Qktp+miuT6K
D6MoWTbXZXUUDeOsgBZ/HMVfZ9W76zL/EVryJv4xLd7Zp2V1dRR/UyXL4rqE
I4nPzy7gaTpPsvwovobGo7E0/gPu/Ah2t0kmjQ5xMYq/KesalulGuLgu50lt
HsMQcLI/0lYcxS+yIqlKPwY3H0nzP+T0egTf6BB/HcXP0/p6ATuVukH+Wl7B
s+BFOExSzf0Yd9R6NNXWf4C3sJK5DvFqFJ/Ps+badf8qnbontEMIpbnvsEin
oxrf/yHDF7avP4/iN0nhevpzmslv6uePy+QWnlykk+uizMurjA5Rer3N8jxL
5iOYIzT6wzW1pb4RqJsqGy8bPN44lrFO4IDLap4U2L+OeJJUdZMWwRsa+7si
Aziss+b/+j+b+OsqnUOji/98Rg1qgLG0OYrflHUzSybX8d7e9v7+Nr2bwHU4
kg/4QTmFcZ4Pd5/uHTyTJ0uYH7T6NsVB7+jh4prA+rf7z4b7uzvD3Z2nw8O9
Z7s79FKWPEnG5R+aHzM6cO5JFkqn+BU9i9tr8q3gnJoybq7T+OT58xdxvUgn
cNEmBAR1DGdN786OXx3jN3U2TSt+N/K7eAwAViWLtDKbeFxMq/TWPqctPM4b
6MAuIKGGoyk1/ENC7+nIVi9G+g7WAJOE3xO4yYMYwHRSZQvGHLiEGsYqmmxS
x+UMm00zfJfkcVpMy6rGc2lgsXV8m+Y5/ktLxQ1rgingVt2m6TvAP4Bfs/SW
Oixh8Kr+LE6hW7stz0fxt3nyY2p25Tl0UiTmMW3Kt2V5lafxixcndmOm1PYK
m/7hilo8sC3Sud0WBKV4kieAPO+y4ir+xxJQqjvZaVYn83F2tZTTFkAIdstg
4ThZLKoEvsl/ra2KCgTHBm4V3sm335zs7+zuHsXLZTbl3we7T7eP4sW77P1w
klYNP/xi//CpPGzS9/Lw6eEOtJxMpzn/fgY0CX6Py2pYZlPEEecXz58dHtFe
DeFNWfMJfHnEzQ92pc2+bwNfmzZPn+0/4zaHvh+gdabJ3rOnhzL+3rM9GuVW
1/Jsb2//KCbCm1QTRIx4q0Z5UsABXKVDILNNcjWs0ivYTkQFrTfwwV9Gh7Aq
Gk/YAT37s2LGW4k7r7jxLv4f//V/j4/PX412ANIB6SAIVMs8rY/ks3N73fGA
vk7qbBKfauO32Dje/Pr07dYAcEhRFtA2d++lF2l1Aq0Irp7DAuDtMquvAQbb
nT2HZvShElvuxFGJqkjkdl6keQogP18WDiEBCi4Zh06BZzmKd7d3DobbTxkF
A4+Q1hnshPZ5dvHd8AIOhnqBu87LpF3kTUyqK0Ta102zqI+ePLm9vR1lzXIE
NOlJlU6eXAzfnp4MtT0dF97j6TDz230U+0fAFekLB9JfHOw8O4r/fqvA+2x/
V948OzikP8+Gz0ez6Zh5skWdDC1WAkBvPZEvmnqCDEeRXfkPm/JdWvAX9Kc0
9Rxf2HPnUaf9vL4a3gJmBkie38Lb52cnp6MXyV1aBVCIj2N6jOd8DNCdARA2
wNutOugLZBwBOE7K+WKJwBJ/i5xi+xzjPyG9hTPbGW0DXwiIhH5tj3aeGSD4
D0vAMrvbu/2H2vBQEx2JWFIkl09uF0NEWbDyJ8tFXibT+gmuZKgrGdqVDKud
Zz8sluPRYjpTYODrrdccr253xxOYCvxf58WEGflhkwxrYEpS5Lblz07bpNqv
M2TJ4B89BcSH3UM4gad8oVNksGdZTvzRP+UMtnf+iWdgFjLUhQyr7R1zBBev
TkZ4QsEubFycfOtW9iptUAhBoamAU8QvAuiM4bIyzimB+UjGWU6Cyy/crxCp
+t3b8Zu3a3ZuB+Q23Lrtw1++dbDAH+wCf7jZ+WHnh2pXd+zNy93Rm6Rqdlp7
Jit7kycN4q/4ZTldIkeSjaukuhvE+E28cxRs3i/ep2+SeQZAs7E72t4YxC/S
mzSPtwMQ2xk93bMwlhRLmE68uz9AUNsffOSGwSUrl9UkfdIs5sOc1zYMON4n
UQTbiew6EvrTF9+g6PrNSXOd1RtRNBwO42QMxBnlt0hF2qZHpAUyh0LsFpDd
ZJyjtJ4T/4X7COtH5iip67SuieGiGQOgwjAFPkO2C7gm0z3IlcKKg+gKGAI7
mMK8p2l8e53iY9j6uCgbfJEWV8A1AA8Kuz1BKEcRC+dMFPQWhK44a0bR6Q18
jgoEkCCWTWcSk6SIxynSCOwddzNP39MssibOahgeaMY0XhYg9udI8CcwvaSJ
4RjhiOyC77D5JFnQTsDacMmelYQHOpNRdOEXiH2NlxW8wM+buwVyHgAu5WyG
sM5yS4LXixQDo+gMGBhoXuFz5PGXcOH9GnW8gfkG9vgfywxPC3euLKD3WYVS
sftsVpVzWLM7hQFMqYmTvC5jATNgb6wIAdvjNTN/SnLgt7kTaVb1tkHAwSGr
GvUbIDwCXw08+BIESbxp+HiKTCHLr/ALDnsKtwS+L28LeI87h2dSTpY4ERXj
UoYvw63EwFLxVBH1VekC1osQD0f18EIAok6+fv025t5GfCHmGfDcaRR9goi0
KnHbcZwPnwDwAVMEj+4jPFfS6oTY98OH85Rb7yMYDB1vfH9vVlAjRAGgVCWQ
gAFMYpIvp2bCD20pQVUNEHVbch9AR1MDULNlDtQlh6Mc3wXapRh2v/wFR/LI
+emYwf5vpqOr0SBGqINTqpc5PIMRJo4q4q4BVky2+o9Kvp9mV9jDFvQBqB03
DS+Nh2eBGwsg8HNZ82aYm4Kf8RVK/e0AFjkFRnfauSaAlDLYMpbDxzAd94Lo
rLD3iDXhzuPFTRyCsQcwiOew8Ayey1GQgifOs3eAXeIFARtiCjzdG153CbDi
IGZRZriXcJJNNoeRjms6SjirIu05aQDlq2vBA/I2gT4qlY3wKnU2Gj4LDo7w
Fom5t7hXAFw8COJf2MwfEfzs/p9NU4TCAQ9L4nd3YrfXJSFBeDsv4TzfFeUt
AOwVYVQmWHAYV0lF9wImjWRmsgS5n/YVlgs4gfZOOn9wGYgdaCnuezgonXUN
uw04PplUJRCKG5YgCA5h4wt9zufTCP5LYqD6qOXg5qPolaJc3yuSnPSmzG/S
FrUr0tt4nib1klRoDV5eRNopEwGgUul7RGQAtoKgC4cc4NLeMcK+TQoijwu+
eNRpLcpqvB/pDTZIGlGe1EIXLVjDfiRwpIS8CLg8bAXkB4Yg4k2Ed2h4y4FX
l0zuaJHJBGaQwA/s6Tr1KNmJ5A/j5WYF7k8IQwDITIGzmrWPuLcrhKwCcd1j
7Awo86OFYYtQLFsb7JAwK3cwRDxQw8ioQbEMbBbxDz/CkTNx+fBhiHoXIAFO
ZVEvs4ZAHdcwqe4WTXkFQil05PGJQ3nXSQ0czBVg7eyqoD+gH/wGGjGyBP6t
qMWiwQiDeUX4o2CBAZD38VSVhHg5wx32eM3hpwUMmwrn5pDmsdeXwbACd3T/
0/cJojtuv4DbkuHyYEfwCe/jHLYN2Di5Pm6gHgIV8y4K3ECH1wB9V2mRlsu6
B54cNAv+5eHorAAseSaI7ieoNCmR8w4HnYoS/A6PUmaESJIwD31TtEdtwV4v
PcwKOALijHX/4BTOU+QSkJNQAxAI2ZP7e7hv0SefxBdpNc9E1cV9Ej/H8P1C
1GfMfbxLYb5wQet44+V35xcgcNC/8avX9Pfb0//03dnb0+f49/kfj1+8cH9E
0uL8j6+/e/Hc/+W/PHn98uXpq+f8MTyNg0fRxsvjv26wHnrj9ZuLs9evjl9s
8HW3QJUwVz8WrAH7h9xlUkcKbXSFvj5589//284+bMr/AnLJ7s7OM7go/OPp
zhf78APkAdF6E3bln4BZ7iIg4ClQBIQboATAkMOtyoFzgdteX+O1R3w7in73
+xwkgHh4+PuvoqjFVy4RyGF2c0YfonFHYWAG3xDT0CirlxhWbxR9AyCgVB4g
6ipHcxWKlnW6lhEc9U8BpSaaxg8byJApN7HxA83rh43KQZd77mcJO+BH3PUj
WlUYjXzWOqSBGzi8pDSooD9pylwm4Tjc37uiLO7m9Sg+tmgS+Mcls8IibSXE
7TWKy+DvjDAgnlk8o9t2B3d3jn0mbqwtYg25B2g5y4mPkT7gjG7SO55G4iZM
HQJGaspJmcPNh6tdXKVboxjvyvgOyR9R/pp4xhC5+1kTzCLLksyBBmckKd4m
dyO+co25nYTEQvw+YHqAv0GCAMilTXx9fkqPyjrFR4B3gJL9WwTz9UzNgHua
ZslVUZLkCfKb4157T/kpnTIPHOFA/tW3/IrmMCKU0gJuXGWSw7oQmwpY0XYu
SG0Egy8LFExGKWw3idcnfLfiF2nTEB4DZPVJ/K3AvMhGegXuV0L4rMzz8pZO
AGd1FEUfjuKbepFM0i83tjfuI09gTvIkg3mfp3DuxyfnW0fREYCaPyni5a7L
HPDfaXGTVWWBQw3ps/hiuchTYV2vE+C+xmnqrD3plKk79EoGHiABdYuG6Je1
fEgqISDphA8cNVygcqQmgMLt9XN/U+bZBIGm/YgXYax5yoU7Ex5PGvZ+BpAN
/ya4YaFygXcG1qACH19i4ZpRC6O0izcDUOEyn/I+KJ+dDpCRwYZ1SpIe6d3e
N7zwKyCIcF2qdJoxl6eGNOm8LEadpeHVRka3Fn6IppOJbMpd5YxWlsWUBCri
xXXZTBmJrd3odE3UVmS0Db4GLYxqdVZvRbpk0Hm7FnScJDqztsBi+gBMOUzI
mhnu2jPW4TwUQ9GXWe3xF6l7Ar0SroRhrSFYueg7V56BHC4KUdUyDaDBvOOv
UKtVCzsTMJvIQ6DiLbvC241SIrCYjB2xBzjlng8UsyP8v+fDAQ5tOU9QXgh8
LsgejbOHdVGHfBKLLJ0QX2ik9IGKC6StJS4SxhqSEAyIMqsMgBjiOtrt6FlC
XMjv/37bEJjAJECOO3tO8wDcOsXp0V2mVRT22N151SDrInoENhA492yeoRRq
GwL+aBIATaNYgTME1pdQpyMn0M30llAvHMp8nN+tWtKIeYY04UkLnzkVjYBA
MwA3mv6dHF47+7YR72gJ05K0gZ5Z8tpJ5GGEcx/EbhyRnFDOZN1USmobBKBe
jQ3rYhSg3TKh7Syr5vT3nNTvo6g9Br6rk0yl3g3jyrBBnB4xekQ17xAn6so+
q2PLJcFcm8k19Ke4md4jsUOtveDLns3eW8MqmRPmLUffHLQVE9mmz/F8ke8I
1U/CT21ckBrfQsoGk1vnl0CKfJyC8EBOeAfUX+FxOmQD4kdZsVsIfHN1HWqY
ZUCeBCsSV44p6ERUIXmeTkRyDi66QwasYOrMrH83Rzs9zO4KTBpvnp5cdFCz
0GPGVQLjN6oTSLygCm+72xsv8mXtv3tp9CtPBCX29sVcDxErIcfdvnmfYcq8
aM83KLpWNYCilLqz28xFiGsP9ETsOGOOXpTEd7kPIy2L7B/LlE80aXpxkUVF
KRmpAHKL5XwsHftrqldzBS7aCXCR2VM+OkbQgNHKSUY4gHCemqA83DwGUQE5
gM4Qka4yIlGz8K6V47+jIZTWZE98QkzPOBV7wU0CO4AggnY/auxwk1coihkG
xNUSAH1eAmc7XZIHAGxq1SwXSFurZTFEDRlJtVeyuHTyLt58e3F2sjVoyTU8
P+KxgC6/+S5mdxic/rGqAKe6CjhbnSBO22C7Pog8BQ4OtnRKnW9cAUMDkvGG
3QXhvmCBWc4cfls/NhC4dRyNCLyBnrxl2BOc25pkAEFqyUahCJGLQtSz0cHo
AL+EJs50S5DVnlhA5uy19XohHB0ucUYbWBFfyT/c/ALM3FEN6t4web/C+2wM
bGSQZInP2yRbYgJxc1VVghRGwE8mhlV2kZ4Z0GUh2kVYW4dWQ8AG0zDSFAoV
23gkGzSwouJor/u6j03qJ4QXFerp+DyI0MBavJGEbQhshkbnWyfZfFMB00PO
Cptvn3+zFdOdSlBKp72jSyrKVEb3bNEBbvo6W8DFbW5J9AI8xneDdMuF3hS1
fDMSKBKiHgKRvR3Zbvxt89rcmywhlhYElQlpEc8KVhEMALDQQBPDKljSco10
wIZ2CPvLgJXKJhkPg/2jxpdFd98QrjN6WD3BV6R0V5Ulv7a2YaMEVdELGbNp
qveUP2TSYiwmnhWAx13c4fxgs8qj6FlKu2i42BCTtHkEEgYAeIm2mNvfYgc+
fPj9n/dORtV0trMzXFSAOSsCq088jkF3tmICkmZiLK2BflQ0CoFrg9Fa+51g
gYKdQZ3i6hpFaD/cHHGYCO/+U7EcYpxApbgGX45TkJwzADY9bWo9HCekCXNC
I6Juggu+rqJvEUfSAaunUF3rkAoRQhT4/MTQ/lOz7ps3BGCqIdtUhppvViir
RoaWO07pjAsFxTnBbSKqfsfzvScnxLyt0RuEqJ7vA5EUEmyrFGEc7lxWyPc9
WvAUXcNpZrTmebLgR27M1jdsrnU9wtRH0dd3Ip8yre79sDVXOb5UdwXBNZuJ
tIDGLEfnSdyuaunkXZouaCTgRt5hA7REkgSCCglhKSqQh51qRvonQRu+YTL6
eaJ83+f8jfsthkZF2HzwziLhATWr6yXxMCVrZNPZjPiEpg/OUf9X0zE708qq
M1F3lBWCEs4OrTLC14SeKwv19hl4s9lqjRzy9jRpIAaodnBmz8E6bxDnQzDw
h/ma/AsGbaeigbfAhmdf4p3KCEGS4t/5hyvA2zMHPgnhUWhqxQ7zFWzZAmVN
9OJF3f4J60Zxo16qnQoVHYx2de0dA6rfXuTvUFen7AeDhZFHmejAXhEclI7I
JzE6G3nFXks4afGBeNZLdFOypzqK3sjqiEt+zIJozxJEV8jleuLS0gmwgQPo
PKpNPfeDqgGd/wyQfoou+W7u0PcMqGDj9R8dxkdMhw9wTMA5/OnNFqE0vOsk
1mTeuwo3EjUbHRasiOE72CzeUMIcDEL2MaEJ/Fx0HI5IA2yHaBn4CZINC8Fz
bP73t4aVlHCkIrxZ47un2r3DBJudse1UtKniyBUsznaH+EP2z3hHwArdelEF
FbANdygPWfNJj7oyhNvgpNG/wPRH5hdWoAqvzcaNaWdvetZZ9KEdEJwKIIB4
p51eXGQzsUQDF6f2ItYWzLIrEqDoSk8aVYbLLuLspxm+6Ag1/YtCY6gO8eVf
NsgE4JB5vHHx9rvzi9PnX8K/pxvItRU1nBNMT8d1WBmNC16tkfFWCVGfBvjJ
c6jq5POou+wsFHNU7E2Z6HpjGKniTCTLSqqKXRjxnRYxFbWFO4QOukS3M77e
NK7bwHizscRwi1E4jSGw0V2LaNATcm3qGhr6PTHUJ2TatTtP0AOi9mbbnhHJ
3QZN3S28tMFGbetVsmHFNpFD2UBgPU9IRUc3dkok1uAOy9rydlj8FXwVbnQA
S8SMUcgSXP08X+KGNWoTFMdEcokdJhMW2z75RINPcrjbAY/gXBnpLTDYi/uu
aZiNmcathbcccEgpWJ0PxRhPi6DdA4wjciGCCntQgXBVTOTW8DpJwL6i+EVH
Qu+dJzQLfctmWM6G9aRcCLdsFouHbDwtxBqwZty+K4lQENhqm3E+nMwrMg3f
oi8C35YVAMnXxO4nmn5BEmy8Wubzc337OWpvl/OCN2rFTGuj02m7ZgQzJXio
YLIB6KCHNQAi3XNkegAODegosEVR32Zok+Br9Edl6MB+gcEh4ZFxmZgpgULN
gcOU9eJHeHjju9g49gYYom5/DtKPjwHFDjJBYzocGx2arEb8gdzFir3rP+YB
9skXea3VUWfEI9217N9VG9xWYAxWe4T3gxQmR1H0U3zyMr5AyPkpdnABf1st
zE/RT8PhEJo6pPNT/EL4TfdImLef4rNQpUd0a4ncREP6jukAN7fzndlqOmzv
XeiEIphGlwn0M+m8sjNKvJOCqJuNTKWGn4mTtmQqhuvz07ASvEhgtEYPMaXj
ZUc06QDN+wk7OTkQribCb7oNblm72vuct3ubeM60sxLcefvRis7bh+HcRsPD
OKewlZ+zPIZIiXsh4xUGNRK+9XoHtpW7hT60QNKWzZypgnzkpVPvI0C2WL22
rU1JnHPj4/dhFHtnPMB9aTFFc/P9Pe2Pu44fe+b64RD9FZlG/6rHvrr/9ord
EsKTF5+Kj10Xf/bPWtWq3ttrksmTwqC1rj5k/LGLdK36OvtFCwau4y74as0I
xL3T52/PW0CaVDUB6Iej+BPlLjjo7cuNHraixfdZHmfjnuj8f1piZPyPSJLO
WNHFFP4f/Dy9j/72v4nea5g037uYtCs4jeUY4/ef+KjO26snvRlZnhCqrZ/s
7u+i3hdIlrczI4m9QQKDFBcJIfvQ0SSQK8KIwBsJuKFXxLdkKlO3GBsmsMz8
F8mcuAzTf4dzxj1sdDp3xPz8xCQVBZIGDvtUHJt/ak3bd+tprPU3xj4m12VG
FPcyIxs0eVg9iUej0SU+/PTy1fHL00tZJrW9JFCe5CXx3Kv6wK9XfMouBf6j
zXgn/vKrmL59Eu/i3zSLLZ6BToE+6+ko6GHQ/t58yx81zIzgVMM5XtLb5OpK
lwWNPjkc7ezubUJbngy/Hl62vkKNMrz90DuNex1meAnteBKzPLnCa3r5m804
OYp3BvH4CD7Z8k2pxaW5Rh4E9DIRDFwgDDDBWwmzdI8eFVygsQUC3HQz7lHR
5LTDiXpkqCIXF4Kjq4MNcMYJCcEZRxjxoCuiDEaua/HYCt281FaftF1U8WXC
Ps7HOAWemRNLgPTOEzRYpiA4wmwQ2mlOYnpRcZGdFNBtR7RiA6fUHIipoEAc
xf4HHAzW1vaQHgZVALgRsgp4M81mtM0SNwOs8OfuBCTQ9+w5bvfLs+dbvIub
jEJhhGx6f7+lDhx+R8lgY7W8iEK8yxa8bTkzoROsH/a8nDX0kgc+/7Mdecjh
9Diu9Rzsbozdl1p79LsSjAh7wnQLhrt40V5mk9tVWsJDuyL+3ThN/tCZuxzX
IOKL5shBaRQ907ObdIPDhtARDDtvxw2JSZIRMWJ0VLFxgJPCNHt7MduN/t0c
gBSm6mkpDd2yyQPhuJigwfOc8gzQDoDAhTutGQdw9WidX1YVqefEUqZCr0ja
sAtwwnJLBHuTzumU5XS6POrqk6jfjfHRIedJlxvESSWkIaaYOX5Qu20hFTx5
ECVV1RYKy4XwsAqVBNnoeQZ7UlbOV4O3FgYmVReJNWIXunOoQkbFzxecbcDM
e9ANWnIxGqLH9PGTsgFecw0IRggUnCUiCR0g8cQXzaOyGS2qLYc/gWOEy/gj
jz5Dk7l3G3ISJKq3l1dzI/dzx9QlXlvT7w1pElKjGnQnqoGTJfXo9I3UJwGm
wIVdjAbTxBxJ8MCqPqt9liG3u6zxFyMF9iIGeTw19DXCn+gJwEievbNq5yCE
YNpwoipJoYOCUa9Ch+/KvCS1DhxWrlEojtAMZVlEV1lB+Dm7b2VTJFILuPbl
1M+cHRzE6Qe9nbgB3Wdu4wVpydnAnC/1SL3bDD4epQaRV85JnNWezDqpAdV1
G0jt3nHBaK0pCnoUtQmekLlNuw/8DNEDm5yJ+J3Dwx0bSonCYFOiTOj9IzSr
WLDmUfRnZO8dCefu1U+kbFgyuAZCiVF5cOdxtbNlRbhBCQBre/t2S1Ss2Ck6
jOWSTIgNrsFa1dOEMBuwVgfbO8QYDIXrWiR3CHLhZgDPRERJYwjFyZRCCBNN
toCQW6S5aOI9tpIbYH0wmnIxzCnthbhURP/lv/wXzmFFA8ZfKtMyxOEN90r5
7PpexE++FMZxuCx4d/3k131k2+I0SNzhLXsJLKVhwmgbjIQRWt8VHC9d20v2
rHfCBoMkKvOX4vkBXGNkrRrkcTLWzUPOi2RC0ukzSqBrk2jchqi2Fp0NxOFh
Ez9EcfybTUzUs72FvPCn/DKbBluKbRBFAw9Mrf4W/xZbapaeq2DHvofmv4cP
pukCoB6ddaFH+HTXfcpjCC2iieg3gluO4j2ejcU1fjLYEntQnHMU71Nz/U0H
ys0ULxzFB63h2TLlRv88/vRTtzFDh++j+6gLLAR8CjgEECE8e1AmLT2wuDme
ZDp31gI+kc9BvplexiC4TNP3cADoF3eVl2PirHtZBGcXlqMdiYp2nGImNaeA
10MU7IwCUe3G2YFx0EEYUEhCFJ+cfgTpM0+HwrNn6UbxulGwhY4THrkbcRdG
fG0GqdMKs0FoegcCVad2w8w1jgdxHaKooJHV5J/GvAnlPsK8gs9tJKidnoEy
naUAlZve3hY5TDueqcvluKtLPKdlYzBLKh6onAbF2QR0H+4qhSkBj1JOQ187
UcGXFXz3DZBazgkmTltXBQZ+N6Y7Mx3qWQzmLjj+70bcu8aesHnlfNJio//p
JeS0N/ZauQ3a33KZmwQ9t6h9QFhXHgeGP7vO9TD0grrBDugaOJWY0vWsoOwH
U6uyzwEghpO7CTqdrwEBvuk6YO81v8QIKTxGwtrl5F3aWJYWlYwoexjSGsVe
kHXaRYPZV8woA5FMBHaKNmsTA0U2A8X+quugaKaMI+QxHSrLSgiXi6SqDbYH
hq2UPESUfc+pQ7p4DCbpiMLKRoDsmAnY7L7bUnL4SXympn5LDgEDeVbqzMNv
W6LnjAzC+kjcAZsjDZPu+XORDr77TsRPUuD46wEI4TVxRU5UNO+8O7+R4NBd
Enl2vx29dJA4CDj11W8xPSc98xtDGge7KYQw6ehXkVBmC/TkSSmjTBe7RQn3
J2HFScRYu6WZoPA9xuKB5kAjCEDWb0n5rQ3oJ++ei9IWlOAPs3B+xDfzj/+k
yekLt7EvGLN3eDCL8ZkyyxNSADohnC6QhDNhUFSdQZOMok5Tkn6E8njCM4h8
xFrKaY1YMndOWoGwK0nCMMwpvenGQ3Q5MssQKWd2XaUz5c1AeIifEAeDfynL
1FyDtLeoYDHKnXFmI+BcHsuaSOIrx53gOTCyxOEDBiWJv3t7RgCk3EPiRQl8
VweyCC2Jc6vRrrYsbOp7r5s1S9EGOxWmxS0sYF2ckUQSODlXfenKxKHDjvMK
lPoZOoS5UIaEScVR4RNNCkla+/DKhpQyirglCVuSeihF2Sar53xBf3X1BZEK
ZQTUi5elZ1m/516SSrWeIucalyIbpAPdXWfjjExZxVSDrduKDmyZvk+rCflt
kg9Wedur3SBAYMn8Du7Ye4SSIF+yhCZYNUnH7hIs9OXxX72KRfmOpeaSwdjy
wnTKQaPo15c6qOD2o1aftMipGImbFb15P3Kda2dvBHuqsYYC3AmNnroN63wj
ylCyplU3GlTWuOunTuNoWdTNczo/WUQdS56VcRq6ryXxYjnOswm6M98AR8kq
dbu1QT907SizjnP7t/AKzAMqwnAzOi4+c2Lx1VDg3HM9bw1gCNwHBTiljXPG
W2CEZIWqFj6ajiYCwB9PiMcTiwUrsYgZQldyP60AWAx7nHnSWMSvgf6JSYPS
XcN0if5995YSbAAqlUwqvZx2P6eiW5pO9ZsRilR3ouGrI1mvvBx41/OaEpAg
3sKMeBqwXjvlON4xY5WQDiLCKnTTKPmCbeInG5DvHsmZGBSgHCtfCsEtAx7m
G/Zg07RMARLKeP6sIezkZ3aI9VSZeItThSu3XpmnzEEyl8t8YJMFwQjSgqz7
gB43A9FC+fwtl6PgUhg11OoFDJYcOKUBIg/UNj7qam6S9iSjS+UMhqR/KSvt
1skYXsdgRA2DE7ykkc4XzZ2OHgWjdxkFo7r4UuQ8/vm7FesdxOtm9FUUrfgO
geI3m+1lIp/xyC9Y34i6H6c4O2dVKm+mBQjRp5rVWnGDxZCdp5uoZh2SmpVf
SM/nnNLMG06M/X7hc8+acya++jUH8Lmvi2l06nKieVOmT06EZkwV7DH998KJ
pDCvH1j96wRDm/xNPxJVcqAJkI3tV4z2h/CQwzxG0BPj5akeaaFZSxw5HCxW
OaeQqL0JpqNaxoIxV4iLDKMWrdMpm8jExImzaZOwTBtqieFxS85oHyec899Q
A6TTOooxq3A8Qvztn0p/PGVR9y0L85H50ddWxKmg89W64dhbsvmL6Ptfgbd2
E7xEhQdB46lsZedQnJHNv1EAgv2zExyhfZMlnODQauFw4LM3ro8/cu8oQY3T
HPk6nJjZO56aB6lYEwegISqYCzUyBn9aIe+yX5+Cikq2otqHpu5LP6J7FI9B
jHjn94DoqHtJJoYAkmE7KKmgiMyhL4B+bIYX3r+zJwZKVwOTk9SS/EoFMODn
6JGYdoZcG4pV2hsUviAptaGr3yLsbVDzd6iGZ002ARl3offmKH7qXgnEhneN
lNiIrobA96U5tqVfxGhZadDxgCGM4WIov1ZdzlPNVmjP3qATzo9RWFnO3HzD
/Y1+vmocNjQQ/I7Zjf7KQaHlyDw8wGfoync9517sGYQaX0TTLguS89hm8Np4
efbylG6S+oZsiNbFIU7ZRQYyHuud0ebv0xCYLk7HcfBLCYl8bMyCvR8kA7Hv
+kziOnkVfm9lgKc0AB6ahsrxrfd+KK1UGkkL7tdoTBlPI3vtz5f6dJn0wgg0
CyU4I0wAh0F37fw4TEy35M69hFG6FjQc2sIpPqBO+xOioGeHspe8ERpsPDU5
qHrDsjleCBh5dt2W5J7OxIKpxjg61CiCjQ87CSRqUO1Y1+RSOvSgnBCrcgzH
UxlrlYNiY9ra6Zq2Hq/ZCW4WZ/t36DatAs1Ov5Hdpp3hLD4P6/n90lTn3l1X
cLP/1LImuMBnHuaRxoRPPlHusqsTlOl0jsmfQOughlyUSoyiwjXjsx5TpHwB
opWeFlc+8iZFP0xgWaRTdKdB3QdH8gqTfTmtgM+GxscBm4Un5ukhFRNDhtx2
ClMJsSgp8KyOjj6nkcwQgamkb/pAp09D3QYdmzhgpe8XCb9y1ig5GUbveFTf
eTZDrrphR+zhWV6OkYw9yHWcnhzqw2TRQ04Q4sF+C/mdD3VV7rAlv/BbD2ZA
q1zLTTafiPvElrPJ30nuO2FTOP1XCj3lJSUWkM+9+sbjxLo9V+SKknfA3rlM
KkG0jcFlCk/2YovGSb105NqpxEPyMWlKW5SGFD4tUe+Sm6uk4eJhLtviJ8rK
Z8RKIqrBve4NpwvCAJEWXLO1cQp89VXifLlkQ2hsoUkTVGSxNrZoH1uQO1Hy
oPk00nTo0zjPineSWMdrW4Dv1Ygut8OUswua4UKMu4/P6iQAyrL8J855xLvo
1iC/Sswue/kReFC6QH89ZY2Su5bKyzkXXwtEZrayaAnmZfcc1PehWj7P74ac
aZMon1Obk0GESAgZNwacm0O0P6pYWRUO+2eSiGGSJy//vEXi8/wWkTODrpsu
vGW9Ivk5cR5E0t46DVxB1PWWTQxO0tXTvk4WDjFiX34nVg9ldThm5yiRNYIq
mkmPPnz4DZa2ub8/Ini9ZJ2pk+yHARS1RpGgS1mOCcsTxXTAfF0I0LKzpiRq
52vjMiUagzIxfobZEkXDZRsxdjjvoAOTLsnmpkm9i6reHb8yWpXJJjd1LM+F
Mn493mmFW0XSexhI6lBq9Er2S4CUyQ/NpfrDcTuvRXbOU12x6tLyn4hWZtIv
W+d0mwW1puJeLjlrPEIlyHYY1alrVL8+iPnioSPpdOqm3Y//8AqRQ62Y5Nld
VG9PV+cCDHZ5hZl5PKqkI+sylqTHNufDFG7jhx94/zZIxgxBebwspnm6gY41
v8VidZ4Q/u3i6+cY1UBJrQMtiFN+fA8k0nyjkSco4hqBMjhhVOAjlsECm/wZ
Hh7eZ3Vh5rgnTWdwnQH8Y0b0CYVTueS6VhgKhxh4UwUTJmZAvFWEhkXfh+1L
p+qDOVxu4Dcb9Ow/nL9+NRISZLLS47A8aUUWUhWKPDGGGeFYkegYkDQi+9IZ
/y/DBrHXJ7Ou5MMHKXGIqFEQvquYE7q49GztNMWqpan4rpIRW43Vk7Trg0XT
J4TvbaTilVuiq0TPDkhaYL/6JFic7MM4sLVSO2QtL5dVcYStjy5/4JZD+pa3
5IdHD4iOFuvGauFrWuHADYlf947FZOCyY3G/tBlDebvImo24ewZbfJtggQRy
S0qACyh+TKvSpMGsEIkSIf3u7Qvy6ZQiZZ6udrS7SlSn0LLgYDJiqmoqH2TK
cnLwA11j0gozxMhGiaJGuAMs8UImoo4NqWZcQvgD08NHT+I2LnnSwiVHazDJ
BiCu9Olkuj/cT/e/GO4f7syG4739neFuMk72knR/Mp4mG1z8Tkea36L/AuOc
3/0OQ9BayAYeoaPRBymZB2hmCv+3fRRff6bD4Wg4GI5lh/ps4D4iJ70nWJPv
b09W+J3QQIebv/udDiXfDZ1Whr73b/17ndDezsFkNtne3X46Pdh/mqbPJk+f
Pds+nM6eHaZfzMZPP3Pf3g/sIJKZ70m83+7fgcrQN4Kh/vY300raAYN5g8f1
BCONammov9wkDw63N68/m2xP08+27s0sfDcSp/QkmAm/noOA1N0FfasWxFlZ
wq/h/vb+UadVDLt0uP1s//DpwezpePxsfPjFNElmewdfbH8xnu5O9p7tzA72
DpOd6Wx3kh7sHMCjyeSzVj/3999/Pwj2SUqK+k067GzSL9iYv8HRHj5LDg+f
Pt0/2Nnd34aJf7H/bPtgvDOdHsyS9Nnss++///7+/quvtr73QKec65N4T66N
XG+MbB3sbu8ePJEH6k2y4T8OcTY82IUVWdBELxaBBjPZDYdqD3aSg9nh3t7w
i53J9nD/YHYwfHpwkA7399Knuwf7k52n24cbdp0bGn5rZvnkoXWP6KJuuG6+
v//+fiv+6ivaho1HzeGXI4QjvYA6Hg6Ho+FgdqxHYgT1XqOhDgKU0HPpH4KM
QefjGylyCsPDqe6GDTQ0j3Q/PMONb5MpJtn8RoIEN8IvHHrabV9Mfad97WFn
xycvT/u7IhRQMsTuHdm5iDUSxzDt78N5KAIYJ9hwf/fZ/rPDL3afHbRmZRv+
KJdv0N/gH8v3vAPXn82+OEz3d2Z7+4e7yeFu+vSzn3Hb3HL0ut1vAaQ6hU8n
zNP7fGi4pyp35s6N9SV7xHsVSNcuqoGeAxflOWC/dxpFCsc0QWwg9srCo/j8
nz13djYfA8vl6EFGMIGw8rErG6DRIFhjTqkJcwwy8zoU51Hcu1uIrsNnu6UZ
CxN68QK/G/n1qwFak4w5J1vNkcdSzoag543AjemYanBlV8CRYnAPuqj6lLc2
ny+tnzUwPnEvZ/yUnLudNLuyyE7mWzY6PirtLR/hL0t5a/fXFOaDN6tz3oJs
2UxGK1LT8nZjiU4iYhL8ystkQeglRp9S+kXYoTPNXBVvvrw429LJxq/VQTBs
8xrasCwPrd3ukddfXYvKEB0VkxqzX/WkD+rNI9ZTR6M/J/Spl5J9wDCrQdwc
m3ByPFuYt5B4vxs0bc78QRE0dTpb5qbmorDBx+3xRG70I762o7maaybvIbsk
8mo1qS5VQSK4xXbz5F3ayiKmGis/dUAfACEUq0hpx4sUNzWp2nkOgT/IyzvR
3BhAxIGI27dTUikPgCPP5uTfSRegzn5kXKRPWePqkq1iUn6YGSfp5lD4bjlF
eWmFpZ6ai1JrwuYApvRKpnowiWHsktBTf8G6sgujNwSERll1AFw/7+Qs6pvY
RqvRhhai0svqs7B2aiOsLnXiapjr8dTx42qbhHbeRElC31LhlvilnvhKJkGl
QLdksfy5/M0SZdWpBIXqWklzNR2Y8KFWXPSqyii+Bs1SMjC2D6FvKTgLufVs
+X3dgrFVy5O8Un2rNLVd4rRTYZYgD607iS1XRFgVA+I1R77zE3jUtD+Pn3MF
Yxfn0gdxIYa3BuShpQsY3ANEPr0BejXsprfgCUvF5L7JqZAqM7MJgP5j+piZ
Ae3pqT9FedLvnEdy23YRl6wcXlHj2IJO76w5kfQQxtYdLedUNFOVV3e9h82F
Imwm/tolOp1SD67AXJjzRGME037SbWlz73y586GfXjjteUpB9lgZoHfa5aLU
Oj/9k98Etma4pSlA4jCxrdZ9RmbR7CvlUM4IpE3Z0/HQFwqmXqXTLUkCLiyW
OG/ocYuPtURb907WzTVPk+mQfSqgez+fYG/XbKLfLIfUgFkbSngS8nl81LKP
6rrCN6GHPnDC2PecMEOjnN5ojFQ7TYu/1BICRQ71lltkauVyLvV8zGjgQtuT
XVPzRAQBAEpdnAXBk3vDwPRXJXb+/Zs+6UI3usBwJ6QQJuUojcAaZqy3AE2M
tYE81KMTzhVMfvZuJASKyXWJ2QqR4AFc/AAA8oPLyRIwXm/0Kxf04Qa+C/nH
GpfNCUBdQsnHBMYHWrpL9vvpDZGPbIh8kPhX9/3RIfIACBj+eBTYWkJ1IVtZ
0Nkjl9K56huC9hCNj3eIWf1A7LPeoHQbE49jtYLSaUC4HCnNolYfQmzvH7vW
MAe9QOxFKD+dc+Cnn7bW1fVGWetTxLdY2dje02J/H9ykVlw77hPyErp/JEe7
JO/kx0KXmrKUbLgCxXF8vhxj07ecuORuA0UJ7WRY00sqTqp5Pt67QBpvc8l9
d1I2lVgwLPoO913LbuJqUeWOvJXM9kZKGy2LHEt8JKYN9CWS6LWpn2ut73ap
OMEl1iGgOGKdKIBxHCPthknU1wqqdhRfpcY7fmMPYd/xcZ5j6Hgwa1dUTths
HVTvhwk5CUqRs7tOd/NcKgEH0i3Hoss2uAc2FWZzMH+AaFrk8lsVinf8gju5
Oo5cgNfnN+gEkWPGgTdaVLyrpLFssvV6wuNoJ5DhJOq+1q9oUtbOLow4Nze4
5YGqUe52Ppfhzb6UTDKaYWi6gpsgQo/hC7FLFwUzXZ0bAafpR2KaiMfLKCNw
Y7WpGxTB+0nZ3XVxi01JiRFSh0GmIu6wFf3IJOIlB86gLmVLUwI9eT0JxhQK
PVnFq/QNy3m7cV+wN826tg6+lOiPXBR3N8TdAGIURNIHt8B5FvIL51SolsqO
P6HRGltCIo84NOtnoOvO7bQXuoWt4bJSWYH+RCSPuabhBTXzD5CGU0rJyzZA
Oc5AZrlmMOnBu4LSkT3XBKCdY+rZfx/f3/+uFd1/rEOYeMN453BITt8gBGA9
a7Z6S8i94mebPk2lv8jqa/3mEl2j1Imt7B/jtJ0qZqRJRPD2sYOPNJEGVPuQ
+D1xkSaNciZxZzAGOm0A0zgRoYD2IKIw1VrrP0qHqLycUUQ9S9ODOC/Ld8sF
82fCz48wv61zrJeMUtGKDSKps7vGhJm1HoCMTGtDgMm9gjwOhCuQWuxFGbMT
WQxLnqa51EGiil5I8cLwUZujEk3qHVWPP+hvMQuFFpQnNn8/wswUW34eA404
PbMRpw5I/yQWIg+pCsstrGIxAGCVJfq8jGDhCSpytgUjmA41kJKDJjjjudTH
tFnZHNbGPAYJeR/cZOK8GwkkYGqbsEo4RX8qs+H8NmEDc6pXJ1G/207/zP62
GW1hlVLNM4Qgilyjyicst0nNEu8ETr6PgsVlgpRnB3gnKRkqgoGxz7gSTVRV
m+q58E7oD26UYjW2mu5ezjNSN07ZIKl0LWn72B+Jsvlw0iKZlWxR5GNIWtK8
NFAk51OQcM9BihkN3xhEdu7xuCrRvRdv1kCbJ/E8YxV8K609mxNiyifn2Jco
4XPl8CueFOXTNDZK3lCHXwhNULQNU9Uyn0ad5qtifA0fFAhWLTGnG8CKDfoD
WMNPbQCrcUVDGFgfSHxpOdTHhBD3zSiI9V01sV8U67tiYI6wxWNw4bjbW+sb
t+J2VzdEXQ2ltjIhu7hIyoroUKx60uJOC0cEGPbIEXqNho43GZ6QpVCbsksU
5dhoCm9qfYGsgUuDgJYU96FcOc/fOTNe0KFfiOsTRYKk0AlDp6QW5Xh9vduP
6Z1SzxDjTMjbgrvhpyXxDLfDu4+wboLMkh5mPuBgkXdjN1OnoOCSSGzc2ZIq
pobXj12ThhRmQZhtS12gLKl5/BBnyjAH81We9FP5HbT79fjSYGoBe/rdSoaU
F67imc931mVGYd4BI4pfA0RMneIYr6zTS7ptZ61FKTKyDGd8ozHjTDjxUZvl
bO0YXzwyqbAumq/zypYAQ3kySSkVo7mgCkYPJDJw99QMGNzT1lIXKkObQM+O
OC2iXufyaKlacyiUYk5WENz21rhC+ABgqgqEY65ZanOvdVIJm1E4C5+dZthG
6Bv0Ms1qrnRLOYeIHxP5NhDxRBYUhG+0apfeEwSVSQZVSDdCtqeYt2RBnvHA
i5XVHczxVdlEVHNSHlESMskJpKV6kfVEPwhgTlhp4RorjXZFfUHy1xzdwRfk
H00F4uGA6obCYsRtoJtA9875nfRoQUTedx4bm2x06Zh/oXXLMEgJtMeYzZFZ
1dDvXmMJxIOVsvF4pxCqqMq7goreoFzqH8tbdEIZeFuIvkVGRKz1NnGguvk7
hTajCE3y0CrD54MBuPof6vWYZ03Rs8GVgdJuKC+OsSoRvvEMvAcbQL8FMhvI
B/xOFcsd709Bx+TzhBrfdgMsZ4xlgFVRrFoU//1O8H3rfftzh4Ld57vB5633
7c+9dc93sBd00GnR7sJb2oahItt10THJrejJm5t8Twd9PXUatnsKfU2P4sOg
l+Bt91NnpbZuL0OuS+S7fNrq8hFfPXYoDwnbjxqk2zsaDQzkWoPBVz+D1BvU
eSTEoAX1AaVXbGzUyC1R5zFaPOc5osri8J4EfEDPiC3t5GMGVP8NzfEb3qxA
S90zoPNBNw4EjxnVuwVIAoXOlQzUzz0jc6V04RXISaCTRMD5xlnT72NmZ83/
YbbgSXd++2Z+H+cL8Jip9Fj2RWzo4I0gLW3fjD7SzP/42VmTuSaBsLjIzezQ
zMwazrUcSq+tvKGCCw9PRk3mLpnGI1BakKKiZ89sybfAoUkdUiRFCvIeY1LL
iOdJMsF404SsBrOwchx6KKGzn4HKmNHYI5dZTGUVD621gzW2H17lpN/HqX5g
eT2LevRi1HdJFI2fhB6szN7aK8xB65fmETO4wkWp04gTYWF+t9foPq6+IANf
zRy1TWY4UX923TiEU0/fY3VPdRMWf6BadiVSs6UYt7dw0b5uhD1vcZce0Upa
LzgVMkVyoUYP9bQD5zeN8+MqVUam3MRJo74KFdWSdQEoTznb6g6wSiMfsVXa
dwHnGhpnLzkwhbcakRu3Jm0jpXxO1mSEt+xl6+B6WUway6Ug0YGV/5PNcOK9
Pug3UtF+qQPDp1z1q9Xw53AIbfhjLoHmGnAGLsnVBr3DQkISPtmlWV44XXt7
qCNHs2XxAXPgBu0r4ENXlof5rDZZrNeMqI10UKl/ZriDlo4jETDFlNbq869x
yVQLnVJflcXdXDOF1JNrQDX+aqyZDXXdjzDQt78OhWLeLVG60lsKO5FC4Yz1
6LE5GPasNVWOKNZcnLgtBNuyR+L0Lh4e7S7VHqPxXQPgYRDzDSKq7j2I8+SO
cROuF7aV+5HSVez1P8UA87lJqWthqUqjbnZwd3dWXzOrT9MHPdeIZ+vMvJz2
i0QYnL7eL/Oc1qOOQEvONMbXFxanjj/0/J7yOvYM3Zfq86GG3vT5UEsKJv8Z
zkQOD5or39b8uSCduoP8ORzkNs3z4bsC1S0WTQbGK9M1GwjExcbi/tdov0PH
fmRChnlaXAEeKRcJ3nmb0yu0HtgdQBsC+fSvM6RvkqEQ5/dd7W1oDvw44R8K
PJUmxWZ4CbBSZ1NIdmgrcMjHj3h8pj/wTPR25pp1L6u4wedYoE9iDaQapq9+
y6wzwmuAu567807ECgWcgNRlzbSC/Qw6y1EddjaLsO7HYplzeWheKFNWKnOG
yi59rV5mdyaHFYo0Zz5gapIsyAuTY/PJDYpVO2LdNrCDFihkj/vMdsBAppVn
OcZliXeR8shP6XzS9+mEgvY1FgN9pzQqSBLDT1IlKjDRQMbRCd9KhWkxVk/y
ErGRaNicdsvh/C308pl586gLhEkD5oriy6gvnCl7gQWpg3Ee0JVYhqkCHTsF
cHoz79itMILTau2Sdju5Rj9Q9KAioqvhYQWIQWX1jvMUzJIJe+lV6KmN3sqv
zk62BowQ4E91UZY+SUMbTNaaHFsk6kyZOUulHIUlls3xe1pAobcQn9OA5nj7
gfstlwWbaHtY2EibJ6b7Mix+LpbCMPH5jNMqu2+sN0MllTglTaZ450neoei7
07PnAyp+MfjFKIpY825c2oqc0is4QksmUkcmHtF4+ZjGn/L0WI1h6OcjBjCk
iODlv/83CzDfEitloYU5IHTskeK3PxNMlEmLnFt+GBYoXp4+e4Svcw9Hf51N
YRi1WeD9joSnA4xSp81qcGoLMVPqz5VJ+aXAEsBCH8fff7YPtGwfUvzSBmbw
8QRa9SgKWvhirgmtMOXUbShdXSl/SOnUJB7YBOaibDkDbCfZl8i1HQOjEmCM
MDM4sChlBRzDbEk2k7PXcSXhR/6rARVcyJI8QnWD7Q4T11MwLTljhHPmMI40
rpJb5/TI9Swo+DZC0T+0eXWFTnQ7to6jvEmkNZGkw4CqiQRoDmLcKs4fH00l
bHZq42CoKyU22ofxVmHRlDKbcUar4ipPI9NBe5k63kp5m0IQxZ0HvaF91K5j
yp0RnuX/z+pQHRKx8BFE8yRk1/KBoOLrbXFyHVvPaOyCbGQyv57eeMWdsqJO
zosDBUsU2oQTjff0+IP2JRjHqb8ko4uYmXlyofqm1Xs/GekfIUpMfVwegxzC
VFxtQ5kLMXWAIV1OPZTphfSPaB1G0tMgMZ9XDiduQQ+1zSN7s1n/3FI/BQxK
sDbLDpF/nCY1pDxMOLZnJfzEXUAP7QKtU417PnqScvFpDkJnE0xqH0uolkBc
lDCp+PhSWv9IaC5wBTBzNw4ZJPjBup3kqHs9lCl3fDIwS4tKj7ZPRipGvRNM
xQaerKCv8fc/x5ejtSyR5XBJoYNxYSsUB0cOwtBKDcVcjAcYa9AeybnuwW2Q
AUPrMdPQclmLvAI7FFp+rtv3vkeNFGpiV0/UWH9CGAhMP6jQCHgvZ/kJk3Ti
N9lNNkXfYfShMhELW8qIROr3Tql2kfQ7SCVHXbPLnKgB5t+RdqwJ3joyQFtT
PNDBS82H4ZwHkA2WUbkeFDE6WUMuXLWM6/FcRvEnZNaHnwkyTEgYAfEzJvqk
ww9geGuohiKQiLp4A/uXLJdMZKY2vi+oFXdhnFlDpgo7ee2ZbdSqsNSKMuAo
EjATFOVi97t4qoU5VyKsdhHw1ShX1ceuhwAwj4U0e5jvuS9ZzZ6zAt4rO7u4
LVsshsda6FySpWtnwxK8Su5yNQNOch2O61VVPfIDw4I+9AXpyx7uF7VwnlEN
IVOcXwLYRCxAhf76MbPxHlqLeBINxowC8f452Uk46p81qessJeSjCagAhJRB
5MCIa3asnF5SGIOPKBk8z2OJGHAorzDdHScKL33eajcUEVfHp0i2X+CyR+Ht
FfUU0dzlAstIU1gCuS3BNbsDsuwTd7h8JACmXsGXxG9TdtB+A6z5ndXvopLc
e7KZJCYZ2e4yYp8jLoeWEpuCawjbJZL9oFXPLxYfxGDsVSTf73KvBtlF/zAb
oH7/JlH8jQsNgj979MoiTCihl598HbjFLDcRpfTD9b8peZZ+swnyCc9VNcuf
uieBe7Z88Hv7CXRXv9O6y+FTnUccbynXk0yGcDKVeNjE+rtnadlCWn5BLWP5
3ZeYnYLGhixna/0MCdjF96itOIqfscrcaS7kHaZVE78ZE/jDLzk5/M5Ou0Mm
jUiA4O3eI1gs1d1LtoWhFjvD7/e1lkj7nbjl9MPTL/TQWYEKVPkcRnCR5dtJ
bOpLjUQ/1aIsnnK1DLWLKSty1xikbEQXuqzeFB2GzWlaNSRBdCpNZ1Yk0Ivi
pa2fbTTEI5PcUOoO3jP5tTOGKTrnFr5xAcN3YjOnc4PNesu5tveMhir68oox
kWNCUbWfct0nrGJpMpm0Cjsh0sL5njVc2IVO2KKCVfF0/TUyYVWEJwKVu9fy
d3fVJbZGNr+csvtLwHRaLNuCEE5lno6X5MmSDsidg7JF8U+0S8yWcMTsDUyK
FzQc4HNO4c5/k7vxncm5DOPj806KE4ZGcvGVZUowkwuWkoKb7VWx0L6sULbE
yost8v3RUESj6447xBnYDQJIkiw9m7gqPDIsMmCishwN1uWJacWQRd7+Scnc
xMyOih9RINFSI7aQR0+qrCYTTozoXFlg8RZ3W+ar3owzZjYIAs2SeIfJ8YEV
TNDzA1ghJEBat1zpReAVdRyffnc23H9KLsnw1+F+/PL4BDmAiqL5+/wEPvaw
pDOdjBh6FuFkvmCZ9+zNzT7OBf49/BfMIiB/rbpBxCiK0texeBrrINa6mDsQ
nCq1wVJjkn2GwRinqF3+xWtAdIN969yR4oYuVqzG/nUGWvqBgqIrOztU4pg8
GR4/FEcwKeX3ne1ZB456bQqmTlm3HktTvEoG96GSzDDzPcUU97gNx8YrKzCY
Bfc/MXKznwzWcQI21md3DCotQN8uHyB7jqaaaoysHcheMB4iRye/QwMxdVLO
R6dEawUSaORCHL/UFlkdRpfYvcCOh9qX9+LpME/+eLhCl3Oosap09hb7KG3Q
Wjefziy8m80nrfDfkPUh6dGw/0ZkhONLsrw2tZpMDD07Iwm0RiG0OoHE9OsC
wlqSh+FttTV7FDkvsfDxz9EZ2uUdreQzzQIFb9mmMnzAHyZGyegS3rvC0G6v
mH24wWtaFgEH5efh3CIYr5hayFrfbH+0oxXOxF+WaS1lO6JyMwuSGbHKolBR
HDMTVZfXhoQLkrBM0gPBRSywWFk24UDOx7Qc1svZLHtP0Zy9HyT5Alhf7XZv
RatpOsnmqGjeX9GgTuc3KGLtHO497W+DsepPGJ6sCuVcmUa9Ba+YgbeXAbnq
Lkgx9DdrhIBNEhl8BlTAddl8OV/THloM+RuXiZbyha76wiTobapk8s7Gk3rH
Iq3YI2wpclp5coNZAMmfJMakZZhLjTxJUAExoORvbdMkGxK3PNHoMNyj6C1s
0BgnIv7Rq+Uck/1H9eMI5vjtDUy6rP4NsX+9nFwPVi2fDHzIdI5R8TxhTInc
21n/4MDX3hIOz2ri5P1N68nwRg57tUkPAJw1QDJy+HQ3SRoU6mKz/VJ2AZ0I
Ag2qLZk9VZcUTW9Qr3LqsCpqrmTSGF1tNk9NBRNs5fS0vudW2SgzXQm+czkW
RMWHmtgqWBbMOqIUG3exbHIWCK9odKK4A2eqYt9GcTDnL4Ulp1wBa6E/4oB3
dwVs4S2cL86vDhbiXCDEb32MdgK7UL+NcIKcRpgMvyargB9OPM3IfJE/sMwV
ozBy9V0m1cNb5haxLOpkxq5yBTJPOR68xvi3dGyXgTnFurwmFF2M2meaAZac
kd9uVuLBdCGhz64tAnynMaXEsP5Atec+ZPmXWF7uYFc6oB97l0ZHkAdKSF2J
pA/B3/CnPo1kYPvIz5FLcMNYqH7cisK56su9TXmwFbV2jTv1Sf6DH/JRQBu+
QTk4oAQsGcuhOJ1leBxT43boPWwA0eYpcQQdlQRhK9ubwyoEkL7+UyNOep1O
GH7I7dTutevSWHezeuiVFcpl4eT8e6YSymCF71QHonrd8C1pS1Sl2/4QtSBD
UyF7v6eV51RNw4O+7pYF4kFyzFGVbaur+ZyJmeppw9fNZOwKGgcvaHck6q01
kWe2OWpA3Qb/sjyG/uiZ/QzOKPQ/5i/wA6I61VIMp6vUnKSgMuopi18cFI10
VD750Ln3Y0b8rPZsA9oxHN6r06YhdyiyAS05Kz42mbqxFbICheVHrzcrnJqO
HPBd9wSaoa/uz+hbFYIy+XCINoiHjrYfOZqv+M3OI6JFJF8eTRwUA098lWpU
A5L62nvMij6Q27g59lywIMLwl05zWXh3A9Gx+/0xdzZQk330STjBkuOpxinX
zEqm6hvGjnN+1YoLAoXYxwOAduM6BiwS6LU+usuEQ0rTKXkeLElHgjF5owAR
9KGjQAn2UeNGmVxT361RQbfyQK82DQR8h3gqRiwOFVhh5MZxCJysGrNGJCx9
oMJEM14goX0LfLnYry/IAcLS3La+NYreqtNiS0NSpYYPd0pmFpbbvBrIhZN3
rO5y9RUikYtxVZQOHG02A5ORrutXT/Vj2Y0VwM71ROVKrJ7ZTJSjEQsbhzkQ
UGB3a686Rz7pkvxTL0dra3PAsSPzc7jNfJ3muaj6NoqmrJ1bH9h2Lqqu962p
xi4cOJ2WeMD6Wrv9RlpWu9WptYDLsWj8ovU6vxxjAb6ak2JQbmXOmp+bZfH4
LD9y+zhPARR8yQxR6RtHV+eoRYnU0B1Ai2lmlRb/5AP04yDaLKYd+0Or0CiZ
IiQBGpsd6jSnLDIIPGSCoJxqPKPpkpTf1oUAbxr2scbIbzSi5svXaFwkqc5N
mYYjXp1y2WAwDq3z4u13pzzKWByfnNmjZ0rM6YbGc6peudJng3SkQKEmHEaD
GWSqVFLlUBVBkPC5liEN20hicYFvimrhYpoiNGMZQ8mekmh1b5MfMO4mGQrU
Wb2Q2PH+frAZrjs1uCiKehwKgM3m7lZ8JCLK4d7m3zTo5Ui+iPlI9Of3W4Eg
ciymmi5yDO0u1jEfkYzNYs8N2/lNuRBIH3bnTE1uI3ucHGA52WLfP8bqaItD
/zsK336pZV6xDky8HwVtW293DqOozwMDmqXLbP9pMCg8OTQDRe0WYdeHUat9
6/1TGwpwQqr9wOvPGD4QR3RjVzQeoHDmTy8HiFnEpapDKFm8y94PkebDpNRB
4/IofnP6UipHTTEFOSry3izHeTaByZzBCa7UBO/skSKYukV1p8k61h4O3br6
xvvL6GD7Wbyg4XhNrprMag30wccNC1f/Wsfm8cwgkhOK88QqEmRFOb72wezk
BF3c9cze9EbJYyWIlrTi2JN9bTKSS/e8OA6+q8VHnUS3aYZ5wXK3JXR3SSYv
KBnWJEUsGywdkzvZkyUip5OlYtpYNAXuq/59njYrd/kL1fKnfRuc1MUOTDk4
2EQpI8b5nL8a7cTPT9/+sqPe90eNzWkmfVeBXT0++kY018v5eAGkyK6B+7pk
JReSOT9ntXXIcE57aR33Z5ko4c1Ss1mYxi2RJMKxYfL1DGlDH5xXa/MePSkL
+h87K75IHzE1PEH86GfPED/+mGkyd4lTCmP7mD0pSkoiJ6ZLLqSxZDibp8Cp
BYHvqzzZPKXuQ6cf+Zm7PT/nO4fXHvFxgBke0b51yo8ZoQduH/tZH2A9dkc6
iOgRHzLrE605R9Xx7m+iK/RWX1M3oLY9eKCtOy/94DD8oLUB2uoL8XB17YKz
1FZPNw1OB1ZFf/mves5HP37WGWLVqShjudP+ov8stPnu5phWahieM+eU9lZd
BVrxzF1XAgrZ6vsQNc/k3lB7J8JuwCBc+g02VNYbIy5J6l6YAid9MbBUVMF0
aHwkxMtwFPm6qlJliRPlLwuKNZlqdnJimI1Tkq3URXs2x/xhlct20v4e2B+2
LAK3PTGB69bPaeNgQ+RznhyZ9kJ/SF+stCWMW1fIIBC2eyLtUFdJ1C7G754P
arEP/LbH2bfTWcuXW9TdxxLe2Do5Vpquhg4p0ggEOUOeSpIkCclppT7gGAJX
D5FG4+pMWeUN0MfFndvebhxDG7BMNqnCmBGl4KC6NXHjERtz4SHrxZzR1Q1X
eQ/EgThGtnrMatUzYEnQofi5tYptckxoyCb1bCBLZ1THepolVxGeINbnhv9t
D+Lrz7a3P4u/j6lm8Y55vLMDjwfwa4d+7VIjPUayMI3L5loArNu579p17LvV
bjAZ7IrJ9XzvJ+K+r7p7x/GxXTBqFZWjNCC0eW9O3orO/uLNS6q6Bf8OPDxh
RAc1DCsvsG2ce+ecD6Sw45hRzNBM2jPWLg5dHGsb7mGyglGlWl9XdJc0e3iL
SJLk36wJ1EgaUpgsi2kuhQB+bn3BUdsgRW5B3iolYxOi44teB1yXmWsnaqn/
HeGaVe868VFr27nAK2dYu8SR1WINA12KzsNVhRuzyq6C290oeyqVQzjiW6pf
dHIHczhuT/ZlzeGJJ7XqK5es2ucIDSPuKvNmwv6M7aKsPUnqCDskHfdEnpdm
Um6lEKp7uxoYdOYd+VbM1mBPdJzoo9sutkrEumAoReOuQrZUwBYlvKiCbZVe
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
ugIA

-->

</rfc>
