<?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.43 (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-02" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <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-02"/>
    <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="September" day="28"/>
    <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 98?>

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

<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</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 : 32("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 / [ ... ]
      ]
    ]
  }
}
]]></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 signing key is identified by <tt>kid</tt> (label 4), the COSE Key
Thumbprint (<xref target="RFC9679"/>) of the <tt>x5chain</tt> leaf public key. <xref target="RFC9052"/>
(Section 3.1) treats <tt>kid</tt> as a non-critical hint that <bcp14>MAY</bcp14> sit in
either the protected or the unprotected header. The CDDL lists it as
optional (<tt>? 4 =&gt; bstr</tt>) in both maps, but <tt>kid</tt> <bcp14>MUST</bcp14> appear in
exactly one -- never both, never neither (a constraint the CDDL
cannot express). The Intel #1.0 generator emits it in the protected
header; either placement is conformant and a Verifier <bcp14>MUST</bcp14> accept
whichever bucket it appears in.</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="signing-alg">
        <name>Signing algorithm</name>
        <t>The COSE protected header's <tt>alg</tt> parameter (label 1) <bcp14>MUST</bcp14> be one of
the two code points the CDDL (<xref target="cddl"/>) admits (<tt>1 =&gt; -51 / -35</tt>),
both denoting ECDSA with SHA-384 over the NIST P-384 curve: ESP384
(<tt>-51</tt>, <xref target="RFC9864"/>, Section 2.1) or ES384 (<tt>-35</tt>, <xref target="RFC9053"/>,
Section 2.1). A producer <bcp14>SHOULD</bcp14> emit ESP384 (<tt>-51</tt>) and <bcp14>MAY</bcp14> emit ES384
(<tt>-35</tt>); a Verifier <bcp14>MUST</bcp14> accept either. <xref target="RFC9864"/> deprecates the
polymorphic <tt>-35</tt> in favour of the fully-specified <tt>-51</tt>, but both
identify the same operation and key representation (<xref target="RFC9864"/>,
Section 5), so the choice is confined to the protected header and does
not affect the CoRIM payload.</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 a <tt>uri</tt> (<tt>#6.32(tstr)</tt>) -- the <tt>uri</tt> arm of
<tt>profile-type-choice</tt> (<xref target="CoRIM"/>, Appendix A). 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>This profile plugs both keys into the open
<tt>$$measurement-values-map-extension</tt> socket, as the Intel Profile
(<xref target="INTEL-PROFILE"/>) does, but additionally 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          : -51,         ; ESP384 (-35 also allowed)
    / 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 / [
                  [
                    / 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 : 32("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="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </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 887?>

<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 ([CoRIM]), "base" below.
; Specified by Internet-Draft draft-bzb-rats-intel-poe-endorsements
; ("the draft"); bare section names below are its sections.
;
; Parses standalone: the only external names are RFC 8610 prelude
; types (bstr, bytes, tstr, int, time, any) and the `$`/`$$`
; sockets it extends, which are inert on their own. Base CoRIM is
; not reproduced here and is not needed to read this file.
;
; Validates everything POE constrains on its own: `any` marks the
; optional points POE defers to base -- exactly the fields a POE
; verifier ignores. Full CoRIM conformance additionally needs
; base, which the socket plugs below extend with the POE
; measurement keys.
;
; Tags are written as explicit numbers, not via prelude aliases
; such as `uri`: several sites pin a literal value inside the tag,
; which the alias cannot express.
;
; Semantic (not CDDL-level) dependencies:
;   [CoRIM] draft-ietf-rats-corim-10 -- 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.
;
; Scope: PRODUCER (emission) grammar -- closed maps mean "a #1.0
; producer emits exactly these keys", not "a verifier rejects
; anything else" (a closed map cannot say "ignore unknowns EXCEPT
; one key"). Verifier tolerance is normative in the draft's
; Conformance constraints.
; ============================================================

; --- 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.
; --- Restated value-identically; a conflict is a spec error.

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)

; --- Base lacks the -101 / -401 code points; these supply them.
; --- Its corim-map socket is deliberately left unfilled -- see
; --- `poe-unsigned-corim-map`.

$$measurement-values-map-extension //= (
  tee.platform-instance-id => $tee-platform-instance-id-type
)
$$measurement-values-map-extension //= (
  tee.owner-name => $tee-owner-name-type
)

; --- Borrowed from [COSE] / [CoRIM], restated value-identically
; --- so this file stays self-contained.

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

; --- Profile identifier (RFC 4151 tag URI). Carried through the
; --- `uri` arm of base CoRIM's $profile-type-choice, hence #6.32

poe-profile-id = #6.32("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  => -51 / -35,   ; alg: -51 ESP384 (preferred), -35 ES384;
                     ; both = ECDSA with SHA-384 on P-384 (RFC 9864)
  3  => "application/rim+cbor",     ; content-type
  ? 4 => bstr,                      ; kid: RFC 9679 thumbprint.
                                    ; MAY sit here OR in the
                                    ; unprotected map; present in
                                    ; exactly one bucket, never
                                    ; both (see Signer metadata).
  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 => #6.32(tstr)     ; signer-uri (base: uri)
}

; --- 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.
  ? 4 => bstr,               ; kid MAY sit here instead of the
                             ; protected map (symmetric; exactly
                             ; one bucket).
  * 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 (uri; see Profile)
  4 => poe-validity-map,            ; rim-validity (REQUIRED)
  ; `any` in this map means "POE adds no constraint" -- the base
  ; type in each comment still binds, left unrestated so this
  ; grammar cannot drift against base.
  ? 2 => [ + any ],                 ; dependent-rims: optional,
                                    ; informational, verifier-ignored
                                    ; (base: [+ corim-locator-map])
  ? 5 => [ + any ],                 ; entities (CoRIM-level):
                                    ; optional, verifier-ignored.
                                    ; (base: [+ corim-entity-map] --
                                    ;  `role` key 2 is MANDATORY)
  ; Unknown keys: base decides -- rejected unless base defines them,
  ; so a FUTURE base needs no respin here. #1.0 producers SHOULD NOT
  ; emit them (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-stateful-environment-record ],
  endorsements: [ poe-endorsed-triple-record ],
]

; --- Conditions side: PIID-bearing environment

poe-stateful-environment-record = [
  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: base and the Intel Profile leave
; $$measurement-values-map-extension open; POE pins exactly one
; key here, rejecting any other.
poe-piid-mval-map = {
  tee.platform-instance-id => $tee-platform-instance-id-type,
}

; --- Endorsements side: Owner identity

poe-endorsed-triple-record = [
  condition:   poe-owner-environment-map,
  endorsement: [ 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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

-->

</rfc>
