<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cds-rats-intel-corim-profile-05" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Intel profile">Intel Profile for Remote Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-cds-rats-intel-corim-profile-05"/>
    <author initials="J." surname="Beaney" fullname="James D. Beaney">
      <organization>Intel Corporation</organization>
      <address>
        <email>james.d.beaney@intel.com</email>
      </address>
    </author>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>ARM Corporation</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Draper" fullname="Andrew Draper">
      <organization>Altera Corporation</organization>
      <address>
        <email>andrew.draper@altera.com</email>
      </address>
    </author>
    <author initials="V." surname="Scarlata" fullname="Vincent R. Scarlata">
      <organization>Intel Corporation</organization>
      <address>
        <email>vincent.r.scarlata@intel.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="22"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>profile</keyword>
    <keyword>corim</keyword>
    <abstract>
      <?line 133?>

<t>This document is a profile of various IETF and TCG standards that support remote attestation.
The profile supports Intel-specific adaptations and extensions for Evidence, Endorsements and Reference Values.
This profile describes apticulareplication of CoRIM, EAT, CMW, TCG concise evidence, and TCG DICE specifications.
In particular, CoRIM is extended to define measurement types that are unique to Intel and defines Reference Values types that support matching Evidence based on range and subset comparison.
Multiple Evidence formats are anticipated, based on IETF and TCG specifications.
Evidence formats are mapped to Reference Values expressions based on CoRIM and CoRIM extensions found in this profile.
The Evidence to Reference Values mappings are either documented by industry specifications or by this profile.
Reference Value Providers and Endorsers may use this profile to author mainifests containing Reference Values and Endorsements that require Intel profile support from parser implementations.
Parser implementations can recognize the Intel profile by profile identifier values contained within attestation conceptual mmessages and from profile parameters to media types or profile specific content format identifiers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://nedmsmith.github.io/draft-cds-rats-intel-corim-profile/draft-cds-rats-intel-corim-profile.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cds-rats-intel-corim-profile/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/nedmsmith/draft-cds-rats-intel-corim-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 145?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>This profile describes extensions and restrictions placed on Reference Values, Endorsements, and Evidence
that support attestation capabilities of Intel products containing Intel(R) SGX(TM) or Intel(R) TDX(TM) technology, or Intel(R) products that contain
DICE <xref target="DICE.engine"/> root of trust, DICE layers <xref target="DICE.layer"/>, or modules that implement SPDM <xref target="DMTF.SPDM"/>.</t>
      <t>The CoRIM specifications <xref target="DICE.CoRIM"/> and <xref target="I-D.ietf-rats-corim"/> define a baseline schema for Reference Values and Endorsements that are the basis for the extensions defined by this profile.
CoRIM is also a baseline for Evidence
(as specified by DiceTcbInfo <xref target="DICE.Attest"/>, concise evidence (CoEV) <xref target="TCG.CE"/>, and Security Protocol and Data Model (SPDM) <xref target="DMTF.SPDM"/>).
Having a common baseline schema for Reference Values, Endorsements, and Evidence helps ensure compatibility across a  spectrum of implementations.</t>
      <t>This profile defines extensions to CoRIM that support appraisal matching that is not strictly exact-match. For example it defines <em>sets</em>, <em>masks</em>, <em>time</em>, and <em>ranges</em>.</t>
      <t>The baseline CoRIM, as defined by <xref target="DICE.CoRIM"/> is a subset of the Intel profile.
Intel products that implement exclusively the baseline CoRIM do not need this profile.
Implementations based on the Intel profile do not necessarily imply an association with Intel products.</t>
      <t>This profile extends CoMID <tt>measurement-values-map</tt>, as defined by <xref target="DICE.CoRIM"/> (see also <xref target="I-D.ietf-rats-corim"/>), with measurement types that are unique to Intel products.
Some measurement types are specific to Reference Values where multiple reference states may be included in reference manifests.
Intel profile extensions use a CBOR tagged value that defines a comparison operator and operands that instruct Verifiers regarding subset, range, and masked values matching semantics.
For example, a numeric operator 'greater-than' instructs the Verifier to match a numeric Evidence value if it is greater than a numeric range operand.</t>
      <t>This profile follows the Verifier behavior defined by <xref target="DICE.CoRIM"/> and extends Verifier behavior to include operator-operand matching.
If no operator is specified by Reference Values statements, the Verifier defaults to baseline <xref target="DICE.CoRIM"/> matching semantics.
If Evidence matches Reference Values and Endorsements apply, Endorsed Values may be added to the accetped claims set.
When all Evidence and Endorsements are processed, the Verifier's set of accepted claims is available for Attestation Results computations.
This profile doesn't define Attestation Results.
Rather, an Attestation Results profile, such as <xref target="I-D.kdyxy-rats-tdx-eat-profile"/> may be referenced instead.</t>
      <t>This profile is compatible with multiple Evidence formats, as defined by <xref target="DICE.Attest"/>, <xref target="TCG.CE"/>, and <xref target="DMTF.SPDM"/>.
It describes considerations when mapping Evidence formats to CoRIM <xref target="DICE.CoRIM"/> that a Verifier may use when performig appraisals.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
      <?line -18?>

<t>The reader is assumed to be familiar with the terms defined in Section 4 of <xref target="RFC9334"/> and <xref target="I-D.ietf-rats-endorsements"/>.</t>
    </section>
    <section anchor="sec-background">
      <name>Background</name>
      <t>Complex platforms may contain a variety of hardware components, several of which may contain a hardware root of trust.
Each root of trust may anchor one or more layers <xref target="DICE.layer"/> resulting in multiple instances of attestation Evidence.
Evidence may be integrity protected by digital signatures, such as certificates <xref target="DICE.Attest"/>, tokens <xref target="RFC8392"/> or by a secure transport <xref target="DMTF.SPDM"/>.
For example, a system bus may allow dynamically configured peripheral devices that have attestation capabilities.
Confidential computing environments, such as SGX, may extend an initial boundary to include a peripheral, or a peer enclave, that together forms a network of trustworthy nodes that a remote
attestation Verifier may need to appraise.
Multiple Evidence blocks may be combined into a composite Evidence block <xref target="I-D.ietf-rats-msg-wrap"/> that is more easily conveyed.
Complex platforms may have one or more lead Attester endpoints that communicate with a remote Verifier to convey composite Evidence.
The composition of the complex platform is partially represented in the composite Evidence.</t>
      <t>However, composite Evidence may not fully describe platform composition.
A complex platform may consist of multiple subsystems, such as network adapters, storage controllers, memory controllers, special purpose processors, etc.
The various sub-subsystem components vendors may create hardware bills of material (HBOM) that describe sub-system composition.
A complex platform vendor may assemble various sub-system components whose composition is described by a platform HBOM.
Although CoRIM may be used to create HBOMs, use of this profile for HBOM creation is unanticipated.</t>
      <t>Nevertheless, a complex system may contain multiple identical instances of sub-sytem components that produce identical Evidence blocks.
