<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-tschofenig-rats-psa-token-12" indexInclude="true" ipr="trust200902" prepTime="2023-07-05T11:35:11" scripts="Common,Latin" sortRefs="true" submissionType="independent" symRefs="true" tocDepth="3" tocInclude="true">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="PSA Attestation Token">Arm's Platform Security Architecture (PSA) Attestation Token</title>
    <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-12" stream="independent"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization showOnFrontPage="true"/>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization showOnFrontPage="true">Arm Limited</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="M." surname="Brossard" fullname="Mathias Brossard">
      <organization showOnFrontPage="true">Arm Limited</organization>
      <address>
        <email>Mathias.Brossard@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Shaw" fullname="Adrian Shaw">
      <organization showOnFrontPage="true">HP Labs</organization>
      <address>
        <email>adrianlshaw@acm.org</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization showOnFrontPage="true">Arm Limited</organization>
      <address>
        <email>Thomas.Fossati@arm.com</email>
      </address>
    </author>
    <date month="07" year="2023" day="05"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The Platform Security Architecture (PSA) is a family of hardware and firmware
security specifications, as well as open-source reference implementations, to
help device makers and chip manufacturers build best-practice security into
products. Devices that are PSA compliant are able to produce attestation tokens
as described in this memo, which are the basis for a number of different
protocols, including secure provisioning and network access control.  This
document specifies the PSA attestation token structure and semantics.</t>
      <t indent="0" pn="section-abstract-2">The PSA attestation token is a profiled Entity Attestation Token (EAT).</t>
      <t indent="0" pn="section-abstract-3">This specification describes what claims are used in an attestation token
generated by PSA compliant systems, how these claims get serialized to the
wire, and how they are cryptographically protected.</t>
    </abstract>
    <note removeInRFC="false" pn="section-note.1">
      <name slugifiedName="name-note-to-readers">Note to Readers</name>
      <t indent="0" pn="section-note.1-1">Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/thomas-fossati/draft-psa-token" brackets="none">https://github.com/thomas-fossati/draft-psa-token</eref>.</t>
    </note>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
        This Internet-Draft is submitted in full conformance with the
        provisions of BCP 78 and BCP 79.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
        Internet-Drafts are working documents of the Internet Engineering Task
        Force (IETF). Note that other groups may also distribute working
        documents as Internet-Drafts. The list of current Internet-Drafts is
        at <eref target="https://datatracker.ietf.org/drafts/current/" brackets="none"/>.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
        Internet-Drafts are draft documents valid for a maximum of six months
        and may be updated, replaced, or obsoleted by other documents at any
        time. It is inappropriate to use Internet-Drafts as reference
        material or to cite them other than as "work in progress."
        </t>
        <t indent="0" pn="section-boilerplate.1-4">
        This Internet-Draft will expire on 6 January 2024.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-and-definitions">Conventions and Definitions</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-glossary">Glossary</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-psa-attester-model">PSA Attester Model</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-psa-claims">PSA Claims</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-caller-claims">Caller Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nonce">Nonce</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-client-id">Client ID</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-target-identification-claim">Target Identification Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-instance-id"> Instance ID</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-id">Implementation ID</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-certification-reference">Certification Reference</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-target-state-claims">Target State Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.3.2">
                  <li pn="section-toc.1-1.4.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-lifecycle">Security Lifecycle</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-boot-seed">Boot Seed</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-software-inventory-claims">Software Inventory Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
                  <li pn="section-toc.1-1.4.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-software-components">Software Components</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.5">
                <t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verification-claims">Verification Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.5.2">
                  <li pn="section-toc.1-1.4.2.5.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.5.2.1.1"><xref derivedContent="4.5.1" format="counter" sectionFormat="of" target="section-4.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verification-service-indica">Verification Service Indicator</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.5.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.5.2.2.1"><xref derivedContent="4.5.2" format="counter" sectionFormat="of" target="section-4.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-profile-definition">Profile Definition</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-backwards-compatibility-con">Backwards Compatibility Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-token-encoding-and-signing"> Token Encoding and Signing</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-freshness-model">Freshness Model</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-collated-cddl">Collated CDDL</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-status">Implementation Status</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-and-privacy-consid">Security and Privacy Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-verification">Verification</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ar4si-trustworthiness-claim"> AR4SI Trustworthiness Claims Mappings</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-endorsements-reference-valu">Endorsements, Reference Values and Verification Key Material</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2">
              <li pn="section-toc.1-1.12.2.1">
                <t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent="12.1" format="counter" sectionFormat="of" target="section-12.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cbor-web-token-claims-regis">CBOR Web Token Claims Registration</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2.1.2">
                  <li pn="section-toc.1-1.12.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.1.1"><xref derivedContent="12.1.1" format="counter" sectionFormat="of" target="section-12.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-client-id-claim"> Client ID Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.2.1"><xref derivedContent="12.1.2" format="counter" sectionFormat="of" target="section-12.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-lifecycle-claim"> Security Lifecycle Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.3.1"><xref derivedContent="12.1.3" format="counter" sectionFormat="of" target="section-12.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-id-claim"> Implementation ID Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.4">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.4.1"><xref derivedContent="12.1.4" format="counter" sectionFormat="of" target="section-12.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-boot-seed-claim"> Boot Seed Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.5">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.5.1"><xref derivedContent="12.1.5" format="counter" sectionFormat="of" target="section-12.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-certification-reference-cla"> Certification Reference Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.6">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.6.1"><xref derivedContent="12.1.6" format="counter" sectionFormat="of" target="section-12.1.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-software-components-claim"> Software Components Claim</xref></t>
                  </li>
                  <li pn="section-toc.1-1.12.2.1.2.7">
                    <t indent="0" pn="section-toc.1-1.12.2.1.2.7.1"><xref derivedContent="12.1.7" format="counter" sectionFormat="of" target="section-12.1.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verification-service-indicat"> Verification Service Indicator Claim</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.12.2.2">
                <t indent="0" pn="section-toc.1-1.12.2.2.1"><xref derivedContent="12.2" format="counter" sectionFormat="of" target="section-12.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-type-registration">Media Type Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.3">
                <t indent="0" pn="section-toc.1-1.12.2.3.1"><xref derivedContent="12.3" format="counter" sectionFormat="of" target="section-12.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-coap-content-formats-regist">CoAP Content-Formats Registration</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2.3.2">
                  <li pn="section-toc.1-1.12.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.12.2.3.2.1.1"><xref derivedContent="12.3.1" format="counter" sectionFormat="of" target="section-12.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-registry-contents">Registry Contents</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example">Example</xref></t>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.17">
            <t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Trusted execution environments are now present in many devices, which provide a
safe environment to place security sensitive code such as cryptography, secure
boot, secure storage, and other essential security functions. These security
functions are typically exposed through a narrow and well-defined interface,
and can be used by operating system libraries and applications.  Various APIs
have been developed by Arm as part of the Platform Security Architecture
<xref target="PSA" format="default" sectionFormat="of" derivedContent="PSA"/> framework.  This document focuses on the output provided by PSA's
Initial Attestation API. Since the tokens are also consumed by services outside
the device, there is an actual need to ensure interoperability.
Interoperability needs are addressed here by describing the exact syntax and
semantics of the attestation claims, and defining the way these claims are
encoded and cryptographically protected.</t>
      <t indent="0" pn="section-1-2">Further details on concepts expressed below can be found in the PSA Security
Model documentation <xref target="PSA-SM" format="default" sectionFormat="of" derivedContent="PSA-SM"/>.</t>
    </section>
    <section anchor="conventions-and-definitions" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-conventions-and-definitions">Conventions and Definitions</name>
      <t indent="0" pn="section-2-1">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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.

      </t>
      <section anchor="glossary" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-glossary">Glossary</name>
        <dl newline="true" indent="3" spacing="normal" pn="section-2.1-1">
          <dt pn="section-2.1-1.1">RoT:</dt>
          <dd pn="section-2.1-1.2">
            <t indent="0" pn="section-2.1-1.2.1">Root of Trust, the minimal set of software, hardware and data that has to be
implicitly trusted in the platform - there is no software or hardware at a
deeper level that can verify that the Root of Trust is authentic and
unmodified.  An example of RoT is an initial bootloader in ROM, which contains
cryptographic functions and credentials, running on a specific hardware
platform.</t>
          </dd>
          <dt pn="section-2.1-1.3">SPE:</dt>
          <dd pn="section-2.1-1.4">
            <t indent="0" pn="section-2.1-1.4.1">Secure Processing Environment, a platform's processing environment for
software that provides confidentiality and integrity for its runtime state,
from software and hardware, outside of the SPE. Contains trusted code and
trusted hardware.  (Equivalent to Trusted Execution Environment (TEE), or
"secure world".)</t>
          </dd>
          <dt pn="section-2.1-1.5">NSPE:</dt>
          <dd pn="section-2.1-1.6">
            <t indent="0" pn="section-2.1-1.6.1">Non Secure Processing Environment, the security domain outside of the SPE,
the Application domain, typically containing the application firmware,
operating systems, and general hardware.  (Equivalent to Rich Execution
Environment (REE), or "normal world".)</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="psa-attester-model" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-psa-attester-model">PSA Attester Model</name>
      <t indent="0" pn="section-3-1"><xref target="fig-psa-attester" format="default" sectionFormat="of" derivedContent="Figure 1"/> outlines the structure of the PSA Attester according to
