<?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  (Ruby 3.2.3) -->
<?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-06" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Intel profile">Intel Profile for Remote Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-cds-rats-intel-corim-profile-06"/>
    <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>Independent</organization>
      <address>
        <email>ned.smith.ietf@outlook.com</email>
      </address>
    </author>
    <author initials="F." surname="Chinchilla" fullname="Francisco J. Chinchilla">
      <organization>Intel Corporation</organization>
      <address>
        <email>francisco.j.chinchilla@intel.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="26"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>profile</keyword>
    <keyword>corim</keyword>
    <abstract>
      <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 a particular application 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://fchinchilla.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/fchinchilla/draft-cds-rats-intel-corim-profile"/>.</t>
    </note>
  </front>
  <middle>
    <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>
      <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>
      <name>References</name>
      <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>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="20" month="October" 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-09"/>
        </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>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="18" month="November" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-21"/>
        </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>
        <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="15" month="August" year="2025"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-07"/>
        </reference>
        <reference anchor="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>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Shanwei Cen, Piotr Zmijewski, 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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
ZGAislm6sJDXd64x4Yi6VHt68VI8erDTs9EzbF/QtaYf4J/g7Cw4Pu5/883B
2dnBxcV/d7ndq5cXp3+l6wY2zkYd/6mTA9imFB1dOb4fbd4i7XVE7/HDHdGa
ReOEIPRd/6itOlVPewpJ/WIyb37iU+kjH0KECmwHjAlaahh4WbIzRRzliz/r
vjR/gKnXlfOavtRrrKuCWaLTsVtHEfaA5zEwm0QH4kN1jTBT4dVh6dS8FXVl
twNtYeBBG6pPTEwsq7tRcpXG9IYQzc1JtNGtYSc+9n0ETuKQp1VydFvmJ3x/
y+tC3TcpXTOuoL8OVPEiOxkialdFQA497V+6331I9xUBv/h5JZ8pzQDKyqtI
vyhSJFvNo6zX3edS1F+dCmwybHkasI6x05f/0bUrVQ4NKMIEGpg4g+/enJ2f
vDh6fvj6BP/sH2vDY+DOfP2hCei8WsUbkCHyhOyIF6dfvzg5b5f5kV3+QFyG
uZXzhPNOxlyLi6pnJuouhgcadVZ9uiTVEv596Vg4jjdJ+37dnjwHQugmdlE3
IEJapDcOJ8PzgxxNXjjO9lbudpVXotPYI4sedPmxW4iytzkxWc41shJhmttM
miYNy6+E1wtlBo6jiZ6nc/D9wUyWkBoV8/sOi7UowEz2Dr0y+mHHezd0XCpE
jqo28kuidPIc31RPWQhe7S/rqpfO0+r7bDolXLe265q5WcHTmPSxtDvFm5Sj
xWEZrqqn43ndo92BC8eSemc9RO7KV/iGVNVbeIU8juP5g9g3op0uJlJfJSVb
z1tEjxyschB5/iFzk+MWHqJVHhy933UHOM0eHJ0xKtBJ4oNovFJ+1TWy0uyV
TkJ1qr5iTgFyQUzjdEg3FNUDbg531hk+zX0Rk8pqvCDRbno9yfGIL8ovyU4U
dIzKmgJfJDGROpSAkhN26exQNgUm5UZo9Y+etukN1CvJBxFgRPOxg53PjePD
V8nv/uLVSJaPuB9kV/GzYnhdnk8wZzCMefOA71W0SooGPhGtFQ0jnevAfQs/
mQdN3YUnGfOaIEEToOf70xL3scXGgFyW841oojxSfBv4g+VL3TAgFXo7PSsW
GqdihURjFWTEONObGG4VvoDzH4vz1u+/oyiv7ym6YUvqze4ov8L0VGswBVOz
Rq81326JtqcXr/Xjji7C+qjKzsgPxFV/9gN1QaQc/b9WI+eev+ue+mA8N6Oh
yrNvcdufhUVovxyxeAHLaPy4CsVRp9B78RGR20GN9dG4DPh63J1F+SiXlMxw
FfLaqnVWmfl4S/Rt9Z8eHzhdj20u9va6SFw5SG5w+pdWoFjs3hrHBfUtrX1V
cSbf6oig+Tq908tHPxGwa0JicQRBabGWWkof7nYi4GDcR1O7HeRbh0DcQBy7
7aqVvXmOSyu39DMaeJREz02vJCKsVUc/WH5L0iFo0qjKteNY5x+F4dvJaoTX
YSU31fp03J1GQkeki6xmdAdPTRkZiGswbQbjR8NH3kwXFWv8cVXo1SPWfCTX
sTewVg1iUfktEevV0QkmFs/9m2UfqumaCXrIxL4ilLpdcZirwo6aAtWjO0kj
sAlgJEqWOYpmocp2YZIhbO3AP1srhvx0mEkjIRvdcfRpM7qjQJsyi5k1H1gJ
aUZZhs5H050ZRaro6p4D9XrtNdzJAMiXWcdjwNC41NN+qSeTi6rcVUXNzq+S
lYQAdeq1a/hwSzq4eP3C+I3xlJNSx8CweTop6E0+9YCePk/d3LBnVWtQT0Vt
0eG1tZdXdZSKeS4DZlfCd710wnbtna1q6KxV1D27od7YVPf2q/cAVcC0dVwl
BCP/jnH97HVgLocRmphazgDkB9TpR9A9QBQVQNzMbjxYgIplf6+jmQlfMave
/hx86ngNRlgUdo5LWC/CMhRdQs5V/Xf5QpjjanXrV67PNdfBN+0oU1pzlVmU
YPEqSauo+COaRkTXLvOiAp9XXemIHkyMZVCh7gCdXKbBOozGrVx/mm4+34Lv
uHd5kLZMxhVmQ/2jp4x5+tQDFL0Sp/GTNlRu3lJERyRzv5tmJLYkVVmwlqqV
23u9B+7cG9lNZbq9BxSdr6O60OuIz6CbVOlOBJXmNgNcUumeoI2uMrPoltKP
2etz1DnWi0o3qXlW5lYDxv/KfJ5ymLEdwglaptjnSgzMKaegL2eZYCWkoPRI
2DE6Oa+8U6WOnqUKvABdBzO9TBaxWo2HKG4KnFD5yT/G4b/ZcvQX7jo+lQo6
WK5U+YR84kfY3nuAGTeyKYzjWd1F9eLvbZoZZnarVoq/YRsbvetxDtwtnNNa
nENXbuAc+vNtOAcxBwdlVETJXTQRhwj1I9Ic84WNvbWarpuu/zgJLFZoBlVu
4wGpyeG4ir80qzNVFlib6eUDCMhbBdoHD3z68Rbo04/3SRsFN4n22kZNMv6m
yo6wv1mW1yPCxxLtPhms49fx5uOkwtyjZIPkvW2OnAvwYHOxOtQTqnLNBsrl
j+tefmJLigZ2YkRuOotjz05NEuwbLkWZSDnkEDzc7S5D2Xbr33yqAqs+Ttx2
HebCyUlFRSa4Th/BVTODlQM1GtlJeSahGbesv+hR1Y06el3HTvNKswYKYHHq
3PpSjtP2938rx0AY+dwjj885kPeYnFPedBmnWqvpTs2a1WuiQ7wgi1IPK+Is
bO1bhFo0UcXv/faNWdc/y90b5Z9ZxdJV2voqP+cPd3DLq4HRjVZRSLQp5+lg
nKKy1LTEwpxp+i7UkmlUGty47Qks2mXFLSMnpgFDY9H8ci9ZF3UtapWkG6b5
6dyuPBQ6SRy/qzO+ZTZO4bpnAmrdH0ud0bi01qmAB0NHZRH2GkaZGzVfQNfb
w7kNdEoBylMXzfltVtOraaUeQsG3TnXUPU6vpqZPkM4188bsDXWdEA2N0mkS
/Sz9Rt4t+Wxmk5liQKeLvw6Vc55Yeu/Zv9h/IFom00FqcwZVs77bTLOec6Em
ES+n8vmfH2sSJnTKORlskmBZjLrd7v9Q/pxqDjhtq5RnBQDt7XVqcjQ4yT+h
zmBaDGptMb5aoV9IwxrEog8oFS3nlvqRbhrscaLZryPMvV9+kJThopJJ9faV
gAD7eBK9U3fBFyP34TK9ZeKanjgbQrNBb19MCxho0OyaAfIiHzbUHZT94lC4
57zAxe/xVbNWqZf6KpmrdAsve5V/yxwZc24nQWyh+jh4pBKfzjG96GiB2UL4
iQp1awCfJkNYe8nFWcKW4pfLF2QiSqLlxqtfsgrMDs4r78gA81QKk1ce16RS
QcwAW2dgDkEbZm26M6XMMnvDkwvz9MLWy0XxcnIMi9gSigGqNyjqUzUsWbKo
nCyOXRA4dkGg9BaMjt3caKyVU5ChraxzWpgnF104liOwqw8vwYJzaVQm46Kw
VFkJBSi9e+Jl1LjptVUXFSv6Iop8SkqmkFIpLCu1Razl5CSntEs2sr1TMn3U
A/N+lHoLM6fYOu0Std2k+LkByjp7QZNambNeWeL/rroIn3WyCPIlEY0pfTB3
hUyU1wLESz5VCzGVCZsBlXtao0qe78QAG13xpg0j36rqw24dFzgb6GW+VnoS
ztI/0ATZcwv7jdSEGwy4LoudspUZALOW2dLR1gpvF8r1KeMTK2ZhqRHsTRf2
pjuQsTQPS9lfzMTwuKWU50MWOpUYd2dul6p+2dquTRLd/6BhTapV5+0YY140
AQDbqdtN5EK6ThlTOH3gpcrZOgrRWglj4npK+NIHhwLbeksa9hT2pkIRfk43
zt9OTtGBboSjyX/hLT38wagrmppxEPNIwI2waNoR1xFyq11xG95xZzC92j/N
7qzHAo/VtQnDAhUPrbLACZo76u5QPQfkj8j63AsnHYZVqajpIlANe6xc/TF7
rwZU++yEbOoPlW1zCagAzSpE0ZeYdd1ht7y7NbxfztxUOS2pUlszdH9wB8e8
2uhhqnThMYSPugiEqOrwE7KE8sDr8/lKy4/H6c2bQJ55bDNIoSaKWeeKwr1G
VZ2V9QiXOZWP8h8qPRrx518AXRwZom+ArZIhbifNe/OR5cgt98iVJP8E+8Tv
GtOT5UAW7Bxlq/9cvV7vOqoyXRMzs+iagXrnnqSK28MVmSv6fW+2mwGu6KTR
b5nMozk/Z6yutqm3Fc29aehqapJLcu41SqFp3vwey1mYvVXHQlMdMTJBZsAl
aFbzKXjd4jyX9rnkR9VehRnyA++B5rJnzOS31C8zJ8IBiXoPniKAYLO7OiGr
1/8luVX0iVq+iDjDZ900uZvcBM6CxRZme3n0/j0KD3xze/wOX8M2b02/N4YX
LJ9eQW7ullgZeS4SOU2LSF9WNL4dfiHBmXtHT96a5O6bROSHGaHbIZbjqVTx
h0UFAtivzdOJj2JgTKb2yFdeMh2bZ6zH6WhhXNGY+ly5No68F5xMCnT+Wn7f
yVqmqjW5vbznFebk/FRSwtTz+9HesivQxdIF4gRlm7xy/BXKbBWnhy8O6+dY
9/4UZVfFFuRAijmzCos25yWvcGreC6W8D30syOQUaAl40y+//Ad20R0N0S8N
nxRi/IpJiPE17M/wtV56KPW0kLPS2723++dXx29JT/iq53zpk3nct/LrdkPY
ljQEOT+hmBncrwhc7fuoBo64GW1rH6DiIX755Q8XJ8+fwU89xG7DEN795MpA
ouE5p/ohejcOgYbD+gNUVoH/++VAfFYMY0Y15uYK0YF/TwN+DaqIilg+2fJf
QEY8OWeMYvZxhGHhr+iR4i1CU9yPIVC8Ou0wpE9n4JrOwkVxicnpr6P8kjW/
MHkrLuDf1zISRxJW9SpKYZ3/PYv+Lq/ztxEbDMcwZBKKwxmod1J8HYc/S30a
F3FkCLFN1BUoV5hxLH4mni3iuPSc89Hx8XP/AOtLvmmNP0QN3ePbmvoTmEKj
VF51qYBcZgGsKp3KhIo2/v2Sxu/yJY2Nf7+R5L2RtLFxQhmSqFYParUom1Mw
lsCWgK4pnT4XTTKwsq7T7C1U/gXBTfFuT76i9y+/9C1xiobifFFC3BOtBKpu
FyDm27YB3QdE4Um3M0jxDf0kztzYH2YEcpmefbuh1Xs7ab0OmHOLJv355yf9
07OT4OnhBf2BZUcgcN9+uyCbMphm6WLOI+u6J89BVz99feKXHp2f9k+PDp+r
Jbpr7E5AQcOHk7d4Fnqp9kBiSwNCtebYwVIzvdbaZu/bhhpK+4OrLy+TD+Z7
B4JyZrWbKuxBhbEcQVejxjr7UGcYTYlGnEoaSFwpuH9AG9dc4cGqCo9XVejt
rqyxv7LGo5U1KG6BP+G/LmDLT26ofn9FfY02akcaq5eKkEv8QRHnohgdiJ0V
lQDvD0SP6LeK30JFafwJqtPXozjMMS6MM8gxNuZ40t8DmnvVf7V9/uzo0f7D
fa/R4QjU5HC0hHZ7a7Z7OZmAEnMBSC3Hz9Ppa9CkMYMD9LBf7mG3vofvEnVi
W+C4D6kVIfX2b+NFZvgGVv16EWag33LipvqKBJ9j9dNwwd06LphHeMAZvOJU
drrqfX7nA8ytrADCYG66Dfw5jrFc4mOmldI/CT0D+HhsJsOPl9QP0PJGYHHX
ajndtwGhWAhyKY6lpGLdaO22bqB7tg2cXrmgrr2erizJj1+AmxEnBB1Sc6v3
UHNcBXJT1XkFAr/RKNs0ReH9+JPZzL+BMPMeV/n3q0n/qFeTNv79kNA//CGh
jY1q6gdO/MmDYsQ9GGz1lT63SRawyKTj/Rd8C+BOa/40ubzvMpVPnaL5LnP6
PWasvcs6/z9MGvlp00HeBcj/Cxml7rT3nyZ5z52mcuesLBsb9N71k53NDXJ7
POnxH/LJLv0RF0/u8x/yyR79Afv45AH9hbLqycO7zPcT5Oq4I2L9Li/435Ej
//saceka8R3g+Pu+TXpHxPl93Sm7yyI/6BbLnTjg/1o2UOdl6f8H9tABnUjg
AAA=

-->

</rfc>