Additionally, dynamic insertion or removal of a component may result in composite Evidence blocks that reflect this dynamism.</t>
    </section>
    <section anchor="sec-profile-identifier">
      <name>Profile Identifier</name>
      <t>This profile applies to Reference Values from a CoRIM manifest that a Verifier uses to process Evidence.</t>
      <t>Profile identifier structures are defined by CoRIM <xref target="I-D.ietf-rats-corim"/>, EAT <xref target="I-D.ietf-rats-eat"/> and Concise Evidence (CoEV) <xref target="TCG.CE"/>.</t>
      <section anchor="sec-intel-profile">
        <name>Intel Profile</name>
        <t>The profile identifier for the Intel Profile is the OID:</t>
        <t><tt>{joint-iso-itu-t(2) country(16) us(840) organization(1) intel(113741) (1) intel-comid(16) profile(1)}</tt></t>
        <t><tt>2.16.840.1.113741.1.16.1</tt></t>
      </section>
      <section anchor="media-types-content-formats-and-cbor-tags">
        <name>Media Types, Content Formats, and CBOR Tags</name>
        <t>This profile utilizes and/or defines the following media types:</t>
        <ul spacing="normal">
          <li>
            <t>"application/eat+cwt"</t>
          </li>
          <li>
            <t>"application/eat+cwt;eat_profile=2.16.840.1.113741.1.16.1"</t>
          </li>
          <li>
            <t>"application/rim+cbor"</t>
          </li>
          <li>
            <t>"application/rim+cbor";profile=2.16.840.1.113741.1.16.1"</t>
          </li>
          <li>
            <t>"application/toc+cbor"</t>
          </li>
          <li>
            <t>"application/toc+cbor;profile=2.16.840.1.113741.1.16.1"</t>
          </li>
          <li>
            <t>"application/ce+cbor"</t>
          </li>
          <li>
            <t>"application/ce+cbor;profile=2.16.840.1.113741.1.16.1"</t>
          </li>
        </ul>
        <t>This profile utilizes and/or defines the following content format identifiers (C-F ID):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Content Format</th>
              <th align="left">C-F ID</th>
              <th align="left">TN Function</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">"application/eat+cwt"</td>
              <td align="left">263</td>
              <td align="left">1668547081</td>
            </tr>
            <tr>
              <td align="left">"application/eat+cwt;eat_profile=2.16.840.1.113741.1.16.1"</td>
              <td align="left">10005</td>
              <td align="left">1668556861</td>
            </tr>
            <tr>
              <td align="left">"application/toc+cbor"</td>
              <td align="left">10570</td>
              <td align="left">1668557428</td>
            </tr>
            <tr>
              <td align="left">"application/ce+cbor"</td>
              <td align="left">10571</td>
              <td align="left">1668557429</td>
            </tr>
            <tr>
              <td align="left">"application/toc+cbor;profile=2.16.840.1.113741.1.16.1"</td>
              <td align="left">10572</td>
              <td align="left">1668557430</td>
            </tr>
            <tr>
              <td align="left">"application/ce+cbor;profile=2.16.840.1.113741.1.16.1"</td>
              <td align="left">10573</td>
              <td align="left">1668557431</td>
            </tr>
          </tbody>
        </table>
        <t>This profile uses the following CBOR tags:</t>
        <table>
          <thead>
            <tr>
              <th align="left">CBOR Tag</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">501</td>
              <td align="left">Concise Reference Integrity Manifest - (CoRIM)</td>
            </tr>
            <tr>
              <td align="left">570</td>
              <td align="left">Concise Table of Contents - (CoTOC)</td>
            </tr>
            <tr>
              <td align="left">571</td>
              <td align="left">Concise Evidence - (CoEv)</td>
            </tr>
            <tr>
              <td align="left">60010</td>
              <td align="left">Numeric expression</td>
            </tr>
            <tr>
              <td align="left">60020</td>
              <td align="left">Set of digests expression</td>
            </tr>
            <tr>
              <td align="left">60021</td>
              <td align="left">Set of strings expression</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="attester-anatomy">
      <name>Attester Anatomy</name>
      <t>Attesters implement DICE layering using an initial Attesting Environment, also called a Root of Trust (RoT), that collection claims about one or more Target Environments.
A Target Environment may become an Attesting Environment for a subsequent Target Environment, and so forth. There may be more than one RoT in the same Attester.</t>
      <t>Attesting Environments generate Evidence by signing collected claims using an Attestation Key. Environments may have other keys besides attestation keys. Keys can be regarded as claims that are collected and reported as Evidence. Keys can also be regarded as Target Environments that have measurements that are specific to the key.</t>
      <t>Confidential computing environments are Target Environments that can dynamically request Evidence from an Attesting Environment agent. Such Evidence may also be referred to as a 'Quote'.</t>
      <t>Each DICE layer may produce signed Evidence. Evidence formats include both signature and measurements formats.
Signature formats may include a mix of X.509 certificates and EAT CWTs. Evidence measurements formats may include a mix of ASN.1 and CBOR, where ASN.1 uses DiceTcbInfo and related varients and CBOR uses concise evidence, and CMW.
Multiple Evidence blocks may be bundled using CMW collections.</t>
      <t>Target Environments (other than cryptographic keys) are primarily identified using OIDs from Intel's OID arc (2.16.840.1.113741).
Keys are identified using key identifiers, public key, or certificate digests as defined by <tt>$crypto-key-type-choice</tt> <xref target="I-D.ietf-rats-corim"/>.</t>
    </section>
    <section anchor="sec-evidence-profile">
      <name>Evidence Profile</name>
      <t>Evidence may be integrity protected in various ways including: certificates <xref target="RFC5280"/>, SPDM transcript <xref target="DMTF.SPDM"/>, and CBOR web token (CWT) <xref target="RFC8392"/>.
Evidence contained in a certificate may be encoded using <tt>DiceTcbInfo</tt> and <tt>DiceTcbInfoSeq</tt> <xref target="DICE.Attest"/>.
Evidence contained in an SPDM payload may be encoded using the SPDM <tt>Measurement Block</tt> <xref target="DMTF.SPDM"/>. Evidence may be formatted as <tt>concise-evidence</tt> <xref target="TCG.CE"/> which may be encapsulated by alias certificates, SPDM Measurement Manifests, or EAT tokens.</t>
      <t>The <tt>DiceTcbInfo</tt> and SPDM Evidence formats can be translated to CoMID.
The concise evidence format is native to CoMID.
This profile documents evidence mapping from <tt>DiceTcbInfo</tt> and SPDM <tt>Measurement Block</tt> to CoMID, as defined by <xref target="DICE.CoRIM"/>.</t>
      <t>The CoMID extensions defined by this profile <xref target="sec-measurement-extensions"/> are applied to <tt>concise-evidence</tt> so that
Verifiers that support this profile can consistently apply a common schema across Evidence, Reference Values, and Endorsements.</t>
      <section anchor="sec-evidence-hierarchy">
        <name>Evidence Hierarchy</name>
        <t>Evidence hierarchy refers to DICE layering where the platform bootstrap components double as Attesting Environments that collect measurements of the other bootstrap components (as Target Environments) until the quoting agent (e.g., SGX Quoting Enclave (QE), TDX Quoting TD (QTD)) is initialized. Tenant trusted execution environment (TEE) components can be dynamically loaded then request Evidence from its quoting agent.
Quoting agents locally verify then sign measurments using the QTD / QE attestation key.
A hierarchy of Evidence consisting of all the Evidence from a RoT to the tenant environment describes the Attester.</t>
        <t>A complex device may have multiple roots of trust, such as <xref target="DICE.engine"/>, each contributing an evidence hierarchy that results in
several Evidence "chains", that together, constitute a complete Evidence hierarchy for the Attester device.</t>
        <t>The Evidence hierarchy should form a spanning tree that contains all Attester Evidence. All Attesting Environments
within the device produce the spanning tree. CoRIM manifests contain Reference Values for the spanning tree so that
Verifiers do not assume the spanning tree is defined by Evidence.
Note that a failure or comporomise within the Attester device could result in a portion of the spanning tree being omitted.</t>
        <t>Evidence examples:</t>
        <ul spacing="normal">
          <li>
            <t>A DICE certificate chain with a DiceTcbInfo extension, a DiceTcbInfoSeq extension, and a <tt>ConceptualMessageWrapper</tt> (CMW)
<xref target="I-D.ietf-rats-msg-wrap"/> extension containing a CBOR-encoded <tt>tagged-concise-evidence</tt>.</t>
          </li>
          <li>
            <t>An SPDM alias intermediate certification chain containing a CMW extension, and an SPDM measurement manifest containing
<tt>tagged-concise-evidence</tt>.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-concise-evidence">
        <name>Concise Evidence</name>
        <t>Concise evidence is a CDDL representation of Evidence <xref target="TCG.CE"/> that uses expressions from CoMID, which are a subset of CoRIM. See <xref target="DICE.CoRIM"/> and <xref target="I-D.ietf-rats-corim"/>.
