<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.27 (Ruby 3.3.6) -->
<?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-04" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Intel profile">Intel Profile for Remote Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-cds-rats-intel-corim-profile-04"/>
    <author initials="J." surname="Beaney" fullname="James D. Beaney">
      <organization>Intel Corporation</organization>
      <address>
        <email>james.d.beaney@intel.com</email>
      </address>
    </author>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>ARM Corporation</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Draper" fullname="Andrew Draper">
      <organization>Altera Corporation</organization>
      <address>
        <email>andrew.draper@altera.com</email>
      </address>
    </author>
    <author initials="V." surname="Scarlata" fullname="Vincent R. Scarlata">
      <organization>Intel Corporation</organization>
      <address>
        <email>vincent.r.scarlata@intel.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="03"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>profile</keyword>
    <keyword>corim</keyword>
    <abstract>
      <?line 133?>

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

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>This profile describes extensions and restrictions placed on Reference Values, Endorsements, and Evidence
that support attestation capabilities of Intel products containing Intel(R) SGX(TM) or Intel(R) TDX(TM) technology, or Intel(R) products that contain
DICE <xref target="DICE.engine"/> root of trust, DICE layers <xref target="DICE.layer"/>, or modules that implement SPDM <xref target="DMTF.SPDM"/>.</t>
      <t>The CoRIM specifications <xref target="DICE.CoRIM"/> and <xref target="I-D.ietf-rats-corim"/> define a baseline schema for Reference Values and Endorsements that form the foundation for the extensions defined in this profile.
<xref target="I-D.ietf-rats-corim"/> contains a foundational representation for Attester actual state that Evidence, as specified by <xref target="DICE.Attest"/>, <xref target="TCG.CE"/>, and <xref target="DMTF.SPDM"/>, Reference Values, and Endorsements can map to that helps ensure compatibility with a broad spectrum of Verifier implementations.
The Reference Values extensions in this profile describe reference state that can be expressed as set membership or value ranges.
This profile defines extensions to CoRIM that support appraisal matching that is based on set membership, masked values, and numeric ranges.</t>
      <t>The baseline CoRIM, as defined by <xref target="DICE.CoRIM"/> is a subset of the Intel profile.
Intel products that implement exclusively to the baseline CoRIM may not rely upon this profile.
The Intel profile extensions may be generally useful.
Implementations based on the Intel profile does not necessarily imply an implementation is an Intel product.</t>
      <t>This profile extends CoMID <tt>measurement-values-map</tt>, as defined by <xref target="DICE.CoRIM"/> (see also <xref target="I-D.ietf-rats-corim"/>), with measurement types that are unique to Intel products.
Some measurement types are specific to Reference Values where multiple reference states may be included in reference manifests.
Intel profile extensions use a CBOR tagged value that defines a comparison operator and operands that instruct Verifiers regarding subset, range, and masked values matching semantics.
For example, a numeric operator 'greater-than' instructs the Verifier to match a numeric Evidence value if it is greater than a numeric range operand.</t>
      <t>This profile follows the Verifier behavior defined by <xref target="DICE.CoRIM"/> and extends Verifier behavior to include operator-operand matching.
If no operator is specified by Reference Values statements, the Verifier defaults to baseline <xref target="DICE.CoRIM"/> matching semantics.
If Evidence matches Reference Values and Endorsements apply, Endorsed Values may be added to the accetped claims set.
When all Evidence and Endorsements are processed, the Verifier's set of accepted claims is available for Attestation Results computations.
This profile doesn't define Attestation Results.
Rather, an Attestation Results profile, such as <xref target="I-D.kdyxy-rats-tdx-eat-profile"/> may be referenced instead.</t>
      <t>This profile is compatible with multiple Evidence formats, as defined by <xref target="DICE.Attest"/>, <xref target="TCG.CE"/>, and <xref target="DMTF.SPDM"/>.
It describes considerations when mapping Evidence formats to CoRIM <xref target="DICE.CoRIM"/> that a Verifier may use when performig appraisals.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The reader is assumed to be familiar with the terms defined in Section 4 of <xref target="RFC9334"/> and <xref target="I-D.ietf-rats-endorsements"/>.</t>
    </section>
    <section anchor="sec-background">
      <name>Background</name>
      <t>Complex platforms may contain a variety of hardware components, several of which may contain a hardware root of trust.
