<?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.39 (Ruby 3.4.9) -->
<?rfc strict="yes"?>
<?rfc comments="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bzb-rats-intel-poe-endorsements-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Intel POE CoRIM Profile">A CoRIM Profile for Intel Platform Ownership Endorsements (POE)</title>
    <seriesInfo name="Internet-Draft" value="draft-bzb-rats-intel-poe-endorsements-01"/>
    <author initials="M." surname="Bronk" fullname="Mateusz Bronk">
      <organization>Intel Corporation</organization>
      <address>
        <email>mateusz.bronk@intel.com</email>
      </address>
    </author>
    <author initials="P." surname="Zmijewski" fullname="Piotr Zmijewski">
      <organization>Intel Corporation</organization>
      <address>
        <email>piotr.zmijewski@intel.com</email>
      </address>
    </author>
    <author initials="J." surname="Beaney" fullname="James D. Beaney">
      <organization>Intel Corporation</organization>
      <address>
        <email>james.d.beaney@intel.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="23"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>corim</keyword>
    <keyword>endorsement</keyword>
    <keyword>ownership</keyword>
    <keyword>sgx</keyword>
    <keyword>tdx</keyword>
    <abstract>
      <?line 97?>

<t>A Platform Ownership Endorsement (POE) is a signed statement that a
specific Intel confidential-computing platform instance, identified by
its Platform Instance Identity (PIID), belongs to a named owner. POEs
let a Verifier bind the attested hardware identity from an Intel SGX
or TDX platform to an operational owner (e.g., a Cloud Service Provider)
during appraisal, giving a Relying Party a trustworthy owner identity --
without trusting the attestation service or any in-band claim from the
platform itself.</t>
      <t>This document defines POE as a profile of the IETF Concise Reference
Integrity Manifest (CoRIM) data model.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mbronk-intc.github.io/draft-bzb-rats-intel-poe-endorsements/draft-bzb-rats-intel-poe-endorsements.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bzb-rats-intel-poe-endorsements/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mbronk-intc/draft-bzb-rats-intel-poe-endorsements"/>.</t>
    </note>
  </front>
  <middle>
    <?line 111?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Remote attestation Evidence produced by an Intel SGX or TDX platform
carries cryptographic identifiers (e.g., the Platform Provisioning ID
or the per-instance PIID) but does not, by itself, identify the
operational owner of the platform. In practice, Relying Parties often
need to answer the question "is this attested platform operated by the
Cloud Service Provider that claims to host my workload?" -- a question
that the attestation pipeline alone cannot answer.</t>
      <t>A Platform Ownership Endorsement (POE) is a signed Endorsement (in
the sense of <xref target="RATS-ARCH"/>), issued out of band of the attestation
flow, that binds a specific platform instance (named by its PIID) to a
named owner. The Verifier (the Attestation Verifier in
<xref target="POE-WHITEPAPER"/>) consumes a POE alongside Evidence: when the bound
PIID matches the PIID in Evidence, the owner-identity claim is added
to the Verifier's Appraisal Claims Set.</t>
      <t>This document specifies how POEs are encoded as a profile of the CoRIM
data model <xref target="CoRIM"/>. The profile pins a single
<tt>conditional-endorsement-triple-record</tt> per CoMID whose condition
matches the Attester's PIID and whose endorsement carries the owner
identity.</t>
      <t>Background, threat model, and operational context for POE are
described in <xref target="POE-WHITEPAPER"/>.</t>
      <section anchor="why-poe-specific">
        <name>Scope: POE-specific, not an Intel umbrella profile</name>
        <t>This profile covers POEs only. POEs are signed by platform owners,
CSPs, or fleet managers -- not by Intel -- and their trust anchors,
appraisal policies, and revocation channels are disjoint from those
of Intel-signed reference-value endorsements for the platform TCB
(e.g. TCB Info, TD Identity), which are likely to be carried under a single
(separate), Intel-issued CoRIM profile (<xref target="INTEL-PROFILE"/>). Partitioning by trust domain lets a
Verifier key appraisal off <tt>/ profile / 3</tt> directly. Future
POE-issuer-signed claim kinds remain in-scope under this same URI,
distinguished by <tt>environment.class.class-id</tt>.</t>
      </section>
      <section anchor="profile-shape-at-a-glance">
        <name>Profile shape at a glance</name>
        <t>A POE CoRIM differs from base CoRIM <xref target="CoRIM"/> in three ways:</t>
        <ol spacing="normal" type="1"><li>
            <t>POE binds an <em>owner identity</em> to a platform, not measurements of
firmware components; the conditional-endorsement-triple form is
used rather than reference-triples.</t>
          </li>
          <li>
            <t>Exactly one CoMID per CoRIM, and exactly one (condition,
endorsement) pair per CoMID (<xref target="single-record"/>); multiple owner
bindings are carried as separate CoRIMs.</t>
          </li>
          <li>
            <t>PIID is carried as a profile-private extension claim inside the
condition of the conditional-endorsement triple (<xref target="conditions"/>),
not as a subject-side identity in the base CoRIM <tt>environment</tt>
map's <tt>instance</tt> field (<xref target="CoRIM"/>). In a POE the platform identity
functions as a <em>predicate</em>: the owner endorsement applies precisely
when the Attester's Evidence presents the bound PIID.</t>
          </li>
        </ol>
      </section>
    </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>Familiarity with the CoRIM data model <xref target="CoRIM"/> and the RATS
architecture <xref target="RATS-ARCH"/> is assumed.</t>
      <t>The following terms are used throughout this document:</t>
      <dl>
        <dt>PIID:</dt>
        <dd>
          <t>Platform Instance Identity -- a per-instance identifier carried in
Intel SGX and TDX attestation Evidence. The identifier is a byte
string of 16 or 32 bytes.</t>
        </dd>
        <dt>Owner:</dt>
        <dd>
          <t>The operational entity that controls the platform identified by a
given PIID (the Platform Owner in <xref target="POE-WHITEPAPER"/>). The Owner is
named in the endorsement; it <bcp14>MAY</bcp14> differ from the entity that signs
the enclosing CoRIM (the Issuer).</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>The party that signs the CoRIM (termed the Platform Endorser in
<xref target="POE-WHITEPAPER"/>). The Issuer vouches for the (PIID, Owner)
binding by signing it.</t>
        </dd>
      </dl>
    </section>
    <section anchor="profile-overview">
      <name>Profile Overview</name>
      <t>A POE CoRIM is a COSE_Sign1 envelope <xref target="RFC9052"/> whose payload is a
CoRIM map. The CoRIM carries exactly one CoMID containing exactly one
<tt>conditional-endorsement-triple-record</tt>. The triple has:</t>
      <ul spacing="normal">
        <li>
          <t>a <tt>conditions</tt> clause naming the target environment class (an Intel
platform) and the PIID the endorsement is bound to; and</t>
        </li>
        <li>
          <t>an <tt>endorsements - additions</tt> clause carrying the Owner identity
