<?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 rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ydb-rats-cca-endorsements-04" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Arm CCA Endorsements">A CoRIM Profile for Arm's Confidential Computing Architecture (CCA) Endorsements</title>
    <seriesInfo name="Internet-Draft" value="draft-ydb-rats-cca-endorsements-04"/>
    <author initials="Y." surname="Deshpande" fullname="Yogesh Deshpande">
      <organization>Arm Ltd</organization>
      <address>
        <email>yogesh.deshpande@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <abstract>
      <?line 68?>

<t>Arm Confidential Computing Architecture (CCA) Endorsements comprise reference values and cryptographic key material that a Verifier needs to appraise Attestation Evidence produced by an Arm CCA system.</t>
      <t>This memo defines CCA Endorsements as a profile of the CoRIM data model.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/yogeshbdeshpande/draft-cca-rats-endorsements"/>.</t>
    </note>
  </front>
  <middle>
    <?line 74?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Arm Confidential Computing Architecture (CCA) Endorsements comprise reference values and cryptographic key material that a Verifier needs to appraise Attestation Evidence produced by an Arm CCA system <xref target="I-D.ffm-rats-cca-token"/>.</t>
      <t>This memo defines CCA Endorsements as a profile of the CoRIM data model <xref target="I-D.ietf-rats-corim"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
      <t>The reader is assumed to be familiar with the terms and concepts introduced in <xref target="I-D.ffm-rats-cca-token"/> and in <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
    </section>
    <section anchor="sec-cca-endorsements">
      <name>Arm CCA Endorsements</name>
      <t>The Arm CCA Attester is a layered Attester comprising separate yet linked Platform and Realm Attesters.
For the details, see <xref section="3" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>.
Appraising Arm CCA Evidence requires Endorsements for both the Platform and Realm.
This document outlines the Platform and Realm Endorsements in <xref target="sec-platform-endorsements"/> and <xref target="realm-endorsements"/>, respectively.
It also provides the Evidence transformation logic for conducting appraisals using the CoRIM processor (see <xref section="8" sectionFormat="of" target="I-D.ietf-rats-corim"/>) for both platform and realm claim sets, which are covered in <xref target="sec-trans-plat"/> and <xref target="sec-trans-realm"/>, respectively.</t>
      <section anchor="sec-platform-endorsements">
        <name>Arm CCA Platform Endorsements</name>
        <t>There are two types of CCA Platform Endorsements:</t>
        <ul spacing="normal">
          <li>
            <t>Reference Values (<xref target="sec-ref-values"/>), i.e., measurements of the CCA Platform firmware.</t>
          </li>
          <li>
            <t>Attestation Verification Keys (<xref target="sec-keys"/>), i.e., cryptographic keys that can be used to verify Evidence produced by the CCA Platform, along with the identifiers that link the keys to their platform instances.</t>
          </li>
        </ul>
        <section anchor="arm-cca-platform-endorsement-profile">
          <name>Arm CCA Platform Endorsement Profile</name>
          <t>Arm CCA Platform Endorsements are carried in one or more CoMIDs within a CoRIM.</t>
          <t>The profile attribute in the CoRIM MUST be present and MUST be the URI <tt>tag:arm.com,2025:endorsements/cca_platform#1.0.0</tt>, as shown in <xref target="ex-cca-platform-profile"/>.</t>
          <figure anchor="ex-cca-platform-profile">
            <name>CoRIM profile for CCA Platform Endorsements version 1.0.0</name>
            <artwork><![CDATA[
/ corim-map / {
  / corim.profile / 3:
    32("tag:arm.com,2025:endorsements/cca_platform#1.0.0")
  / ... /
}
]]></artwork>
          </figure>
        </section>
        <section anchor="sec-cca-rot-id">
          <name>Arm CCA Platform Endorsements linkage to CCA Platform</name>
          <t>Each CCA Platform Endorsement, be it a Reference Value or an Attestation Verification Key, is associated with a unique identifier known as CCA Platform Implementation ID (see <xref section="4.4.2" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>).
The Implementation ID uniquely identifies a given implementation of a CCA Platform and it is used by the Endorser or Reference Value Provider as an anchor to which Reference Values and Attestation Verification Keys for a CCA Platform are linked.</t>
          <t>To encode an Implementation ID, the <tt>tagged-bytes</tt> variant of the <tt>$class-id-type-choice</tt> is used, as described in <xref target="cddl-impl-id"/>.
The length of the byte string MUST be exactly 32.</t>
          <figure anchor="cddl-impl-id">
            <name>CCA Platform Implementation ID encoding</name>
            <sourcecode type="cddl"><![CDATA[
impl-id-tagged-bytes = #6.560(arm-platform-implementation-id-type)

arm-platform-implementation-id-type = bytes .size 32
]]></sourcecode>
          </figure>
          <t>Besides, a CCA Endorsement can be associated with a specific <em>instance</em> of a certain CCA Platform implementation - as is the case of Attestation Verification Keys.
The Instance ID (see <xref section="4.4.1" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>) provides a unique identifier for a given CCA Platform instance.</t>
          <t>To encode an Instance ID, the <tt>tagged-ueid-type</tt> variant of the <tt>$instance-id-type-choice</tt> is used, as described in <xref target="cddl-inst-id"/>.
The first byte MUST be 0x01 (RAND) followed by the 32-byte unique instance identifier.</t>
          <figure anchor="cddl-inst-id">
            <name>CCA Platform Instance ID encoding</name>
            <sourcecode type="cddl"><![CDATA[
inst-id-tagged-ueid = #6.550(eat-ueid-rand-type)

eat-ueid-rand-type = bytes .join eat-ueid-rand-fmt

eat-ueid-rand-fmt = [
  ; the type byte is 0x01
  ueid-rand-typ
  bytes .size 32
]

ueid-rand-typ = h'01'
]]></sourcecode>
          </figure>
          <t>CCA Attestation Verification Keys are associated with a CCA Platform instance by means of the Instance ID and the corresponding Implementation ID.