Each root of trust may anchor one or more layers <xref target="DICE.layer"/> resulting in multiple instances of attestation Evidence.
Evidence may be integrity protected by digital signatures, such as certificates <xref target="DICE.Attest"/>, tokens <xref target="RFC8392"/> or by a secure transport <xref target="DMTF.SPDM"/>.
For example, a system bus may allow dynamically configured peripheral devices that have attestation capabilities.
Confidential computing environments, such as SGX, may extend an initial boundary to include a peripheral, or a peer enclave, that together forms a network of trustworthy nodes that a remote
attestation Verifier may need to appraise.
Multiple Evidence blocks may be combined into a composite Evidence block <xref target="I-D.ietf-rats-msg-wrap"/> that is more easily conveyed.
Complex platforms may have one or more lead Attester endpoints that communicate with a remote Verifier to convey composite Evidence.
The composition of the complex platform is partially represented in the composite Evidence.</t>
      <t>However, composite Evidence may not fully describe platform composition.
A complex platform may consist of multiple subsystems, such as network adapters, storage controllers, memory controllers, special purpose processors, etc.
The various sub-subsystem components vendors may create hardware bills of material (HBOM) that describe sub-system composition.
A complex platform vendor may assemble various sub-system components whose composition is described by a platform HBOM.
Although CoRIM may be used to create HBOMs, use of this profile for HBOM creation is unanticipated.</t>
      <t>Nevertheless, a complex system may contain multiple identical instances of sub-sytem components that produce identical Evidence blocks.
Additionally, dynamic insertion or removal of a component may result in composite Evidence blocks that reflect this dynamism.</t>
    </section>
    <section anchor="sec-profile-identifier">
      <name>Profile Identifier</name>
      <t>This profile applies to Reference Values from a CoRIM manifest that a Verifier uses to process Evidence.</t>
      <t>Profile identifier structures are defined by CoRIM <xref target="I-D.ietf-rats-corim"/>, EAT <xref target="I-D.ietf-rats-eat"/> and Concise Evidence <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="profile-specific-media-and-content-types">
        <name>Profile Specific Media and Content Types</name>
        <t>This profile uses 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" (TBA)</t>
          </li>
          <li>
            <t>"application/rim+cbor" (TBA); profile=2.16.840.1.113741.1.16.1"</t>
          </li>
        </ul>
        <t>This profile uses the following content formats:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Content Type</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>
          </tbody>
        </table>
        <t>This profile uses the following top level CBOR tags (not already listed):</t>
        <ul spacing="normal">
          <li>
            <t>501, 570, 571</t>
          </li>
        </ul>
      </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"/> and included in an alias certificate or an SPDM Measurement Manifest.</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 are used to specify richer Reference Values measurements that expect non-exact matching semantics.
The Reference Value expression instructs the Verifier regarding matching parameters,
such as greater-than or less-than, ranges, sets, etc. Typically, the Evidence value is one operand of an expression
and the Reference Value contains the operator and additional operands.</t>
        <t>The operator and remaining operands are contained in an array.
Expression arrays have 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, obtains the operator from the first entry in
the expression array, and any remaining array entries are operands.</t>
        <t>This document 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>, etc...</t>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>From Evidence: <tt>operand_1</tt>, from Reference Values: <tt>[ operator, operand_2, operand_3, ... ]</tt>.</t>
          </li>
        </ul>
        <t>Expression records are CBOR tagged to indicate the following CBOR is to be evaluated as an expression.
Expression statements found in Reference Values informs the Verifier that Evidence is needed to complete
the expression equation. Appraisal processing <bcp14>MUST</bcp14> evaluate the expression.</t>
        <t>This profile anticipates use of the CBOR tag <tt>#6.600XX</tt> to identify expression arrays. See <xref target="sec-iana-considerations"/>.</t>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t><tt>#6.600XX([ operator, operand_2, operand_3, ... ])</tt>.</t>
          </li>
        </ul>
        <section anchor="sec-expression-operators">
          <name>Expression Operators</name>
          <t>There are two classes of operators as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Numeric</strong>: The <tt>numeric</tt> operand can be an integer, unsigned integer, or floading point value.</t>
            </li>
            <li>
              <t><strong>Set</strong>: The <tt>set</tt> operand can be an set (array) of any primitive value or a set of arrays containing any primitive value.