the conceptual model described in <xref section="3.1" sectionFormat="of" target="RFC9334" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9334#section-3.1" derivedContent="RFC9334"/>.</t>
      <figure anchor="fig-psa-attester" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-psa-attester">PSA Attester</name>
        <artset pn="section-3-2.1">
          <artwork type="svg" align="left" pn="section-3-2.1.1"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="560" viewBox="0 0 560 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,144 L 8,432" fill="none" stroke="black"/>
              <path d="M 24,160 L 24,272" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,416" fill="none" stroke="black"/>
              <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,336" fill="none" stroke="black"/>
              <path d="M 144,336 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,192 L 160,256" fill="none" stroke="black"/>
              <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
              <path d="M 208,256 L 208,336" fill="none" stroke="black"/>
              <path d="M 264,192 L 264,256" fill="none" stroke="black"/>
              <path d="M 272,336 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
              <path d="M 296,208 L 296,240" fill="none" stroke="black"/>
              <path d="M 328,288 L 328,336" fill="none" stroke="black"/>
              <path d="M 360,208 L 360,240" fill="none" stroke="black"/>
              <path d="M 400,336 L 400,384" fill="none" stroke="black"/>
              <path d="M 408,192 L 408,256" fill="none" stroke="black"/>
              <path d="M 416,336 L 416,384" fill="none" stroke="black"/>
              <path d="M 424,32 L 424,64" fill="none" stroke="black"/>
              <path d="M 464,72 L 464,192" fill="none" stroke="black"/>
              <path d="M 464,304 L 464,336" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,64" fill="none" stroke="black"/>
              <path d="M 520,192 L 520,256" fill="none" stroke="black"/>
              <path d="M 520,336 L 520,384" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,272" fill="none" stroke="black"/>
              <path d="M 536,304 L 536,416" fill="none" stroke="black"/>
              <path d="M 552,144 L 552,432" fill="none" stroke="black"/>
              <path d="M 424,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 424,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 8,144 L 456,144" fill="none" stroke="black"/>
              <path d="M 472,144 L 552,144" fill="none" stroke="black"/>
              <path d="M 24,160 L 456,160" fill="none" stroke="black"/>
              <path d="M 472,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 160,192 L 264,192" fill="none" stroke="black"/>
              <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
              <path d="M 408,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,224 L 288,224" fill="none" stroke="black"/>
              <path d="M 368,224 L 408,224" fill="none" stroke="black"/>
              <path d="M 160,256 L 264,256" fill="none" stroke="black"/>
              <path d="M 312,256 L 344,256" fill="none" stroke="black"/>
              <path d="M 408,256 L 520,256" fill="none" stroke="black"/>
              <path d="M 24,272 L 200,272" fill="none" stroke="black"/>
              <path d="M 216,272 L 536,272" fill="none" stroke="black"/>
              <path d="M 112,288 L 448,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 88,304" fill="none" stroke="black"/>
              <path d="M 104,304 L 200,304" fill="none" stroke="black"/>
              <path d="M 216,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 336,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 472,304 L 536,304" fill="none" stroke="black"/>
              <path d="M 40,336 L 88,336" fill="none" stroke="black"/>
              <path d="M 104,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 160,336 L 200,336" fill="none" stroke="black"/>
              <path d="M 216,336 L 272,336" fill="none" stroke="black"/>
              <path d="M 288,336 L 320,336" fill="none" stroke="black"/>
              <path d="M 336,336 L 400,336" fill="none" stroke="black"/>
              <path d="M 416,336 L 456,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 520,336" fill="none" stroke="black"/>
              <path d="M 40,384 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,384 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,384 L 400,384" fill="none" stroke="black"/>
              <path d="M 416,384 L 520,384" fill="none" stroke="black"/>
              <path d="M 24,416 L 536,416" fill="none" stroke="black"/>
              <path d="M 8,432 L 552,432" fill="none" stroke="black"/>
              <path d="M 312,192 C 303.16936,192 296,199.16936 296,208" fill="none" stroke="black"/>
              <path d="M 344,192 C 352.83064,192 360,199.16936 360,208" fill="none" stroke="black"/>
              <path d="M 312,256 C 303.16936,256 296,248.83064 296,240" fill="none" stroke="black"/>
              <path d="M 344,256 C 352.83064,256 360,248.83064 360,240" fill="none" stroke="black"/>
              <path d="M 112,288 C 103.16936,288 96,295.16936 96,304" fill="none" stroke="black"/>
              <path d="M 448,288 C 456.83064,288 464,295.16936 464,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,72 460,66.4 460,77.6" fill="black" transform="rotate(270,464,72)"/>
              <polygon class="arrowhead" points="296,224 284,218.4 284,229.6" fill="black" transform="rotate(0,288,224)"/>
              <circle cx="96" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="208" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="328" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="360" cy="224" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="464" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="468" y="52">Verifier</text>
                <text x="420" y="116">Evidence</text>
                <text x="72" y="180">Attesting</text>
                <text x="160" y="180">Environment</text>
                <text x="188" y="212">Main</text>
                <text x="324" y="212">Main</text>
                <text x="448" y="212">Initial</text>
                <text x="212" y="228">Bootloader</text>
                <text x="324" y="228">Boot</text>
                <text x="464" y="228">Attestation</text>
                <text x="328" y="244">State</text>
                <text x="448" y="244">Service</text>
                <text x="92" y="356">Updateable</text>
                <text x="216" y="356">Application</text>
                <text x="344" y="356">Application</text>
                <text x="440" y="356">PSA</text>
                <text x="472" y="356">RoT</text>
                <text x="64" y="372">PSA</text>
                <text x="96" y="372">RoT</text>
                <text x="184" y="372">RoT</text>
                <text x="324" y="372">Loader</text>
                <text x="468" y="372">Parameters</text>
                <text x="60" y="404">Target</text>
                <text x="136" y="404">Environment</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="left" pn="section-3-2.1.2">
                                                    .----------.
                                                    | Verifier |
                                                    '----------'
                                                         ^
                                                         |
                                                Evidence |
                                                         |
.--------------------------------------------------------|----------.
| .------------------------------------------------------|--------. |
| | Attesting Environment                                |        | |
| |                .------------.    .-----.      .------+------. | |
| |                | Main       |   | Main  |     | Initial     | | |
| |                | Bootloader +--&gt;| Boot  o-----+ Attestation | | |
| |                |            |   | State |     | Service     | | |
| |                '-----+------'    '-----'      '-------------' | |
| '----------------------|----------------------------------------' |
|           .------------+--------------+---------------.           |
| .--------|-------------|--------------|----------------|--------. |
| |        |             |              |                |        | |
| | .------o-----. .-----o-------. .----o--------. .-----o------. | |
| | | Updateable | | Application | | Application | | PSA RoT    | | |
| | | PSA RoT    | | RoT         | | Loader      | | Parameters | | |
| | '------------' '-------------' '-------------' '------------' | |
| | Target Environment                                            | |
| '---------------------------------------------------------------' |
'-------------------------------------------------------------------'
</artwork>
        </artset>
      </figure>
      <t indent="0" pn="section-3-3">The PSA Attester is a relatively straightforward embodiment of the RATS
Attester with exactly one Attesting Environment and one Target Environment.</t>
      <t indent="0" pn="section-3-4">The Attesting Environment is responsible for collecting the information to be
represented in PSA claims and to assemble them into Evidence. It is made of two
cooperating components:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-5">
        <li pn="section-3-5.1">The Main Bootloader (executing at boot-time) measures the loaded software
components, collects the relevant PSA RoT parameters, and stores the recorded
information in secure memory (Main Boot State) from where the Initial
Attestation Service will, when asked for a platform attestation report,
retrieve them.</li>
        <li pn="section-3-5.2">The Initial Attestation Service (executing at run-time in SPE) answers
requests coming from NSPE via the PSA attestation API <xref target="PSA-API" format="default" sectionFormat="of" derivedContent="PSA-API"/>, collects
and formats the claims from Main Boot State, and uses the Initial Attestation
Key (IAK) to sign the attestation report.</li>
      </ul>
      <t indent="0" pn="section-3-6">The Target Environment can be broken down into four macro "objects", some of
which may or may not be present depending on the device architecture:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-7">
        <li pn="section-3-7.1">(A subset of) the PSA RoT parameters, including Instance and Implementation
IDs.</li>
        <li pn="section-3-7.2">The updateable PSA RoT, including the Secure Partition Manager and all PSA
RoT services.</li>
        <li pn="section-3-7.3">The (optional) Application RoT, that is any application-defined security
service, possibly making use of the PSA RoT services.</li>
        <li pn="section-3-7.4">The loader of the application software running in NSPE.</li>
      </ul>
      <t indent="0" pn="section-3-8">A reference implementation of the PSA Attester is provided by <xref target="TF-M" format="default" sectionFormat="of" derivedContent="TF-M"/>.</t>
    </section>
    <section anchor="sec-psa-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-psa-claims">PSA Claims</name>
      <t indent="0" pn="section-4-1">This section describes the claims to be used in a PSA attestation token.</t>
      <t indent="0" pn="section-4-2">CDDL <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610"/> along with text descriptions is used to define each claim
independent of encoding.  The following CDDL type(s) are reused by different
claims:</t>
      <artwork align="left" pn="section-4-3">
psa-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64
</artwork>
      <section anchor="caller-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-caller-claims">Caller Claims</name>
        <section anchor="sec-nonce-claim" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.1">
          <name slugifiedName="name-nonce">Nonce</name>
          <t indent="0" pn="section-4.1.1-1">The Nonce claim is used to carry the challenge provided by the caller to demonstrate freshness of the generated token.</t>
          <t indent="0" pn="section-4.1.1-2">The EAT <xref target="I-D.ietf-rats-eat" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat"/> <tt>nonce</tt> (claim key 10) is used.  The following