These identifiers are typically found in the subject of a CoMID triple, encoded in an <tt>environment-map</tt> as shown in <xref target="ex-cca-platform-id"/>.</t>
          <figure anchor="ex-cca-platform-id">
            <name>Example CCA Platform Identification</name>
            <sourcecode type="cbor-diag"><![CDATA[
/ environment-map / {
  / comid.class / 0 : {
    / comid.class-id (implementation id) / 0 :
      / tagged-bytes / 560(
        h'61636d652d696d706c656d656e746174
          696f6e2d69642d303030303030303031'
      )
  },
  / comid.instance / 1 :
    / tagged-ueid-type (instance id) / 550(
      h'01
        4ca3e4f50bf248c39787020d68ffd05c
        88767751bf2645ca923f57a98becd296'
    )
}
]]></sourcecode>
          </figure>
          <t>Together, they are interpreted as a unique identifier of the CCA Platform.</t>
        </section>
        <section anchor="sec-ref-values">
          <name>Reference Values</name>
          <t>Reference Values carry measurements and other metadata associated with the updatable firmware of the CCA Platform.
CCA Platform is a collective term used to identify all the hardware and firmware components that comprise a CCA system.
Specifically these include the following:</t>
          <ul spacing="normal">
            <li>
              <t>CCA system security domain</t>
            </li>
            <li>
              <t>Monitor security domain</t>
            </li>
            <li>
              <t>Realm Management Security domain</t>
            </li>
          </ul>
          <t>When appraising Evidence, the Verifier compares Reference Values against:</t>
          <ul spacing="normal">
            <li>
              <t>The values found in the Software Components of the CCA Platform token (see <xref section="4.6" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>).</t>
            </li>
            <li>
              <t>The value set in the platform configuration of the CCA Platform token (see <xref section="4.5.3" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>).</t>
            </li>
          </ul>
          <t>Each measurement is encoded in a <tt>measurement-map</tt> of a CoMID <tt>reference-triple-record</tt>.
Since a <tt>measurement-map</tt> can encode one or more measurements, a single <tt>reference-triple-record</tt> can carry as many measurements as needed, provided they belong to the same CCA Platform identified in the subject of the triple.
A single <tt>reference-triple-record</tt> MUST completely describe the CCA Platform measurements.</t>
          <section anchor="cca-platform-software-components">
            <name>CCA Platform Software Components</name>
            <t>Each CCA Platform software component (called <tt>arm-platform-sw-component</tt> in <xref section="4.6.1" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>) is encoded in a <tt>measurement-values-map</tt> as defined in <xref target="cddl-swcomp-mvm"/>.</t>
            <figure anchor="cddl-swcomp-mvm">
              <name>CCA Platform Software Component encoding</name>
              <sourcecode type="cddl"><![CDATA[
cca-swcomp-measurement-values-map = {
  ? &(version: 0) => cca-swcomp-version-map
  &(digests: 2) => cca-swcomp-digests-type
  ? &(name: 11) => cca-swcomp-name
  &(cryptokeys: 13) => [ cca-swcomp-signer-id ]
}

cca-swcomp-version-map = {
  &(version: 0) => text
}

cca-swcomp-digests-type = [ + cca-digest ]

cca-digest = [
  alg: text
  val: cca-hash-type
]

cca-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64

cca-swcomp-name = text

cca-swcomp-signer-id = #6.560(cca-hash-type)
]]></sourcecode>
            </figure>
            <dl newline="true">
              <dt>version (key 0):</dt>
              <dd>
                <t>A <tt>version-map</tt> with its <tt>version</tt> field containing the version (key 4) of the <tt>arm-platform-sw-component</tt>.
The <tt>version-scheme</tt> field of the <tt>version-map</tt> MUST NOT be present.
This field is optional.</t>
              </dd>
              <dt>digests (key 2):</dt>
              <dd>
                <t>Each array element encodes the "measurement value" (key 2) and "hash algorithm identifier" (key 6) of the <tt>arm-platform-sw-component</tt> in the <tt>val</tt> and <tt>alg</tt> entries, respectively.
The <tt>alg</tt> entry MUST use the text encoding.
The digests array MUST contain at least one entry and MAY contain more than one entry if multiple digests (obtained with different hash algorithms) of the same measured component exist.
If multiple entries exist, they MUST have different <tt>alg</tt> values.
This field is mandatory.</t>
              </dd>
              <dt>name (key 11):</dt>
              <dd>
                <t>A text value containing the "component type" (key 1) of the <tt>arm-platform-sw-component</tt>.
This field is optional.</t>
              </dd>
              <dt>cryptokeys (key 13):</dt>
              <dd>
                <t>An array with <em>only one</em> entry using the <tt>tagged-bytes</tt> variant of the <tt>$crypto-key-type-choice</tt>.
The entry contains the "signer id" (key 5) of the <tt>arm-platform-sw-component</tt>.
This field is mandatory.</t>
              </dd>
            </dl>
            <t>Each <tt>measurement-values-map</tt> for a CCA Platform software component is wrapped in a <tt>measurement-map</tt> with an <tt>mkey</tt> using the text variant of the <tt>$measured-element-type-choice</tt>.