The position of the items in a set is unordered, while the position of items in an array within a set
is ordered.</t>
            </li>
          </ol>
          <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 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>greater-than</strong> (gt),</t>
            </li>
            <li>
              <t><strong>greater-than-or-equal</strong> (ge),</t>
            </li>
            <li>
              <t><strong>less-than</strong> (lt),</t>
            </li>
            <li>
              <t><strong>less-than-or-equal</strong> (le).</t>
            </li>
          </ol>
          <t>The equals operator is not defined because an exact match rule is the default rule when an Evidence value is identical to a 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>A numeric expression is an array containing a numeric operator and a numeric operand.
The operand contains a numeric Reference Value that is matched with a numeric Evidence value.</t>
          <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 macro 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
that is obtained from Evidence.</t>
          <t>If the expression is read using <em>infix</em> notation, the first operand is Evidence, followed by the operator,
followed by the Reference Value operand.</t>
          <t>Example:</t>
          <ul spacing="normal">
            <li>
              <t>&lt;<tt>evidence_numeric</tt>&gt; &lt;<tt>le</tt>&gt; &lt;<tt>reference_numeric</tt>&gt;</t>
            </li>
          </ul>
          <t>The numeric expression definitions are 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 operators allow Reference Values, that are expressed as a set, to be compared with Evidence that
is expressed as either a primitive value or a set.</t>
          <t>Set expression statements have two forms:</t>
          <ol spacing="normal" type="1"><li>
              <t>A binary relation between a primitive object 'O' and a set 'S', and</t>
            </li>
            <li>
              <t>A binary relation between two sets, an Evidence set 'S1' and a Reference Values set 'S2'.</t>
            </li>
          </ol>
          <t>The first form, relation between an object and a set, has two operators:</t>
          <ul spacing="normal">
            <li>
              <t><strong>member</strong> and</t>
            </li>
            <li>
              <t><strong>not-member</strong>.</t>
            </li>
          </ul>
          <t>The Evidence object 'O' is evaluated with the Reference Values set 'S'.</t>
          <t>The <tt>op.member</tt> and <tt>op.not-member</tt> operators expect a Reverence Value set as <em>operand_2</em> and a primitive Evidence
value as <em>operand_1</em>. Evaluation tests whether <em>operand_1</em> is a member of the set <em>operand_2</em>.</t>
          <t>Example:</t>
          <ul spacing="normal">
            <li>
              <t>&lt;<tt>evidence-value</tt>&gt; &lt;<tt>set-operator</tt>&gt; &lt;<tt>reference-set</tt>&gt;</t>
            </li>
          </ul>
          <t>The set data type definitions are defined as follows:</t>
          <sourcecode type="cddl"><![CDATA[
member = 6
not-member = 7
set-operators /= op.mem 
set-operators /= op.nmem

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

set-tstr-type /= [ * tstr ]
set-tstr-expression = [ set-operators, set-tstr-type ]
tagged-set-tstr-expression = #6.60021( set-tstr-expression )
]]></sourcecode>
          <t>A set expression array contins a set operator followed by a set of Reference Values.
The set is defined by <tt>set-type</tt>.</t>
          <t>The set expression type 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>Examples:</t>
          <ul spacing="normal">
            <li>
              <t>&lt;<tt>evidence_object</tt>&gt; &lt;<tt>member</tt>&gt; &lt;<tt>reference_set</tt>&gt;</t>
            </li>
            <li>
              <t>&lt;<tt>evidence_object</tt>&gt; &lt;<tt>not-member</tt>&gt; &lt;<tt>reference_set</tt>&gt;</t>
            </li>
          </ul>
          <t>The Evidence object <bcp14>MUST NOT</bcp14> be nil.</t>
          <t>The Reference Values set may be the empty set.</t>
          <t>The second form, a relation between two sets, has three operators:</t>
          <ul spacing="normal">
            <li>
              <t><strong>subset</strong>,</t>
            </li>
            <li>
              <t><strong>superset</strong>,</t>
            </li>
            <li>
              <t><strong>disjoint</strong>.</t>
            </li>
          </ul>
          <t>The fist set, S1 is Evidence and set, S2 is the Reference Values set.</t>
          <t>The <tt>subset</tt>, <tt>superset</tt>, and <tt>disjoint</tt> operators test whether an Evidence set value