constraints apply to the <tt>nonce-type</tt>:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1.1-3">
            <li pn="section-4.1.1-3.1">The length MUST be either 32, 48, or 64 bytes.</li>
            <li pn="section-4.1.1-3.2">Only a single nonce value is conveyed. Per <xref target="I-D.ietf-rats-eat" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat"/> the array notation is not used for encoding the nonce value.</li>
          </ul>
          <t indent="0" pn="section-4.1.1-4">This claim MUST be present in a PSA attestation token.</t>
          <artwork align="left" pn="section-4.1.1-5">
psa-nonce = (
    nonce-label =&gt; psa-hash-type
)
</artwork>
        </section>
        <section anchor="sec-client-id" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.2">
          <name slugifiedName="name-client-id">Client ID</name>
          <t indent="0" pn="section-4.1.2-1">The Client ID claim represents the security domain of the caller.</t>
          <t indent="0" pn="section-4.1.2-2">In PSA, a security domain is represented by a signed
integer whereby negative values represent callers from the NSPE and where
positive IDs represent callers from the SPE. The value 0 is not permitted.</t>
          <t indent="0" pn="section-4.1.2-3">For an example definition of client IDs, see the PSA Firmware Framework <xref target="PSA-FF" format="default" sectionFormat="of" derivedContent="PSA-FF"/>.</t>
          <t indent="0" pn="section-4.1.2-4">It is essential that this claim is checked in the verification process to
ensure that a security domain, i.e., an attestation endpoint, cannot spoof a
report from another security domain.</t>
          <t indent="0" pn="section-4.1.2-5">This claim MUST be present in a PSA attestation token.</t>
          <artwork align="left" pn="section-4.1.2-6">
psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key =&gt; psa-client-id-type
)
</artwork>
        </section>
      </section>
      <section anchor="target-identification-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-target-identification-claim">Target Identification Claims</name>
        <section anchor="sec-instance-id-claim" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-instance-id"> Instance ID</name>
          <t indent="0" pn="section-4.2.1-1">The Instance ID claim represents the unique identifier of the Initial
Attestation Key (IAK).  The full definition is in <xref target="PSA-SM" format="default" sectionFormat="of" derivedContent="PSA-SM"/>.</t>
          <t indent="0" pn="section-4.2.1-2">The EAT <tt>ueid</tt> (claim key 256) of type RAND is used.  The following constraints
apply to the <tt>ueid-type</tt>:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.2.1-3">
            <li pn="section-4.2.1-3.1">The length MUST be 33 bytes.</li>
            <li pn="section-4.2.1-3.2">The first byte MUST be 0x01 (RAND) followed by the 32-bytes key hash.</li>
          </ul>
          <t indent="0" pn="section-4.2.1-4">This claim MUST be present in a PSA attestation token.</t>
          <artwork align="left" pn="section-4.2.1-5">
psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label =&gt; psa-instance-id-type
)
</artwork>
        </section>
        <section anchor="sec-implementation-id" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.2">
          <name slugifiedName="name-implementation-id">Implementation ID</name>
          <t indent="0" pn="section-4.2.2-1">The Implementation ID claim uniquely identifies the implementation of the
immutable PSA RoT. A verification service uses this claim to locate the
details of the PSA RoT implementation from an Endorser or manufacturer.
Such details are used by a verification service to determine the security properties
or certification status of the PSA RoT implementation.</t>
          <t indent="0" pn="section-4.2.2-2">The value and format of the ID is decided by
the manufacturer or a particular certification scheme. For example, the ID
could take the form of a product serial number,
database ID, or other appropriate identifier.</t>
          <t indent="0" pn="section-4.2.2-3">This claim MUST be present in a PSA attestation token.</t>
          <t indent="0" pn="section-4.2.2-4">Note that this identifies the PSA RoT implementation, not a particular instance.
To uniquely identify an instance, see the Instance ID claim <xref target="sec-instance-id-claim" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/>.</t>
          <artwork align="left" pn="section-4.2.2-5">
psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key =&gt; psa-implementation-id-type
)
</artwork>
        </section>
        <section anchor="sec-certification-reference" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.3">
          <name slugifiedName="name-certification-reference">Certification Reference</name>
          <t indent="0" pn="section-4.2.3-1">The Certification Reference claim is used to link the class of chip and PSA RoT
of the attesting device to an associated entry in the PSA Certification
database. It MUST be represented as a string made of nineteen numeric
characters: a thirteen-digit <xref target="EAN-13" format="default" sectionFormat="of" derivedContent="EAN-13"/>, followed by a dash "-", followed by
the five-digit versioning information described in <xref target="PSA-Cert-Guide" format="default" sectionFormat="of" derivedContent="PSA-Cert-Guide"/>.</t>
          <t indent="0" pn="section-4.2.3-2">Linking to the PSA Certification entry can still be achieved if this claim is
not present in the token by making an association at a Verifier between the
reference value and other token claim values - for example, the Implementation
ID.</t>
          <artwork align="left" pn="section-4.2.3-3">
psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key =&gt; 
        psa-certification-reference-type
)
</artwork>
        </section>
      </section>
      <section anchor="target-state-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-target-state-claims">Target State Claims</name>
        <section anchor="sec-security-lifecycle" numbered="true" removeInRFC="false" toc="include" pn="section-4.3.1">
          <name slugifiedName="name-security-lifecycle">Security Lifecycle</name>
          <t indent="0" pn="section-4.3.1-1">The Security Lifecycle claim represents the current lifecycle state of the PSA
RoT. The state is represented by an integer that is divided to convey a major
state and a minor state. A major state is mandatory and defined by <xref target="PSA-SM" format="default" sectionFormat="of" derivedContent="PSA-SM"/>.
A minor state is optional and 'IMPLEMENTATION DEFINED'. The PSA security
lifecycle state and implementation state are encoded as follows:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.3.1-2">
            <li pn="section-4.3.1-2.1">version[15:8] - PSA security lifecycle state, and</li>
            <li pn="section-4.3.1-2.2">version[7:0] - IMPLEMENTATION DEFINED state.</li>
          </ul>
          <t indent="0" pn="section-4.3.1-3">The PSA lifecycle states are illustrated in <xref target="fig-lifecycle-states" format="default" sectionFormat="of" derivedContent="Figure 2"/>. For PSA,