claim.</t>
        </li>
      </ul>
      <t>A skeleton (CBOR diagnostic notation) is shown in <xref target="fig-skeleton"/>.</t>
      <figure anchor="fig-skeleton">
        <name>POE CoRIM/CoMID skeleton</name>
        <sourcecode type="cbor-diag"><![CDATA[
/ corim-map / {
  / id           / 0 : ...,            ; per-instance identifier
  / tags         / 1 : [ << concise-mid-tag >> ],
  / profile      / 3 : "tag:intel.com,2026:tee.poe#1.0",
  / rim-validity / 4 : { ... }         ; endorsement validity window
}

/ concise-mid-tag / {
  / tag-identity / 1 : { ... },
  / triples      / 4 : {
    / conditional-endorsement-triples / 10 : [
      [
        / conditions               / [ ... ],
        / endorsements - additions / [ ... ]
      ]
    ]
  }
}
]]></sourcecode>
      </figure>
      <section anchor="conformance">
        <name>Conformance constraints</name>
        <t>This profile fully defines the structure of a POE CoRIM, and adopts an
asymmetric conformance model: a producer emits only what this profile
defines, while a Verifier tolerates unknown additions so that a future
<tt>#1.&lt;minor&gt;</tt> revision stays backward compatible (see <xref target="profile-id"/>).</t>
        <t>The accompanying CDDL (<xref target="cddl"/>) is a <em>producer</em> (emission) grammar: its
closed maps state what a conformant <tt>#1.0</tt> producer emits, not what a
Verifier rejects. Verifier tolerance is normative in this section and is
not expressible in CDDL, as a closed map cannot admit unknown members
while still constraining the known ones.</t>
        <section anchor="conformance-producer">
          <name>Producer requirements</name>
          <t>A producer conforming to this profile (version <tt>#1.0</tt>) <bcp14>SHOULD NOT</bcp14> emit
top-level CoRIM keys other than those this profile defines
(<xref target="corim-id"/>, <xref target="tags-cardinality"/>, <xref target="profile-id"/>, <xref target="rim-validity"/>,
and the optional base fields below), and <bcp14>MUST NOT</bcp14>:</t>
          <ul spacing="normal">
            <li>
              <t>populate the COSE <tt>crit</tt> header parameter (<xref target="RFC9052"/>, Section 3.1);</t>
            </li>
            <li>
              <t>declare a <tt>/ profile / 3</tt> value other than the one defined by this
specification, nor rely on any profile mechanism that imposes
"must-understand" semantics on additional fields;</t>
            </li>
            <li>
              <t>place foreign tags in <tt>/ tags / 1</tt> (CoSWIDs, CoTLs, non-POE CoMIDs)
or non-POE extension keys in the CoMID <tt>triples</tt>; or</t>
            </li>
            <li>
              <t>emit any field this profile marks "<bcp14>MUST NOT</bcp14> be present": the
CoMID-level <tt>/ entities / 5</tt>, <tt>tag-version</tt>, the <tt>environment.class</tt>
                <tt>vendor</tt>/<tt>model</tt>/<tt>instance</tt>/<tt>group</tt> fields, and
<tt>measurement-map.authorized-by</tt> (see the relevant sections).</t>
            </li>
          </ul>
          <t>Issuers needing additional semantics <bcp14>MUST</bcp14> publish their own profile
under their own namespace.</t>
        </section>
        <section anchor="conformance-verifier">
          <name>Verifier requirements</name>
          <t>A Verifier conforming to this profile <bcp14>MUST</bcp14> ignore any field it does not
recognise -- including the producer-prohibited fields above -- EXCEPT
that it <bcp14>MUST</bcp14> reject a CoRIM carrying:</t>
          <ul spacing="normal">
            <li>
              <t>a non-empty COSE <tt>crit</tt> parameter (it cannot ignore parameters the
producer has flagged critical);</t>
            </li>
            <li>
              <t>a <tt>/ profile / 3</tt> mismatch;</t>
            </li>
            <li>
              <t>a cardinality violation (<xref target="tags-cardinality"/>, <xref target="single-record"/>); or</t>
            </li>
            <li>
              <t>a <tt>measurement-map.authorized-by</tt> (issuer authorisation is conveyed
by the COSE <tt>x5chain</tt> trust chain, not by a per-measurement key; see
<xref target="conditions"/> and <xref target="endorsements"/>).</t>
            </li>
          </ul>
          <t>Thus <tt>/ entities / 5</tt>, <tt>tag-version</tt>, and the <tt>environment.class</tt>
fields are producer-side constraints only; a Verifier ignores them if
present. The <strong>CoMID-level</strong> <tt>/ entities / 5</tt> (<xref target="CoRIM"/>, Section 5.1.2) is
prohibited <em>for producers</em> because signer identity is already conveyed by
the COSE <tt>x5chain</tt> (<xref target="RFC9360"/>) leaf Subject and the <tt>CWT-Claims</tt> <tt>iss</tt>
claim (<xref target="signer-metadata"/>); a third source would only introduce drift.</t>
          <t>Base-CoRIM optional fields permitted by this profile (all informational
and ignored by the Intel-provided Verifier):</t>
          <ul spacing="normal">
            <li>
              <t>the CoRIM payload's <tt>/ dependent-rims / 2</tt> (<xref target="CoRIM"/>, Section
4.1.3) -- not fetched or dereferenced; and</t>
            </li>
            <li>
              <t>the <strong>CoRIM-level</strong> <tt>/ entities / 5</tt> (<xref target="CoRIM"/>, Section 4.1.5) -- not
interpreted.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="signer-metadata">
        <name>Signer metadata</name>
        <t>Signer metadata is carried in the COSE protected header using the
<tt>CWT-Claims</tt> header parameter (label 15, <xref target="RFC9597"/>). The parameter
value is a CBOR map of CWT claims (<xref target="RFC8392"/>) carried directly,
not wrapped in a byte string (unlike <tt>corim-meta</tt>). This profile
populates a single claim, the issuer (<tt>iss</tt>, CWT claim key 1), set to
a human-readable signer identity. The Intel generator emits only
<tt>CWT-Claims</tt> and no other CWT claim; per <xref section="4.2.2" sectionFormat="of" target="CoRIM"/>
the <tt>CWT-Claims</tt> map <bcp14>MUST NOT</bcp14> carry claims that semantically overlap
CoRIM tag content.</t>
        <t>CoRIM positions the legacy <tt>corim-meta</tt> header parameter (label 8) as
an alternative to <tt>CWT-Claims</tt> (<xref section="4.2.1" sectionFormat="of" target="CoRIM"/>); the
<tt>meta-group</tt> grammar admits either parameter. This profile tightens
that to require <tt>CWT-Claims</tt>, with <tt>corim-meta</tt> permitted only as an
optional legacy addition. A producer <bcp14>MAY</bcp14>
additionally include <tt>corim-meta</tt> for interoperability with verifiers
that read only that parameter; when both are present, <xref section="4.2.1" sectionFormat="of" target="CoRIM"/> requires their contents to be semantically identical -- the
<tt>CWT-Claims</tt> <tt>iss</tt> <bcp14>MUST</bcp14> equal <tt>corim-meta</tt>'s <tt>signer-name</tt>. The
Intel-provided Verifier reads signer metadata from <tt>CWT-Claims</tt> only
and ignores <tt>corim-meta</tt> if present.</t>
        <t>The <tt>iss</tt> value <bcp14>SHOULD</bcp14> match the leaf signing certificate's Subject
Common Name (<xref target="RFC5280"/>, Section 4.1.2.6) so the human-readable
signer label cannot be decoupled from the cryptographically-bound
identity in <tt>x5chain</tt>. Signature lifetime is conveyed by the
<tt>x5chain</tt> (<xref target="rim-validity"/>); the CWT <tt>nbf</tt> (key 5) and <tt>exp</tt> (key 4)
claims (<xref target="RFC8392"/>) -- and, if <tt>corim-meta</tt> is present, its
<tt>signature-validity</tt> field -- <bcp14>MUST NOT</bcp14> be present.</t>
        <t>The <tt>x5chain</tt> (<xref target="RFC9360"/>) is a <tt>COSE_X509</tt> value, ordered leaf-first:
a single certificate is carried as a bare <tt>bstr</tt>, two or more as a CBOR
array (<tt>[ 2*bstr ]</tt>). It <bcp14>MUST</bcp14> carry the leaf (end-entity) signing
certificate and every intermediate CA in the path; only the self-signed
root <bcp14>MAY</bcp14> be omitted -- to save bytes when the Verifier holds it out of
band. Omitting the root from a two-certificate chain leaves a single
certificate, which is then carried in the bare-<tt>bstr</tt> form (a
one-element array is not a valid <tt>COSE_X509</tt>).</t>
      </section>
      <section anchor="refresh-uri">
        <name>Refresh URI</name>
        <t>This profile defines one optional COSE protected-header parameter,
<tt>tee.refresh-uri</tt>, a forward-pointer to where a fresh POE for this
platform can be retrieved. It is carried through the protected header's
<tt>cose-label =&gt; cose-value</tt> extension point under the text label
<tt>"tee.refresh-uri"</tt> (a text label in the broader <tt>tee.*</tt> namespace,
deliberately not POE-specific, since manifest refresh is a generic
capability). The value is a <tt>uri</tt> (<tt>#6.32(tstr)</tt>, matching CoRIM's
<tt>uri</tt> type): a single absolute URI (<xref target="RFC3986"/>) of at most 1024
bytes, whose scheme <bcp14>SHOULD</bcp14> be <tt>https</tt>. The parameter is <bcp14>OPTIONAL</bcp14>;
it is omitted when not applicable.</t>
        <t><tt>tee.refresh-uri</tt> is deliberately not the CoRIM payload's
<tt>/ dependent-rims / 2</tt> (<xref target="CoRIM"/>, Section 4.1.3): <tt>dependent-rims</tt>
names other CoRIMs a Verifier is expected to fetch and process during
appraisal, whereas <tt>tee.refresh-uri</tt> imposes no appraisal-time fetch
obligation -- it is an out-of-band hint for obtaining a later POE.</t>
      </section>
      <section anchor="corim-level-fields">
        <name>CoRIM-level fields</name>
        <section anchor="corim-id">
          <name>Identifier</name>
          <t>The CoRIM <tt>id</tt> field (key 0, <tt>corim-id-type-choice</tt>) is per-instance:
each (PIID, owner) change and each validity-window refresh produces a
distinct CoRIM, hence a distinct <tt>id</tt>. Issuers <bcp14>SHOULD</bcp14> encode <tt>id</tt> as
a UUIDv8 (<tt>uuid-type</tt>, untagged 16-byte <tt>bstr</tt>) derived as a
left-truncated SHA-384 over the CDE-encoded (<xref target="RFC8949"/>, Section
4.2) <tt>tagged-unsigned-corim-map</tt> payload with the <tt>/ id / 0</tt> entry
omitted; the leftmost 16 bytes become the UUID, with version/variant
bits set per <xref target="RFC9562"/>, Section 4. Other schemes (random UUIDv4/v7,
or a <tt>tstr</tt> issuer-internal naming convention) <bcp14>MAY</bcp14> be used provided
the per-issuer-namespace uniqueness requirement of <xref target="CoRIM"/>, Section
4.1.1, holds. Verifiers <bcp14>MUST</bcp14> treat <tt>id</tt> as informational and <bcp14>MUST NOT</bcp14>
re-derive it.</t>
          <t>The CoMID <tt>tag-id</tt> (<xref target="tag-identity"/>) uses the same mechanism over a