Evidence describes the actual state of the Attester.
<tt>tagged-concise-evidence</tt> uses a CBOR tag (571) to identify <tt>concise-evidence</tt> <xref target="TCG.CE"/>.
This profile uses <tt>concise-evicence</tt> in conceptual message wrappers <xref target="I-D.ietf-rats-msg-wrap"/> and EAT tokens <xref target="I-D.ietf-rats-eat"/> to encode Evidence.
This profile extends <tt>concise-evidence</tt> by extending <tt>measurement-values-map</tt>.</t>
      </section>
    </section>
    <section anchor="sec-refend-profile">
      <name>Reference Values and Endorsements Profile</name>
      <t>The CoRIM specifications <xref target="DICE.CoRIM"/> and <xref target="I-D.ietf-rats-corim"/> define a baseline schema for Reference Values and Endorsements in this profile.
The profile defines extensions to CoRIM for measurement types that are not representable by CoRIM or are more conveniently represented.
This profile doesn't require use of extensions when base capabilities will suffice.</t>
      <section anchor="sec-comid">
        <name>Concise Module ID Tag (CoMID)</name>
        <t>This profile uses <tt>concise-mid-tag</tt> in conceptual message wrappers <xref target="I-D.ietf-rats-msg-wrap"/> and CoRIMs.
This profile extends <tt>concise-mid-tag</tt> by extending <tt>measurement-values-map</tt>.
Several extensions define two forms, one for representing actual state which is used for Endorsements and Evidence.
The other form is used to represent reference state which is used for Reference Values.</t>
      </section>
      <section anchor="sec-raw-value">
        <name>Raw Value Measurements</name>
        <t>Raw value measurements encode vendor-defined values opaquely.
However, the <tt>mkey</tt> value can add vendor-specific semantics when used with <tt>raw-value</tt> and <tt>name</tt> measurement types.
Additionally, specific <tt>environment-map</tt> values can supply vendor-specific semantics to <tt>raw-value</tt> and <tt>name</tt> measurement types.</t>
        <t>Environments that project vendor-specific semantics are as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Envoronment Identifier</th>
              <th align="left">Value</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">class-id:OID=2.16.840.1.113741.1.5.3.6.8</td>
              <td align="left">560(bytes)</td>
              <td align="left">device type</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="sec-comid-extensions">
      <name>CoRIM Extensions</name>
      <t>The Intel Profile extends <tt>measurement-values-map</tt> which is used by Evidence, Reference Values, and Endorsed Values by defining code points from the negative integer range.</t>
      <t>Reference Values extensions define types that can have multiple Reference Values that "match" a singleton Evidence value called "non-exact match" matching.
Reference state expressions define non-exact-match matching semantics in terms of numeric ranges, time, sets, and masks.</t>
      <section anchor="sec-data-types">
        <name>Data Types</name>
        <section anchor="sec-mask">
          <name>Masked Values</name>
          <t>Masked values are a string of bytes (e.g., <tt>bstr</tt>) that may have a companion mask value.
The mask indicates which bits in the value are ignored when doing bit-wise equivalency comparisons.
Verifier matching applies the equivalency test, allowing dissimilar Evidence and Reference values to be considered equivalent even if the two values (Evidence and Reference) are dissimilar.
Evidence typically does not supply a mask.
A Reference Value may omit the mask if bit-wise equivalency is desired.</t>
          <t>The <tt>$masked-value-type</tt> type choice can be either <tt>~tagged-bytes</tt> or <tt>$raw-value-type-choice</tt>.
Evidence might be encoded as <tt>~tagged-bytes</tt> or <tt>tagged-bytes</tt> which omits a mask value,
while Reference Values of type <tt>tagged-masked-raw-value</tt> includes the mask value.</t>
          <t>The Verifier <bcp14>MUST</bcp14> ensure the lengths of values and mask are equivalent. If the mask is shorter
than the longest value, the mask is appended with zeros (0) until it is the same length as the longest value, either Evidence or Reference Value.
If the mask is longer than the longest value, the mask is truncated to the length of the longest value.
All values are evaluated from left to right (big-endian) applying bit-wise comparisons.</t>
          <t>The masked value data types are as follows:</t>
          <sourcecode type="cddl"><![CDATA[
$masked-value-type /= ~tagged-bytes
$masked-value-type /= $raw-value-type-choice
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-expressions">
        <name>Expressions</name>
        <t>Expressions can be used with Reference Values or Endorsement conditions.
Matching is applied using an operator and operands.
There are two types of operators, numeric: such as greater-than or less-than,
and sets: such as set membership.</t>
        <t>Expressions are an array containing an operator followed by zero or more operands.
The operator definition identifies the additional operands and their data types.
A Verifier forms an expression using Evidence as the first operand and obtains the operator from the first entry in
the expression array.</t>
        <t>This profile describes operations using <em>infix</em> notation where the first operand, <em>operand_1</em>, is obtained from Evidence,
followed by the operator, followed by any remaining operands: <em>operand_2</em>, <em>operand_3</em>..., taken from Reference Values.</t>
        <t>Expressions statements are CBOR tagged to indicate the values following the CBOR tag are to be evaluated as an expression equation.
Expression statements found in Reference Values informs the Verifier that Evidence is needed to complete
the expression equation.</t>
        <t>Expressions are CBOR tagged to disambiguate the type of expression. See <xref target="sec-iana-considerations"/>.</t>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t><tt>#6.CBOR_Tag([ operator, operand_2, operand_3, ... ])</tt>.</t>
          </li>
        </ul>
        <t>Appraisal processing <bcp14>MUST</bcp14> evaluate expression equations to comply with this profile.</t>
        <section anchor="sec-expression-operators">
          <name>Expression Operators</name>
          <t>There are three CBOR tagged operators as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>60010</strong>: A <tt>numeric</tt> expression with a numeric operator (<xref target="sec-numeric-expressions"/>) followed by a numeric operand: integer, unsigned integer, or floading point.</t>
            </li>
            <li>
              <t><strong>60020</strong>: A set of digests operator (<xref target="sec-set-expressions"/>) followed by a set of digests operand which is an array of <tt>digests</tt>.</t>
            </li>
            <li>
              <t><strong>60021</strong>: A set of strings operator (<xref target="sec-set-expressions"/>) followed by a set of strings operand which is an array of <tt>tstr</tt>.</t>
            </li>
          </ol>
          <t>The position of items in a set is not significant.</t>
          <section anchor="sec-equivalance-operator">
            <name>Equivalence Operator</name>
            <t>By default, <em>exact</em> match rules are assumed. Consequently, no operator artifact is needed when
Evidence values are identical to Reference Values.</t>
          </section>
        </section>
        <section anchor="sec-numeric-expressions">
          <name>Numeric Expressions</name>
          <t>Numeric expressions consist of an Evidence operand (Evidence_Operand) and an array containing a numeric operator and a numeric operand (Reference_Operand).</t>
          <t>Numeric operators apply to values that are integers, unsigned integers or floating point numbers.
There are four numeric operators:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>equal</strong> (<tt>op.eq</tt>),</t>
            </li>
            <li>
              <t><strong>greater-than</strong> (<tt>op.gt</tt>),</t>
            </li>
            <li>
              <t><strong>greater-than-or-equal</strong> (<tt>op.ge</tt>),</t>
            </li>
            <li>
              <t><strong>less-than</strong> (<tt>op.lt</tt>),</t>
            </li>
            <li>
              <t><strong>less-than-or-equal</strong> (<tt>op.le</tt>).</t>
            </li>
          </ol>
          <t>Equivalence semantics can be achieved without using an expression with the <tt>op.eq</tt> operator by using the same data type for both Evidence and Reference Value.</t>
          <t>The numeric operator data type definitions are as follows:</t>
          <sourcecode type="cddl"><![CDATA[
numeric-type = integer / unsigned / float
numeric-operators /= op.gt
numeric-operators /= op.ge 
numeric-operators /= op.lt
numeric-operators /= op.le
numeric-expression = [ numeric-operators, numeric-type ]
tagged-numeric-expression = #6.60010(numeric-expression)
]]></sourcecode>
          <t>Evidence and Reference Values <bcp14>MUST</bcp14> be the same numeric type. For example, if a Reference Value numeric type is
<tt>integer</tt>, then the Evidence numeric value must also be <tt>integer</tt>.</t>
          <t>This profile defines four numeric expressions, one for each numeric operator:</t>
          <ul spacing="normal">
            <li>
              <t><tt>tagged-numeric-gt</tt>,</t>
            </li>
            <li>
              <t><tt>tagged-numeric-ge</tt>,</t>
            </li>
            <li>
              <t><tt>tagged-numeric-lt</tt>,</t>
            </li>
            <li>
              <t><tt>tagged-numeric-le</tt>.</t>
            </li>
          </ul>
          <t>In each case, the numeric operator is used to evaluate a Reference Value operand against an Evidence value operand.</t>
          <t>The expression is evaluated using <em>infix</em> notation where Evidence_Operand is the left-hand-side of the numeric operator and the Reference_Operand is the right-hand-side.</t>
          <t>Example:</t>
          <ul spacing="normal">
            <li>
              <t>The expression: <tt>( 7 </tt>op.le<tt> 9 )</tt> evaluates to TRUE.</t>
            </li>
          </ul>
          <t>The numeric type definition is as follows:</t>
          <sourcecode type="cddl"><![CDATA[
tagged-numeric-gt = #6.60010( [
    op.gt .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-ge = #6.60010( [
    op.ge .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-lt = #6.60010( [
    op.lt .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-le = #6.60010( [
    op.le .within numeric-operators,
    reference-value: numeric-type ] )
]]></sourcecode>
        </section>
        <section anchor="sec-set-expressions">
          <name>Set Expressions</name>
          <t>Set expressions consist of an Evidence operand (Evidence_Operand) and an array containing a set operator and a set operand (Reference_Set_Operand).</t>
          <t>Sets have two operators:</t>
          <ul spacing="normal">
            <li>
              <t><strong>op.mem</strong> - operand_1 is a member of the set operand_2.</t>
            </li>
            <li>
              <t><strong>op.nmem</strong> - operand_1 is NOT a member of the set operand_2.</t>
            </li>
          </ul>
          <t>Example:</t>
          <ul spacing="normal">
            <li>
              <t>The expression: <tt>("fox" </tt>op.mem<tt> [ "cat", "dog", "fox" ])</tt> evaluates to TRUE.</t>
            </li>
          </ul>
          <t>The set type is as follows:</t>
          <sourcecode type="cddl"><![CDATA[
set-operators /= op.mem 
set-operators /= op.nmem
set-type<T> = [ * T ]

set-digest-type /= set-type<digest>
set-digest-expression = [ set-operators, set-digest-type ]
tagged-set-digest-expression = #6.60020( set-digest-expression )

set-tstr-type /= set-type<tstr>
set-tstr-expression = [ set-operators, set-tstr-type ]
tagged-set-tstr-expression = #6.60021( set-tstr-expression )
]]></sourcecode>
          <t>The set expression array contains a set operator followed by an array of values which are the members of a set of Reference Values.