a Verifier can only trust reports from the PSA RoT when it is in SECURED or
NON_PSA_ROT_DEBUG major states.</t>
          <t indent="0" pn="section-4.3.1-4">This claim MUST be present in a PSA attestation token.</t>
          <figure anchor="fig-lifecycle-states" align="left" suppress-title="false" pn="figure-2">
            <name slugifiedName="name-psa-lifecycle-states">PSA Lifecycle States</name>
            <artset pn="section-4.3.1-5.1">
              <artwork type="svg" align="left" pn="section-4.3.1-5.1.1"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="528" viewBox="0 0 528 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                  <path d="M 48,272 L 48,288" fill="none" stroke="black"/>
                  <path d="M 72,64 L 72,120" fill="none" stroke="black"/>
                  <path d="M 72,168 L 72,192" fill="none" stroke="black"/>
                  <path d="M 72,224 L 72,256" fill="none" stroke="black"/>
                  <path d="M 104,288 L 104,304" fill="none" stroke="black"/>
                  <path d="M 168,144 L 168,256" fill="none" stroke="black"/>
                  <path d="M 184,256 L 184,272" fill="none" stroke="black"/>
                  <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                  <path d="M 208,208 L 208,240" fill="none" stroke="black"/>
                  <path d="M 224,304 L 224,336" fill="none" stroke="black"/>
                  <path d="M 248,128 L 248,160" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,200" fill="none" stroke="black"/>
                  <path d="M 288,64 L 288,120" fill="none" stroke="black"/>
                  <path d="M 288,240 L 288,272" fill="none" stroke="black"/>
                  <path d="M 312,96 L 312,120" fill="none" stroke="black"/>
                  <path d="M 312,168 L 312,208" fill="none" stroke="black"/>
                  <path d="M 328,128 L 328,160" fill="none" stroke="black"/>
                  <path d="M 360,304 L 360,336" fill="none" stroke="black"/>
                  <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
                  <path d="M 384,32 L 384,48" fill="none" stroke="black"/>
                  <path d="M 392,208 L 392,256" fill="none" stroke="black"/>
                  <path d="M 432,160 L 432,200" fill="none" stroke="black"/>
                  <path d="M 448,256 L 448,272" fill="none" stroke="black"/>
                  <path d="M 480,96 L 480,208" fill="none" stroke="black"/>
                  <path d="M 520,208 L 520,256" fill="none" stroke="black"/>
                  <path d="M 208,32 L 384,32" fill="none" stroke="black"/>
                  <path d="M 88,48 L 104,48" fill="none" stroke="black"/>
                  <path d="M 168,48 L 192,48" fill="none" stroke="black"/>
                  <path d="M 192,64 L 368,64" fill="none" stroke="black"/>
                  <path d="M 328,80 L 464,80" fill="none" stroke="black"/>
                  <path d="M 24,128 L 128,128" fill="none" stroke="black"/>
                  <path d="M 248,128 L 328,128" fill="none" stroke="black"/>
                  <path d="M 168,144 L 248,144" fill="none" stroke="black"/>
                  <path d="M 328,144 L 416,144" fill="none" stroke="black"/>
                  <path d="M 24,160 L 128,160" fill="none" stroke="black"/>
                  <path d="M 248,160 L 328,160" fill="none" stroke="black"/>
                  <path d="M 208,208 L 368,208" fill="none" stroke="black"/>
                  <path d="M 392,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 208,240 L 368,240" fill="none" stroke="black"/>
                  <path d="M 64,256 L 184,256" fill="none" stroke="black"/>
                  <path d="M 392,256 L 520,256" fill="none" stroke="black"/>
                  <path d="M 184,272 L 448,272" fill="none" stroke="black"/>
                  <path d="M 48,288 L 168,288" fill="none" stroke="black"/>
                  <path d="M 224,304 L 360,304" fill="none" stroke="black"/>
                  <path d="M 120,320 L 216,320" fill="none" stroke="black"/>
                  <path d="M 224,336 L 360,336" fill="none" stroke="black"/>
                  <path d="M 208,32 C 199.16936,32 192,39.16936 192,48" fill="none" stroke="black"/>
                  <path d="M 88,48 C 79.16936,48 72,55.16936 72,64" fill="none" stroke="black"/>
                  <path d="M 368,64 C 376.83064,64 384,56.83064 384,48" fill="none" stroke="black"/>
                  <path d="M 328,80 C 319.16936,80 312,87.16936 312,96" fill="none" stroke="black"/>
                  <path d="M 464,80 C 472.83064,80 480,87.16936 480,96" fill="none" stroke="black"/>
                  <path d="M 24,128 C 15.16936,128 8,135.16936 8,144" fill="none" stroke="black"/>
                  <path d="M 128,128 C 136.83064,128 144,135.16936 144,144" fill="none" stroke="black"/>
                  <path d="M 416,144 C 424.83064,144 432,151.16936 432,160" fill="none" stroke="black"/>
                  <path d="M 24,160 C 15.16936,160 8,152.83064 8,144" fill="none" stroke="black"/>
                  <path d="M 128,160 C 136.83064,160 144,152.83064 144,144" fill="none" stroke="black"/>
                  <path d="M 64,256 C 55.16936,256 48,263.16936 48,272" fill="none" stroke="black"/>
                  <path d="M 168,288 C 176.83064,288 184,280.83064 184,272" fill="none" stroke="black"/>
                  <path d="M 120,320 C 111.16936,320 104,312.83064 104,304" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="440,200 428,194.4 428,205.6" fill="black" transform="rotate(90,432,200)"/>
                  <polygon class="arrowhead" points="320,168 308,162.4 308,173.6" fill="black" transform="rotate(270,312,168)"/>
                  <polygon class="arrowhead" points="320,120 308,114.4 308,125.6" fill="black" transform="rotate(90,312,120)"/>
                  <polygon class="arrowhead" points="296,120 284,114.4 284,125.6" fill="black" transform="rotate(90,288,120)"/>
                  <polygon class="arrowhead" points="272,200 260,194.4 260,205.6" fill="black" transform="rotate(90,264,200)"/>
                  <polygon class="arrowhead" points="224,320 212,314.4 212,325.6" fill="black" transform="rotate(0,216,320)"/>
                  <circle cx="72" cy="112" r="6" class="closeddot" fill="black"/>
                  <circle cx="72" cy="176" r="6" class="closeddot" fill="black"/>
                  <g class="text">
                    <text x="136" y="52">Enrol</text>
                    <text x="252" y="52">Provisioning</text>
                    <text x="340" y="52">Lockdown</text>
                    <text x="76" y="148">Verifier</text>
                    <text x="288" y="148">Secured</text>
                    <text x="72" y="212">Blocklist</text>
                    <text x="248" y="228">Non-PSA</text>
                    <text x="296" y="228">RoT</text>
                    <text x="336" y="228">Debug</text>
                    <text x="448" y="228">Recoverable</text>
                    <text x="416" y="244">PSA</text>
                    <text x="448" y="244">RoT</text>
                    <text x="488" y="244">Debug</text>
                    <text x="120" y="276">Terminate</text>
                    <text x="292" y="324">Decommissioned</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="left" pn="section-4.3.1-5.1.2">
                        .----------------------.
         .--- Enrol ---+ Provisioning Lockdown |
        |              '-----------+----------'
        |                          |   .------------------.
        |                          |  |                    |
        *                          v  v                    |
 .--------------.             .---------.                  |
|    Verifier    |  .---------+ Secured +-----------.      |
 '--------------'   |         '-+-------'            |     |
        *           |           |     ^              |     |
        |           |           v     |              v     |
    Blocklist       |    .------------+------.  .----------+----.
        |           |    | Non-PSA RoT Debug |  | Recoverable   |
        |           |    '---------+---------'  | PSA RoT Debug |
      .-+-----------+-.            |            '------+--------'
     |    Terminate   +------------+-------------------'
     '------+--------'
            |              .----------------.
             '------------&gt;| Decommissioned |
                           '----------------'
</artwork>
            </artset>
          </figure>
          <artwork align="left" pn="section-4.3.1-6">
psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key =&gt; psa-lifecycle-type
)
</artwork>
        </section>
        <section anchor="sec-boot-seed" numbered="true" removeInRFC="false" toc="include" pn="section-4.3.2">
          <name slugifiedName="name-boot-seed">Boot Seed</name>
          <t indent="0" pn="section-4.3.2-1">The Boot Seed claim represents a value created at system boot time that
will allow differentiation of reports from different boot sessions.</t>
          <t indent="0" pn="section-4.3.2-2">This claim MAY be present in a PSA attestation token.</t>
          <t indent="0" pn="section-4.3.2-3">If present, it MUST be between 8 and 32 bytes.</t>
          <artwork align="left" pn="section-4.3.2-4">
psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key =&gt; psa-boot-seed-type
)
</artwork>
        </section>
      </section>
      <section anchor="software-inventory-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-software-inventory-claims">Software Inventory Claims</name>
        <section anchor="sec-sw-components" numbered="true" removeInRFC="false" toc="include" pn="section-4.4.1">
          <name slugifiedName="name-software-components">Software Components</name>
          <t indent="0" pn="section-4.4.1-1">The Software Components claim is a list of software components that includes
all the software (both code and configuration) loaded by the PSA RoT.  This
claim MUST be included in attestation tokens produced by an implementation
conformant with <xref target="PSA-SM" format="default" sectionFormat="of" derivedContent="PSA-SM"/>.</t>
          <t indent="0" pn="section-4.4.1-2">Each entry in the Software Components list describes one software component
using the attributes described in the following subsections.  Unless explicitly
stated, the presence of an attribute is OPTIONAL.</t>
          <t indent="0" pn="section-4.4.1-3">Note that, as described in <xref target="RFC9334" format="default" sectionFormat="of" derivedContent="RFC9334"/>, a relying party will typically see the
result of the verification process from the Verifier in form of an attestation
result, rather than the PSA token from the attesting endpoint.
Therefore, a relying party is not expected to understand the Software
Components claim.  Instead, it is for the Verifier to check this claim against
the available endorsements and provide an answer in form of an "high level"
attestation result, which may or may not include the original Software
Components claim.</t>
          <artwork align="left" pn="section-4.4.1-4">
psa-software-component = {
  ? &amp;(measurement-type: 1) =&gt; text
    &amp;(measurement-value: 2) =&gt; psa-hash-type
  ? &amp;(version: 4) =&gt; text
    &amp;(signer-id: 5) =&gt; psa-hash-type
  ? &amp;(measurement-desc: 6) =&gt; text
}

psa-software-components = (
    psa-software-components-key =&gt; [ + psa-software-component ]
)
</artwork>
          <section anchor="measurement-type" numbered="true" removeInRFC="false" toc="exclude" pn="section-4.4.1.1">
            <name slugifiedName="name-measurement-type">Measurement Type</name>
            <t indent="0" pn="section-4.4.1.1-1">The Measurement Type attribute (key=1) is short string representing the role of
this software component.</t>
            <t indent="0" pn="section-4.4.1.1-2">The following measurement types MAY be used for code measurements:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.4.1.1-3">
              <li pn="section-4.4.1.1-3.1">"BL": a Boot Loader</li>
              <li pn="section-4.4.1.1-3.2">"PRoT": a component of the PSA Root of Trust</li>
              <li pn="section-4.4.1.1-3.3">"ARoT": a component of the Application Root of Trust</li>
              <li pn="section-4.4.1.1-3.4">"App": a component of the NSPE application</li>
              <li pn="section-4.4.1.1-3.5">"TS": a component of a Trusted Subsystem</li>
            </ul>
            <t indent="0" pn="section-4.4.1.1-4">The same labels with a "-config" postfix (e.g., "PRoT-config") MAY be used for
configuration measurements.</t>
          </section>
          <section anchor="measurement-value" numbered="true" removeInRFC="false" toc="exclude" pn="section-4.4.1.2">
            <name slugifiedName="name-measurement-value"> Measurement Value</name>
            <t indent="0" pn="section-4.4.1.2-1">The Measurement Value attribute (key=2) represents a hash of the invariant
software component in memory at startup time. The value MUST be a cryptographic
hash of 256 bits or stronger.</t>
            <t indent="0" pn="section-4.4.1.2-2">This attribute MUST be present in a PSA software component.</t>
          </section>
          <section anchor="version" numbered="true" removeInRFC="false" toc="exclude" pn="section-4.4.1.3">
            <name slugifiedName="name-version">Version</name>
            <t indent="0" pn="section-4.4.1.3-1">The Version attribute (key=4) is the issued software version in the form of a
text string. The value of this attribute will correspond to the entry in the
original signed manifest of the component.</t>
          </section>
          <section anchor="signer-id" numbered="true" removeInRFC="false" toc="exclude" pn="section-4.4.1.4">
            <name slugifiedName="name-signer-id">Signer ID</name>
            <t indent="0" pn="section-4.4.1.4-1">The Signer ID attribute (key=5) is the hash of a signing authority public key