narrower input (the CoMID's <tt>/ triples / 4</tt> only): <tt>tag-id</tt> is a
subject identifier and remains stable across re-issuance of the same
logical binding, whereas <tt>id</tt> perturbs on every byte that differs.
Generators that use both derivations <bcp14>MUST</bcp14> compute <tt>tag-id</tt> first,
embed the CoMID, then compute <tt>id</tt>.</t>
        </section>
        <section anchor="tags-cardinality">
          <name>Tags cardinality</name>
          <t>The CoRIM <tt>tags</tt> field (key 1) <bcp14>MUST</bcp14> contain exactly one entry under
this profile. That entry <bcp14>MUST</bcp14> be a Platform Ownership CoMID
(<tt>#6.506(bstr .cbor concise-mid-tag-map)</tt>) carrying the
<tt>tee.platform-instance-id</tt> extension key (<tt>-101</tt>, see
<xref target="conditions"/>). The base CoRIM schema permits one or more entries
(<xref target="CoRIM"/>, Section 4.1.2); this profile tightens that to exactly
one. Verifiers <bcp14>MUST</bcp14> reject CoRIMs whose <tt>tags</tt> array is empty,
contains more than one entry, or contains an entry that is not a POE
CoMID. Issuers needing batch issuance <bcp14>MUST</bcp14> emit one CoRIM per
platform.</t>
        </section>
        <section anchor="profile-id">
          <name>Profile</name>
          <t>The CoRIM <tt>profile</tt> field (key 3, <tt>profile-type-choice</tt>) <bcp14>MUST</bcp14> be
present and <bcp14>MUST</bcp14> be the literal <xref target="RFC4151"/>-style tag URI:</t>
          <artwork><![CDATA[
tag:intel.com,2026:tee.poe#1.0
]]></artwork>
          <t>carried as an untagged <tt>tstr</tt> (the <tt>uri</tt> alternative of
<tt>profile-type-choice</tt>). The fragment carries a <tt>#&lt;major&gt;.&lt;minor&gt;</tt>
version axis. A breaking change to this profile <bcp14>MUST</bcp14> bump <tt>&lt;major&gt;</tt>;
a purely additive change that an unaware Verifier can safely ignore
<bcp14>MAY</bcp14> bump <tt>&lt;minor&gt;</tt>. Per <xref target="CoRIM"/>, Section 4.1.4, any change other
than such a <tt>&lt;minor&gt;</tt> bump constitutes a new profile and <bcp14>MUST</bcp14> be
assigned a new identifier.</t>
          <t>Verifiers <bcp14>MUST</bcp14> reject the CoRIM if <tt>profile</tt> is absent, is not the
literal byte-equal string above on the <tt>&lt;major&gt;</tt> axis (current
<tt>&lt;major&gt;</tt> is <tt>1</tt>), or is encoded as any other type (e.g. an <tt>https:</tt>
URI, or an OID via <tt>tagged-oid-type</tt>). On a recognised <tt>&lt;major&gt;</tt>
with any <tt>&lt;minor&gt;</tt> -- including one higher than the Verifier's
built-in maximum -- the Verifier <bcp14>MUST</bcp14> accept the CoRIM and ignore
any top-level CoRIM keys it does not recognise, subject to the
"<bcp14>MUST NOT</bcp14> be present" restrictions in this profile.</t>
        </section>
        <section anchor="rim-validity">
          <name>Validity</name>
          <t>The CoRIM <tt>rim-validity</tt> field (key 4, <tt>validity-map</tt>) is <bcp14>REQUIRED</bcp14>
under this profile, with both <tt>not-before</tt> (key 0) and <tt>not-after</tt>
(key 1) populated as <tt>#6.1</tt> epoch-based numeric date-time values
(<xref target="CoRIM"/>, Section 7.3; <xref target="RFC8949"/>, Section 3.4.2). A bounded validity window
provides the only standing time-based ceiling on a stale endorsement
in the absence of an in-band revocation channel; see
<xref target="security-considerations"/>.</t>
          <t>This profile sets no normative upper bound on <tt>not-after - not-before</tt>.
Issuers <bcp14>SHOULD</bcp14> keep windows short to bound staleness, and are recommended
to bind refresh to an existing platform lifecycle event -- for
example, alongside Intel TCB Recovery events, so the POE and the PCK
certificate (<xref target="SGX-PCK"/>) stay in lock-step. The Intel generator's
default lifetime is <tt>P5Y</tt>; issuers with a scheduled re-issuance
pipeline <bcp14>SHOULD</bcp14> override it to match their cadence.</t>
          <t><tt>rim-validity</tt> is the semantic lifetime of the (PIID, owner) binding
and is independent of the COSE signing-chain validity. An issuer <bcp14>MAY</bcp14>
assert a multi-year <tt>rim-validity</tt> signed by a shorter-lived chain,
expecting to refresh the unprotected <tt>x5chain</tt> (re-certify the same
signing key) without re-signing the endorsement. The Verifier <bcp14>MUST</bcp14>
intersect <tt>rim-validity</tt> with the <tt>max(cert.notBefore)</tt>..<tt>min(cert.notAfter)</tt>
window across the <tt>x5chain</tt> and <bcp14>MUST</bcp14> reject the CoRIM if the
intersection is empty or if the caller-supplied verification
timestamp falls outside it.</t>
        </section>
      </section>
    </section>
    <section anchor="poe-comid-encoding">
      <name>POE CoMID Encoding</name>
      <section anchor="tag-identity">
        <name>Tag Identity</name>
        <t>The CoMID <tt>tag-identity</tt> (key 1) carries exactly one populated field
under this profile:</t>
        <ul spacing="normal">
          <li>
            <t><tt>tag-id</tt> (key 0): identifies the (platform, owner) binding. Issuers
<bcp14>SHOULD</bcp14> encode <tt>tag-id</tt> by the same UUIDv8 / left-truncated SHA-384 /
CDE mechanism as <tt>corim-id</tt> (<xref target="corim-id"/>), computed over this
CoMID's <tt>/ triples / 4</tt> map. The derivation is deterministic for a
given <tt>triples</tt> content, so a validity-window refresh (since
<tt>rim-validity</tt> lives at the CoRIM level) yields the same <tt>tag-id</tt>,
whereas a change to the bound PIID or owner name yields a new tag.
Other schemes (random UUIDv4/v7, or a <tt>tstr</tt> issuer-internal naming
convention) <bcp14>MAY</bcp14> be used provided uniqueness per <xref target="CoRIM"/>, Section
5.1.1, holds. Verifiers <bcp14>MUST</bcp14> treat <tt>tag-id</tt> as informational and
<bcp14>MUST NOT</bcp14> validate the derivation.</t>
          </li>
        </ul>
        <t>The <tt>tag-version</tt> field (key 1) <bcp14>MUST NOT</bcp14> be present. The meaningful
re-issuance axis is already captured by the <tt>tag-id</tt> derivation: a
change in PIID or owner name yields a new <tt>tag-id</tt>. A per-instance
revision counter adds no appraisal value and would require Issuers
to track per-<tt>(PIID, owner)</tt> monotonic state. Verifiers <bcp14>MUST</bcp14> ignore
<tt>tag-version</tt> if present.</t>
      </section>
      <section anchor="single-record">
        <name>Single-record cardinality</name>
        <t>The CoRIM/CoMID base schema (<xref target="CoRIM"/>, Section 5.1.4) allows
one-or-more <tt>conditional-endorsement-triple-record</tt> entries in
<tt>/ conditional-endorsement-triples / 10</tt>. This profile tightens that
to <strong>exactly one</strong> record per CoMID. Each binding then has its own
<tt>tag-id</tt>, validity window, and revocation lifecycle. Multiple
bindings -- different platforms, different owners, or alternative
conditions on the same platform -- <bcp14>MUST</bcp14> be carried as separate
CoRIMs (this profile pins <tt>/ tags / 1</tt> to exactly one CoMID; see
<xref target="tags-cardinality"/>).</t>
        <t>Generators <bcp14>MUST</bcp14> emit exactly one record per CoMID; Verifiers <bcp14>MUST</bcp14>
reject a CoMID carrying zero or more-than-one record under this
profile.</t>
      </section>
      <section anchor="conditions">
        <name>Conditions clause</name>
        <t>The condition is a <tt>stateful-environment-record</tt> whose
<tt>environment-map</tt> identifies the PIID-bearing environment in Evidence
and whose <tt>measurement-values-map</tt> carries the PIID value to match.</t>
        <figure>
          <name>POE conditions clause</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ stateful-environment-record / [
  / environment-map / {
    / class / 0 : {
      / class-id / 0 : 111(h'6086480186F84D010D020601')
                                      ; 2.16.840.1.113741.1.13.2.6.1
                                      ; Intel PIID environment OID
    }
  },
  / claims-list / [
    / measurement-map / {
      / mkey / 0 : "tee.poe.platform-binding",
      / mval / 1 : {
        / tee.platform-instance-id /
        -101 : h'...'                 ; PIID, 16 B or 32 B
      }
    }
  ]
]
]]></sourcecode>
        </figure>
        <t><tt>environment.class.class-id</tt> (key 0) <bcp14>MUST</bcp14> be the OID identifying the
Intel PIID environment, <tt>2.16.840.1.113741.1.13.2.6.1</tt>, encoded as
<tt>tagged-oid-type</tt> (CBOR tag 111). This OID matches the corresponding
PIID environment tag in the Intel SGX platform certificate <xref target="SGX-PCK"/>
and is the binding point between the certificate-side and CoMID-side
representations of the same identifier.</t>
        <t><tt>environment.class.vendor</tt> (key 1) <bcp14>MUST NOT</bcp14> be present. The
<tt>class-id</tt> OID is identity-bearing on its own; <tt>vendor = "Intel"</tt>
would be a redundant constant.</t>
        <t><tt>environment.class.model</tt> (key 2) <bcp14>MUST NOT</bcp14> be present. The <tt>class-id</tt>
OID uniquely identifies the PIID-bearing environment for this
profile, and the platform model is determined by the PIID itself --
a per-instance property rather than a class attribute.</t>
        <t><tt>measurement-map.authorized-by</tt> <bcp14>MUST NOT</bcp14> be present. Issuer
authorisation is conveyed by the COSE <tt>x5chain</tt> trust chain, not by a
per-measurement key. A Verifier <bcp14>MUST</bcp14> reject a CoRIM in which
<tt>authorized-by</tt> is present.</t>
        <t><tt>measurement-map.mkey</tt> (key 0) is <bcp14>RECOMMENDED</bcp14>. When present, it
<bcp14>SHOULD</bcp14> be the <tt>tstr</tt> value <tt>"tee.poe.platform-binding"</tt> -- a
diagnostic aid that keeps CBOR-diagnostic dumps self-describing.
Appraisal <bcp14>MUST NOT</bcp14> depend on <tt>mkey</tt>; Verifiers <bcp14>MUST</bcp14> accept the field
absent, present with this value, or present with any other <tt>tstr</tt>,
and <bcp14>MUST</bcp14> treat the bound PIID as the matching key.</t>
        <t>The PIID itself is carried in <tt>measurement-values-map</tt> under the