The set is defined by <tt>set-type</tt>.</t>
          <t>The set expression definitions are as follows:</t>
          <sourcecode type="cddl"><![CDATA[
tagged-exp-digest-member = #6.60020([
    op.mem .within set-operators, set-digest-type ])
    
tagged-exp-digest-not-member = #6.60020([
    op.nmem .within set-operators, set-digest-type ])

tagged-exp-tstr-member = #6.60021([
    op.mem .within set-operators, set-tstr-type ])
    
tagged-exp-tstr-not-member = #6.60021([
    op.nmem .within set-operators, set-tstr-type ])
]]></sourcecode>
          <t>The Evidence_Operand <bcp14>MUST NOT</bcp14> be nil.</t>
          <t>The Reference_Set_Operand <bcp14>MAY</bcp14> be the empty set - e.g. <tt>[ ]</tt>.</t>
        </section>
      </section>
      <section anchor="sec-measurement-extensions">
        <name>Measurement Extensions</name>
        <t>This profile extends the CoMID <tt>measurement-values-map</tt> with additional code point definitions,
that accommodate Intel SGX and similar architectures.
Measurement extensions don't change Verifier behavior. An extension enables the Verifier to validate the profile compliance of the input evidence and reference values, as it defines the acceptable data types in evidence and the expression operator that is explicitly
supplied with the Reference Values, see <xref target="sec-expression-operators"/>.</t>
        <t>In cases where Evidence does not exactly match Reference Values, the operator definition determines the
expected data types of the operands.
Expected Verifier behavior is defined in <xref target="sec-intel-appraisal-algorithm"/></t>
        <t>The measurement extensions that follow are assumed to be appraised according to the appriasal steps described in <xref section="8.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>.</t>
        <section anchor="sec-tee-advisory-ids-type">
          <name>The tee.advisory-ids Measurement Extension</name>
          <t>The <tt>tee.advisory-ids</tt> extension enables Attesters to report known security advisories and for
Reference Values Providers (RVP) to assert updated security advisories.
It can also be used by Endorsers to assert security advisory information through conditional endorsement.</t>
          <t>The <tt>$tee-advisory-ids-type</tt> is used to specify a set of security advisories, where each identifier is represented using a string.
Evidence may report a set of advisories the Attester believes are relevant. The set of advisories are constrained
by the <tt>set-tstr-type</tt> structure.</t>
          <t>As a Reference Value expression, an empty set can be used to signify that no outstanding advisories are expected.
If the Evidence also contains the empty set then the Reference corroborates the Evidence.</t>
          <t>The <tt>$tee-advisory-ids-type</tt> is a list of strings, each identifying a single security advisory.
When used with Evidence the <tt>set-tstr-type</tt> type is used.
When used with Reference Values or Endorsements the <tt>set-tstr-type</tt>, <tt>tagged-exp-tstr-member</tt>, or <tt>tagged-exp-tstr-not-member</tt> types can be used.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.advisory-ids: -89) => $tee-advisory-ids-type
)
$tee-advisory-ids-type /= set-tstr-type
$tee-advisory-ids-type /= tagged-exp-tstr-not-member
$tee-advisory-ids-type /= tagged-exp-tstr-member
]]></sourcecode>
          <section anchor="sec-tee-advisory-ids-comp">
            <name>The tee-advisory-ids-type Comparison Algorithm</name>
            <t>The comparison algorithm for <tt>tee-advisory-ids-type</tt> is used when Endorsement or Reference Values triples conditions are matched with an Environment Claims Tuple (ECT) in the Verifier's Accepted Claims Set (ACS).
The triple condition containing a <tt>tee-advisory-ids-type</tt> Claim matches an ACS ECT according to the comparison algorithm for set of strings as defined in <xref target="sec-ca-sets"/>.</t>
          </section>
        </section>
        <section anchor="sec-tee-attributes-type">
          <name>The tee.attributes Measurement Extension</name>
          <t>The <tt>tee.attributes</tt> extension enables the Attester to report TEE attributes and an RVP to assert a reference
TEE attributes and mask.</t>
          <t>The <tt>$tee-attributes-type</tt> is used to specify TEE attributes in 8 or 16 byte words. If Evidence uses an 8 byte
mask, then the Reference Values expression also uses an 8 byte value and mask.</t>
          <t>The <tt>$tee-attributes-type</tt> is a singleton value omitting the mask value when used as Endorsement or Evidence
and a tuple containing the reference and mask when used as a Reference Value.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.attributes: -82) => $tee-attributes-type
)
$tee-attributes-type /= $masked-value-type
]]></sourcecode>
          <t>Alternatively, the TEE attributes may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.attributes</tt> and <tt>mval</tt>.<tt>raw-value</tt> contains the <tt>$tee-attributes-type</tt>.<tt>mask-type</tt> value.</t>
        </section>
        <section anchor="sec-tee-cryptokey-type">
          <name>The tee.cryptokeys Measurement Extension</name>
          <t>The <tt>tee.cryptokeys</tt> extension identifies cryptographic keys associated with a Target Environment.
If multiple <tt>$crypto-key-type-choice</tt> measurements are supplied, array position disambiguates each entry.
Appraisal compares values indexed by array position.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.cryptokeys: -91) => [ + $tee-cryptokey-type ]
)
$tee-cryptokey-type /= $crypto-key-type-choice
]]></sourcecode>
          <t>Alternatively, the TEE cryptokeys may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.cryptokeys</tt> and <tt>mval</tt>.<tt>cryptokeys</tt> contains the <tt>$tee-cryptokey-type</tt> value.</t>
        </section>
        <section anchor="sec-tee-date-type">
          <name>The tee.tcbdate Measurement Extension</name>
          <t>The <tt>tee.tcbdate</tt> (code point -72) extension is used by Endorsers to assert validity of a TEE component.