for the software component. The value of this attribute will correspond to the
entry in the original manifest for the component. This can be used by a
Verifier to ensure the components were signed by an expected trusted source.</t>
            <t indent="0" pn="section-4.4.1.4-2">This attribute MUST be present in a PSA software component to be compliant with
<xref target="PSA-SM" format="default" sectionFormat="of" derivedContent="PSA-SM"/>.</t>
          </section>
          <section anchor="measurement-description" numbered="true" removeInRFC="false" toc="exclude" pn="section-4.4.1.5">
            <name slugifiedName="name-measurement-description">Measurement Description</name>
            <t indent="0" pn="section-4.4.1.5-1">The Measurement Description attribute (key=6) contains a string identifying the
hash algorithm used to compute the corresponding Measurement Value.  The string
SHOULD be encoded according to <xref target="IANA-HashFunctionTextualNames" format="default" sectionFormat="of" derivedContent="IANA-HashFunctionTextualNames"/>.</t>
          </section>
        </section>
      </section>
      <section anchor="verification-claims" numbered="true" removeInRFC="false" toc="include" pn="section-4.5">
        <name slugifiedName="name-verification-claims">Verification Claims</name>
        <section anchor="sec-verification-service-indicator" numbered="true" removeInRFC="false" toc="include" pn="section-4.5.1">
          <name slugifiedName="name-verification-service-indica">Verification Service Indicator</name>
          <t indent="0" pn="section-4.5.1-1">The Verification Service Indicator claim is a hint used by a relying party to
locate a verification service for the token. The value is a text string that
can be used to locate the service (typically, a URL specifying the address of
the verification service API). A Relying Party may choose to ignore this claim
in favor of other information.</t>
          <artwork align="left" pn="section-4.5.1-2">
psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =&gt;
        psa-verification-service-indicator-type
)
</artwork>
        </section>
        <section anchor="sec-profile-definition-claim" numbered="true" removeInRFC="false" toc="include" pn="section-4.5.2">
          <name slugifiedName="name-profile-definition">Profile Definition</name>
          <t indent="0" pn="section-4.5.2-1">The Profile Definition claim encodes the unique identifier that corresponds to
the EAT profile described by this document.  This allows a receiver to assign
the intended semantics to the rest of the claims found in the token.</t>
          <t indent="0" pn="section-4.5.2-2">The EAT <tt>profile</tt> (claim key 265) is used.  The following constraints
apply to its type:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.5.2-3">
            <li pn="section-4.5.2-3.1">The URI encoding MUST be used.</li>
            <li pn="section-4.5.2-3.2">The value MUST be <tt>http://arm.com/psa/2.0.0</tt>.</li>
          </ul>
          <t indent="0" pn="section-4.5.2-4">This claim MUST be present in a PSA attestation token.</t>
          <t indent="0" pn="section-4.5.2-5">See <xref target="sec-backwards-compat" format="default" sectionFormat="of" derivedContent="Section 5"/>, for considerations about backwards compatibility
with previous versions of the PSA attestation token format.</t>
          <artwork align="left" pn="section-4.5.2-6">
psa-profile-type = "http://arm.com/psa/2.0.0"

psa-profile = (
    profile-label =&gt; psa-profile-type
)
</artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-backwards-compat" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-backwards-compatibility-con">Backwards Compatibility Considerations</name>
      <t indent="0" pn="section-5-1">A previous version of this specification (identified by the <tt>PSA_IOT_PROFILE_1</tt>
profile) used claim key values from the "private use range" of the CWT Claims
registry.  These claim keys have now been retired and their use is deprecated.</t>
      <t indent="0" pn="section-5-2"><xref target="tab-claim-map" format="default" sectionFormat="of" derivedContent="Table 1"/> provides the mappings between the deprecated and new claim
keys.</t>
      <table anchor="tab-claim-map" align="center" pn="table-1">
        <name slugifiedName="name-claim-key-mappings">Claim key mappings</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1"> </th>
            <th align="left" colspan="1" rowspan="1">PSA_IOT_PROFILE_1</th>
            <th align="left" colspan="1" rowspan="1">http://arm.com/psa/2.0.0</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">Nonce</td>
            <td align="left" colspan="1" rowspan="1">-75008</td>
            <td align="left" colspan="1" rowspan="1">10 (EAT nonce)</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Instance ID</td>
            <td align="left" colspan="1" rowspan="1">-75009</td>
            <td align="left" colspan="1" rowspan="1">256 (EAT euid)</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Profile Definition</td>
            <td align="left" colspan="1" rowspan="1">-75000</td>
            <td align="left" colspan="1" rowspan="1">265 (EAT eat_profile)</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Client ID</td>
            <td align="left" colspan="1" rowspan="1">-75001</td>
            <td align="left" colspan="1" rowspan="1">2394</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Security Lifecycle</td>
            <td align="left" colspan="1" rowspan="1">-75002</td>
            <td align="left" colspan="1" rowspan="1">2395</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Implementation ID</td>
            <td align="left" colspan="1" rowspan="1">-75003</td>
            <td align="left" colspan="1" rowspan="1">2396</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Boot Seed</td>
            <td align="left" colspan="1" rowspan="1">-75004</td>
            <td align="left" colspan="1" rowspan="1">2397</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Certification Reference</td>
            <td align="left" colspan="1" rowspan="1">-75005</td>
            <td align="left" colspan="1" rowspan="1">2398</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Software Components</td>
            <td align="left" colspan="1" rowspan="1">-75006</td>
            <td align="left" colspan="1" rowspan="1">2399</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Verification Service Indicator</td>
            <td align="left" colspan="1" rowspan="1">-75010</td>
            <td align="left" colspan="1" rowspan="1">2400</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-5-4">The new profile introduces three further changes:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-5">
        <li pn="section-5-5.1">the "Boot Seed" claim is now optional and variable length (see
<xref target="sec-boot-seed" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/>),</li>
        <li pn="section-5-5.2">the "No Software Measurements" claim has been retired,</li>
        <li pn="section-5-5.3">the "Certification Reference" syntax changed from EAN-13 to EAN-13+5 (see
<xref target="sec-certification-reference" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/>).</li>
      </ul>
      <t indent="0" pn="section-5-6">Unless compatibility with existing infrastructure is a concern, emitters (e.g.,
devices that implement the PSA Attestation API) SHOULD produce tokens with
the claim keys specified in this document.</t>
      <t indent="0" pn="section-5-7">To simplify the transition to the token format described in this
document it is RECOMMENDED that receivers (e.g., PSA Attestation Verifiers)
accept tokens encoded according to the old profile (<tt>PSA_IOT_PROFILE_1</tt>) as well as
to the new profile (<tt>http://arm.com/psa/2.0.0</tt>), at least for the time needed to
their clients to upgrade.</t>
    </section>
    <section anchor="sec-token-encoding-and-signing" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-token-encoding-and-signing"> Token Encoding and Signing</name>
      <t indent="0" pn="section-6-1">The PSA attestation token is encoded in CBOR <xref target="RFC8949" format="default" sectionFormat="of" derivedContent="RFC8949"/> format.  Only
definite-length string, arrays, and maps are allowed.</t>
      <t indent="0" pn="section-6-2">Cryptographic protection is obtained by wrapping the <tt>psa-token</tt> map in a COSE
Web Token (CWT) <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/>.  For asymmetric key algorithms, the signature
structure MUST be COSE_Sign1.  For symmetric key algorithms, the signature
structure MUST be COSE_Mac0.</t>
      <t indent="0" pn="section-6-3">Acknowledging the variety of markets, regulations and use cases in which the
PSA attestation token can be used, this specification does not impose any
strong requirement on the cryptographic algorithms that need to be supported by
Attesters and Verifiers.  It is assumed that the flexibility provided by the
COSE format is sufficient to deal with the level of cryptographic agility
needed to adapt to specific use cases.  For interoperability considerations, it
is RECOMMENDED that commonly adopted algorithms are used, such as those
discussed in <xref target="COSE-ALGS" format="default" sectionFormat="of" derivedContent="COSE-ALGS"/>).  It is expected that receivers (Verifiers and
Relying Parties) will accept a wider range of algorithms, while Attesters would
produce PSA tokens using only one such algorithm.</t>
      <t indent="0" pn="section-6-4">The CWT CBOR tag (61) is not used.  An application that needs to exchange PSA
attestation tokens can wrap the serialised COSE_Sign1 or COSE_Mac0 in the media
type defined in <xref target="sec-iana-media-types" format="default" sectionFormat="of" derivedContent="Section 12.2"/> or the CoAP Content-Format defined in
<xref target="sec-iana-coap-content-format" format="default" sectionFormat="of" derivedContent="Section 12.3"/>.</t>
    </section>
    <section anchor="freshness-model" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-freshness-model">Freshness Model</name>
      <t indent="0" pn="section-7-1">The PSA Token supports the freshness models for attestation Evidence based on
nonces and epoch handles (Section <xref target="RFC9334" section="10.2" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9334#section-10.2" derivedContent="RFC9334"/> and Section <xref target="RFC9334" section="10.3" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9334#section-10.3" derivedContent="RFC9334"/> of <xref target="RFC9334" format="default" sectionFormat="of" derivedContent="RFC9334"/>) using
the <tt>nonce</tt> claim to convey the nonce or epoch handle supplied by the Verifier.
No further assumption on the specific remote attestation protocol is made.</t>
    </section>
    <section anchor="collated-cddl" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-collated-cddl">Collated CDDL</name>
      <artwork align="left" pn="section-8-1">
psa-token = {
    psa-nonce
    psa-instance-id
    psa-verification-service-indicator
    psa-profile
    psa-implementation-id
    psa-client-id
    psa-lifecycle
    psa-certification-reference
    ? psa-boot-seed
    psa-software-components
}

psa-client-id-key = 2394
psa-lifecycle-key = 2395
psa-implementation-id-key = 2396
psa-boot-seed-key = 2397
psa-certification-reference-key = 2398
psa-software-components-key = 2399
psa-verification-service-indicator-key = 2400

nonce-label = 10
ueid-label = 256
profile-label = 265

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

psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key =&gt; psa-boot-seed-type
)

psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key =&gt; psa-client-id-type
)

psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key =&gt; 
        psa-certification-reference-type
)

psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key =&gt; psa-implementation-id-type
)

psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label =&gt; psa-instance-id-type
)

psa-nonce = (
    nonce-label =&gt; psa-hash-type
)

psa-profile-type = "http://arm.com/psa/2.0.0"

psa-profile = (
    profile-label =&gt; psa-profile-type
)

psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key =&gt; psa-lifecycle-type
)

psa-software-component = {
  ? &amp;(measurement-type: 1) =&gt; text
    &amp;(measurement-value: 2) =&gt; psa-hash-type
  ? &amp;(version: 4) =&gt; text
    &amp;(signer-id: 5) =&gt; psa-hash-type
  ? &amp;(measurement-desc: 6) =&gt; text
}

psa-software-components = (
    psa-software-components-key =&gt; [ + psa-software-component ]
)

psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =&gt;
        psa-verification-service-indicator-type
)

</artwork>
    </section>
    <section anchor="implementation-status" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-implementation-status">Implementation Status</name>
      <t indent="0" pn="section-9-1">Implementations of this specification are provided by the Trusted
Firmware-M project <xref target="TF-M" format="default" sectionFormat="of" derivedContent="TF-M"/>, the Veraison project <xref target="Veraison" format="default" sectionFormat="of" derivedContent="Veraison"/>, and the Xclaim
<xref target="Xclaim" format="default" sectionFormat="of" derivedContent="Xclaim"/> library.  All three implementations are released as open-source software.</t>
    </section>
    <section anchor="security-and-privacy-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-security-and-privacy-consid">Security and Privacy Considerations</name>
      <t indent="0" pn="section-10-1">This specification re-uses the EAT specification and therefore the CWT specification.
Hence, the security and privacy considerations of those specifications apply here as well.</t>
      <t indent="0" pn="section-10-2">Since CWTs offer different ways to protect the token, this specification
profiles those options and allows signatures using public key cryptography as
well as message authentication codes (MACs). COSE_Sign1 is used for digital
signatures and COSE_Mac0 for MACs, as defined in the COSE specification <xref target="STD96" format="default" sectionFormat="of" derivedContent="STD96"/>.
Note, however, that the use of MAC authentication is NOT RECOMMENDED due to the associated
infrastructure costs for key management and protocol complexities.</t>
      <t indent="0" pn="section-10-3">Attestation tokens contain information that may be unique to a device and
therefore they may allow to single out an individual device for tracking
purposes.  Deployments that have privacy requirements must take appropriate
measures to ensure that the token is only used to provision anonymous/pseudonym
keys.</t>
    </section>
    <section anchor="verification" numbered="true" removeInRFC="false" toc="include" pn="section-11">
      <name slugifiedName="name-verification">Verification</name>
      <t indent="0" pn="section-11-1">To verify the token, the primary need is to check correct encoding and signing
as detailed in <xref target="sec-token-encoding-and-signing" format="default" sectionFormat="of" derivedContent="Section 6"/>.  In particular, the Instance
ID claim is used (together with the kid in the COSE header, if present)
to assist in locating the public key used to verify the signature covering the CWT token.
The key used for verification is supplied to the Verifier by an authorized
Endorser along with the corresponding Attester's Instance ID.</t>
      <t indent="0" pn="section-11-2">In addition, the Verifier will typically operate a policy where values of some
of the claims in this profile can be compared to reference values, registered
with the Verifier for a given deployment, in order to confirm that the device
is endorsed by the manufacturer supply chain.  The policy may require that the
relevant claims must have a match to a registered reference value.  All claims
may be worthy of additional appraisal.  It is likely that most deployments
would include a policy with appraisal for the following claims:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-11-3">
        <li pn="section-11-3.1">Implementation ID - the value of the Implementation ID can be used to
identify the verification requirements of the deployment.</li>
        <li pn="section-11-3.2">Software Component, Measurement Value - this value can uniquely identify a
firmware release from the supply chain. In some cases, a Verifier may
maintain a record for a series of firmware releases, being patches to an
original baseline release. A verification policy may then allow this value to
match any point on that release sequence or expect some minimum level of
maturity related to the sequence.</li>
        <li pn="section-11-3.3">Software Component, Signer ID - where present in a deployment, this could
allow a Verifier to operate a more general policy than that for Measurement
Value as above, by allowing a token to contain any firmware entries signed by
a known Signer ID, without checking for a uniquely registered version.</li>
        <li pn="section-11-3.4">Certification Reference - if present, this value could be used as a hint to
locate security certification information associated with the attesting
device. An example could be a reference to a <xref target="PSACertified" format="default" sectionFormat="of" derivedContent="PSACertified"/> certificate.</li>
      </ul>
      <section anchor="ar4si-trustworthiness-claims-mappings" numbered="true" removeInRFC="false" toc="include" pn="section-11.1">
        <name slugifiedName="name-ar4si-trustworthiness-claim"> AR4SI Trustworthiness Claims Mappings</name>
        <t indent="0" pn="section-11.1-1"><xref target="RATS-AR4SI" format="default" sectionFormat="of" derivedContent="RATS-AR4SI"/> defines an information model that Verifiers can employ to
produce Attestation Results.
AR4SI provides a set of standardized appraisal categories and tiers that
greatly simplifies the task of writing Relying Party policies in multi-attester
environments.</t>
        <t indent="0" pn="section-11.1-2">The contents of <xref target="tab-ar4si-map" format="default" sectionFormat="of" derivedContent="Table 2"/> are intended as guidance for implementing a