profile-private extension key <tt>-101</tt> (registered name
<tt>tee.platform-instance-id</tt>). The value is a CBOR byte
string of length 16 or 32.
Generators <bcp14>MUST</bcp14> preserve the caller-supplied length verbatim.
Verifiers <bcp14>MUST</bcp14> compare the Evidence PIID against the bound value
verbatim over the full length; a length mismatch is a non-match.
Lengths other than 16 or 32 <bcp14>MUST</bcp14> be rejected.</t>
        <t>Per <xref target="CoRIM"/>, Section 5.2.1, negative integer keys under
<tt>measurement-values-map</tt> are profile-private; this profile's
allocations are listed in <xref target="ext-claims"/>.</t>
      </section>
      <section anchor="endorsements">
        <name>Endorsements clause</name>
        <t>The endorsement is an <tt>endorsed-triple-record</tt> whose
<tt>measurement-values-map</tt> carries the Owner identity claim.</t>
        <figure>
          <name>POE endorsements clause</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ endorsed-triple-record / [
  / environment-map / {
    / class / 0 : {
      / class-id / 0 : 111(h'6086480186F84D010D020C01')
                                     ; 2.16.840.1.113741.1.13.2.12.1
                                     ; Intel Owner-Endorsement OID
    }
  },
  / measurements / [
    / measurement-map / {
      / mkey / 0 : "tee.poe.ownership-claims",
      / mval / 1 : {
        / tee.owner-name / -401 : "csp.example"
      }
    }
  ]
]
]]></sourcecode>
        </figure>
        <t><tt>environment.class.class-id</tt> (key 0) <bcp14>MUST</bcp14> be the OID
<tt>2.16.840.1.113741.1.13.2.12.1</tt> -- the Intel Owner-Endorsement
environment class (version 1) -- encoded as <tt>tagged-oid-type</tt>
(CBOR tag 111). This OID is a sibling of the PIID environment OID
on the conditions side (<tt>2.16.840.1.113741.1.13.2.6.1</tt>).</t>
        <t><tt>measurement-map.authorized-by</tt> <bcp14>MUST NOT</bcp14> be present, for the same
reason as in <xref target="conditions"/>; a Verifier <bcp14>MUST</bcp14> likewise reject a CoRIM in
which it is present.</t>
        <t><tt>measurement-map.mkey</tt> (key 0) is <bcp14>RECOMMENDED</bcp14>. When present, it
<bcp14>SHOULD</bcp14> be the <tt>tstr</tt> value <tt>"tee.poe.ownership-claims"</tt>. As on the
conditions side, <tt>mkey</tt> is a diagnostic aid only; appraisal <bcp14>MUST NOT</bcp14>
depend on it.</t>
        <t><tt>measurement-values-map</tt> <bcp14>MUST</bcp14> carry exactly one entry: the Owner
name under the profile-private extension key <tt>-401</tt> (registered name
<tt>tee.owner-name</tt>). The value is a UTF-8 text string of length 1 to 1024
bytes.</t>
        <t>The value <bcp14>SHOULD</bcp14> be a DNS name controlled by the Owner organisation
(e.g., <tt>csp.example</tt>, <tt>aws.amazon.com</tt>, <tt>azure.microsoft.com</tt>). DNS
names are globally unique and human-readable, which makes them the
preferred form. Other globally-unique forms -- a URI, an LEI, a
DUNS number, or a fully-qualified X.500 Distinguished Name -- <bcp14>MAY</bcp14>
be used where a DNS name is not available; locally-scoped or
free-form strings <bcp14>SHOULD NOT</bcp14> be used.</t>
        <t>The Verifier <bcp14>MUST</bcp14> surface the decoded <tt>tee.owner-name</tt> to the caller
verbatim and <bcp14>SHOULD</bcp14> additionally surface the Issuer identity (COSE
<tt>x5chain</tt> leaf Subject and the <tt>CWT-Claims</tt> <tt>iss</tt> claim) so
callers can detect Issuer-vs-Owner mismatches. The appraisal
outcome <bcp14>MUST NOT</bcp14> depend on the value of <tt>tee.owner-name</tt>; interpretation
is a policy-layer concern.</t>
      </section>
      <section anchor="ext-claims">
        <name>Extension claims</name>
        <t>This profile allocates the following profile-private extension keys
under <tt>$$measurement-values-map-extension</tt>:</t>
        <table>
          <name>POE measurement-values-map extension keys</name>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Used in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-101</td>
              <td align="left">tee.platform-instance-id</td>
              <td align="left">bstr (size 16 or 32)</td>
              <td align="left">conditions clause</td>
            </tr>
            <tr>
              <td align="left">-401</td>
              <td align="left">tee.owner-name</td>
              <td align="left">tstr (size 1..1024)</td>
              <td align="left">endorsements clause</td>
            </tr>
          </tbody>
        </table>
        <t>Key <tt>-101</tt> corresponds to the <tt>tee.platform-instance-id</tt>
          <tt>measurement-values-map</tt> extension defined by the Intel Profile for
Remote Attestation (<xref target="INTEL-PROFILE"/>, Section 8.3.6); it is shared
with the wider Intel <tt>tee.*</tt> namespace and is not exclusive to this
profile. Key <tt>-401</tt> is allocated here.</t>
        <t>Unlike the Intel Profile (<xref target="INTEL-PROFILE"/>), which plugs each key
into the open <tt>$$measurement-values-map-extension</tt> socket, this
profile pins closed <tt>measurement-values-map</tt>s (<xref target="cddl"/>) so that
exactly one entry is permitted on each of the conditions and
endorsements sides.</t>
        <t>Per <xref target="CoRIM"/>, Section 5.2.1, negative integer keys are reserved for
per-profile private use and require no IANA action. Keys allocated
here <bcp14>MUST NOT</bcp14> be used by generators or interpreted by Verifiers in
the absence of the POE profile identifier in the enclosing CoRIM
<tt>/ profile / 3</tt> field.</t>
      </section>
    </section>
    <section anchor="complete-example">
      <name>Complete Example</name>
      <t>A complete CBOR-diagnostic example of a POE CoRIM is shown in