satisfies a set operation, given a Reverence Value set.</t>
          <t>Examples:</t>
          <ul spacing="normal">
            <li>
              <t>&lt;<tt>evidence_set</tt>&gt; &lt;<tt>subset</tt>&gt; &lt;<tt>reference_set</tt>&gt;</t>
            </li>
            <li>
              <t>&lt;<tt>evidence_set</tt>&gt; &lt;<tt>superset</tt>&gt; &lt;<tt>reference_set</tt>&gt;</t>
            </li>
            <li>
              <t>&lt;<tt>evidence_set</tt>&gt; &lt;<tt>disjoint</tt>&gt; &lt;<tt>reference_set</tt>&gt;</t>
            </li>
          </ul>
          <t>The Reference Values and Evidence sets may be the empty set.</t>
          <t>The set of sets data type definitions are as follows:</t>
          <sourcecode type="cddl"><![CDATA[
; The CDDL here needs to be fixed, Ned to work on this
subset = 8
superset = 9
disjoint = 10
set-of-set-type = [ * [ + any ]]
set-of-set-operator = subset / superset / disjoint
set-of-set-expression = [ set-of-set-operator, set-of-set-type ]
tagged-set-of-set-expression = #6.60020(set-of-set-expression)
]]></sourcecode>
          <t>For <tt>subset</tt>, every member in the Evidence set 'S1', <bcp14>MUST</bcp14> map to a member in the Reference Values set 'S2'.
The Evidence set, 'S1', <bcp14>MAY</bcp14> be a proper subset of 'S2'. For example, if every member in set 'S1' maps to every member
in set 'S2' then matching is successful. A successful result produces the set 'S1'.</t>
          <t>For <tt>superset</tt>, every member in the Reference Values set 'S2', <bcp14>MUST</bcp14> map to a member in the Evidence set 'S1'.
A successful result produces the set 'S1'.</t>
          <t>For <tt>disjoint</tt>, every member in the Evidence set 'S1' <bcp14>MUST NOT</bcp14> map to any member in the Reference Values
set 'S2'. A successful result produces the empty set.</t>
          <t>The set of sets expression definitions are as follows:</t>
          <sourcecode type="cddl"><![CDATA[
tagged-exp-subset = #6.60010([
    subset .within set-of-set-operator, set-of-set-type ])

tagged-exp-superset = #6.60010([
    superset .within set-of-set-operator, set-of-set-type ])
    