For example, a conditional endorsement might locate a component based on a few expected Claims, then augment them with a <tt>tee.tcbdate</tt> Claim.</t>
          <t>The <tt>$tee-date-type</tt> can be expressed in several ways:</t>
          <ul spacing="normal">
            <li>
              <t>ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.</t>
            </li>
            <li>
              <t>POSIX time which is the number of seconds since January 1, 1970 (midnight UTC).</t>
            </li>
            <li>
              <t>RFC9581 etime <xref target="RFC9581"/>.</t>
            </li>
          </ul>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.tcbdate: -72) => $tee-date-type
)
$tee-date-type /= ~tdate
$tee-date-type /= tdate
$tee-date-type /= time
$tee-date-type /= etime ; RFC9581
$tee-date-type /= period ; RFC9581
]]></sourcecode>
          <t><tt>~tdate</tt> strings must be converted to a numeric value (i.e.,<tt>~time</tt>) before operations involving time are applied.</t>
          <t>Alternatively, <tt>tee.tcbdate</tt> may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative code point value and where <tt>mval</tt>.<tt>name</tt> contains the string representation <tt>$tee-date-type</tt> without the CBOR tag (i.e., ~tdate - see Section 3.7 <xref target="RFC8610"/>).</t>
        </section>
        <section anchor="sec-tee-digest-type">
          <name>The tee.mrtee and tee.mrsigner Measurement Extension</name>
          <t>The <tt>tee.mrtee</tt> extension enables an Attester to report digests for the SGX enclave or TDX TD (e.g., MRENCLAVE, MRTD).
The <tt>tee.mrsigner</tt> extension enables an Attester to report the signer of the TEE digest (e.g., MRSIGNER).</t>
          <t>The <tt>$tee-digest-type</tt> has multiple type structures involving digest values. A singleton digest has a hash algorithm identifier and the digest value.
When used as Evidence, either a signleton digest or a set of digests can be reported.
When used as Reference Values or Endorsements, a set of digests can be asserted signifying equivalence matching.
Alternatively, matching may be expressed as set membership or set difference expressions.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.mrtee: -83) => $tee-digest-type
)
$$measurement-values-map-extension //= (
  &(tee.mrsigner: -84) => $tee-digest-type
)
$tee-digest-type /= digest ; see corim
$tee-digest-type /= digests-type ; see corim
;$tee-digest-type /= set-digest-type
$tee-digest-type /= tagged-exp-digest-member
$tee-digest-type /= tagged-exp-digest-not-member
]]></sourcecode>
          <t>Alternatively, the TEE digests may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.mrtee</tt> or <tt>tee.mrsigner</tt> and <tt>mval</tt>.<tt>digests</tt> contains a <tt>digests-type</tt> value.</t>
          <section anchor="sec-tee-digest-comp">
            <name>The tee-digest-type Comparison Algorithm</name>
            <t>The comparison algorithm for <tt>tee-digest-type</tt> is used when the condition statement in an Endorsement or Reference Values triple is matched with an Environment Claim Tuple (ECT) from the Verifier's Accepted Claims Set (ACS).
The comparison algorithm for set of digests is defined in <xref target="sec-ca-sets"/>.</t>
          </section>
        </section>
        <section anchor="sec-tee-platform-instance-id-type">
          <name>The tee.platform-instance-id Measurement Extension</name>
          <t>Platform Instance ID is a globally unique identifier generated by the platform during Platform Establishment. This value remains consistent across trusted computing base (TCB) recoveries, but is regenerated during Platform Establishment due to desire to reset keys or to add and remove hardware. See (Section 3.7 <xref target="INTEL.DCAP"/>).</t>
          <t>The <tt>tee.platform-instance-id</tt> extension enables the Attester to report the platform instance identifier as an Evidence value and the RVP to assert an exact-match Reference Value.</t>
          <t>The <tt>$tee-platform-instance-id-type</tt> is a <tt>bstr</tt>.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.platform-instance-id: -101) => $tee-platform-instance-id-type
)
$tee-platform-instance-id-type /= bstr
]]></sourcecode>
          <t>Alternatively, the platform instance ID may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.platform-instance-id</tt> code point and <tt>mval</tt>.<tt>raw-value</tt> contains the <tt>$tee-platform-instance-id-type</tt> value.</t>
        </section>
        <section anchor="sec-tee-isvprodid-type">
          <name>The tee.isvprodid Measurement Extension</name>
          <t>The <tt>tee.isvprodid</tt> extension enables the Attester to report the ISV product identifier Evidence value
and the RVP to assert an exact-match Reference Value.</t>
          <t>The <tt>$tee-isvprodid-type</tt> is an unsigned integer.</t>
          <t>The <tt>$tee-isvprodid-type</tt> is an exact match measurement.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.isvprodid: -85) => $tee-isvprodid-type
)
$tee-isvprodid-type /= uint
$tee-isvprodid-type /= bstr
]]></sourcecode>
          <t>Alternatively, the TEE product ID may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.isvprodid</tt> and <tt>mval</tt>.<tt>raw-value</tt> contains the <tt>$tee-isvprodid-type</tt> value.</t>
        </section>
        <section anchor="sec-tee-miscselect-type">
          <name>The tee.miscselect Measurement Extension</name>
          <t>The <tt>tee.miscselect</tt> extension enables the Attester to report the (TBD:miscselect-description) Evidence value
and the RVP to assert a Reference Value and mask.</t>
          <t>The <tt>$tee-miscselect-type</tt> is a 4 byte value and mask.</t>
          <t>The <tt>$tee-miscselect-type</tt> is a singleton <tt>mask-type</tt> value when used as Endorsement or Evidence