<xref target="fig-example"/>. Values shown as <tt>h'...'</tt> are abbreviated for
readability.</t>
      <figure anchor="fig-example">
        <name>Complete POE CoRIM example (CBOR diagnostic)</name>
        <sourcecode type="cbor-diag"><![CDATA[
18([                                  ; COSE_Sign1
  << {                                ; protected header
    / alg / 1          : -35,         ; ES384
    / content-type / 3 : "application/rim+cbor",
    / kid / 4          : h'...',      ; SHA-384 COSE Key Thumbprint
    / CWT-Claims / 15  : {
      / iss / 1 : "csp.example"
    },
    / tee.refresh-uri /
      "tee.refresh-uri" :
      32("https://poe.example.com/corims/{PIID}.cbor")
  } >>,
  {                                   ; unprotected header
    / x5chain / 33 : [ h'...', h'...' ]
  },
  << 501( {                           ; payload: tagged corim-map
    / id           / 0 : h'...',      ; 16-byte UUIDv8 (untagged)
    / tags         / 1 : [
      506( <<                         ; concise-mid-tag
        {
          / tag-identity / 1 : {
            / tag-id / 0 : h'...'     ; 16-byte UUIDv8 (untagged)
          },
          / triples / 4 : {
            / conditional-endorsement-triples / 10 : [
              [
                / conditions / [
                  [
                    / environment-map / {
                      / class / 0 : {
                        / class-id / 0 :
                          111(h'6086480186F84D010D020601')
                          ; 2.16.840.1.113741.1.13.2.6.1 (PIID env)
                      }
                    },
                    / claims-list / [
                      / measurement-map / {
                        / mkey / 0 : "tee.poe.platform-binding",
                        / mval / 1 : {
                          / -101 / : h'...' ; PIID, 16 or 32 bytes
                        }
                      }
                    ]
                  ]
                ],
                / endorsements - additions / [
                  [
                    / environment-map / {
                      / class / 0 : {
                        / class-id / 0 :
                          111(h'6086480186F84D010D020C01')
                          ; 2.16.840.1.113741.1.13.2.12.1
                          ; (Owner-Endorsement env)
                      }
                    },
                    / measurements / [
                      / measurement-map / {
                        / mkey / 0 : "tee.poe.ownership-claims",
                        / mval / 1 : {
                          / -401 / : "csp.example"
                        }
                      }
                    ]
                  ]
                ]
              ]
            ]
          }
        }
      >> )
    ],
    / profile      / 3 : "tag:intel.com,2026:tee.poe#1.0",
    / rim-validity / 4 : {
      / not-before / 0 : 1(1780358400),  ; 2026-06-02T00:00:00Z
      / not-after  / 1 : 1(1938124800)   ; 2031-06-02T00:00:00Z
    }
  } ) >>,
  h'...'                              ; signature
])
]]></sourcecode>
      </figure>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records implementations of the profile defined by this
specification, in the spirit of <xref target="RFC7942"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Intel provides open-source tooling for the POE flow at
<eref target="https://github.com/intel/confidential-computing.tee.dcap.poe">https://github.com/intel/confidential-computing.tee.dcap.poe</eref>,
distributed under the BSD-3-Clause license:  </t>
          <ul spacing="normal">
            <li>
              <t>The Intel(R) POE Generator (<tt>poe-gen-tool</tt>) extracts the Platform
Instance Identity (PIID) from a Platform Manifest, PCK certificate,
or SGX/TDX Quote, and builds and signs a POE CoRIM as specified in
this document.</t>
            </li>
            <li>
              <t>The Intel(R) POE Evaluator (<tt>poe-eval-tool</tt>) parses a POE CoRIM,
matches its bound PIID against attestation Evidence, and surfaces the
endorsed owner identity to the caller.</t>
            </li>
          </ul>
          <t>
Both tools track the <tt>tag:intel.com,2026:tee.poe#1.0</tt> profile
defined here.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="issuer-trust">
        <name>Issuer trust</name>
        <t>A POE is only as trustworthy as the COSE_Sign1 signer. Relying
Parties <bcp14>MUST</bcp14> establish a trust anchor for the Issuer's signing
certificate chain out of band; this profile does not define an Issuer
trust hierarchy. Operational mechanisms for distributing Issuer
trust anchors are deployment-specific.</t>
      </section>
      <section anchor="issuer-is-not-necessarily-owner">
        <name>Issuer is not necessarily Owner</name>
        <t>This profile decouples the Issuer (who signs the CoRIM) from the
Owner (whose identity is endorsed), so that a Cloud Service Provider
or a delegated provisioning service can act as Issuer on the Owner's
behalf. Relying Parties whose policy requires the Issuer and Owner
to match (or to satisfy any other relationship) <bcp14>MUST</bcp14> enforce that
relationship at the policy layer using the Issuer identity surfaced
by the Verifier (see <xref target="conditions"/>) and the <tt>tee.owner-name</tt> claim.</t>
      </section>
      <section anchor="revocation">
        <name>Revocation</name>
        <t>This profile defines no in-band revocation mechanism for individual
POEs. Issuers <bcp14>MUST</bcp14> bound POE validity windows for their deployment
(see <xref target="rim-validity"/>), and <bcp14>SHOULD</bcp14> refresh a POE before its window
elapses; Intel TCB Recovery is a natural refresh trigger on Intel
platforms, keeping the POE and PCK certificate in lock-step (<xref target="SGX-PCK"/>).</t>
        <t>A change to the (PIID, Owner) binding requires a new POE,
yielding a new <tt>tag-id</tt> (see <xref target="tag-identity"/>); on an ownership change
an SGX Factory Reset by the platform operator is also recommended, as the
resulting new PIID naturally orphans every POE bound to the prior one
(<xref target="POE-WHITEPAPER"/>).</t>
        <t>Standard COSE signing-chain revocation (CRL, OCSP) applies to the
Issuer certificate chain. Issuers can also use their CA layout to scope
revocation -- e.g. dedicating an intermediate CA to a fleet, tenant,
or issuance batch so one revocation invalidates every POE issued
under it.</t>
      </section>
      <section anchor="piid-confidentiality">
        <name>PIID confidentiality</name>
        <t>The PIID is a per-instance identifier that can be used to track a
platform across attestation flows. A POE makes the
PIID-Owner binding publicly visible to any party that receives the
CoRIM. Issuers that distribute POEs to untrusted parties <bcp14>SHOULD</bcp14>
consider whether this disclosure is acceptable in their threat model.</t>
        <t>Note that an SGX Factory Reset establishes a new PIID
(<xref target="POE-WHITEPAPER"/>), bounding that correlation.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests no IANA action.</t>
      <t>The profile identifier (<xref target="profile-id"/>) is an <xref target="RFC4151"/> tag URI