tagged-exp-disjoint = #6.60010([
    disjoint .within set-of-set-operator, set-of-set-type ])
]]></sourcecode>
        </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
]]></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-instance-id-type">
          <name>The tee.instance-id Measurement Extension</name>
          <t>The <tt>tee.instance-id</tt> extension enables the Attester to report the TEE (TD or enclave) instance identifier as an Evidence value and the RVP to assert an exact-match Reference Value.</t>
          <t>The <tt>$tee-instance-id-type</tt> is an unsigned integer or <tt>bstr</tt>.</t>
          <sourcecode type="cddl"><![CDATA[
$$measurement-values-map-extension //= (
  &(tee.instance-id: -77) => $tee-instance-id-type
)
$tee-instance-id-type /= uint
$tee-instance-id-type /= bstr
]]></sourcecode>
          <t>Alternatively, the TEE instance ID may be encoded using <tt>mkey</tt> where <tt>mkey</tt> contains the non-negative <tt>tee.instance-id</tt> and <tt>mval</tt>.<tt>raw-value</tt> contains the <tt>$tee-instance-id-type</tt> value. If the <tt>$tee-instance-id-type</tt> is an unsigned integer, the integer values is converted to a single byte <tt>bstr</tt>.</t>
        </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> 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.</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
]]></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> contains the <tt>$tee-pceid-type</tt> value.</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
]]></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 ]
]]></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
]]></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 is requested to allocate the following tags in the CBOR Tags registry <xref target="IANA.cbor-tags"/>, preferably with the CBOR tag value requested.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Tag</th>
            <th align="left">Data Item</th>
            <th align="left">Semantics</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">60010</td>
            <td align="left">
              <tt>tag</tt></td>
            <td align="left">Numeric Expressions, see <xref target="sec-numeric-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
          <tr>
            <td align="left">60020</td>
            <td align="left">
              <tt>tag</tt></td>
            <td align="left">Set digest Expressions, see  <xref target="sec-set-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
          <tr>
            <td align="left">60021</td>
            <td align="left">
              <tt>tag</tt></td>
            <td align="left">Set tstr Expressions, see  <xref target="sec-set-expressions"/></td>
            <td align="left">RFCthis</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-07"/>
        </reference>
        <reference anchor="DICE.CoRIM" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-Endorsement-Architecture-for-Devices-V1-R38_pub.pdf">
          <front>
            <title>DICE Endorsement Architecture for Devices</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.38" value=""/>
        </reference>
        <reference anchor="DICE.Attest" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.1, Revision 18" value=""/>
        </reference>
        <reference anchor="DICE.layer" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Layering-Architecture-r19_pub.pdf">
          <front>
            <title>DICE Layering Architecture</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.19" value=""/>
        </reference>
        <reference anchor="TCG.CE" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.0-Revision-54_pub.pdf">
          <front>
            <title>TCG DICE Concise Evidence Binding for SPDM</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
          <seriesInfo name="Version 1.0, Revision 0.54" value=""/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document defines a conceptual message wrapper (CMW) format - an
   encapsulation method applicable to any RATS conceptual message, such
   as Evidence, Attestation Results, Endorsements, and Reference Values.
   It also describes a collection type that aggregates one or more CMWs
   into a single message.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-12"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
        </reference>
        <reference anchor="RFC9581">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="B. Gamari" initials="B." surname="Gamari"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 8949 defines two tags for time: CBOR tag 0 (RFC 3339 time as a string) and tag 1 (POSIX time as int or float). Since then, additional requirements have become known. The present document defines a CBOR tag for time that allows a more elaborate representation of time, as well as related CBOR tags for duration and time period. This document is intended as the reference document for the IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9581"/>
          <seriesInfo name="DOI" value="10.17487/RFC9581"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="6" month="February" year="2025"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-08"/>
        </reference>
        <reference anchor="DMTF.SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.2.1.pdf">
          <front>
            <title>Security Protocol and Data Mmodel (SPDM) Specification</title>
            <author>
              <organization>Distributed Managability Task Force (DMTF)</organization>
            </author>
            <date year="2022" month="May"/>
          </front>
          <seriesInfo name="Version 1.2.1" value=""/>
        </reference>
        <reference anchor="DICE.engine" target="https://trustedcomputinggroup.org/wp-content/uploads/Hardware-Requirements-for-Device-Identifier-Composition-Engine-r78_For-Publication.pdf">
          <front>
            <title>Requirements for a Device Identifier Composition Engine</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date year="2018" month="March"/>
          </front>
          <seriesInfo name="Family &quot;2.0&quot;, Level 00 Revision 78" value=""/>
        </reference>
        <reference anchor="I-D.kdyxy-rats-tdx-eat-profile">
          <front>
            <title>EAT profile for Intel(r) Trust Domain Extensions (TDX) attestation result</title>
            <author fullname="Greg Kostal" initials="G." surname="Kostal">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Sindhuri Dittakavi" initials="S." surname="Dittakavi">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Raghuram Yeluri" initials="R." surname="Yeluri">
              <organization>Intel</organization>
            </author>
            <author fullname="Haidong Xia" initials="H." surname="Xia">
              <organization>Intel</organization>
            </author>
            <author fullname="Jerry Yu" initials="J." surname="Yu">
              <organization>Intel</organization>
            </author>
            <date day="13" month="December" year="2024"/>
            <abstract>
              <t>   Intel® Trust Domain Extensions (TDX) introduce architectural elements
   designed for the deployment of hardware-isolated virtual machines
   (VMs) known as trust domains (TDs).  TDX is designed to provide a
   secure and isolated environment for running sensitive workloads or
   applications.  This Entity Attestation Token (EAT) profile outlines
   claims for an Intel TDX attestation result which facilitate the
   establishment of trust between a relying party and the environment.

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

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

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

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Shanwei Cen, Piotr Zmijewski, Francisco J. Chinchilla and Dionna Amalie Glaze for their valuable contributions.</t>
    </section>
    <section anchor="full-intel-profile-cddl">
      <name>Full Intel Profile CDDL</name>
      <sourcecode type="cddl"><![CDATA[
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])