PSA Verifier that computes its results using AR4SI.
The table describes which PSA Evidence claims (if any) are related to which
AR4SI trustworthiness claim, and therefore what the Verifier must consider when
deciding if and how to appraise a certain feature associated with the PSA
Attester.</t>
        <table anchor="tab-ar4si-map" align="center" pn="table-2">
          <name slugifiedName="name-ar4si-claims-mappings">AR4SI Claims mappings</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Trustworthiness Vector claims</th>
              <th align="left" colspan="1" rowspan="1">Related PSA claims</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>configuration</tt></td>
              <td align="left" colspan="1" rowspan="1">Software Components (<xref target="sec-sw-components" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>executables</tt></td>
              <td align="left" colspan="1" rowspan="1">ditto</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>file-system</tt></td>
              <td align="left" colspan="1" rowspan="1">N/A</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>hardware</tt></td>
              <td align="left" colspan="1" rowspan="1">Implementation ID (<xref target="sec-implementation-id" format="default" sectionFormat="of" derivedContent="Section 4.2.2"/>)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>instance-identity</tt></td>
              <td align="left" colspan="1" rowspan="1">Instance ID (<xref target="sec-instance-id-claim" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/>).  The Security Lifecycle (<xref target="sec-security-lifecycle" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) can also impact the derived identity.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>runtime-opaque</tt></td>
              <td align="left" colspan="1" rowspan="1">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.  The Security Lifecycle (<xref target="sec-security-lifecycle" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) can also be relevant: for example, any debug state will expose otherwise protected memory.</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>sourced-data</tt></td>
              <td align="left" colspan="1" rowspan="1">N/A</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">
                <tt>storage-opaque</tt></td>
              <td align="left" colspan="1" rowspan="1">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-11.1-4">This document does not prescribe what value must be chosen based on each
possible situation: when assigning specific Trustworthiness Claim values, an
implementation is expected to follow the algorithm described in <xref section="2.3.3" sectionFormat="of" target="RATS-AR4SI" format="default" derivedLink="https://datatracker.ietf.org/doc/html/draft-ietf-rats-ar4si-04#section-2.3.3" derivedContent="RATS-AR4SI"/>.</t>
      </section>
      <section anchor="endorsements-reference-values-and-verification-key-material" numbered="true" removeInRFC="false" toc="include" pn="section-11.2">
        <name slugifiedName="name-endorsements-reference-valu">Endorsements, Reference Values and Verification Key Material</name>
        <t indent="0" pn="section-11.2-1"><xref target="PSA-Endorsements" format="default" sectionFormat="of" derivedContent="PSA-Endorsements"/> defines a protocol based on the <xref target="RATS-CoRIM" format="default" sectionFormat="of" derivedContent="RATS-CoRIM"/> data model
that can be used to convey PSA Endorsements, Reference Values and verification
key material to the Verifier.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-12">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="cbor-web-token-claims-registration" numbered="true" removeInRFC="false" toc="include" pn="section-12.1">
        <name slugifiedName="name-cbor-web-token-claims-regis">CBOR Web Token Claims Registration</name>
        <t indent="0" pn="section-12.1-1">IANA is requested to make permanent the following claims that have been
assigned via early allocation in the "CBOR Web Token (CWT) Claims" registry
<xref target="IANA-CWT" format="default" sectionFormat="of" derivedContent="IANA-CWT"/>.</t>
        <section anchor="client-id-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.1">
          <name slugifiedName="name-client-id-claim"> Client ID Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.1-1">
            <li pn="section-12.1.1-1.1">Claim Name: psa-client-id</li>
            <li pn="section-12.1.1-1.2">Claim Description: PSA Client ID</li>
            <li pn="section-12.1.1-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.1-1.4">Claim Key: 2394</li>
            <li pn="section-12.1.1-1.5">Claim Value Type(s): signed integer</li>
            <li pn="section-12.1.1-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.1-1.7">Specification Document(s): <xref target="sec-client-id" format="default" sectionFormat="of" derivedContent="Section 4.1.2"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="security-lifecycle-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.2">
          <name slugifiedName="name-security-lifecycle-claim"> Security Lifecycle Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.2-1">
            <li pn="section-12.1.2-1.1">Claim Name: psa-security-lifecycle</li>
            <li pn="section-12.1.2-1.2">Claim Description: PSA Security Lifecycle</li>
            <li pn="section-12.1.2-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.2-1.4">Claim Key: 2395</li>
            <li pn="section-12.1.2-1.5">Claim Value Type(s): unsigned integer</li>
            <li pn="section-12.1.2-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.2-1.7">Specification Document(s): <xref target="sec-security-lifecycle" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="implementation-id-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.3">
          <name slugifiedName="name-implementation-id-claim"> Implementation ID Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.3-1">
            <li pn="section-12.1.3-1.1">Claim Name: psa-implementation-id</li>
            <li pn="section-12.1.3-1.2">Claim Description: PSA Implementation ID</li>
            <li pn="section-12.1.3-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.3-1.4">Claim Key: 2396</li>
            <li pn="section-12.1.3-1.5">Claim Value Type(s): byte string</li>
            <li pn="section-12.1.3-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.3-1.7">Specification Document(s): <xref target="sec-implementation-id" format="default" sectionFormat="of" derivedContent="Section 4.2.2"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="boot-seed-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.4">
          <name slugifiedName="name-boot-seed-claim"> Boot Seed Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.4-1">
            <li pn="section-12.1.4-1.1">Claim Name: psa-boot-seed</li>
            <li pn="section-12.1.4-1.2">Claim Description: PSA Boot Seed</li>
            <li pn="section-12.1.4-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.4-1.4">Claim Key: 2397</li>
            <li pn="section-12.1.4-1.5">Claim Value Type(s): byte string</li>
            <li pn="section-12.1.4-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.4-1.7">Specification Document(s): <xref target="sec-boot-seed" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="certification-reference-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.5">
          <name slugifiedName="name-certification-reference-cla"> Certification Reference Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.5-1">
            <li pn="section-12.1.5-1.1">Claim Name: psa-certification-reference</li>
            <li pn="section-12.1.5-1.2">Claim Description: PSA Certification Reference</li>
            <li pn="section-12.1.5-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.5-1.4">Claim Key: 2398</li>
            <li pn="section-12.1.5-1.5">Claim Value Type(s): text string</li>
            <li pn="section-12.1.5-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.5-1.7">Specification Document(s): <xref target="sec-certification-reference" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="software-components-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.6">
          <name slugifiedName="name-software-components-claim"> Software Components Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.6-1">
            <li pn="section-12.1.6-1.1">Claim Name: psa-software-components</li>
            <li pn="section-12.1.6-1.2">Claim Description: PSA Software Components</li>
            <li pn="section-12.1.6-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.6-1.4">Claim Key: 2399</li>
            <li pn="section-12.1.6-1.5">Claim Value Type(s): array</li>
            <li pn="section-12.1.6-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.6-1.7">Specification Document(s): <xref target="sec-sw-components" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="verification-service-indicator-claim" numbered="true" removeInRFC="false" toc="include" pn="section-12.1.7">
          <name slugifiedName="name-verification-service-indicat"> Verification Service Indicator Claim</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.1.7-1">
            <li pn="section-12.1.7-1.1">Claim Name: psa-verification-service-indicator</li>
            <li pn="section-12.1.7-1.2">Claim Description: PSA Verification Service Indicator</li>
            <li pn="section-12.1.7-1.3">JWT Claim Name: N/A</li>
            <li pn="section-12.1.7-1.4">Claim Key: 2400</li>
            <li pn="section-12.1.7-1.5">Claim Value Type(s): text string</li>
            <li pn="section-12.1.7-1.6">Change Controller: Hannes Tschofenig</li>
            <li pn="section-12.1.7-1.7">Specification Document(s): <xref target="sec-verification-service-indicator" format="default" sectionFormat="of" derivedContent="Section 4.5.1"/> of RFCthis</li>
          </ul>
        </section>
      </section>
      <section anchor="sec-iana-media-types" numbered="true" removeInRFC="false" toc="include" pn="section-12.2">
        <name slugifiedName="name-media-type-registration">Media Type Registration</name>
        <t indent="0" pn="section-12.2-1">To indicate that the transmitted content is a PSA Attestation Token,
applications can use the <tt>application/eat-cwt</tt> media type defined in
<xref target="I-D.ietf-rats-eat-media-type" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat-media-type"/> with the <tt>eat_profile</tt> parameter set to
<tt>http://arm.com/psa/2.0.0</tt> (or <tt>PSA_IOT_PROFILE_1</tt> if the token is encoded
according to the old profile, see <xref target="sec-backwards-compat" format="default" sectionFormat="of" derivedContent="Section 5"/>).</t>
      </section>
      <section anchor="sec-iana-coap-content-format" numbered="true" removeInRFC="false" toc="include" pn="section-12.3">
        <name slugifiedName="name-coap-content-formats-regist">CoAP Content-Formats Registration</name>
        <t indent="0" pn="section-12.3-1">IANA is requested to register two CoAP Content-Format IDs in the "CoAP
Content-Formats" registry <xref target="IANA-CoAP-Content-Formats" format="default" sectionFormat="of" derivedContent="IANA-CoAP-Content-Formats"/>:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.3-2">
          <li pn="section-12.3-2.1">One for the <tt>application/eat-cwt</tt> media type with the <tt>eat_profile</tt> parameter
equal to <tt>http://arm.com/psa/2.0.0</tt></li>
          <li pn="section-12.3-2.2">Another for the <tt>application/eat-cwt</tt> media type with the <tt>eat_profile</tt>