(<tt>tag:intel.com,2026:tee.poe#1.0</tt>); per RFC 4151, no registration is
required. The DNS authority <tt>intel.com</tt> is under the control of Intel
Corporation, and the year <tt>2026</tt> pins the allocation per RFC 4151,
Section 2.4.</t>
      <t>The OIDs used in this profile are under Intel's private enterprise arc
(<tt>2.16.840.1.113741</tt>); their allocation is administered by Intel and
requires no IANA action:</t>
      <ul spacing="normal">
        <li>
          <t><tt>2.16.840.1.113741.1.13.2.6.1</tt> -- Intel PIID environment class,
reused from <xref target="SGX-PCK"/>, used as <tt>environment.class.class-id</tt> in
the conditions clause (<xref target="conditions"/>).</t>
        </li>
        <li>
          <t><tt>2.16.840.1.113741.1.13.2.12.1</tt> -- Intel Owner-Endorsement
environment class, version 1, used as <tt>environment.class.class-id</tt>
in the endorsements clause (<xref target="endorsements"/>).</t>
        </li>
      </ul>
      <t>The negative integer keys allocated in <xref target="ext-claims"/>
(<tt>-101 tee.platform-instance-id</tt> and <tt>-401 tee.owner-name</tt>)
are profile-private per <xref target="CoRIM"/>, Section 5.2.1, and require no
IANA action. Key <tt>-101</tt> is shared with the broader Intel <tt>tee.*</tt>
namespace; the authoritative registry of record for cross-profile
Intel allocations under that namespace is maintained outside this
document, and a future revision may relocate the normative-of-record
entry for <tt>-101</tt> accordingly without affecting IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="CoRIM" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-corim-10">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author initials="H." surname="Birkholz" fullname="H. Birkholz">
              <organization/>
            </author>
            <author initials="T." surname="Fossati" fullname="T. Fossati">
              <organization/>
            </author>
            <author initials="Y." surname="Deshpande" fullname="Y. Deshpande">
              <organization/>
            </author>
            <author initials="N." surname="Smith" fullname="N. Smith">
              <organization/>
            </author>
            <author initials="W." surname="Pan" fullname="W. Pan">
              <organization/>
            </author>
            <date year="2026" month="March"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-10"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="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="RFC4151">
          <front>
            <title>The 'tag' URI Scheme</title>
            <author fullname="T. Kindberg" initials="T." surname="Kindberg"/>
            <author fullname="S. Hawke" initials="S." surname="Hawke"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document describes the "tag" Uniform Resource Identifier (URI) scheme. Tag URIs (also known as "tags") are designed to be unique across space and time while being tractable to humans. They are distinct from most other URIs in that they have no authoritative resolution mechanism. A tag may be used purely as an entity identifier. Furthermore, using tags has some advantages over the common practice of using "http" URIs as identifiers for non-HTTP-accessible resources. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4151"/>
          <seriesInfo name="DOI" value="10.17487/RFC4151"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="RFC9597">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author fullname="T. Looker" initials="T." surname="Looker"/>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document describes how to include CBOR Web Token (CWT) claims in the header parameters of any CBOR Object Signing and Encryption (COSE) structure. This functionality helps to facilitate applications that wish to make use of CWT claims in encrypted COSE structures and/or COSE structures featuring detached signatures, while having some of those claims be available before decryption and/or without inspecting the detached payload. Another use case is using CWT claims with payloads that are not CWT Claims Sets, including payloads that are not CBOR at all.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9597"/>
          <seriesInfo name="DOI" value="10.17487/RFC9597"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RATS-ARCH" target="https://www.rfc-editor.org/rfc/rfc9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="RFC" value="9334"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="SGX-PCK" target="https://api.trustedservices.intel.com/documents/Intel_SGX_PCK_Certificate_CRL_Spec-1.5.pdf">
          <front>
            <title>Intel SGX PCK Certificate and Certificate Revocation List Profile Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="POE-WHITEPAPER" target="https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/platform-ownership-endorsements.html">
          <front>
            <title>Platform Ownership Endorsements</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="INTEL-PROFILE" target="https://datatracker.ietf.org/doc/html/draft-cds-rats-intel-corim-profile-07">
          <front>
            <title>Intel Profile for Remote Attestation</title>
            <author initials="J." surname="Beaney" fullname="J. Beaney">
              <organization/>
            </author>
            <author initials="F." surname="Chinchilla" fullname="F. Chinchilla">
              <organization/>
            </author>
            <author initials="Y." surname="Deshpande" fullname="Y. Deshpande">
              <organization/>
            </author>
            <author initials="V." surname="Scarlata" fullname="V. Scarlata">
              <organization/>
            </author>
            <author initials="N." surname="Smith" fullname="N. Smith">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cds-rats-intel-corim-profile-07"/>
        </reference>
      </references>
    </references>
    <?line 863?>

<section anchor="cddl">
      <name>CDDL</name>
      <t>This appendix gives a single self-contained CDDL fragment for the
POE profile. It is a narrowing of base CoRIM <xref target="CoRIM"/>: every
production defined here is a stricter form of the corresponding base
production, expressing the constraints stated normatively in
<xref target="single-record"/>, <xref target="tag-identity"/>, <xref target="conditions"/>,
<xref target="endorsements"/>, and <xref target="ext-claims"/>.</t>
      <t>To validate a candidate POE CoRIM, concatenate the base CoRIM CDDL
(<tt>corim.cddl</tt> from <xref target="CoRIM"/>, Appendix A) with the fragment below
and feed the combined grammar to a CDDL tool. The top-level rule is
<tt>poe-signed-corim</tt>.</t>
      <t>The following constraints cannot be expressed in CDDL and remain
normative in prose:</t>
      <ul spacing="normal">
        <li>
          <t>the literal OID byte strings pinned in <xref target="conditions"/> and
<xref target="endorsements"/> (CDDL types over <tt>bstr</tt> cannot pin a specific
byte sequence portably across tools);</t>
        </li>
        <li>
          <t>the UUIDv8/SHA-384/CDE derivation rule for <tt>tag-id</tt> (<xref target="tag-identity"/>)
and <tt>corim-id</tt> (<xref target="corim-id"/>);</t>
        </li>
        <li>
          <t>the intersection of <tt>rim-validity</tt> with the COSE <tt>x5chain</tt>
validity (<xref target="rim-validity"/>);</t>
        </li>
        <li>
          <t>the <tt>mkey</tt> string recommendations of <tt>"tee.poe.platform-binding"</tt>
and <tt>"tee.poe.ownership-claims"</tt> (<xref target="conditions"/>, <xref target="endorsements"/>);</t>
        </li>
        <li>
          <t>the empty-<tt>crit</tt> requirement on the COSE protected header
(<xref target="conformance"/>).</t>
        </li>
      </ul>
      <figure>
        <name>POE profile CDDL (self-contained)</name>
        <sourcecode type="cddl"><![CDATA[
; ============================================================
; POE CoRIM profile -- CDDL
; Profile identifier: "tag:intel.com,2026:tee.poe#1.0"
; Narrowing of draft-ietf-rats-corim-10.
;
; Dependencies: none at the CDDL level. This grammar is
; self-contained -- it validates standalone against only the
; RFC 8610 CDDL prelude (bstr, tstr, int, time, any) and has
; no file/{::include} dependency on the base CoRIM grammar.
; It does, however, *semantically* depend on:
;   [CoRIM] draft-ietf-rats-corim-10 -- the CBOR tag numbers
;           (#6.18, #6.32, #6.111, #6.501, #6.506), map-key
;           code points, and the profile-narrowing mechanism.
;   [COSE]  RFC 9052 -- the #6.18 COSE_Sign1 envelope and its
;           protected/unprotected header label assignments.
; The base grammar is not vendored here; scripts/validate-cddl.sh
; fetches it ad-hoc at check time (optionally cached, git-ignored,
; under cddl/imports/) purely as a cross-check aid. It is not
; required to parse this file.
;
; Scope: PRODUCER (emission) grammar -- closed maps mean "a #1.0
; producer emits exactly these keys", not "a verifier rejects
; anything else". Verifier tolerance is normative in the draft's
; Conformance section (a closed map cannot say "ignore unknowns
; EXCEPT one key"). The lone forward-compat socket here is the
; top-level `* (int / tstr) => any` on the unsigned CoRIM map.
; ============================================================

; --- Profile-private extension keys. Identifiers and the
; --- $tee-platform-instance-id-type socket are reused verbatim
; --- from the Intel Profile ([INTEL-PROFILE], Section 8.3.6);
; --- tee.owner-name (-401) is allocated by this profile. Both
; --- are negative-integer private code points per [CoRIM],
; --- Section 5.2.1.
; ---
; --- The redeclaration below (see header) is value-identical to
; --- the Intel Profile, so concatenating this profile with the
; --- Intel Profile grammar is harmless -- CDDL tolerates an
; --- identical rule redefinition (at most a benign warning) and
; --- the $tee-*-type sockets merge additively. A *conflicting*
; --- value would be a spec error: the desired fail-closed
; --- behaviour.

tee.platform-instance-id = -101
tee.owner-name           = -401

; POE narrows the Intel PIID value-type socket to two fixed
; lengths and defines the owner-name socket locally.
$tee-platform-instance-id-type /= bstr .size 16
$tee-platform-instance-id-type /= bstr .size 32
$tee-owner-name-type           /= tstr .size (1..1024)

; --- Borrowed base aliases (definitions appear in [COSE] /
; --- [CoRIM]; restated locally for self-containment). Both are
; --- value-identical to base CoRIM (`cose-label` = int / tstr;
; --- `uuid-type` = bytes .size 16), so each is a benign identical
; --- redefinition when composed with base or the Intel grammar.

cose-label = int / tstr
uuid-type  = bytes .size 16   ; untagged UUID (any version)

; --- Profile identifier (RFC 4151 tag URI).

poe-profile-id = "tag:intel.com,2026:tee.poe#1.0"

; --- OID byte strings (informational; literal pinning is
; --- normative in prose, not in CDDL).

poe-piid-env-oid        = bstr  ; 2.16.840.1.113741.1.13.2.6.1
poe-owner-endorse-oid   = bstr  ; 2.16.840.1.113741.1.13.2.12.1

; ------------------------------------------------------------
; Top-level: signed POE CoRIM
; ------------------------------------------------------------

poe-signed-corim = #6.18([
  bstr .cbor poe-protected-header-map,        ; protected
  poe-unprotected-header-map,                 ; unprotected
  bstr .cbor poe-tagged-unsigned-corim-map,   ; payload
  bstr                                        ; signature
])

; --- Protected header

poe-protected-header-map = {
  1  => -35,                        ; alg = ES384
  3  => "application/rim+cbor",     ; content-type
  4  => bstr,                       ; kid (RFC 9679 thumbprint)
  15 => poe-cwt-claims-map,         ; CWT-Claims (REQUIRED)
  ? 8 => bstr .cbor poe-corim-meta-map,  ; corim-meta (legacy)
  ? "tee.refresh-uri" => #6.32(tstr),    ; optional refresh URI
  * cose-label => any               ; future profile-private only
}

poe-cwt-claims-map = {
  1 => tstr,                        ; iss (signer identity)
  ; closed map: no extension point; adding claims needs a
  ; profile version bump. (no nbf/5, exp/4 -- see Signer metadata)
}

poe-corim-meta-map = {
  0 => poe-signer-map,              ; signer (REQUIRED if present)
  ; (no signature-validity/1 -- see Signer metadata)
}

poe-signer-map = {
  0 => tstr,                        ; signer-name (== CWT iss)
  ? 1 => any                        ; signer-uri (base CoRIM)
}

; --- Unprotected header

poe-unprotected-header-map = {
  33 => bstr / [ 2*bstr ],           ; x5chain (COSE_X509, [RFC9360]): leaf-first.
                                    ; One cert => bare bstr; two-or-more => array.
                                    ; Every intermediate CA MUST be present; only
                                    ; the root MAY be omitted. Dropping the root
                                    ; from a 2-cert chain leaves one cert, encoded
                                    ; as the bare bstr -- not a 1-element array.
  * cose-label => any
}

; ------------------------------------------------------------
; Payload: tagged unsigned CoRIM map
; ------------------------------------------------------------

poe-tagged-unsigned-corim-map = #6.501(poe-unsigned-corim-map)

poe-unsigned-corim-map = {
  0 => uuid-type / tstr,             ; id (SHOULD UUIDv8; MAY tstr)
  1 => [ poe-tagged-concise-mid-tag ],   ; tags: exactly one
  3 => poe-profile-id,              ; profile (tstr; see Profile)
  4 => poe-validity-map,            ; rim-validity (REQUIRED)
  ? 2 => [ + any ],                 ; dependent-rims: optional,
                                    ; informational, verifier-ignored
  ? 5 => [ + any ],                 ; entities (CoRIM-level):
                                    ; optional, verifier-ignored
  ; Sole forward-compat socket in this producer grammar (see header
  ; Scope note). Keys unknown in #1.0: verifiers MUST ignore;
  ; producers conforming to #1.0 SHOULD NOT emit (see Conformance).
  * (int / tstr) => any
}

poe-validity-map = {
  0 => time,   ; not-before (#6.1 epoch-based; CoRIM Sec 7.3)
  1 => time,   ; not-after  (#6.1 epoch-based; CoRIM Sec 7.3)
}

; ------------------------------------------------------------
; POE CoMID
; ------------------------------------------------------------

poe-tagged-concise-mid-tag =
  #6.506(bstr .cbor poe-concise-mid-tag-map)

poe-concise-mid-tag-map = {
  1 => poe-tag-identity-map,        ; tag-identity
  4 => poe-triples-map,             ; triples
  ; (no entities/5 -- see Conformance)
}

poe-tag-identity-map = {
  0 => uuid-type / tstr,             ; tag-id (SHOULD UUIDv8; MAY tstr)
  ; (no tag-version/1 -- see Conformance)
}

poe-triples-map = {
  ; conditional-endorsement-triples: exactly one record; no
  ; other triple kinds permitted.
  10 => [ poe-cond-endorse-triple-record ],
}

; ------------------------------------------------------------
; Conditional-endorsement triple record
; ------------------------------------------------------------

poe-cond-endorse-triple-record = [
  conditions:            [ poe-condition-stateful-env ],
  endorsement-additions: [ poe-endorsement-stateful-env ],
]

; --- Conditions side: PIID-bearing environment

poe-condition-stateful-env = [
  environment: poe-piid-environment-map,
  claims-list: [ poe-piid-measurement-map ],  ; [+ measurement-map]
]

poe-piid-environment-map = {
  0 => poe-piid-class-map,          ; class (REQUIRED)
  ; (no instance/1, group/2 -- see Conformance)
}

poe-piid-class-map = {
  0 => #6.111(poe-piid-env-oid),    ; class-id: tagged-oid-type
  ; (no vendor/model/layer/index -- see Conformance)
}

poe-piid-measurement-map = {
  ? 0 => tstr,                   ; mkey ("tee.poe.platform-binding")
  1 => poe-piid-mval-map,           ; mval
  ; (no authorized-by/2 -- see Conformance)
}

; Closed map: the Intel Profile plugs keys into the *open*
; $$measurement-values-map-extension socket; this profile pins a
; closed map instead, so exactly one key is permitted and any
; other is rejected.
poe-piid-mval-map = {
  tee.platform-instance-id => $tee-platform-instance-id-type,
}

; --- Endorsements side: Owner identity

poe-endorsement-stateful-env = [
  environment:  poe-owner-environment-map,
  measurements: [ poe-owner-measurement-map ],  ; [+ measurement-map]
]

poe-owner-environment-map = {
  0 => poe-owner-class-map,         ; class (REQUIRED)
  ; (no instance/1, group/2 -- see Conformance)
}

poe-owner-class-map = {
  0 => #6.111(poe-owner-endorse-oid),  ; class-id: tagged-oid-type
  ; (no vendor/model/layer/index -- see Conformance)
}

poe-owner-measurement-map = {
  ? 0 => tstr,                   ; mkey ("tee.poe.ownership-claims")
  1 => poe-owner-mval-map,          ; mval
  ; (no authorized-by/2 -- see Conformance)
}

poe-owner-mval-map = {
  tee.owner-name => $tee-owner-name-type,   ; closed map (see PIID)
}
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Vincent R. Scarlata and Francisco J. Chinchilla for their valuable contributions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
LhUj8do3/wfRjk6CCLYAAA==

-->

</rfc>