The value of the <tt>mkey</tt> MUST be "cca.software-component".
The <tt>authorized-by</tt> field of the <tt>measurement-map</tt> MUST NOT be present.
Find the related CDDL definitions in <xref target="cddl-swcomp-mm"/>.</t>
            <figure anchor="cddl-swcomp-mm">
              <name>CCA Platform Software Component measurement-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-swcomp-measurement-map = {
  &(mkey: 0) => "cca.software-component"
  &(mval: 1) => cca-swcomp-measurement-values-map
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="cca-platform-configuration">
            <name>CCA Platform Configuration</name>
            <t>The CCA Platform configuration describes the set of chosen implementation options of the CCA Platform.
For example, this may include a description of the level of physical memory protection provided.</t>
            <t>CCA Platform configuration is vendor-specific variable-length data.
Only some of the data may be security-relevant.
For these reasons, it is represented in a <tt>raw-value</tt> of the <tt>measurement-values-map</tt>, using the <tt>tagged-masked-raw-value</tt> variant of the <tt>$raw-values-type-choice</tt>.
Refer to <xref section="5.1.4.1.4.6" sectionFormat="of" target="I-D.ietf-rats-corim"/> for the details about the comparison algorithm.</t>
            <figure anchor="cddl-config-mvm">
              <name>CCA Platform Configuration measurement-values-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-config-measurement-values-map = {
  &(raw-value: 4) => cca-tagged-masked-raw-value
}

cca-config-tagged-masked-raw-value = #6.563([
  value: bytes
  mask: bytes
])
]]></sourcecode>
            </figure>
            <t>The <tt>measurement-values-map</tt> for a CCA Platform configuration is wrapped in a <tt>measurement-map</tt> with an <tt>mkey</tt> using the text variant of the <tt>$measured-element-type-choice</tt>.
The value of the <tt>mkey</tt> MUST be "cca.platform-config".
There MUST be only one <tt>measurement-map</tt> with <tt>mkey</tt> "cca.platform-config" in the triple.</t>
            <t>The <tt>authorized-by</tt> field of the <tt>measurement-map</tt> MUST NOT be present.
Find the related CDDL definitions in <xref target="cddl-config-mm"/>.</t>
            <figure anchor="cddl-config-mm">
              <name>CCA Platform Configuration measurement-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-config-measurement-map = {
  &(mkey: 0) => "cca.platform-config"
  &(mval: 1) => cca-config-measurement-values-map
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="sec-rotpk">
            <name>CCA Platform Trusted Board Boot ROTPK</name>
            <t>When an implementation of the CCA Platform follows the Trusted Board Boot <xref target="TBB"/> specification, the platform will include several provisioned public key identifiers to establish a chain of trust.
Each public key identifier is expressed as a hash of the corresponding public key.</t>
            <t>For CCA Implementation, the public key identifiers are provisioned as a number of array entries, with each array entry containing a list of key identifiers.</t>
            <t>For CCA Implementation, there MUST be only two types of arrays:
1. Chip Manufacturing array - known as "CM"
2. Device Manufacturing array - known as "DM"</t>
            <t>In CCA Implementation, for a particular type of array, the maximum number of array entries SHALL be 8, while the maximum entries in a single array SHALL be 6.</t>
            <t>CCA Platform public key identifiers are encoded in a CoMID using Reference Value triples.</t>
            <t>Each array entry is encoded in a single Reference Value Triple.</t>
            <t>Each public key identifier is encoded in a single <tt>measurement-map</tt>.</t>
            <ol spacing="normal" type="1"><li>
                <t><tt>mkey</tt> uniquely identifies the position of each key identifier, using the text variant of <tt>$measured-element-type-choice</tt>.
The encoding follows a consistent pattern: the prefix "cca.rotpk", followed by the set name ("CM" or "DM"), then the array index (starting from zero), and finally the entry position within the array (starting from zero).
The parts are separated by <tt>"."</tt>.
For example, to encode a "CM" key identifier for an active array index of 2 at position 3 in the array, mkey will be set to "cca.rotpk.CM.2.3".</t>
              </li>
              <li>
                <t>The public key identifier is encoded using cryptokeys (key 13). The array MUST have only one entry encoded using the <tt>tagged-bytes</tt> variant of the <tt>$crypto-key-type-choice</tt>.
The length of the <tt>tagged-bytes</tt> MUST be 32, 48 or 64 bytes.</t>
              </li>
              <li>
                <t>The <tt>authorized-by</tt> field of the <tt>measurement-map</tt> MUST NOT be present.</t>
              </li>
            </ol>
            <t>Find the related CDDL definition of Measurement Values Map in <xref target="cddl-rotpk-mvm"/> and the associated measurement map in <xref target="cddl-rotpk-mm"/>.</t>
            <figure anchor="cddl-rotpk-mvm">
              <name>CCA Platform ROTPK measurement-values-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-rotpk-measurement-values-map = {
  &(cryptokeys: 13) => [ cca-rotpk-id ]
}

cca-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64

cca-rotpk-id = #6.560(cca-hash-type)
]]></sourcecode>
            </figure>
            <figure anchor="cddl-rotpk-mm">
              <name>CCA ROTPK measurement-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-rotpk-measurement-map = {
  &(mkey: 0) => text .regexp "cca.rotpk.[CD]M\\.[0-7]\\.[0-5]"
  &(mval: 1) => cca-rotpk-measurement-values-map
}
]]></sourcecode>
            </figure>
            <t>An Endorser may choose to provision either the entire set of entries or the single active entry currently in use on the platform.</t>
          </section>
          <section anchor="cca-platform-manufacturing-configuration">
            <name>CCA Platform Manufacturing Configuration</name>
            <t>The CCA Platform Manufacturing Configuration represents a record of production phases and testing conducted during the manufacturing process for the platform instance.</t>
            <t>CCA Platform Manufacturing Configuration is vendor-specific variable-length data.</t>
            <t>It is represented in a <tt>raw-value</tt> of the <tt>measurement-values-map</tt>, using the <tt>tagged-masked-raw-value</tt> variant of the <tt>$raw-values-type-choice</tt>.
Refer to <xref section="5.1.4.1.4.6" sectionFormat="of" target="I-D.ietf-rats-corim"/> for the details about the comparison algorithm.</t>
            <figure anchor="cddl-mfg-config-mvm">
              <name>CCA Platform Manufacturing Configuration measurement-values-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-manufacturing-config-measurement-values-map = {
  &(raw-value: 4) => cca-tagged-masked-raw-value
}

cca-config-tagged-masked-raw-value = #6.563([
  value: bytes
  mask: bytes
])
]]></sourcecode>
            </figure>
            <t>The <tt>measurement-values-map</tt> for a CCA Platform manufacturing configuration is wrapped in a <tt>measurement-map</tt> with an <tt>mkey</tt> using the text variant of the <tt>$measured-element-type-choice</tt>.