parameter equal to <tt>PSA_IOT_PROFILE_1</tt></li>
        </ul>
        <section anchor="registry-contents" numbered="true" removeInRFC="false" toc="include" pn="section-12.3.1">
          <name slugifiedName="name-registry-contents">Registry Contents</name>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-12.3.1-1">
            <li pn="section-12.3.1-1.1">Media Type: <tt>application/eat-cwt; eat_profile="http://arm.com/psa/2.0.0"</tt></li>
            <li pn="section-12.3.1-1.2">Encoding: -</li>
            <li pn="section-12.3.1-1.3">Id: [[To-be-assigned by IANA]]</li>
            <li pn="section-12.3.1-1.4">Reference: RFCthis</li>
            <li pn="section-12.3.1-1.5">Media Type: <tt>application/eat-cwt; eat_profile="PSA_IOT_PROFILE_1"</tt></li>
            <li pn="section-12.3.1-1.6">Encoding: -</li>
            <li pn="section-12.3.1-1.7">Id: [[To-be-assigned by IANA]]</li>
            <li pn="section-12.3.1-1.8">Reference: RFCthis</li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references pn="section-13">
      <name slugifiedName="name-references">References</name>
      <references pn="section-13.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="COSE-ALGS" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc9053" derivedAnchor="COSE-ALGS">
          <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 indent="0">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 indent="0">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="EAN-13" target="https://www.gs1.org/standards/barcodes/ean-upc" quoteTitle="true" derivedAnchor="EAN-13">
          <front>
            <title>International Article Number - EAN/UPC barcodes</title>
            <author>
              <organization showOnFrontPage="true">GS1</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-eat" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-eat-21" derivedAnchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization showOnFrontPage="true">Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization showOnFrontPage="true">Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization showOnFrontPage="true">Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization showOnFrontPage="true">Red Hound Software, Inc.</organization>
            </author>
            <date day="30" month="June" year="2023"/>
            <abstract>
              <t indent="0">   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine how much
   it wishes to trust the entity.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-21"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-media-type" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-eat-media-type-03" derivedAnchor="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization showOnFrontPage="true">Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization showOnFrontPage="true">Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization showOnFrontPage="true">arm</organization>
            </author>
            <date day="4" month="July" year="2023"/>
            <abstract>
              <t indent="0">   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-03"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="IANA-CWT" target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry" quoteTitle="true" derivedAnchor="IANA-CWT">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-Cert-Guide" target="https://www.psacertified.org/app/uploads/2020/07/JSADEN011-PSA_Certified_Level_2_Step-by-Step-1.1-20200403.pdf" quoteTitle="true" derivedAnchor="PSA-Cert-Guide">
          <front>
            <title>PSA Certified Level 2 Step by Step Guide Version 1.1</title>
            <author>
              <organization showOnFrontPage="true">PSA Certified</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="PSA-FF" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0063-PSA_Firmware_Framework-1.0.0-2.pdf" quoteTitle="true" derivedAnchor="PSA-FF">
          <front>
            <title>Platform Security Architecture Firmware Framework 1.0 (PSA-FF)</title>
            <author>
              <organization showOnFrontPage="true">Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="PSA-SM" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0079_PSA_SM_ALPHA-03_RC01.pdf" quoteTitle="true" derivedAnchor="PSA-SM">
          <front>
            <title>Platform Security Architecture Security Model 1.0 (PSA-SM)</title>
            <author>
              <organization showOnFrontPage="true">Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="RFC2119" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc2119" derivedAnchor="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 indent="0">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" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8174" derivedAnchor="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 indent="0">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="RFC8392" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8392" derivedAnchor="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 indent="0">CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8610" derivedAnchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t indent="0">This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8949" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8949" derivedAnchor="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 indent="0">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 indent="0">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="STD96" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc9052" derivedAnchor="STD96">
          <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 indent="0">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 indent="0">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>
      </references>
      <references pn="section-13.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IANA-CoAP-Content-Formats" target="https://www.iana.org/assignments/core-parameters" quoteTitle="true" derivedAnchor="IANA-CoAP-Content-Formats">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IANA-HashFunctionTextualNames" target="https://www.iana.org/assignments/hash-function-text-names" quoteTitle="true" derivedAnchor="IANA-HashFunctionTextualNames">
          <front>
            <title>Hash Function Textual Names</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA" target="https://developer.arm.com/architectures/security-architectures/platform-security-architecture/documentation" quoteTitle="true" derivedAnchor="PSA">
          <front>
            <title>Platform Security Architecture Resources</title>
            <author>
              <organization showOnFrontPage="true">Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-API" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Implement/IHI0085-PSA_Attestation_API-1.0.2.pdf" quoteTitle="true" derivedAnchor="PSA-API">
          <front>
            <title>PSA Attestation API 1.0</title>
            <author>
              <organization showOnFrontPage="true">Arm</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="PSA-Endorsements" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-fdb-rats-psa-endorsements-02" derivedAnchor="PSA-Endorsements">
          <front>
            <title>A CoRIM Profile for Arm's Platform Security Architecture (PSA)</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization showOnFrontPage="true">Arm Ltd</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization showOnFrontPage="true">Arm Ltd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization showOnFrontPage="true">Fraunhofer SIT</organization>
            </author>
            <date day="10" month="March" year="2023"/>
            <abstract>
              <t indent="0">   PSA Endorsements include reference values, endorsed values,
   cryptographic key material and certification status information that
   a Verifier may need in order to appraise attestation Evidence
   produced by a PSA device.  This memo defines PSA Endorsements as a
   profile of the CoRIM data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fdb-rats-psa-endorsements-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="PSACertified" target="https://psacertified.org" quoteTitle="true" derivedAnchor="PSACertified">
          <front>
            <title>PSA Certified IoT Security Framework</title>
            <author>
              <organization showOnFrontPage="true">PSA Certified</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="RATS-AR4SI" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-ar4si-04" derivedAnchor="RATS-AR4SI">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization showOnFrontPage="true">Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization showOnFrontPage="true">MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization showOnFrontPage="true">Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization showOnFrontPage="true">Intel</organization>
            </author>
            <date day="2" month="March" year="2023"/>
            <abstract>
              <t indent="0">   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-04"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RATS-CoRIM" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-rats-corim-01" derivedAnchor="RATS-CoRIM">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization showOnFrontPage="true">Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization showOnFrontPage="true">arm</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization showOnFrontPage="true">arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization showOnFrontPage="true">Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <date day="9" month="March" year="2023"/>
            <abstract>
              <t indent="0">   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether 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 Concise Reference Integrity Manifests (CoRIM) that
   represent Endorsements and Reference Values in CBOR format.
   Composite devices or systems are represented by a collection of
   Concise Module Identifiers (CoMID) and Concise Software Identifiers
   (CoSWID) bundled in a CoRIM document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-01"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC9334" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc9334" derivedAnchor="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 indent="0">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="TF-M" target="https://www.trustedfirmware.org/projects/tf-m/" quoteTitle="true" derivedAnchor="TF-M">
          <front>
            <title>Trusted Firmware-M</title>
            <author>
              <organization showOnFrontPage="true">Linaro</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Veraison" target="https://github.com/veraison/psatoken" quoteTitle="true" derivedAnchor="Veraison">
          <front>
            <title>Veraison psatoken package</title>
            <author>
              <organization showOnFrontPage="true">The Veraison Project</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Xclaim" target="https://github.com/laurencelundblade/xclaim" quoteTitle="true" derivedAnchor="Xclaim">
          <front>
            <title>Xclaim</title>
            <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="example" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-example">Example</name>
      <t indent="0" pn="section-appendix.a-1">The following example shows a PSA attestation token for an hypothetical system
comprising two measured software components (a boot loader and a trusted RTOS).
The attesting device is in a lifecycle state <xref target="sec-security-lifecycle" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/> of
SECURED.  The attestation has been requested from a client residing in the
SPE:</t>
      <artwork align="left" pn="section-appendix.a-2">
{
  / eat_profile /             265: "http://arm.com/psa/2.0.0",
  / psa-client-id /          2394: 2147483647,
  / psa-security-lifecycle / 2395: 12288,
  / psa-implementation-id /  2396: h'000000000000000000000000000
0000000000000000000000000000000000000',
  / psa-boot-seed /          2397: h'0000000000000000',
  / psa-certification-reference / 2398: "1234567890123-12345",
  / psa-software-components / 2399: [
    {
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303',
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404'
    }
  ],
  / nonce /     10: h'010101010101010101010101010101010101010101
0101010101010101010101',
  / ueid /     256: h'010202020202020202020202020202020202020202
020202020202020202020202',
  / psa-vsi / 2400: "https://veraison.example/v1/challenge-respo
nse"
}
</artwork>
      <t indent="0" pn="section-appendix.a-3">The JWK representation of the IAK used for creating the COSE Sign1 signature
over the PSA token is:</t>
      <artwork align="left" pn="section-appendix.a-4">
{
  "kty": "EC",
  "crv": "P-256",
  "x": "MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
  "y": "4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
  "d": "870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE"
}

</artwork>
      <t indent="0" pn="section-appendix.a-5">The resulting COSE object is:</t>
      <artwork align="left" pn="section-appendix.a-6">
18(
  [
    / protected /   h'A10126',
    / unprotected / {},
    / payload /     h'AA1901097818687474703A2F2F61726D2E636F6D2F
7073612F322E302E3019095A1A7FFFFFFF19095B19300019095C582000000000
0000000000000000000000000000000000000000000000000000000019095D48
000000000000000019095E73313233343536373839303132332D313233343519
095F81A202582003030303030303030303030303030303030303030303030303
0303030303030305582004040404040404040404040404040404040404040404
040404040404040404040A582001010101010101010101010101010101010101
0101010101010101010101010119010058210102020202020202020202020202
02020202020202020202020202020202020202190960782E68747470733A2F2F
7665726169736F6E2E6578616D706C652F76312F6368616C6C656E67652D7265
73706F6E7365',
    / signature /   h'56F50D131FA83979AE064E76E70DC75C070B6D991A
EC08ADF9F41CAB7F1B7E2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0C
C6D0E7327831E67F32841A'
  ]
)
</artwork>
      <t indent="0" pn="section-appendix.a-7">which has the following base16 encoding:</t>
      <artwork align="left" pn="section-appendix.a-8">
d28443a10126a059013baa1901097818687474703a2f2f61726d2e636f6d
2f7073612f322e302e3019095a1a7fffffff19095b19300019095c582000
000000000000000000000000000000000000000000000000000000000000
0019095d48000000000000000019095e7331323334353637383930313233
2d313233343519095f81a202582003030303030303030303030303030303
030303030303030303030303030303030558200404040404040404040404
0404040404040404040404040404040404040404040a5820010101010101
010101010101010101010101010101010101010101010101010119010058
210102020202020202020202020202020202020202020202020202020202
02020202190960782e68747470733a2f2f7665726169736f6e2e6578616d
706c652f76312f6368616c6c656e67652d726573706f6e7365584056f50d
131fa83979ae064e76e70dc75c070b6d991aec08adf9f41cab7f1b7e2c47
f67daca8bb49e3119b7bae77aec6c89162713e0cc6d0e7327831e67f3284
1a
</artwork>
    </section>
    <section numbered="false" anchor="acknowledgments" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">Thanks to Carsten Bormann for help with the CDDL and Nicholas Wood for ideas
and comments.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact initials="L." surname="Lundblade" fullname="Laurence Lundblade">
        <organization showOnFrontPage="true">Security Theory LLC</organization>
        <address>
          <email>lgl@securitytheory.com</email>
        </address>
      </contact>
      <contact initials="T." surname="Ban" fullname="Tamas Ban">
        <organization showOnFrontPage="true">Arm Limited</organization>
        <address>
          <email>Tamas.Ban@arm.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Trofimov" fullname="Sergei Trofimov">
        <organization showOnFrontPage="true">Arm Limited</organization>
        <address>
          <email>Sergei.Trofimov@arm.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization showOnFrontPage="true"/>
        <address>
          <email>Hannes.Tschofenig@gmx.net</email>
        </address>
      </author>
      <author initials="S." surname="Frost" fullname="Simon Frost">
        <organization showOnFrontPage="true">Arm Limited</organization>
        <address>
          <email>Simon.Frost@arm.com</email>
        </address>
      </author>
      <author initials="M." surname="Brossard" fullname="Mathias Brossard">
        <organization showOnFrontPage="true">Arm Limited</organization>
        <address>
          <email>Mathias.Brossard@arm.com</email>
        </address>
      </author>
      <author initials="A." surname="Shaw" fullname="Adrian Shaw">
        <organization showOnFrontPage="true">HP Labs</organization>
        <address>
          <email>adrianlshaw@acm.org</email>
        </address>
      </author>
      <author initials="T." surname="Fossati" fullname="Thomas Fossati">
        <organization showOnFrontPage="true">Arm Limited</organization>
        <address>
          <email>Thomas.Fossati@arm.com</email>
        </address>
      </author>
    </section>
  </back>
  <!-- ##markdown-source:
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
mgCl/pCmrGbEEWiYgosjT3WKxf8DW2rtPTygAAA=

-->

</rfc>