and a <tt>tagged-masked-raw-value</tt> when used a Reference Value.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.miscselect: -81) => $tee-miscselect-type
)
$tee-miscselect-type /= $masked-value-type
]]></sourcecode>
          <t>Alternatively, the TEE miscselect may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.miscselect</tt> and <tt>mval</tt>.<tt>raw-value</tt> contains the measurement value and <tt>mval</tt>.raw-value-mask` contains the mask value.</t>
        </section>
        <section anchor="sec-tee-model-type">
          <name>The tee.model Measurement Extension</name>
          <t>The <tt>tee.model</tt> extension enables the Attester to report the TEE model string as Evidence
and the RVP to assert an exact-match Reference Value.</t>
          <t>The <tt>$tee-model-type</tt> is a string.</t>
          <t>The <tt>$tee-model-type</tt> is an exact match measurement.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.model: -71) => $tee-model-type
)
$tee-model-type /= tstr
]]></sourcecode>
          <t>Alternatively, the TEE model may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.model</tt> and <tt>mval</tt>.<tt>name</tt> contains the <tt>$tee-model-type</tt> value.</t>
        </section>
        <section anchor="sec-tee-pceid-type">
          <name>The tee.pceid Measurement Extension</name>
          <t>The <tt>tee.pceid</tt> extension enables the Attester to report the PCEID as Evidence and the RVP to assert an exact-match Reference Value.</t>
          <t>The <tt>$tee-pceid-type</tt> is a string or a uint. As string, PCEID is a four character decimal value such as "0000".</t>
          <t>The <tt>$tee-pceid-type</tt> is an exact match measurement.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.pceid: -80) => $tee-pceid-type
)
$tee-pceid-type /= tstr
$tee-pceid-type /= uint
]]></sourcecode>
          <t>Alternatively, the PCEID may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.pceid</tt> and <tt>mval</tt>.<tt>name</tt> (code point 11) contains the string representation.
Or, <tt>mval</tt>.<tt>raw-int</tt> (code point 15) contains the integer representation.</t>
        </section>
        <section anchor="sec-tee-svn-type">
          <name>The tee.isvsvn Measurement Extension</name>
          <t>The <tt>tee.isvsvn</tt> extension enables the Attester to report the SVN for the independent software vendor supplied
component as Evidence and the RVP to assert a Reference Value that is greater-than-or-equal to the reported SVN.</t>
          <t>The <tt>$tee-svn-type</tt> is either an unsigned integer when reported as Evidence, or a tagged numeric expression
that contains an SVN and a numeric greater-than-or-equal operator. The Verifier ensures the Evidence value is greater-that-or-equal to the Reference Value.</t>
          <t>The <tt>$tee-svn-type</tt> is a <tt>svn-type</tt> when used as Endorsement or Evidence and a <tt>tagged-numeric-expression</tt> when used as a Reference Value.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.isvsvn: -73) => $tee-svn-type
)
$tee-svn-type /= svn-type .within numeric-type
$tee-svn-type /= tagged-numeric-ge
$tee-svn-type /= tagged-int-range
$tee-svn-type /= tagged-min-svn
]]></sourcecode>
          <t>Alternatively, the TEE isvsvn may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.isvsvn</tt> and <tt>mval</tt>.<tt>svn</tt> contains the svn value as <tt>svn-type</tt>.</t>
        </section>
        <section anchor="sec-tee-tcb-comp-svn-type">
          <name>The tee.tcb-comp-svn Measurement Extension</name>
          <t>The <tt>tee.tcb-comp-svn</tt> extension enables the Attester to report an array of SVN values for the TCB when asserted
as Evidence and an array of <tt>tagged-numeric-ge</tt> entries when asserted as a Reference Value.</t>
          <t>The <tt>$tee-tcb-comp-svn-type</tt> is an array containing 16 SVN values when reported as Evidence and an array of 16
expression records each containing the numeric <tt>ge</tt> operator and a reference SVN value.
The Verifier evaluates each SVN in the Evidence array with the corresponding reference expression,
by array position.
If all Evidence values match their respective expressions, evaluation is successful.
The array of SVN Evidence is accepted.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.tcb-comp-svn: -125) => $tee-tcb-comp-svn-type
)
$tee-tcb-comp-svn-type /= [ 16*16 svn-type .within numeric-type ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-numeric-ge ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-int-range ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-min-svn ]
]]></sourcecode>
        </section>
        <section anchor="sec-tee-tcb-eval-num-type">
          <name>The tee.tcb-eval-num Measurement Extension</name>
          <t>The <tt>tee.tcb-eval-num</tt> extension enables the Attester to report a TCB evaluation number as Evidence and the RVP to assert a Reference Value expression that compares the tcb-eval-num Evidence with the Reference Value using the greater-than-or-equal operator.</t>
          <t>The <tt>$tee-tcb-eval-num-type</tt> is an unsigned integer when reported as Evidence and a tagged numeric expression when asserted as Reference Values.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee-tcb-eval-num: -86) => $tee-tcb-eval-num-type
)
$tee-tcb-eval-num-type /= uint .within numeric-type
$tee-tcb-eval-num-type /= tagged-numeric-ge
$tee-tcb-eval-num-type /= tagged-int-range
]]></sourcecode>
          <t>Alternatively, the TEE tcb-eval-num Evidence may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.tcb-eval-num</tt> and <tt>mval</tt>.<tt>raw-value</tt> contains the tcb-eval-num encoded as 4-byte bstr value.</t>
        </section>
        <section anchor="sec-tee-tcbstatus-type">
          <name>The tee.tcb-status Measurement Extension</name>
          <t>The <tt>tee.tcb-status</tt> extension enables Attesters to report the status of the TEE trusted computing base (TCB)
and for Reference Value Providers (RVP) to assert expected TCB status.
It can also be used by Endorsers to assert TCB status through conditional endorsement.</t>
          <t>The <tt>tee-tcbstatus-type</tt> is used to specify TCB status as a set of status strings or as an expression with a set membership operator.</t>
          <t>The <tt>$tee-tcbstatus-type</tt> is a status array containing strings describing TCB status values.
When describing Evidence the <tt>set-tstr-type</tt> type is used.
When describing Reference Values or Endorsements the <tt>set-tstr-type</tt>, <tt>tagged-exp-tstr-member</tt>, or <tt>tagged-exp-tstr-not-member</tt> types can be used.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.tcbstatus: -88) => $tee-tcbstatus-type
)
$tee-tcbstatus-type /= set-tstr-type
$tee-tcbstatus-type /= tagged-exp-tstr-member
$tee-tcbstatus-type /= tagged-exp-tstr-not-member
]]></sourcecode>
          <section anchor="sec-tee-tcbstatus-comp">
            <name>The tee-tcbstatus-type Comparison Algorithm</name>
            <t>The comparison algorithm for <tt>tee-tcbstatus-type</tt> is used when Endorsement or Reference Values triples conditions are matched with an Environment Claims Tuple (ECT) in the Verifier's Accepted Claims Set (ACS).
The triple condition containing a <tt>tee-tcbstatuss-type</tt> Claim matches an ACS ECT according to the comparison algorithm for set of strings as defined in <xref target="sec-ca-sets"/>.</t>
          </section>
        </section>
        <section anchor="sec-tee-vendor-type">
          <name>The tee.vendor Measurement Extension</name>
          <t>The <tt>tee.vendor</tt> extension enables the Attester to report the TEE vendor name as Evidence and for the RVP to assert
the TEE vendor name.</t>
          <t>The <tt>$tee-vendor-type</tt> is a string containing the vendor name as a string. The vendor string in Evidence must
exactly match the vendor string in Reference Values.</t>
          <t>The <tt>$tee-vendor-type</tt> is an exact match measurement.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.vendor: -70) => $tee-vendor-type
)
$tee-vendor-type /= tstr
]]></sourcecode>
          <t>Alternatively, the TEE vendor may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.vendor</tt> and <tt>mval</tt>.<tt>name</tt> contains the <tt>$tee-vendor-type</tt> value.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-intel-appraisal-algorithm">
      <name>Appraisal Algorithm</name>
      <t>The Intel profile anticipates appraisal algorithms will be based on the appraisal algorithm defined in <xref target="I-D.ietf-rats-corim"/>.
This profile extends the appraisal algorithm to recognize profile extensions that form equations.
An Evidence measurement forms one of the operands: (evidence operand).
A Reference Value forms the operator and remaining operands:</t>
      <ul spacing="normal">
        <li>
          <t>[expression operator, reference value operand, etc...]</t>
        </li>
      </ul>
      <t>For example, if a numeric Reference Value is 14, and the expressions operator is <tt>gt</tt> the Reference Value might contain the Claim: <tt>#6.60010([ 1, 14])</tt>.
Given Evidence contains the value: 15.
The in-fix construction of the equation would be: <tt>15 gt 14</tt>.
The Verifier evaluates whether <tt>15</tt> is greater-than <tt>14</tt>.</t>
      <section anchor="sec-complex-expressions">
        <name>Complex Expressions</name>
        <t>Complex expressions can be used to assess whether the Target Environment is in a particular state before certain Endorsement claims can be asserted.
For example, if an SGX enclave has an <tt>svn</tt> value that is less than the prescribed minimum svn, the enclave status may be
considered "OutOfDate" or may have a known security advisory. The CoMID <tt>conditional-endorsement-triples</tt> or
<tt>conditional-endorsement-series-triples</tt> describe complex Endorsement expressions.</t>
        <t>This profile uses these triples with the reference measurement values extensions described in <xref target="sec-measurement-extensions"/>.</t>
      </section>
      <section anchor="sec-ca-sets">
        <name>Comparison Algorithm for Sets</name>
        <t>The comparison algorithm for sets describes set equivalence, set membership, and set difference (not membership).
The Verifier's Accepted Claims Set (ACS) contains a list of Environment Claims Tuples (ECT)<xref target="I-D.ietf-rats-corim"/>.
The condition ECTs are compared to ACS ECTs based on this comparison algorithm.</t>
        <t>The set comparison algorithm processes sets of strings and sets of digests.</t>
        <section anchor="sec-ca-stringsets">
          <name>Comparison Algorithm for Set of Strings</name>
          <t>There are three string set representations: <tt>set-tstr-type</tt>, <tt>tagged-exp-tstr-member</tt>, and <tt>tagged-exp-tstr-not-member</tt>.</t>
          <ul spacing="normal">
            <li>
              <t><tt>set-tstr-type</tt> - Every string in the condition <tt>set-tstr-type</tt> <bcp14>MUST</bcp14> match a string in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-tstr-type</tt> set.
The string position in the array is not significant.
The ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-tstr-type</tt> set <bcp14>MUST</bcp14> be equivalent to the condition <tt>set-tstr-type</tt> set (i.e., the two sets have the same cardinality and the same set members).</t>
            </li>
            <li>
              <t><tt>tagged-exp-tstr-member</tt> - The condition ECT set operator <bcp14>MUST</bcp14> equal <tt>member</tt> and every string in the condition <tt>set-tstr-type</tt> <bcp14>MUST</bcp14> match a string in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-tstr-type</tt> set.
The string position in the array is not significant.
The ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-tstr-type</tt> set <bcp14>MAY</bcp14> contain strings not found in the condition <tt>set-tstr-type</tt>.</t>
            </li>
            <li>
              <t><tt>tagged-exp-tstr-not-member</tt> - The condition ECT set operator <bcp14>MUST</bcp14> equal <tt>not-member</tt> and every string in the condition <tt>set-tstr-type</tt> <bcp14>MUST NOT</bcp14> match a string in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-tstr-type</tt> set.
The string position in the array is not significant.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-ca-digestsets">
          <name>Comparison Algorithm for Set of Digests</name>
          <t>There are five digest set representations: <tt>digest</tt>, <tt>digest-type</tt>, <tt>set-digest-type</tt>, <tt>tagged-exp-digest-member</tt>, and <tt>tagged-exp-digest-not-member</tt>.</t>
          <ul spacing="normal">
            <li>
              <t><tt>digest</tt> - The singleton <tt>digest</tt> in the condition <bcp14>MUST</bcp14> match at least one digest in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set.</t>
            </li>
            <li>
              <t><tt>digest-type</tt> and <tt>set-digest-type</tt> - Every digest in the condition <tt>digest-type</tt> or <tt>set-digest-type</tt> <bcp14>MUST</bcp14> match a digest in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set.
The digest position in the array is not significant.
The ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set <bcp14>MUST</bcp14> be equivalent to the condition <tt>set-digest-type</tt> set (i.e., the two sets have the same cardinality and the same set members).
Matching based on the empty set is permitted when the <tt>set-digest-type</tt> is used.</t>
            </li>
            <li>
              <t><tt>tagged-exp-digest-member</tt> - The condition ECT set operator <bcp14>MUST</bcp14> equal <tt>member</tt> and every digest in the condition <tt>set-digest-type</tt> <bcp14>MUST</bcp14> match a digest in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set.
The digest position in the array is not significant.
The ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set <bcp14>MAY</bcp14> contain digests not found in the condition <tt>set-digest-type</tt>.</t>
            </li>
            <li>
              <t><tt>tagged-exp-digest-not-member</tt> - The condition ECT set operator <bcp14>MUST</bcp14> equal <tt>not-member</tt> and every digest in the condition <tt>set-digest-type</tt> <bcp14>MUST NOT</bcp14> match a digest in the ACS.ECT.<tt>element-map</tt>.<tt>element-claims</tt>.<tt>set-digest-type</tt> set.
The digest position in the array is not significant.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="sec-intel-reporting-attestation-results">
      <name>Reporting Attestation Results</name>
      <t>Attestation verification can be performed by a pipeline consisting of multiple stages where each input manifest demarks a stage.
The final stage prepares Attestation Results according to Relying Party specifications.
This profile does not define an attestation results format.
The Relying Party should specify suitable Attestation Results formats such as <xref target="I-D.ietf-rats-ar4si"/> or <xref target="I-D.kdyxy-rats-tdx-eat-profile"/>.</t>
      <t>The precise Attestation Results format used, if negotiated by Verifier and Relying Party, should reference this profile to acknowledge
that the Relying Party and Verifier both support the extensions defined in this document.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The security of this profile depends on the security considerations of the various normative references.</t>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA has allocated the following tags in the CBOR Tags registry <xref target="IANA.cbor-tags"/>.</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">60010</td>
            <td align="left">array</td>
            <td align="left">Contains a numeric expression, see <xref target="sec-numeric-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
          <tr>
            <td align="left">60020</td>
            <td align="left">array</td>
            <td align="left">Contains a set of digest expression, see  <xref target="sec-set-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
          <tr>
            <td align="left">60021</td>
            <td align="left">array</td>
            <td align="left">Contains a set of tstr expression, see  <xref target="sec-set-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-07"/>
        </reference>
        <reference anchor="DICE.CoRIM" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-Endorsement-Architecture-for-Devices-V1-R38_pub.pdf">
          <front>
            <title>DICE Endorsement Architecture for Devices</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.38" value=""/>
        </reference>
        <reference anchor="DICE.Attest" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.1, Revision 18" value=""/>
        </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 (TCG)</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.19" value=""/>
        </reference>
        <reference anchor="TCG.CE" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.0-Revision-54_pub.pdf">
          <front>
            <title>TCG DICE Concise Evidence Binding for SPDM</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.54" value=""/>
        </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="21" month="May" year="2025"/>
            <abstract>
              <t>   Section 8 of RFC 9334 defines "conceptual messages" as abstract
   messages exchanged by RATS roles such as Evidence, Attestation
   Results, Endorsements, and Reference Values.  This document defines a
   "conceptual message" wrapper (CMW) format for any RATS conceptual
   message and 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-14"/>
        </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="RFC9581">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="B. Gamari" initials="B." surname="Gamari"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR, 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>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 8949 defines two tags for time: CBOR tag 0 (RFC 3339 time as a string) and tag 1 (POSIX time as int or float). Since then, additional requirements have become known. The present document defines a CBOR tag for time that allows a more elaborate representation of time, as well as related CBOR tags for duration and time period. This document is intended as the reference document for the IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9581"/>
          <seriesInfo name="DOI" value="10.17487/RFC9581"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="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="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="DMTF.SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.2.1.pdf">
          <front>
            <title>Security Protocol and Data Mmodel (SPDM) Specification</title>
            <author>
              <organization>Distributed Managability Task Force (DMTF)</organization>
            </author>
            <date year="2022" month="May"/>
          </front>
          <seriesInfo name="Version 1.2.1" value=""/>
        </reference>
        <reference anchor="DICE.engine" target="https://trustedcomputinggroup.org/wp-content/uploads/Hardware-Requirements-for-Device-Identifier-Composition-Engine-r78_For-Publication.pdf">
          <front>
            <title>Requirements for a Device Identifier Composition Engine</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2018" month="March"/>
          </front>
          <seriesInfo name="Family &quot;2.0&quot;, Level 00 Revision 78" value=""/>
        </reference>
        <reference anchor="I-D.kdyxy-rats-tdx-eat-profile">
          <front>
            <title>EAT profile for Intel(r) Trust Domain Extensions (TDX) attestation result</title>
            <author fullname="Greg Kostal" initials="G." surname="Kostal">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Sindhuri Dittakavi" initials="S." surname="Dittakavi">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Raghuram Yeluri" initials="R." surname="Yeluri">
              <organization>Intel</organization>
            </author>
            <author fullname="Haidong Xia" initials="H." surname="Xia">
              <organization>Intel</organization>
            </author>
            <author fullname="Jerry Yu" initials="J." surname="Yu">
              <organization>Intel</organization>
            </author>
            <date day="13" month="December" year="2024"/>
            <abstract>
              <t>   Intel® Trust Domain Extensions (TDX) introduce architectural elements
   designed for the deployment of hardware-isolated virtual machines
   (VMs) known as trust domains (TDs).  TDX is designed to provide a
   secure and isolated environment for running sensitive workloads or
   applications.  This Entity Attestation Token (EAT) profile outlines
   claims for an Intel TDX attestation result which facilitate the
   establishment of trust between a relying party and the environment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kdyxy-rats-tdx-eat-profile-02"/>
        </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="3" month="March" year="2025"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-06"/>
        </reference>
        <reference anchor="INTEL.DCAP" target="https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_SGX_ECDSA_QuoteLibReference_DCAP_API.pdf">
          <front>
            <title>Intel(R) Software Guard Extensions (Intel(R) SGX) Data Center Attestation Primitives ECDSA Quote Library API</title>
            <author>
              <organization>Intel Corporation</organization>
            </author>
            <date year="2023" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 973?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Shanwei Cen, Piotr Zmijewski, Francisco J. Chinchilla and Dionna Amalie Glaze for their valuable contributions.</t>
    </section>
    <section anchor="full-intel-profile-cddl">
      <name>Full Intel Profile CDDL</name>
      <sourcecode type="cddl"><![CDATA[
; This cddl file depends on these cddl files: coev.cddl corim-autogen.cddl

tagged-numeric-gt = #6.60010( [
    op.gt .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-ge = #6.60010( [
    op.ge .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-lt = #6.60010( [
    op.lt .within numeric-operators,
    reference-value: numeric-type ] )
tagged-numeric-le = #6.60010( [
    op.le .within numeric-operators,
    reference-value: numeric-type ] )

numeric-type = integer / unsigned / float
numeric-operators /= op.gt
numeric-operators /= op.ge 
numeric-operators /= op.lt
numeric-operators /= op.le
numeric-expression = [ numeric-operators, numeric-type ]
tagged-numeric-expression = #6.60010(numeric-expression)

Etime = #6.1001(etime-detailed)

etime-framework = {
  uint => any ; at least one base time
  * (nint/text) => any ; elective supplementary information
  * uint => any ; critical supplementary information
}

etime-detailed = ({
  $$ETIME-BASETIME
  ClockQuality-group
  * $$ETIME-ELECTIVE
  * $$ETIME-CRITICAL
  * ((nint/text) .feature "etime-elective-extension") => any
  * (uint .feature "etime-critical-extension") => any
}) .within etime-framework

$$ETIME-BASETIME //= (1: ~time)
$$ETIME-BASETIME //= (4: ~decfrac)
$$ETIME-BASETIME //= (5: ~bigfloat)
$$ETIME-ELECTIVE //= (-3: uint)
$$ETIME-ELECTIVE //= (-6: uint)
$$ETIME-ELECTIVE //= (-9: uint)
$$ETIME-ELECTIVE //= (-12: uint)
$$ETIME-ELECTIVE //= (-15: uint)
$$ETIME-ELECTIVE //= (-18: uint)
$$ETIME-ELECTIVE //= (-1 => $ETIME-TIMESCALE)
$$ETIME-ELECTIVE //= (-13 => $ETIME-TIMESCALE)
$$ETIME-CRITICAL //= (13 => $ETIME-TIMESCALE)
$ETIME-TIMESCALE /= &(etime-utc: 0)
$ETIME-TIMESCALE /= &(etime-tai: 1)

ClockQuality-group = (
  ? &(ClockClass: -2) => uint .size 1 ; PTP/RFC8575
  ? &(ClockAccuracy: -4) => uint .size 1 ; PTP/RFC8575
  ? &(OffsetScaledLogVariance: -5) => uint .size 2 ; PTP/RFC8575
  ? &(Uncertainty: -7) => ~time/~duration
  ? &(Guarantee: -8) => ~time/~duration
)

Duration = #6.1002(etime-detailed)

simple-Period = #6.1003([
  start: ~Etime / null
  end: ~Etime / null
  ? duration: ~Duration
])

Period = #6.1003([
  (start: ~Etime,
   ((end: ~Etime) //
    (end: null,
     duration: ~Duration))) //
  (start: null,
   end: ~Etime,
   duration: ~Duration)
])

etime = #6.1001({* (int/tstr) => any})
duration = #6.1002({* (int/tstr) => any})
period = #6.1003([~etime/null, ~etime/null, ?~duration])

set-operators /= op.mem 
set-operators /= op.nmem
set-type<T> = [ * T ]

set-digest-type /= set-type<digest>
set-digest-expression = [ set-operators, set-digest-type ]
tagged-set-digest-expression = #6.60020( set-digest-expression )

set-tstr-type /= set-type<tstr>
set-tstr-expression = [ set-operators, set-tstr-type ]
tagged-set-tstr-expression = #6.60021( set-tstr-expression )

tagged-exp-digest-member = #6.60020([
    op.mem .within set-operators, set-digest-type ])
    
tagged-exp-digest-not-member = #6.60020([
    op.nmem .within set-operators, set-digest-type ])

tagged-exp-tstr-member = #6.60021([
    op.mem .within set-operators, set-tstr-type ])
    
tagged-exp-tstr-not-member = #6.60021([
    op.nmem .within set-operators, set-tstr-type ])

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

$$measurement-values-map-extension //= (
  &(tee.advisory-ids: -89) => $tee-advisory-ids-type
)
$tee-advisory-ids-type /= set-tstr-type
$tee-advisory-ids-type /= tagged-exp-tstr-not-member
$tee-advisory-ids-type /= tagged-exp-tstr-member

$$measurement-values-map-extension //= (
  &(tee.attributes: -82) => $tee-attributes-type
)
$tee-attributes-type /= $masked-value-type

$$measurement-values-map-extension //= (
  &(tee.cryptokeys: -91) => [ + $tee-cryptokey-type ]
)
$tee-cryptokey-type /= $crypto-key-type-choice

$$measurement-values-map-extension //= (
  &(tee.tcbdate: -72) => $tee-date-type
)
$tee-date-type /= ~tdate
$tee-date-type /= tdate
$tee-date-type /= time
$tee-date-type /= etime ; RFC9581
$tee-date-type /= period ; RFC9581

$$measurement-values-map-extension //= (
  &(tee.mrtee: -83) => $tee-digest-type
)
$$measurement-values-map-extension //= (
  &(tee.mrsigner: -84) => $tee-digest-type
)
$tee-digest-type /= digest ; see corim
$tee-digest-type /= digests-type ; see corim
$tee-digest-type /= tagged-exp-digest-member
$tee-digest-type /= tagged-exp-digest-not-member

$$measurement-values-map-extension //= (
  &(tee.isvprodid: -85) => $tee-isvprodid-type
)
$tee-isvprodid-type /= uint
$tee-isvprodid-type /= bstr

$$measurement-values-map-extension //= (
  &(tee.miscselect: -81) => $tee-miscselect-type
)
$tee-miscselect-type /= $masked-value-type

$$measurement-values-map-extension //= (
  &(tee.model: -71) => $tee-model-type
)
$tee-model-type /= tstr

op.eq=0
op.gt=1
op.ge=2
op.lt=3
op.le=4
op.mem=6
op.nmem=7

$$measurement-values-map-extension //= (
  &(tee.pceid: -80) => $tee-pceid-type
)
$tee-pceid-type /= tstr
$tee-pceid-type /= uint

$$measurement-values-map-extension //= (
  &(tee.isvsvn: -73) => $tee-svn-type
)
$tee-svn-type /= svn-type .within numeric-type
$tee-svn-type /= tagged-numeric-ge
$tee-svn-type /= tagged-int-range
$tee-svn-type /= tagged-min-svn

$$measurement-values-map-extension //= (
  &(tee.tcb-comp-svn: -125) => $tee-tcb-comp-svn-type
)
$tee-tcb-comp-svn-type /= [ 16*16 svn-type .within numeric-type ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-numeric-ge ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-int-range ]
$tee-tcb-comp-svn-type /= [ 16*16 tagged-min-svn ]

$$measurement-values-map-extension //= (
  &(tee-tcb-eval-num: -86) => $tee-tcb-eval-num-type
)
$tee-tcb-eval-num-type /= uint .within numeric-type
$tee-tcb-eval-num-type /= tagged-numeric-ge
$tee-tcb-eval-num-type /= tagged-int-range

$$measurement-values-map-extension //= (
  &(tee.tcbstatus: -88) => $tee-tcbstatus-type
)
$tee-tcbstatus-type /= set-tstr-type
$tee-tcbstatus-type /= tagged-exp-tstr-member
$tee-tcbstatus-type /= tagged-exp-tstr-not-member

$$measurement-values-map-extension //= (
  &(tee.vendor: -70) => $tee-vendor-type
)
$tee-vendor-type /= tstr

$$measurement-values-map-extension //= (
  &(tee.platform-instance-id: -101) => $tee-platform-instance-id-type
)
$tee-platform-instance-id-type /= bstr

]]></sourcecode>
    </section>
  </back>
  <!-- ##markdown-source:
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
YNsAAA==

-->

</rfc>