The value of the <tt>mkey</tt> MUST be "cca.platform-manufacturing-config".
There MUST be only one <tt>measurement-map</tt> with <tt>mkey</tt> "cca.platform-manufacturing-config" in the triple.</t>
            <t>The <tt>authorized-by</tt> field of the <tt>measurement-map</tt> MUST NOT be present.</t>
            <t>Find the related CDDL definitions in  <xref target="cddl-mfg-config-mvm"/> and in <xref target="cddl-mfg-config-mm"/>.</t>
            <figure anchor="cddl-mfg-config-mm">
              <name>CCA Platform Manufacturing Configuration measurement-map</name>
              <sourcecode type="cddl"><![CDATA[
cca-config-measurement-map = {
  &(mkey: 0) => "cca.platform-manufacturing-config"
  &(mval: 1) => cca-manufacturing-config-measurement-values-map
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="comid-example">
            <name>CoMID Example</name>
            <t>An example CoMID containing one Reference Values triple with the expected values for both software components and platform configuration is given in <xref target="ex-cca-platform-refval"/>.</t>
            <figure anchor="ex-cca-platform-refval">
              <name>Example CCA Platform Reference Values</name>
              <sourcecode type="cbor-diag"><![CDATA[
/ concise-mid-tag / {
  / comid.tag-identity / 1 : {
    / comid.tag-id / 0 : h'3f06af63a93c11e4979700505690773f'
  },
  / comid.triples / 4 : {
    / comid.reference-triples / 0 : [
      [
        / environment-map / {
          / comid.class / 0 : {
            / comid.class-id / 0 :
              / tagged-bytes / 560(
                h'61636d652d696d706c656d656e746174
                  696f6e2d69642d303030303030303031'
              )
          }
        },
        [
          / measurement-map / {
            / comid.mkey / 0 : "cca.software-component",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                / hash-alg-id / "sha-256",
                / hash-value /  h'9a271f2a916b0b6ee6cecb2426f0b320
                                  6ef074578be55d9bc94f6f3fe3ab86aa'
              ],
              / name / 11 : "RSE_BL1_2",
              / cryptokeys / 13 : [ 560(h'5378796307535df3ec8d8b15a2
                                          e2dc5641419c3d3060cfe32238
                                          c0fa973f7aa3') ]
            }
          },
          / measurement-map / {
            / comid.mkey / 0 : "cca.software-component",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                / hash-alg-id / "sha-256",
                / hash-value /  h'53c234e5e8472b6ac51c1ae1cab3fe06
                                  fad053beb8ebfd8977b010655bfdd3c3'
              ],
              / name / 11 : "RSE_BL2",
              / cryptokeys / 13 : [ 560(h'5378796307535df3ec8d8b15a2
                                          e2dc5641419c3d3060cfe32238
                                          c0fa973f7aa3') ]
            }
          },
          / measurement-map / {
            / comid.mkey / 0 : "cca.platform-config",
            / comid.mval / 1 : {
              / comid.raw-value / 4 : / tagged-masked-raw-value / 563([
                / value / h'cfcfcfcf',
                / mask /  h'ffffffff'
              ])
            }
          }
        ]
      ]
    ]
  }
}
]]></sourcecode>
            </figure>
          </section>
        </section>
        <section anchor="sec-keys">
          <name>Attestation Verification Keys</name>
          <t>An Attestation Verification Key contains the public key associated with the CCA Platform Attestation Key (CPAK).
When appraising Platform Evidence, the Verifier uses the Implementation ID and Instance ID claims found in the Platform Token to identify the key that it shall use to verify the signature on the CCA Platform token.
This allows the Verifier to prove (or disprove) the Attester's claimed identity.</t>
          <t>Each verification key is provided with the corresponding CCA Platform Instance and Implementation IDs in an <tt>attest-key-triple-record</tt>.
Specifically:</t>
          <ul spacing="normal">
            <li>
              <t>The Instance and Implementation IDs are encoded in the <tt>environment-map</tt> as described in <xref target="sec-cca-rot-id"/>;</t>
            </li>
            <li>
              <t>The CPAK public key uses the <tt>tagged-pkix-base64-key-type</tt> variant of the <tt>$crypto-key-type-choice</tt>.</t>
            </li>
          </ul>
          <t>The CPAK public key is a SubjectPublicKeyInfo <xref target="RFC5280"/> using the encoding defined in <xref section="13" sectionFormat="of" target="RFC7468"/>.
There MUST be only one key in an <tt>attest-key-triple-record</tt>.</t>
          <section anchor="comid-example-1">
            <name>CoMID Example</name>
            <t>The example in <xref target="ex-cca-platform-iak"/> shows the CCA Endorsement of type Attestation Verification Key carrying a secp256r1 EC public CPAK associated with Instance ID <tt>4ca3...d296</tt>.</t>
            <figure anchor="ex-cca-platform-iak">
              <name>Example CCA Platform Attestation Verification Key</name>
              <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

/ concise-mid-tag / {
  / comid.tag-identity / 1 : {
    / comid.tag-id / 0 : h'3f06af63a93c11e4979700505690773f'
  },
  / comid.triples / 4 : {
    / comid.attest-key-triples / 3 : [
      [
        / environment-map / {
          / comid.class / 0 : {
            / comid.class-id (implementation id) / 0 :
              / tagged-bytes / 560(
                h'61636d652d696d706c656d656e746174
                  696f6e2d69642d303030303030303031'
              )
          },
          / comid.instance / 1 :
            / tagged-ueid-type (instance id) / 550(
              h'01
                4ca3e4f50bf248c39787020d68ffd05c
                88767751bf2645ca923f57a98becd296'
            )
        },
        [
          / tagged-pkix-base64-key-type / 554(
            "-----BEGIN PUBLIC KEY-----\\
nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIShnxS4rlQiwpCCpBWDzlNLfqiG911FP\\
n8akBr+fh94uxHU5m+Kijivp2r2oxxN6MhM4tr8mWQli1P61xh3T0ViDREbF26DGO\\
       nEYfbAjWjGNN7pZf+6A4OTHYqEryz6m7U\n-----END PUBLIC KEY-----\n"
          )
        ]
      ]
    ]
  }
}
]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="sec-trans-plat">
          <name>Evidence Transformations</name>
          <t>This section describes the transformations required to map a CCA Platform Token to its equivalent CoRIM internal representation.</t>
          <t><xref target="trans-plat"/> shows the complete transformation.</t>
          <section anchor="platform-identification">
            <name>Platform Identification</name>
            <t>The CCA Implementation and Instance IDs are used together to provide a unique identifer for the CCA platform.
The following function maps these IDs onto a CoRIM <tt>environment-map</tt>.</t>
            <figure anchor="trans-platform-id">
              <name>Transform CCA Platform IDs into Environment Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC cca_platform_id_to_env(
    inst-id: arm-platform-instance-id-type,
    impl-id: arm-platform-implementation-id-type,
) -> environment-map {
    env := environment-map::NEW()
    env.class.class-id = tagged-bytes(impl-id)
    env.instance = tagged-ueid-type(inst-id)

    RETURN env
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="software-components">
            <name>Software Components</name>
            <t>The following function maps a single CCA software component to a CoRIM element map.
The element identifier is "cca.software-component", and the element claims are synthesized from the CCA software component attributes using only the following default CoRIM <tt>element-map</tt> attributes: name, version, digests and cryptokeys.</t>
            <figure anchor="trans-sw-comp">
              <name>Transform a CCA Software Component into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-cca-sw-component(
    C: arm-platform-sw-component,
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.software-component")

    em.element-claims.name = C.measurement-type
    em.element-claims.version.version = C.version

    digest := eatmc.digest(C.measurement-desc, C.measurement-value)
    em.element-claims.digests::APPEND(digest)

    signer := tagged-bytes(C.signer-id)
    em.element-claims.cryptokeys::APPEND(signer)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="platform-configuration">
            <name>Platform Configuration</name>
            <t>The following function maps the CCA platform configuration claim to a CoRIM element map.
The element identifier is "cca.platform-config", and the element claims use the standard raw-values attribute to represent the platform configuration value as <tt>tagged-bytes</tt>.</t>
            <figure anchor="trans-plat-conf">
              <name>Transform a CCA Plaform Config into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-platform-config(
    C: arm-platform-config-type
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.platform-config")

    em.element-claims.raw-values = tagged-bytes(C)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="platform-tbb-rotpk">
            <name>Platform TBB ROTPK</name>
            <t>The following function maps a CCA TBB ROTPK to a CoRIM element map.
The element identifier is created from the claim as shown below, following the same encoding pattern for the <tt>mkey</tt> described in <xref target="sec-rotpk"/>.
The element claims use the standard <tt>raw-values</tt> attribute to represent the ROTPK hash value as <tt>tagged-bytes</tt>.</t>
            <figure anchor="trans-tbb-rotpk">
              <name>Transform a CCA Platform TBB ROTPK into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-tbb-rotpk(
    C: arm-platform-tbb-rotpk-item,
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr(
        "cca.rotpk."
        + C.life-cycle + "."
        + C.active-rotpk-array + "."
        + C.active-rotpk-index
    )

    em.element-claims.raw-values = tagged-bytes(C.pk-hash)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="platform-manufacturing-configuration">
            <name>Platform Manufacturing Configuration</name>
            <t>The following function maps the CCA platform manufacturing configuration claim to a CoRIM element map.
The element identifier is "cca.platform-manufacturing-config", and the element claims use the standard raw-values attribute to represent the platform manufacturing configuration value as <tt>tagged-bytes</tt>.</t>
            <figure anchor="trans-plat-mfg-conf">
              <name>Transform a CCA Plaform Manufacturing Config into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-platform-manufacturing-config(
    C: arm-platform-manufacturing-config-type
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.platform-manufacturing-config")

    em.element-claims.raw-values = tagged-bytes(C)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="platform-token">
            <name>Platform Token</name>
            <t>The following function maps the CCA platform's claims set to a single CoRIM <tt>ae-item</tt>.</t>
            <t>The environment is synthesized from instance and implementation identifiers.
Each software component is mapped to an <tt>element-map</tt> entry with identifier "cca.software-component".
The platform configuration is mapped to an <tt>element-map</tt> entry with identifier "cca.platform-config".
The Platform TBB ROTPK is mapped to an <tt>element-map</tt> entry, the identifier of which is computed by concatenating the cca.lifecycle claim with the string representations of the integer indices of the active ROTPK array and the active array entry.
The platform manufacturing configuration is mapped to an <tt>element-map</tt> entry with identifier "cca.platform-manufacturing-config".</t>
            <t>The process uses the functions defined in <xref target="trans-platform-id"/>, <xref target="trans-sw-comp"/>, <xref target="trans-plat-conf"/>, <xref target="trans-tbb-rotpk"/> and <xref target="trans-plat-mfg-conf"/>.</t>
            <t>The process assumes that the profile of the CCA Platform claims-set is "tag:arm.com,2024:cca_platform#2.0.0".</t>
            <figure anchor="trans-plat">
              <name>Transform a CCA Plaform into a CoRIM `ae` Relation</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC transform(
    P: arm-platform-claims,
    cpak_pub: $crypto-key-type-choice
) -> ae-item {
    ASSERT::Equal(
        P.arm-platform-profile-label,
        "tag:arm.com,2024:cca_platform#2.0.0"
    )

    item := ae-item::NEW()

    item.addition.cmtype = evidence

    # map platform identifiers to environment
    item.addition.environment = cca_platform_id_to_env(
        P.arm-platform-instance-id-label,
        P.arm-platform-implementation-id-label
    )

    element-list = [ + element-map ]::NEW()

    # map software components to elements
    FOREACH c IN P.arm-platform-sw-components:
        e := element-from-sw-component(c)
        element-list::APPEND(e)

    # map platform config to element
    e := element-from-platform-config(P.arm-platform-config-label)
    element-list::APPEND(e)

    item.addition.element-list = element-list
    item.addition.profile =
        "tag:arm.com,2025:endorsements/cca_platform#1.0.0"
    item.addition.authority::APPEND(cpak_pub)

    # map platform tbb rotpk to elements
    FOREACH pk IN P.arm-platform-tbb-rotpk:
       e := element-from-tbb-rotpk(pk)
       element-list::APPEND(e)

    # map platform manufacturing config to element
    e := element-from-platform-manufacturing-config(
        P.arm-platform-manufacturing-config-label
    )
    element-list::APPEND(e)

    item.addition.element-list = element-list
    item.addition.profile =
        "tag:arm.com,2025:endorsements/cca_platform#1.0.0"
    item.addition.authority::APPEND(cpak_pub)

    RETURN item
}
]]></sourcecode>
            </figure>
          </section>
        </section>
      </section>
      <section anchor="realm-endorsements">
        <name>Arm CCA Realm Endorsements</name>
        <t>Arm CCA provides confidential computing environments, known as Realms, that enable application workloads requiring confidential execution to operate in isolation from the host hypervisor and any other concurrent workload.
Arm CCA allows the initial and run-time state of a Realm to be attested (<xref section="4.8" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>).</t>
        <t>Realm Endorsements consist of Reference Values (<xref target="sec-realm-ref-values"/>), which are measurements of the configuration and contents of a Realm at the time of its activation, along with measurements of the software operating within the Realm, which can be extended throughout the Realm's lifetime.</t>
        <t>Unlike the Platform, Realm Attestation Verification Key Endorsements are not necessary as the key material needed to verify the Realm Evidence is inline in the CCA Token (<xref section="3.2" sectionFormat="of" target="I-D.ffm-rats-cca-token"/>).</t>
        <section anchor="arm-cca-realm-endorsement-profile">
          <name>Arm CCA Realm Endorsement Profile</name>
          <t>Arm CCA Realm Endorsements are carried in a CoMID within a CoRIM.</t>
          <t>The profile attribute in the CoRIM MUST be present and MUST be the URI <tt>tag:arm.com,2025:endorsements/cca_realm#1.0.0</tt> as shown in <xref target="ex-cca-realm-profile"/>.</t>
          <figure anchor="ex-cca-realm-profile">
            <name>CoRIM profile for CCA Realm Endorsements version 1.0.0</name>
            <sourcecode type="cbor-diag"><![CDATA[
/ corim-map / {
  / corim.profile / 3:
    32("tag:arm.com,2025:endorsements/cca_realm#1.0.0")
  / ... /
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="realm-id">
          <name>Realm Endorsements linkage to Realm</name>
          <t>Realms do not have <em>explicit</em> class or instance identifiers.
However, the Realm Initial Measurement (RIM) is unique and stable enough to serve as an identifier for the Realm Target Environment.
Therefore, this profile employs an <tt>environment-map</tt> with a class identifier that uses the <tt>tagged-bytes</tt> variant of the <tt>$class-id-type-choice</tt> to encode the RIM value (<xref target="ex-cca-realm-identifiers"/>).</t>
          <figure anchor="ex-cca-realm-identifiers">
            <name>CCA Realm Identification</name>
            <sourcecode type="cbor-diag"><![CDATA[
/ environment-map / {
  / comid.class / 0 : {
    / comid.class-id / 0 :
      / RIM as tagged-bytes / 560(
        h'311314ab73620350cf758834ae5c65d9
          e8c2dc7febe6e7d9654bbe864e300d49'
      )
  }
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="sec-realm-ref-values">
          <name>Reference Values</name>
          <t>Reference Values carry measurements and other metadata associated with the CCA Realm.</t>
          <t>Realm Reference Values comprise:</t>
          <ol spacing="normal" type="1"><li>
              <t>Realm Initial Measurements (RIM)</t>
            </li>
            <li>
              <t>Realm Extended Measurements (REMs)</t>
            </li>
            <li>
              <t>Realm Personalization Value (RPV)</t>
            </li>
          </ol>
          <t>All Realm Reference Values are carried in a <tt>reference-triple-record</tt> whose <tt>environment-map</tt> is as described in <xref target="realm-id"/>
The triple includes as many <tt>measurement-map</tt>s as needed to fully describe the Realm.</t>
          <t>The <tt>measurement-map</tt> contents depend on the type of Reference Value.
For all, the <tt>mkey</tt> uses the text variant of the <tt>$measured-element-type-choice</tt>.
The value of the <tt>mkey</tt> MUST be "cca.rim" for the RIM measurement, "cca.rpv" for the RPV measurement, and "cca.rem0".."cca.rem3" for the REM measurements.
The <tt>authorized-by</tt> field of the <tt>measurement-map</tt> MUST NOT be present.</t>
          <t>RIM and REMs are encoded as <tt>digests</tt> (key 2).</t>
          <t>RPV is encoded using a <tt>raw-value</tt> (key 4) using the <tt>tagged bytes</tt> variant of the <tt>$raw-value-type-choice</tt>.</t>
          <t>All the Realm Reference Values are optional except RIM, which is mandatory.</t>
          <section anchor="comid-example-2">
            <name>CoMID Example</name>
            <t>An example CoMID containing one Reference Values triple with the expected values for a Realm is given in <xref target="ex-cca-realm-refval"/>.</t>
            <figure anchor="ex-cca-realm-refval">
              <name>CCA realm identifiers</name>
              <artwork><![CDATA[
/ concise-mid-tag / {
  / comid.tag-identity / 1 : {
    / comid.tag-id / 0 : h'3f06af63a93c11e4979700505690773f'
  },
  / comid.triples / 4 : {
    / comid.reference-triples / 0 : [
      [
        / environment-map / {
          / comid.class / 0 : {
            / comid.class-id / 0 :
              / RIM as tagged-bytes / 560(
                h'311314ab73620350cf758834ae5c65d9
                  e8c2dc7febe6e7d9654bbe864e300d49'
              )
          }
        },
        / Realm measurements /
        [
          / measurement-map (RIM) / {
            / comid.mkey / 0 : "cca.rim",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                "sha-256",
                h'311314ab73620350cf758834ae5c65d9
                  e8c2dc7febe6e7d9654bbe864e300d49'
              ]
            }
          },
          / measurement-map (REM[0]) / {
            / comid.mkey / 0 : "cca.rem0",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                "sha-256",
                h'24d5b0a296cc05cbd8068c5067c5bd47
                  3b770dda6ae082fe3ba30abe3f9a6ab1'
              ]
            }
          },
          / measurement-map (REM[1]) / {
            / comid.mkey / 0 : "cca.rem1",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                "sha-256",
                h'788fc090bfc6b8ed903152ba8414e73d
                  af5b8c7bb1e79ad502ab0699b659ed16'
              ]
            }
          },
          / measurement-map (REM[2]) / {
            / comid.mkey / 0 : "cca.rem2",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                "sha-256",
                h'dac46a58415dc3a00d7a741852008e9c
                  ae64f52d03b9f76d76f4b3644fefc416'
              ]
            }
          },
          / measurement-map (REM[3]) / {
            / comid.mkey / 0 : "cca.rem3",
            / comid.mval / 1 : {
              / comid.digests / 2 : [
                "sha-256",
                h'32c6afc627e55585c03155359f331a0e
                  225f6840db947dd96efab81be2671939'
              ]
            }
          },
          / measurement-map (RPV) / {
            / comid.mkey / 0 : "cca.rpv",
            / comid.mval / 1 : {
              / comid.raw-value / 4 : 560(
                h'54686520717569636b2062726f776e20
                  666f78206a756d7073206f7665722031
                  33206c617a7920646f67732e54686520
                  717569636b2062726f776e20666f7820'
              )
            }
          }
        ]
      ]
    ]
  }
}
]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="sec-trans-realm">
          <name>Evidence Transformations</name>
          <t>This section describes the transformations required to map a CCA Realm Token to its equivalent CoRIM internal representation.</t>
          <t><xref target="trans-realm"/> shows the complete transformation.</t>
          <section anchor="realm-identification">
            <name>Realm Identification</name>
            <t>The following function maps the CCA Realm Initial Measurement - which, as discussed in <xref target="realm-id"/>, provides a stable identifier for the Realm - onto a CoRIM <tt>environment-map</tt>.</t>
            <figure anchor="trans-realm-id">
              <name>Transform a CCA Realm Initial Measurement into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC cca_realm_id_to_env(
    rim: cca-realm-measurement-type
) -> environment-map {
    env := environment-map::NEW()
    env.class.class-id = tagged-bytes(rim)

    RETURN env
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="realm-initial-measurements">
            <name>Realm Initial Measurements</name>
            <t>The following function maps the CCA Realm Initial Measurement claim to a CoRIM element map.
The element identifier is "cca.rim", and the element claims use the standard digests attribute to represent the RIM value, using the digest algorithm taken from the Realm hash algorithm ID claim.</t>
            <figure anchor="trans-rim">
              <name>Transform a CCA Realm Initial Measurement into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-rim(
    rim-value: cca-realm-measurement-type,
    rim-algo: text
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.rim")

    digest := eatmc.digest(rim-algo, rim-value)
    em.element-claims.digests::APPEND(digest)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="realm-extended-measurements">
            <name>Realm Extended Measurements</name>
            <t>The following function maps the i-th (0..3) bank of a CCA Realm Extended Measurements claim to a CoRIM element map.
The element identifier is one of "cca.rem0".."cca.rem3", depending on the bank index, and the element claims use the standard digests attribute to represent the REM value, using the digest algorithm taken from the Realm hash algorithm ID claim.</t>
            <figure anchor="trans-rem">
              <name>Transform a CCA Realm Extended Measurement Bank into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-rem(
    rem-index: uint,
    rem-value: cca-realm-measurement-type,
    rim-algo: text
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.rem" + rem-index)

    digest := eatmc.digest(rem-algo, rem-value)
    em.element-claims.digests::APPEND(digest)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="realm-personalization-value">
            <name>Realm Personalization Value</name>
            <t>The following function maps the CCA realm personalization value claim to a CoRIM element map.
The element identifier is "cca.rpv", and the element claims use the standard raw-values attribute to represent the personalization value as tagged-bytes.</t>
            <figure anchor="trans-rpv">
              <name>Transform a CCA Realm Personalization Value into an Element Map</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC element-from-rpv(
    rpv: cca-realm-personalization-value-type
) -> element-map {
    em := element-map::NEW()

    em.element-id = tstr("cca.rpv")

    em.element-claims.raw-values = tagged-bytes(rpv)

    RETURN em
}
]]></sourcecode>
            </figure>
          </section>
          <section anchor="realm-token">
            <name>Realm Token</name>
            <t>The following function maps the CCA realm's claims set to a single CoRIM <tt>ae-item</tt>.</t>
            <t>The environment is synthesized from the RIM.
Each REM bank, if present, is mapped to an element-map entry with identifier "cca.rem0".."cca.rem3".
The personalization value, if present, is mapped to an element-map entry with identifier "cca.rpv".</t>
            <t>The process uses the functions defined in <xref target="trans-realm-id"/>, <xref target="trans-rim"/>, <xref target="trans-rem"/>, and <xref target="trans-rpv"/>.</t>
            <t>The process assumes that the profile of the CCA Realm claims-set is "tag:arm.com,2024:realm#2.0.0".</t>
            <figure anchor="trans-realm">
              <name>Transform a CCA Realm into a CoRIM `ae` Relation</name>
              <sourcecode type="pseudocode"><![CDATA[
FUNC transform(
    R: cca-realm-claims
) -> ae-item {
    ASSERT::Equal(
        R.cca-realm-profile-label,
        "tag:arm.com,2024:realm#2.0.0"
    )

    item := ae-item::NEW()

    item.addition.cmtype = evidence

    # map platform identifiers to environment
    item.addition.environment = cca_realm_id_to_env(
        R.cca-realm-initial-measurement-label
    )

    element-list = [ + element-map ]::NEW()

    # map realm initial measurement to element
    e := element-from-rim(R.cca-realm-profile-label)
    element-list::APPEND(e)

    # map optional REMs
    IF R.cca-realm-extensible-measurements:
        FOREACH idx, r IN R.cca-realm-extensible-measurements:
            e := element-from-rem(idx, r, R.cca-realm-hash-algo-id-label)
            element-list::APPEND(e)

    # map optional RVP
    IF R.cca-realm-personalization-value:
        e := element-from-rpv(R.arm-platform-config-label)
        element-list::APPEND(e)

    item.addition.element-list = element-list
    item.addition.profile =
        "tag:arm.com,2025:endorsements/cca_realm#1.0.0"
    item.addition.authority::APPEND(R.cca-realm-public-key-label)

    RETURN item
}
]]></sourcecode>
            </figure>
          </section>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t><cref anchor="todo">TODO</cref></t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests to IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-10"/>
        </reference>
        <reference anchor="I-D.ffm-rats-cca-token">
          <front>
            <title>Arm's Confidential Compute Architecture Reference Attestation Token</title>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek Inc</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   The Arm Confidential Compute Architecture (CCA) is series of hardware
   and software innovations that enhance Arm’s support for Confidential
   Computing for large, compute-intensive workloads.  Devices that
   implement CCA can produce attestation tokens as described in this
   memo, which are the basis for trustworthiness assessment of the
   Confidential Compute environment.  This document specifies the CCA
   attestation token structure and semantics.

   The CCA attestation token is a profile of the Entity Attestation
   Token (EAT).  This specification describes what claims are used in an
   attestation token generated by CCA compliant systems, how these
   claims get serialized to the wire, and how they are cryptographically
   protected.

   This informational document is published as an independent submission
   to improve interoperability with Arm's architecture.  It is not a
   standard nor a product of the IETF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ffm-rats-cca-token-03"/>
        </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="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <reference anchor="TBB" target="https://trustedfirmware-a.readthedocs.io/en/stable/design/trusted-board-boot.html">
          <front>
            <title>Trusted Board Boot</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2024" month="December" day="30"/>
          </front>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="CCA-ARCH" target="https://developer.arm.com/documentation/den0125/0400">
          <front>
            <title>Learn the architecture - Introducing Arm Confidential Compute Architecture</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1025?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t><cref anchor="todo_1">TODO</cref></t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="S." surname="Frost" fullname="Simon Frost">
        <organization>Arm Limited</organization>
        <address>
          <email>Simon.Frost@arm.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Trofimov" fullname="Sergei Trofimov">
        <organization>Arm Limited</organization>
        <address>
          <email>Sergei.Trofimov@arm.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
be+f7H230yxVNWe7A6vLm5eJyjOXN0mhT2bv1ZCblgv1zdkalqwptkvF8TGi
IivBw5SBHppOqZzL7L2lHMjFnMuzJFSio1yrrKpxeLaoZeBXaRfBtsG99MNE
XuzINnqD/NOEQMfwTDl8On9/ac+HzLcmWSmwIXx+6al6B40kVpGEid5mwiUo
lEAtVkFbxfCmlHxTt4VFDxlFVW1lKeysKmwivfs3NRzyjs19hil0vkOeljPm
iXC7Jgv8kDxxrWoUuePgLRVOn8jbwMhH8wAzIw1zPg+Eblm4bBYrcsXDOo3S
ovr1hZipbWNVAa4ceeOsVIZEcrlEaYrq7UH8E66qTjSXFvcTIqEwdbteJWDB
Oi0qwnwtwHTHLXa4ryknqVhUD7aYnuPWmmaziZtjztVm6mf5P4ytD0fs6Y9P
mTxkQ2YvZJIOJOr0xT4D69lmhZee1f7YMVVpNrFZ57cKqjbt4Mpe/GMGWvUK
9Ct2fJXQuNfOrwwtaweY/rv3TjD9d78dYWUsV4aQa5ScxKObx2OrgX/PD/96
9JqdvHv+6miffXf4Xt788cfa/Pjl+6vDvfcvv4v+8+jXn539vb+9f/Fd9/Bw
b//o4P3F3uHR28n8+m03nv4tvFrs7y+e/3Dw6/T1q+CX8K/DVuvFCfYx4J+e
x98Gk2F3ef3yXW/27Xfhz+Hloh23o+vr1+7x5LibxoPZD3+bhq0Tt3U96Zw5
34cHp4fjF2334K9voA8F7PzwfTDe+/mHn//6+nV/8Z/Bt+5e983Zy/e/HMY3
v7qz/rsf5xLyw9cHJWTmWxbeO5/paIFOXOtlrdOFxuMyZ3Sc5Q5w0c6WdU6K
Ot8pUSYhXyWZFt5WJ93ILW6oBQo538yngXgLm4LHiGqcToGQOwLn4EOaxQXZ
K2jc29vcwS2ZPdDbfAqAaHOzYktitoBT8AQKDhq5BWrLHm1gNKtSclk7v2VR
rWlrO5UtL53Ze/BYsJwTKYFAiaqpxLHAcY30uSJl50Ol4xaJWPoR+im1F+9e
7zP7HI6fQv+nNPoJ3iTxUhuVRyx/GEBhAznJsNrtX2xbeXBAvbbDGn8uaXzS
53CXjZ4VH45Grw9/2N7RLUjLZ7r+WU6HbytgsuZGET4racltheVOTbY+PTx7
d/oaX7IkKGOewvZVw/wFH1T6mTAbhxkWuLCtpedJ9cawddNsalbk7sty+bo1
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
AAA=

-->

</rfc>