member = 6
not-member = 7
set-operators /= op.mem 
set-operators /= op.nmem

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

set-tstr-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 ])

subset = 8
superset = 9
disjoint = 10
set-of-set-type = [ * [ + any ]]
set-of-set-operator = subset / superset / disjoint
set-of-set-expression = [ set-of-set-operator, set-of-set-type ]
tagged-set-of-set-expression = #6.60020(set-of-set-expression)

tagged-exp-subset = #6.60010([
    subset .within set-of-set-operator, set-of-set-type ])

tagged-exp-superset = #6.60010([
    superset .within set-of-set-operator, set-of-set-type ])
    
tagged-exp-disjoint = #6.60010([
    disjoint .within set-of-set-operator, set-of-set-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

$$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

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

$$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
op.sub=8
op.sup=9
op.dif=10

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

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

$$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 ]

$$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

$$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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
fqqXiSt5P3V9F3SVa+eUCN9OgJhA7QIXvyqNaYIwifp4ialC+BUvdXMBH2VF
ILsCe8yysxJO3a8jQOoFzl+yKsvOvivP1435xYV5iweXpNJBzAFD52DOQBvm
Y7ozpZYyLwucN6q2Xi3LV9MjWMKWUMxOPdXVnLFhxZJDZWNxlPvQUe5DpY9g
8G7QWqmgsC9bV2e1MK9Lu0D0w8HrD1DCYgtp9CDjJrB0WDvYrTwK52XUuOk1
eYuBNQUQRfm5NG8yaiVkjfrHqcbMKyeUMtHG1/cqpktPp49zg+U7mDHF1un6
9HWTIufGTes8Bm1qYsF6os/nXfUPvup8ESo9LhCW0u8KV5ZQpGQdHE5upkZo
qbc9GEiFpwMyTAonOFlpfjdtFHkZVQ92y7jAbJx+LoNSAirNB2fo3+/Bh1k2
t71IB7jB+OpTJvKKeRgCT8ZEWlb7Kj3oV+urDF+oakWVRrAnfdiT/lAm0ryt
aX8xx8KDhkqOD0yfRTvEvZlrqKpbNpLVawZ8XSQeY2oRavThgwqdgN55Uc8Y
CW3Lx3bqOhW5e1SCR5VQ+VJlsh/Tg1ZRQixOCVj64FBdt+8mhq/uJuxLjQr8
lKr8Dg25IXXWTBpL/ttu58G3Rh3RFIxjmBeDboRE8264rotb7Yjb8AN3hbPW
/Sp2ZiOed6Subxiep1hmledN0XhRl5aaWR5/RF7n3nrpMZgqRW23kBr4Ye3i
kdp0NZzaYCeyTn+o7ZdLNSUoThGKuNSs6gO2ybvewwkF7/nL5+XU6mr+7Q/t
oJZXm7I7VrvweMCnXAKCU/X3y3GB6rCbs/Vay0/G2E/1JUXP0rXJolDPxHxy
Zele4qpPyrhtK7zJx/SPlRWtqPMvjymOxNCXz9ZJDLeTtn35xFLjlvvjyo1/
+h4Fd8QZeS2RGtiXyQb8GaVTLTxHU65rYoYWXTPkxKsoQ9z2V2SGjPmHsoIB
pOhn0WnmF/FCJvjytbo9pJ6UNleyoauZyRXJ2dUoHeY8gvnjMidyHuVv1XnN
TAVFTJH+uQCNZD5bblqZ53o+k/yu7Gsw8VfmKXrtdvJfHdLJKtW73XhK5nSv
wCE4paB+dNXr/ZKcI/qUq1jGnKqzaZLcC8VL0CurYIZF+V4Rv3+PsgJ+lZN3
oYzKUM2OLNUL9g+M8X3c9k6JdZEPIpWzrIz1VTDjoOFXoZyZ9/TUrYFdupBB
h8oYPQiJnMwkB8GVteVjtzblZgY2OwYFasd57c12RejO46CEtefaRXHoPbVo
HoHhr9WHGE1aeG5LXivvQakF+SyVQDD1/F60s+sKtK1sibhAySOvHMcD2aHi
5ODlQfP8mh6JDAKqT3fhfljKQt8nTFTGFRzSvtMJ+G0eSadEEhdYkMsZEBLw
pB9//C/srT8eoUMZPr1/30OcgPkBrjmBQCYJhb7Qp4aGBfyEKYGxX/ETPyF/
Usq5sP/9BJugX6b/kP9+cnyWP6nRwjCE8lD/59VuKr3NaLY9j0ZOUChHCTGs
1W544NDNcdv0yuF7t/2PP/73+fGL51BoRtttH+1c6oQa9QHViH4a9Q1GG9w4
Gj1Q8gFjVUcLftwXd8pRwjjNgkLRE4iGWchPZJZxmcinW3wg8VqRG6LWGWMs
M6hDTL3yGlOvFFtAD7hVI+AodAhiGAudezMhR8vyEp8/uI6LS1Yio/StOId/
r2UsDmXaE6/jDNb5P/P4b/K6eBv3xPM8SoEzjjPx5744BC0QNMEkiYgtHcEk
0kgczEGDlOKLJPq71Cd1MceFEKNGnYQSlCnH5B3xfJkkwl8cPgjwnxfGxG/x
hbH/vG2pn2oIjikBE9UaQK0OZYEKJxJ0cqBFqMAFU3wPnp63eCp+BChTYNnT
P1A6/899G5xClSjHlBD3RCeFmtslSP2urU83t1Ce0m0BUn4jP00ztfUHGYOk
pkdP2xu919PV84fZdnC6n312fHFyehw+OzinP6DoEKTu26+WZEqGszxbLmhM
XfP4BSjqJ18fe4WHZycXJ4cHL3hl7tL6U9DRlqDGbvEE9ArtGcOWXj835si8
Siu9xKZW77sG7ytbEgTV5fFR+mBfUAaubsv3Pfg+kWPoZ9xW5QFUGcUzIgVb
R8OG64T392mnWr8/XPP9yZrvg911FR6sq/B4XQWKMOBP+M85bPJxe+37N1fX
aKK2oa12pQTZwH8r+luW432xc3MdwPB9MQAKrWOy4ECKP0Jd+niID4Lvi5Bz
yjHqFXgsPwC6en3xevvs+eHjB48euG0OxqAbR+MVNNvbrNmr6RTUinPAXzl5
kc2+Bu0Zr8lDBw+qHew2dvCXVB20ljgq5zYhDN7+ebLMNV/Aml8sI5DyKgVU
Yz2Ay5H623C33Tp3K2I8lAxfA2PMJqbifXouA6yqvAQCYBa5DTw3SaAYDIh6
4R+FHhm+6YEDfPqjseuO1zeJrU7H6bgLqEOyjAtxEJZtTcN0u6q67tVUd3qk
302NaZKyIgV+BA5FzA00N82B3neDSR2iLTUXtVX/TGNs09yE9+OPZtdwKv95
VvCf9azgfx7n+2c9zvdv/FbYf15dumkF9UwLnPGVR8UbDUVLnc9sVgMs0gmX
/81ecPi1ZGX/1SXe/m2nJv5PvtB/br7QX3Hewl9hoqhfS46ef2AulgA0IPnD
052APGVPB/R/+XQ3IBfY0/v0f/l0L2BN7OnDQKlMTx/hXyDwnz7mPxZPn+Af
k3j6FDSgf2BKkN9CwoJ/9YvSv/mbs//qN+r+sdd6frX5LPnCUfD/AZyB+8pw
5gAA

-->

</rfc>
