<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-poirier-rats-eat-da-09" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="EAT DA">An EAT Profile for Trustworthy Device Assignment</title>
    <seriesInfo name="Internet-Draft" value="draft-poirier-rats-eat-da-09"/>
    <author fullname="Mathieu Poirier">
      <organization>Linaro</organization>
      <address>
        <email>mathieu.poirier@linaro.org</email>
      </address>
    </author>
    <author fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2026" month="May" day="28"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>attestation</keyword>
    <keyword>device assignment</keyword>
    <keyword>EAT</keyword>
    <abstract>
      <?line 69?>

<t>In confidential computing, device assignment (DA) is the method by which a device (e.g., network adapter, GPU), whether on-chip or behind a PCIe Root Port, is assigned to a Trusted Virtual Machine (TVM).
For the TVM to trust an assigned device, the device must provide the TVM with attestation Evidence confirming its identity and the state of its firmware and configuration.</t>
      <t>Since Evidence claims can be processed by 3rd party entities (e.g., Verifiers, Relying Parties) external to the TVM, there is a need to standardize the representation of DA-related information in Evidence to ensure interoperability.
This document defines an attestation Evidence format for DA as an EAT (Entity Attestation Token) profile.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rats-device-attestation.github.io/draft-poirier-rats-eat-da/draft-poirier-rats-eat-da.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-poirier-rats-eat-da/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rats-device-attestation/draft-poirier-rats-eat-da"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In confidential computing, device assignment (DA) is the method by which a device (e.g., network adapter, GPU), whether on-chip or behind a PCIe Root Port, is assigned to a Trusted Virtual Machine (TVM).
Most confidential computing platforms (e.g., Arm CCA, AMD SEV-SNP, Intel TDX) provide DA capabilities.
Such capabilities prevent execution environments or software components that are untrusted by the TVM (including other TVMs and the host hypervisor) from accessing or controlling a device that has been assigned to the TVM.
This includes, for example, protection of device MMIO interfaces and device caches.
From a trust perspective, DA allows a device to be included in the TVM's Trusted Computing Base (TCB).
For the TVM to trust the device, the device must provide the TVM with attestation Evidence confirming its identity and the state of its firmware and configuration.</t>
      <t>This document defines an attestation Evidence format for DA as an EAT <xref target="RFC9711"/> profile.
The format is designed to be generic, extensible and architecture-agnostic.
Ongoing work on DA concentrates on PCIe devices that support the SPDM protocol <xref target="SPDM"/>.
As such, this document focuses on establishing the overall framework and formalizing an Evidence format for SPDM-compliant devices.
This format is based on the information provided by the SPDM protocol without imposing additional security constraints.
It is incumbent upon other entities to describe, select and enforce those additional security constraints based on operational requirements.</t>
      <t>Since other bus architectures and protocols are expected to be supported as the technology gains wider adoption, provisions have been made for the definition of other Evidence formats such as Compute Express Link (CXL) and the Coherent Hub Interface (CHI).
This list is by no means exhaustive and is expected to expand.
<xref target="extend"/> outlines the requirements for incorporating new bus technologies into the DAT framework.
Lastly, live migration of a TVM from one host to another is currently not addressed by the SPDM specification and therefore not covered herein.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="dat-claims">
      <name>Device Assignment Token (DAT) Claims</name>
      <t>The Device Assignment Token (DAT) is the encompassing envelope for the individual device claims to be presented.
A DAT can be used as a standalone entity but can also be embedded in a larger, platform-specific attestation token.
A DAT consists of an EAT profile identifier, a nonce and an EAT submodule (<xref section="4.2.18" sectionFormat="of" target="RFC9711"/>) that contains any number of individual device claims.
Each individual device claim is the combination of a device name and a standard claims format based on the bus or protocol the device supports.
The syntax of the device name depends on the type of bus or protocol used.
Each name consists of two parts joined by a semicolon: a namespace and a bus-specific name.
See <xref target="spdm-submod-name"/> for SPDM devices, and <xref target="pcie-legacy-submod-name"/> for legacy PCIe devices.
As previously mentioned, this draft currently defines the claims set for SPDM compliant devices and PCIe legacy devices that do not support the SPDM protocol.
Careful condideration was also given to the overall design in order to leave room for future expansion.</t>
      <sourcecode type="cddl"><![CDATA[
dat = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device#1.0.0"
  &(eat_nonce: 10) => bytes .size 64
  &(eat_submods: 266) => {
    + device-name => $device-claims-set
  }
}

device-name = text

$device-claims-set /= spdm-claims
$device-claims-set /= pcie-legacy-claims
]]></sourcecode>
      <section anchor="spdm-claims">
        <name>SPDM Claims</name>
        <t>A SPDM claim instance is expected to be present for each SPDM compatible device to be attested.
Each instance consists of a measurements section, a certificates section, or both.
These can be supplemented with two additional sections: (1) a challenge for Component Mesaurement and Authentication (CMA) scenarios and (2) a device interface report that contains information from the TEE Device Information Security Protocol (TDISP) Device Interface Report.
A challenge needs certificate information from the certificate section and as such, can only be present if certificates are included in the SPDM artifacts.
TDISP messages are embedded in the VENDOR_DEFINED_REQUEST and VENDOR_DEFINED_RESPONSE messages of the SPDM protocol.
Optionally, the Negotiated State preamble (version, capabilities and algorithms) bytes can be included to present the full negotiated state between the SPDM requester and responder.</t>
        <sourcecode type="cddl"><![CDATA[
spdm-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-spdm#1.0.0"
  spdm-artefacts
  ? &(vca: 3804) => bytes
}

spdm-artefacts //= (
  &(measurements: 3802) => spdm-measurements
  &(certificates: 3803) => spdm-certificates
  ? &(challenge: 3807) => spdm-signature
  ? &(device-interface-report: 3808) => tdisp-device-interface-report
)

spdm-artefacts //= (
  &(measurements: 3802) => spdm-measurements
  ? &(device-interface-report: 3808) => tdisp-device-interface-report
)

spdm-artefacts //= (
  &(certificates: 3803) => spdm-certificates
  ? &(challenge: 3807) => spdm-signature
  ? &(device-interface-report: 3808) => tdisp-device-interface-report
)
]]></sourcecode>
        <section anchor="spdm-measurements">
          <name>Measurements Claim</name>
          <t>There can be up to 239 measurements per device with the entire measurement log optionally signed by the certificate populated in one of the 8 certificate slots.
It should be noted that measurements formalized herein follow the DMTF measurement specification.</t>
          <sourcecode type="cddl"><![CDATA[
spdm-measurements = {
  + block-id => spdm-measurement
  ? "signature" => spdm-signature
}

block-id = 1..239
]]></sourcecode>
          <section anchor="measurement">
            <name>Measurement</name>
            <t>SPDM measurements start with a component type that reflects one of the 10 categories defined by the SPDM specification.
Following is the measurement itself represented by either a raw bitstream or a digest.
The size of the digest value is derived from the measurement hash algorithm conveyed by the SPDM ALGORITHMS message response.</t>
            <sourcecode type="cddl"><![CDATA[
spdm-measurement = {
  &(component-type: 1) => component-type
  measurement
}

measurement //= ( &(digest-measurement: 2) => digest-measurement )
measurement //= ( &(raw-measurement: 3) => raw-measurement )

component-type /= &(immutable-rom: 0)
component-type /= &(mutable-firmware: 1)
component-type /= &(hardware-config: 2)
component-type /= &(firmware-config: 3)
component-type /= &(freeform-measurement-manifest: 4)
component-type /= &(device-mode: 5)
component-type /= &(mutable-firmware-version: 6)
component-type /= &(mutable-firmware-svn: 7)
component-type /= &(hash-extend-measurement: 8)
component-type /= &(informational: 9)
component-type /= &(structured-measurement-manifest: 10)

raw-measurement = bytes
digest-measurement = digest

digest = [
  alg: uint / text
  val: bytes
]
]]></sourcecode>
          </section>
        </section>
        <section anchor="spdm-challenge">
          <name>SPDM Challenge Claim</name>
          <t>SPDM compliant devices can optionally support the capability to authenticate responders through the challenge-response protocol and sign measurements.
Included in the signature are all the elements needed by a third party entity to reconstruct the original transcript or measurement log signed by the device.
Those elements include M1 for challenge signatures or L1 for measurement signatures (see CDDL below), the combined SPDM prefix, the hash algorithm used to generate a digest of the measurement log and nonces provided by the requester and responder.
The slot number of the leaf certificate used to sign the measurement log is also provided.</t>
          <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

;
; What follows is based on SPDM v1.3.2 (DSP0274_1.3.2.pdf)
;

;
; Algorithms currently supported by SPDM.
; See "MeasurementHashAlgo", table 21, page 79.
;
hash-algorithm-type /= &(tpm_alg_sha_256: 0)
hash-algorithm-type /= &(tpm_alg_sha_384: 2)
hash-algorithm-type /= &(tpm_alg_sha_512: 4)
hash-algorithm-type /= &(tpm_alg_sha3_256: 8)
hash-algorithm-type /= &(tpm_alg_sha3_384: 16)
hash-algorithm-type /= &(tpm_alg_sha3_512: 32)
hash-algorithm-type /= &(tpm_alg_sm3_256: 64)

;
; See signature generation and verification algorithms for
; CHALLENGE_AUTH message on page 108.
;
; M1 is _one_ of the following:
;
; M1 /= GET_VERSION , GET_CAPABILITIES , NEGOTIATE_ALGORITHMS , \
               GET_DIGESTS , GET_CERTIFICATE , CHALLENGE (A1, B1, C1)
; M1 /= GET_VERSION , GET_CAPABILITIES , NEGOTIATE_ALGORITHMS , \
                                 GET_DIGESTS , CHALLENGE (A1, B3, C1)
; M1 /= GET_VERSION , GET_CAPABILITIES , NEGOTIATE_ALGORITHMS , \
                             GET_CERTIFICATE , CHALLENGE (A1, B4, C1)
; M1 /= GET_VERSION , GET_CAPABILITIES , NEGOTIATE_ALGORITHMS , \
                                               CHALLENGE (A1, B2, C1)
; M1 /= GET_DIGESTS , GET_CERTIFICATE , CHALLENGE (A2, B1, C1)
; M1 /= GET_DIGESTS , CHALLENGE (A2, B3, C1)
; M1 /= GET_CERTIFICATE , CHALLENGE (A2, B4, C1)
; M1 /= CHALLENGE (A2, B2, C1)
;
; See signature generation and verification algorithms for
; MEASUREMENTS messages on page 126.
;
; L1 = Concatenate(VCA, GET_MEASUREMENTS_REQUEST1,
;               MEASUREMENTS_RESPONSE1, ...,
;               GET_MEASUREMENTS_REQUESTn-1,
;               MEASUREMENTS_RESPONSEn-1,
;               GET_MEASUREMENTS_REQUESTn, MEASUREMENTS_RESPONSEn)
;
spdm-signature = {
   &(slot: 1) => 0..7, ; Slot of the certificate chain used to
                       ; authenticate the measurement.  Default
                       ; should be 0.
   &(requester-nonce: 2) => bytes .size 32,
   &(responder-nonce: 3) => bytes .size 32,
   &(combined-spdm-prefix: 4) => bytes .size 100,
   &(IL1: 5) => bytes, ; M1 or L1 (see comment above)
   &(base-hash-algo: 6) => hash-algorithm-type,
   &(signature: 7) => bytes
}
]]></sourcecode>
        </section>
        <section anchor="spdm-certificates">
          <name>Certificate Claims</name>
          <t>According to the specification, SPDM compliant devices should support at most 8 slots, with slot 0 populated by default.
Slot 0 <bcp14>SHALL</bcp14> contain a certificate chain that follows the Device certificate model or the Alias certificate model.
Regardless of the certificate model used, a certificate chain comprises one or more DER-encoded X.509 v3 certificates <xref target="RFC5280"/>.
The certificates <bcp14>MUST</bcp14> be concatenated with no intermediate padding.</t>
          <sourcecode type="cddl"><![CDATA[
spdm-certificates = {
  default-cert-slot => cert-chain
  ? aux-cert-slot-1 => cert-chain
  ? aux-cert-slot-2 => cert-chain
  ? aux-cert-slot-3 => cert-chain
  ? aux-cert-slot-4 => cert-chain
  ? aux-cert-slot-5 => cert-chain
  ? aux-cert-slot-6 => cert-chain
  ? aux-cert-slot-7 => cert-chain
}

; ASN.1 DER-encoded certificates concatenated with no intermediate
; padding.
cert-chain = bytes

default-cert-slot = 0

aux-cert-slot-1 = 1
aux-cert-slot-2 = 2
aux-cert-slot-3 = 3
aux-cert-slot-4 = 4
aux-cert-slot-5 = 5
aux-cert-slot-6 = 6
aux-cert-slot-7 = 7
]]></sourcecode>
        </section>
        <section anchor="interface-report">
          <name>TDISP Device Interface Report</name>
          <t>A TDISP Device Interface Report can only be obtained if the device interface has transitioned to the CONFIG_LOCK or RUN state of the TDISP state machine.</t>
          <t>It begins with various bitfields indicating the state and characteristics of the PCIe device interface.
Next are 3 register fields pertaining to MSI-X (Message Signalled Interrupts), LNR (Lightweight Notification Requester) and TPH (TLP Processing Hints) capabilities.
MMIO ranges are assigned from PCIe BAR(s) and provide information about the memory areas a device is working with.
More information on the MMIO range bitfields and the ones defined as part of the device interface field (above) can be found in the TDISP section of the PCI Express specification.
The last field is device-specific and optionally included to convey additional configuration information about the device.</t>
          <sourcecode type="cddl"><![CDATA[
tdisp-device-interface-report = {
  ? &(interface-info: 1) => interface-info-bits
  ? &(msi-x-message-control: 2) => bytes .size 2
  ? &(lnr-control: 2) => bytes .size 2
  ? &(tph-control: 3) => bytes .size 4
  ? &(mmio-ranges: 4) => mmio-ranges
  ? &(device-specific-info: 5) => bytes
}

interface-info-bits = bytes .bits interface-info-flags
interface-info-flags = &(bit0: 0,
                         bit1: 1,
                         bit2: 2,
                         bit3: 3,
                         bit4: 4,
                         bit5: 5,
                        )

mmio-ranges = {
  + &(mmio-range: 1) => mmio-range
}

mmio-range = {
  &(first-4k-page: 1) => bytes .size 8
  &(number-of-4k-pages: 2) => bytes .size 4
  &(attributes: 3) => range-attributes
}

range-attributes = {
  &(range-attribute-bits: 1) => range-attribute-bits
  &(range-attribute-range-id: 2) => bytes .size 2
}

range-attribute-bits = bytes .bits range-attributes-flags
range-attributes-flags = &(bit0: 0,
                           bit1: 1,
                           bit2: 2,
                           bit3: 3,
                          )
]]></sourcecode>
        </section>
        <section anchor="spdm-vca">
          <name>Negotiated State Preamble (Version, Capabilities and Algorithms)</name>
          <t>The Negotiated State Preamble (i.e., <tt>vca</tt>) claim contains the concatenation of messages GET_VERSION, VERSION, GET_CAPABILITIES, CAPABILITIES, NEGOTIATE_ALGORITHMS, and ALGORITHMS last exchanged between the SPDM Requester and Responder.</t>
        </section>
        <section anchor="spdm-submod-name">
          <name>Submodule Naming</name>
          <t>The namespace used for SPDM submodules is "spdm".</t>
          <t>The name associated with an SPDM submodule is extracted from the leaf certificate of the relevant device.</t>
          <ul spacing="normal">
            <li>
              <t>If the leaf certificate contains a Subject Alternative Name of type DMTFOtherName, the submodule name is the value contained in <tt>ub-DMTF-device-info</tt>.
For example: "spdm:ACME:WIDGET:0123456789".</t>
            </li>
            <li>
              <t>Otherwise, the submod name is the string representation of the certificate Subject, as described in <xref target="RFC4514"/>.
For example: "spdm:C=CA,O=ACME,OU=Widget,CN=0123456789".</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="pcie-legacy-device">
        <name>PCIe Legacy Device Claims</name>
        <t>The definition of a device claims set for PCIe legacy devices that do not implement the extensions needed to attest for their provenance and configuration is provided, making it is possible to keep using current assets as secures ones are being provisioned.
This legacy device claims set simply mirrors the type 0/1 common registers of the PCIe configuration space, mandating only that the vendor and device identification code be provided.
Other fields of the configuration space header may optionally be included should they add value.
A binary format of the PCIe configuration space is made available for processing by existing PCIe configuration space tools.
Implementers may optionally choose to include both text and binary versions should there be a use case to support this representation.</t>
        <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

pcie-legacy-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-pcie-legacy#1.0\
                                                                  .0"
  pcie-legacy-artefacts
  ? $$pcie-legacy-claim-extension
}


pcie-legacy-artefacts //= (
  &(artefacts-text: 3805) => pcie-type-0-1-config-space-text
  &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes
)

pcie-legacy-artefacts //= (
  &(artefacts-text: 3805) => pcie-type-0-1-config-space-text
)

pcie-legacy-artefacts //= (
  &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes
)

pcie-type-0-1-config-space-bytes = bytes .size 256

pcie-type-0-1-config-space-text = {
  &(vendorID: 1) => bytes .size 2
  &(deviceID: 2) => bytes .size 2
  ? &(command: 3) => bytes .size 2
  ? &(status: 4) => bytes .size 2
  ? &(revisionID: 5) => bytes .size 1
  ? &(classCode: 6) => bytes .size 3
  ? &(cacheLineSize: 7) => bytes .size 1
  ? &(latencyTimer: 8) => bytes .size 1
  ? &(headerType: 9) => bytes .size 1
  ? &(BITS: 10) => bytes .size 1
}
]]></sourcecode>
        <section anchor="pcie-legacy-submod-name">
          <name>Submodule Naming</name>
          <t>The namespace used for legacy PCIe submodules is "legacy-pcie".</t>
          <t>The name is any arbitrary string chosen by the implementation.
For example, "legacy-pcie:0000:01:02.0" where "0000" is the domain, "01" the PCI bus id, "02" the device on the bus and "0" the device function.</t>
        </section>
      </section>
    </section>
    <section anchor="profile">
      <name>DAT EAT Profile</name>
      <section anchor="encoding">
        <name>Encoding</name>
        <t>A DAT is encoded in CBOR <xref target="STD94"/>.
The CBOR representation of a DAT <bcp14>MUST</bcp14> be "valid" according to the definition in <xref section="1.2" sectionFormat="of" target="STD94"/>.
Only definite-length strings, arrays, and maps are allowed.
Since a DAT emitter may be found in a constrained environment, it may not be able to emit CBOR preferred serializations (<xref section="4.1" sectionFormat="of" target="STD94"/>).
Therefore, the Verifier <bcp14>MUST</bcp14> be a variation-tolerant CBOR decoder.</t>
      </section>
      <section anchor="cryptographic-protection">
        <name>Cryptographic Protection</name>
        <t>Cryptographic protection can be obtained by wrapping the <tt>dat</tt> claims-set in a COSE Web Token (CWT) <xref target="RFC8392"/>.
In this case, the signature structure <bcp14>MUST</bcp14> be a tagged (18) COSE_Sign1.
Alternatively, a DAT can be part of a Conceptual Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/> collection.
In this case, the DAT claims-set can be a UCCS <xref target="RFC9781"/> and the protection is provided by the signed CMW.</t>
        <t>The flexibility provided by the COSE <xref target="RFC9052"/> format should be sufficient to adapt to the level of cryptographic agility required for specific use cases.
It is <bcp14>RECOMMENDED</bcp14> that commonly adopted algorithms, such as those discussed in <xref target="RFC9053"/>, are used.
While receivers are expected to accept a wide range of algorithms, Attesters will produce DAT using only one such algorithm.</t>
      </section>
      <section anchor="use-with-conceptual-message-wrappers">
        <name>Use with Conceptual Message Wrappers</name>
        <t>When used in a CMW, the collector will wrap the serialised COSE_Sign1 or UCCS with the appropriate media type or CoAP Content-Format defined in <xref target="RFC9782"/>.</t>
      </section>
      <section anchor="freshness-model">
        <name>Freshness Model</name>
        <t>DAT supports the freshness models for attestation Evidence based on nonces and epoch IDs (see Section <xref target="RFC9334" section="10.2" sectionFormat="bare"/> and Section <xref target="RFC9334" section="10.3" sectionFormat="bare"/> of <xref target="RFC9334"/>) using the <tt>eat_nonce</tt> claim to convey the nonce or epoch ID supplied by the Verifier.
No further assumptions are made about the specific remote attestation protocol.</t>
        <t>Note that the use of epoch IDs is subject by the type restrictions imposed by the <tt>eat_nonce</tt> syntax.
For use in DAT, the epoch ID must be encodable as an opaque binary string of between 8 and 64 octets; an Epoclet can be used for this purpose (see <xref target="I-D.ietf-rats-epoch-markers"/>).</t>
      </section>
      <section anchor="synopsis">
        <name>Synopsis</name>
        <t><xref target="tbl-profile"/> presents a concise view of the requirements described in the preceding sections.</t>
        <table anchor="tbl-profile">
          <name>DAT Profile Synopsis</name>
          <thead>
            <tr>
              <th align="left">Issue</th>
              <th align="left">Profile Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CBOR/JSON</td>
              <td align="left">CBOR <bcp14>MUST</bcp14> be used</td>
            </tr>
            <tr>
              <td align="left">CBOR Encoding</td>
              <td align="left">Definite length maps and arrays <bcp14>MUST</bcp14> be used</td>
            </tr>
            <tr>
              <td align="left">CBOR Encoding</td>
              <td align="left">Definite length strings <bcp14>MUST</bcp14> be used</td>
            </tr>
            <tr>
              <td align="left">CBOR Serialization</td>
              <td align="left">Variant serialization <bcp14>MAY</bcp14> be used</td>
            </tr>
            <tr>
              <td align="left">COSE Protection</td>
              <td align="left">COSE_Sign1 <bcp14>MUST</bcp14> be used (directly or via CMW)</td>
            </tr>
            <tr>
              <td align="left">Algorithms</td>
              <td align="left">
                <xref target="RFC9053"/> <bcp14>SHOULD</bcp14> be used</td>
            </tr>
            <tr>
              <td align="left">Detached EAT Bundle Usage</td>
              <td align="left">Detached EAT bundles <bcp14>MUST NOT</bcp14> be sent</td>
            </tr>
            <tr>
              <td align="left">Verification Key Identification</td>
              <td align="left">Any identification method listed in <xref section="F.1" sectionFormat="of" target="RFC9711"/></td>
            </tr>
            <tr>
              <td align="left">Freshness</td>
              <td align="left">nonce or epoch ID based (Section <xref target="RFC9334" section="10.2" sectionFormat="bare"/> and Section <xref target="RFC9334" section="10.3" sectionFormat="bare"/> of <xref target="RFC9334"/>)</td>
            </tr>
            <tr>
              <td align="left">Claims</td>
              <td align="left">Those defined in <xref target="dat-claims"/>. As per general EAT rules, the receiver <bcp14>MUST NOT</bcp14> error out on claims it does not understand.</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="extend">
      <name>Extending the DAT Framework</name>
      <t>An extension to the DAT framework that introduces support for a new bus technology <bcp14>MUST</bcp14> provide the following information in a public document (e.g., an Internet-Draft):</t>
      <ul spacing="normal">
        <li>
          <t>A precise definition of the new claims-set,</t>
        </li>
        <li>
          <t>A naming convention for the <tt>submod</tt> map entry,</t>
        </li>
        <li>
          <t>The registration of any new claims with IANA.</t>
        </li>
      </ul>
      <section anchor="claims-set-definition">
        <name>Claims-set Definition</name>
        <t>The new claims-set <bcp14>MUST</bcp14> be specified clearly and unambiguously, ideally using CDDL, with a separate prose description of each claim.
The claims-set <bcp14>MUST</bcp14> include a suitable <tt>eat_profile</tt> value.</t>
        <t>See <xref target="spdm-claims"/> for the blueprint.</t>
      </section>
      <section anchor="naming-conventions-for-the-submod-key">
        <name>Naming Conventions for the <tt>submod</tt> Key</name>
        <t>A new claims-set <bcp14>MUST</bcp14> define a suitable naming convention for the <tt>submod</tt> keys associated with it.
When creating this convention, ensure that it does not clash with any existing ones.</t>
        <t>See <xref target="spdm-submod-name"/> for the blueprint.</t>
      </section>
      <section anchor="claims-registrations">
        <name>Claims Registrations</name>
        <t>A new claims-set can reuse any number of already registered claims.
If the claims-set needs to define new claims to express the desired semantics, and if these claims have generally applicable semantics, they <bcp14>SHOULD</bcp14> be registered with IANA.</t>
        <t>See <xref target="iana-claims-regs"/> for the blueprint.</t>
      </section>
    </section>
    <section anchor="collated-cddl">
      <name>Collated CDDL</name>
      <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

dat = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device#1.0.0",
  &(eat_nonce: 10) => bytes .size 64,
  &(eat_submods: 266) => {+ device-name => $device-claims-set},
}
device-name = text
$device-claims-set /= spdm-claims / pcie-legacy-claims
spdm-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-spdm#1.0.0",
  spdm-artefacts,
  ? &(vca: 3804) => bytes,
}
spdm-artefacts //= ((
        &(measurements: 3802) => spdm-measurements,
        &(certificates: 3803) => spdm-certificates,
        ? &(challenge: 3807) => spdm-signature,
        ? &(device-interface-report: 3808) => tdisp-device-interface\
                                                             -report,
      ) // (
        &(measurements: 3802) => spdm-measurements,
        ? &(device-interface-report: 3808) => tdisp-device-interface\
                                                             -report,
      ) // (
        &(certificates: 3803) => spdm-certificates,
        ? &(challenge: 3807) => spdm-signature,
        ? &(device-interface-report: 3808) => tdisp-device-interface\
                                                             -report,
      ))
spdm-measurement = {
  &(component-type: 1) => component-type,
  measurement,
}
measurement //= (&(digest-measurement: 2) => digest-measurement // &\
                             (raw-measurement: 3) => raw-measurement)
component-type /= &(immutable-rom: 0) / &(mutable-firmware: 1) / &(\
hardware-config: 2) / &(firmware-config: 3) / &(freeform-measurement\
-manifest: 4) / &(device-mode: 5) / &(mutable-firmware-version: 6) \
/ &(mutable-firmware-svn: 7) / &(hash-extend-measurement: 8) / &(\
           informational: 9) / &(structured-measurement-manifest: 10)
raw-measurement = bytes
digest-measurement = digest
digest = [
  alg: uint / text,
  val: bytes,
]
spdm-certificates = {
  default-cert-slot => cert-chain,
  ? aux-cert-slot-1 => cert-chain,
  ? aux-cert-slot-2 => cert-chain,
  ? aux-cert-slot-3 => cert-chain,
  ? aux-cert-slot-4 => cert-chain,
  ? aux-cert-slot-5 => cert-chain,
  ? aux-cert-slot-6 => cert-chain,
  ? aux-cert-slot-7 => cert-chain,
}
cert-chain = bytes
default-cert-slot = 0
aux-cert-slot-1 = 1
aux-cert-slot-2 = 2
aux-cert-slot-3 = 3
aux-cert-slot-4 = 4
aux-cert-slot-5 = 5
aux-cert-slot-6 = 6
aux-cert-slot-7 = 7
spdm-measurements = {
  + block-id => spdm-measurement,
  ? "signature" => spdm-signature,
}
block-id = 1 .. 239
hash-algorithm-type /= &(tpm_alg_sha_256: 0) / &(tpm_alg_sha_384: 2\
) / &(tpm_alg_sha_512: 4) / &(tpm_alg_sha3_256: 8) / &(\
tpm_alg_sha3_384: 16) / &(tpm_alg_sha3_512: 32) / &(tpm_alg_sm3_256\
                                                                : 64)
spdm-signature = {
  &(slot: 1) => 0 .. 7,
  &(requester-nonce: 2) => bytes .size 32,
  &(responder-nonce: 3) => bytes .size 32,
  &(combined-spdm-prefix: 4) => bytes .size 100,
  &(IL1: 5) => bytes,
  &(base-hash-algo: 6) => hash-algorithm-type,
  &(signature: 7) => bytes,
}
pcie-legacy-claims = {
  &(eat_profile: 265) => "tag:linaro.org,2025:device-pcie-legacy#1.0\
                                                                 .0",
  pcie-legacy-artefacts,
  ? $$pcie-legacy-claim-extension,
}
pcie-legacy-artefacts //= ((
        &(artefacts-text: 3805) => pcie-type-0-1-config-space-text,
        &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes,
      ) // &(artefacts-text: 3805) => pcie-type-0-1-config-space-\
text // &(artefacts-bytes: 3806) => pcie-type-0-1-config-space-bytes)
pcie-type-0-1-config-space-bytes = bytes .size 256
pcie-type-0-1-config-space-text = {
  &(vendorID: 1) => bytes .size 2,
  &(deviceID: 2) => bytes .size 2,
  ? &(command: 3) => bytes .size 2,
  ? &(status: 4) => bytes .size 2,
  ? &(revisionID: 5) => bytes .size 1,
  ? &(classCode: 6) => bytes .size 3,
  ? &(cacheLineSize: 7) => bytes .size 1,
  ? &(latencyTimer: 8) => bytes .size 1,
  ? &(headerType: 9) => bytes .size 1,
  ? &(BITS: 10) => bytes .size 1,
}
tdisp-device-interface-report = {
  ? &(interface-info: 1) => interface-info-bits,
  ? &(msi-x-message-control: 2) => bytes .size 2,
  ? &(lnr-control: 2) => bytes .size 2,
  ? &(tph-control: 3) => bytes .size 4,
  ? &(mmio-ranges: 4) => mmio-ranges,
  ? &(device-specific-info: 5) => bytes,
}
interface-info-bits = bytes .bits interface-info-flags
interface-info-flags = &(
  bit0: 0,
  bit1: 1,
  bit2: 2,
  bit3: 3,
  bit4: 4,
  bit5: 5,
)
mmio-ranges = {+ &(mmio-range: 1) => mmio-range}
mmio-range = {
  &(first-4k-page: 1) => bytes .size 8,
  &(number-of-4k-pages: 2) => bytes .size 4,
  &(attributes: 3) => range-attributes,
}
range-attributes = {
  &(range-attribute-bits: 1) => range-attribute-bits,
  &(range-attribute-range-id: 2) => bytes .size 2,
}
range-attribute-bits = bytes .bits range-attributes-flags
range-attributes-flags = &(
  bit0: 0,
  bit1: 1,
  bit2: 2,
  bit3: 3,
)
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As this specification reuses the EAT specification <xref target="RFC9711"/>, it also reuses the CWT specification <xref target="RFC8392"/>.
The security and privacy considerations of these specifications therefore apply here too.
In particular, the considerations discussed in Sections <xref target="RFC9711" section="9.1" sectionFormat="bare">Claim Trustworthiness</xref>, <xref target="RFC9711" section="9.4" sectionFormat="bare">Multiple EAT Consumers</xref> and <xref target="RFC9711" section="9.5" sectionFormat="bare">Detached EAT Bundle Digest Security Considerations</xref> of <xref target="RFC9711"/> apply fully.</t>
      <t>When DAT is an UCCS, the considerations in <xref target="RFC9781"/> also apply.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>A DAT can include a great deal of detail about the execution environment associated with the TVM and, therefore, the workload being executed within it.
This can provide insight into the type of computation being carried out by the workload.
It can also enable tracking of a given workload across multiple TVM instances in both the temporal and spatial dimensions.</t>
      <t>A DAT is usually one component of a composite evidence payload.
In such cases, multiple Verifiers may be involved in the appraisal process.
The differential encryption considerations discussed in Section <xref target="RFC9711" section="9.4" sectionFormat="bare">Multiple EAT Consumers</xref> of <xref target="RFC9711"/> therefore apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-claims-regs">
        <name>New CWT Claims Registrations</name>
        <t>IANA is requested to register the following claims in the "CBOR Web Token (CWT) Claims" registry <xref target="IANA.cwt"/>.</t>
        <section anchor="spdm-measurements-claim">
          <name> SPDM Measurements Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-measurements</t>
            </li>
            <li>
              <t>Claim Description: SPDM Measurements</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3802</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-measurements"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="spdm-certificates-claim">
          <name> SPDM Certificates Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-certificates</t>
            </li>
            <li>
              <t>Claim Description: SPDM Certificates</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3803</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-certificates"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="spdm-vca-claim">
          <name> SPDM VCA Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-vca</t>
            </li>
            <li>
              <t>Claim Description: SPDM Version, Capabilities and Algorithms</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3804</t>
            </li>
            <li>
              <t>Claim Value Type(s): bytes</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-vca"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="pcie-legacy-device-text-claim">
          <name> PCIe Legacy Device Text Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: pcie-legacy-device-text</t>
            </li>
            <li>
              <t>Claim Description: PCIe Legacy Device Textual Representation</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3805</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="pcie-legacy-device"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="pcie-legacy-device-binary-claim">
          <name> PCIe Legacy Device Binary Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: pcie-legacy-device-binary</t>
            </li>
            <li>
              <t>Claim Description: PCIe Legacy Device Binary Representation</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3806</t>
            </li>
            <li>
              <t>Claim Value Type(s): bytes</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="pcie-legacy-device"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="spdm-challenge-claim">
          <name> SPDM Challenge Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: spdm-challenge</t>
            </li>
            <li>
              <t>Claim Description: SPDM Challenge signature block</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3807</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="spdm-challenge"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="tdisp-device-interface-report">
          <name> TDISP Device Interface Report</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: tdisp-device-interface-report</t>
            </li>
            <li>
              <t>Claim Description: TDISP Device Interface Report</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 3808</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="interface-report"/> of RFCthis</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC4514">
          <front>
            <title>Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names</title>
            <author fullname="K. Zeilenga" initials="K." role="editor" surname="Zeilenga"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>The X.500 Directory uses distinguished names (DNs) as primary keys to entries in the directory. This document defines the string representation used in the Lightweight Directory Access Protocol (LDAP) to transfer distinguished names. The string representation is designed to give a clean representation of commonly used distinguished names, while being able to represent any distinguished name. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4514"/>
          <seriesInfo name="DOI" value="10.17487/RFC4514"/>
        </reference>
        <reference anchor="IANA.cwt" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9781">
          <front>
            <title>A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR Web Token Claims Sets (UCCS)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>This document defines the Unprotected CWT Claims Set (UCCS), a data format for representing a CBOR Web Token (CWT) Claims Set without protecting it by a signature, Message Authentication Code (MAC), or encryption. UCCS enables the use of CWT claims in environments where protection is provided by other means, such as secure communication channels or trusted execution environments. This specification defines a CBOR tag for UCCS and describes the UCCS format, its encoding, and its processing considerations. It also discusses security implications of using unprotected claims sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9781"/>
          <seriesInfo name="DOI" value="10.17487/RFC9781"/>
        </reference>
        <reference anchor="RFC9782">
          <front>
            <title>Entity Attestation Token (EAT) Media Types</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>The payloads used in Remote ATtestation procedureS (RATS) may require an associated media type for their conveyance, for example, when the payloads are used in RESTful APIs.</t>
              <t>This memo defines media types to be used for Entity Attestation Tokens (EATs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9782"/>
          <seriesInfo name="DOI" value="10.17487/RFC9782"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  Introducing a shared message format such as
   CMW enables consistent support for different attestation message
   types, evolving message serialization formats without breaking
   compatibility, and avoiding the need to redefine how messages are
   handled within each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
        <reference anchor="I-D.ietf-rats-epoch-markers">
          <front>
            <title>Epoch Markers</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="18" month="May" year="2026"/>
            <abstract>
              <t>   This document defines Epoch Markers as a means to establish a notion
   of freshness among actors in a distributed system.  Epoch Markers are
   similar to "time ticks" and are produced and distributed by a
   dedicated system known as the Epoch Bell.  Systems receiving Epoch
   Markers do not need to track freshness using their own understanding
   of time (e.g., via a local real-time clock).  Instead, the reception
   of a specific Epoch Marker establishes a new epoch that is shared
   among all recipients.  This document defines Epoch Marker types,
   including CBOR time tags, RFC 3161 TimeStampToken, and nonce-like
   structures.  It also defines a CWT Claim to embed Epoch Markers in
   RFC 8392 CBOR Web Tokens, which serve as vehicles for signed protocol
   messages.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-epoch-markers-04"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SPDM" target="https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.2.pdf">
          <front>
            <title>Security Protocol and Data Model (SPDM) Specification Version: 1.3.2</title>
            <author>
              <organization>DMTF</organization>
            </author>
            <date year="2024" month="August" day="21"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 777?>

<section anchor="examples">
      <name>Examples</name>
      <sourcecode type="cbor-diag"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  / profile / 265: "tag:linaro.org,2025:device#1.0.0",
  / nonce / 10: h'\
f9efc3341597f75f8d94432ad39566a8c5704b2004ba001c094f475bfc057f9f25d7\
       aa40cd86cd30ebaae746fb19f008c1e6a1f23ad6a178e18dceda918f7f6e',
  / submods / 266: {
    "spdm:ACME:WIDGET-A:0123456789": {
      / profile / 265: "tag:linaro.org,2025:device-spdm#1.0.0",
      / measurements / 0x0eda: {
        1: {
          / component-type /  1: 2, / hardware config /
          / raw-measurement / 3: h'4f6d616861'
        }
      },
      / certificates / 0x0edb: {
        / device certs / 0: h'\
                          676f616e6e61747261646974696f6e6d6f6e676572'
        / no aux certs /
      }
    },
    "spdm:C=CA,O=ACME,OU=Widget-B,CN=9876543210": {
      / profile / 265: "tag:linaro.org,2025:device-spdm#1.0.0",
      / measurements / 0x0eda: {
        1: {
          / component-type / 1: 1, / mutable firmware /
          / digest-measurement / 2: [
            / alg / 1,
            / val / h'6b656e6e656c6c79'
          ]
        },
        6: {
          / component-type / 1: 2, / hardware config /
          / digest measurement / 2: [
            / alg / 0,
            / val / h'756e646572637279'
          ]
        }
      },
      / certificates / 0x0edb: {
        / device certs / 0: h'61746865697A656178696C6C6172',
        / aux certs (slot=2) / 2: h'23451576923AE99106783948598A'
      }
    }
  }
}
]]></sourcecode>
    </section>
    <section anchor="example-composite-device">
      <name>Example Composite Device</name>
      <t><xref target="fig-ratsd"/> shows an example of the composite device described in <xref section="3.3" sectionFormat="of" target="RFC9334"/> within a confidential computing environment.
In this setup, a Trusted Virtual Machine (TVM) executes on a Confidential Platform, which provides the confidential computing environment.
One or more devices (e.g., a GPU) are assigned to the TVM.</t>
      <t>Within the TVM, a Lead Attester agent, e.g., a userland daemon, can collect Evidence from the Confidential Platform, as well as from all the assigned devices, using the relevant ABI offered by the guest OS kernel.</t>
      <figure anchor="fig-ratsd">
        <name>Confidential VM with Trusted Device(s)</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="424" viewBox="0 0 424 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,112 L 8,576" fill="none" stroke="black"/>
              <path d="M 32,160 L 32,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 32,560" fill="none" stroke="black"/>
              <path d="M 48,208 L 48,240" fill="none" stroke="black"/>
              <path d="M 48,304 L 48,336" fill="none" stroke="black"/>
              <path d="M 48,448 L 48,496" fill="none" stroke="black"/>
              <path d="M 80,248 L 80,296" fill="none" stroke="black"/>
              <path d="M 80,344 L 80,440" fill="none" stroke="black"/>
              <path d="M 112,72 L 112,200" fill="none" stroke="black"/>
              <path d="M 144,248 L 144,296" fill="none" stroke="black"/>
              <path d="M 144,344 L 144,416" fill="none" stroke="black"/>
              <path d="M 176,208 L 176,240" fill="none" stroke="black"/>
              <path d="M 176,304 L 176,336" fill="none" stroke="black"/>
              <path d="M 176,448 L 176,496" fill="none" stroke="black"/>
              <path d="M 192,160 L 192,368" fill="none" stroke="black"/>
              <path d="M 192,400 L 192,424" fill="none" stroke="black"/>
              <path d="M 192,440 L 192,560" fill="none" stroke="black"/>
              <path d="M 216,160 L 216,368" fill="none" stroke="black"/>
              <path d="M 216,400 L 216,424" fill="none" stroke="black"/>
              <path d="M 216,440 L 216,560" fill="none" stroke="black"/>
              <path d="M 232,144 L 232,160" fill="none" stroke="black"/>
              <path d="M 232,288 L 232,336" fill="none" stroke="black"/>
              <path d="M 232,416 L 232,448" fill="none" stroke="black"/>
              <path d="M 248,128 L 248,144" fill="none" stroke="black"/>
              <path d="M 264,344 L 264,416" fill="none" stroke="black"/>
              <path d="M 344,288 L 344,336" fill="none" stroke="black"/>
              <path d="M 360,160 L 360,368" fill="none" stroke="black"/>
              <path d="M 376,144 L 376,352" fill="none" stroke="black"/>
              <path d="M 376,416 L 376,448" fill="none" stroke="black"/>
              <path d="M 392,128 L 392,336" fill="none" stroke="black"/>
              <path d="M 392,400 L 392,560" fill="none" stroke="black"/>
              <path d="M 416,112 L 416,576" fill="none" stroke="black"/>
              <path d="M 56,32 L 168,32" fill="none" stroke="black"/>
              <path d="M 56,64 L 168,64" fill="none" stroke="black"/>
              <path d="M 24,96 L 400,96" fill="none" stroke="black"/>
              <path d="M 248,128 L 392,128" fill="none" stroke="black"/>
              <path d="M 232,144 L 376,144" fill="none" stroke="black"/>
              <path d="M 32,160 L 192,160" fill="none" stroke="black"/>
              <path d="M 216,160 L 360,160" fill="none" stroke="black"/>
              <path d="M 48,208 L 176,208" fill="none" stroke="black"/>
              <path d="M 48,240 L 176,240" fill="none" stroke="black"/>
              <path d="M 232,288 L 344,288" fill="none" stroke="black"/>
              <path d="M 48,304 L 176,304" fill="none" stroke="black"/>
              <path d="M 48,336 L 176,336" fill="none" stroke="black"/>
              <path d="M 232,336 L 344,336" fill="none" stroke="black"/>
              <path d="M 376,336 L 392,336" fill="none" stroke="black"/>
              <path d="M 360,352 L 376,352" fill="none" stroke="black"/>
              <path d="M 32,368 L 72,368" fill="none" stroke="black"/>
              <path d="M 88,368 L 136,368" fill="none" stroke="black"/>
              <path d="M 152,368 L 192,368" fill="none" stroke="black"/>
              <path d="M 216,368 L 256,368" fill="none" stroke="black"/>
              <path d="M 272,368 L 360,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 72,400" fill="none" stroke="black"/>
              <path d="M 88,400 L 136,400" fill="none" stroke="black"/>
              <path d="M 152,400 L 192,400" fill="none" stroke="black"/>
              <path d="M 216,400 L 256,400" fill="none" stroke="black"/>
              <path d="M 272,400 L 392,400" fill="none" stroke="black"/>
              <path d="M 232,416 L 256,416" fill="none" stroke="black"/>
              <path d="M 272,416 L 376,416" fill="none" stroke="black"/>
              <path d="M 160,432 L 248,432" fill="none" stroke="black"/>
              <path d="M 48,448 L 176,448" fill="none" stroke="black"/>
              <path d="M 232,448 L 376,448" fill="none" stroke="black"/>
              <path d="M 48,496 L 176,496" fill="none" stroke="black"/>
              <path d="M 32,560 L 192,560" fill="none" stroke="black"/>
              <path d="M 216,560 L 392,560" fill="none" stroke="black"/>
              <path d="M 24,592 L 400,592" fill="none" stroke="black"/>
              <path d="M 56,32 C 47.16936,32 40,39.16936 40,48" fill="none" stroke="black"/>
              <path d="M 168,32 C 176.83064,32 184,39.16936 184,48" fill="none" stroke="black"/>
              <path d="M 56,64 C 47.16936,64 40,56.83064 40,48" fill="none" stroke="black"/>
              <path d="M 168,64 C 176.83064,64 184,56.83064 184,48" fill="none" stroke="black"/>
              <path d="M 24,96 C 15.16936,96 8,103.16936 8,112" fill="none" stroke="black"/>
              <path d="M 400,96 C 408.83064,96 416,103.16936 416,112" fill="none" stroke="black"/>
              <path d="M 160,432 C 151.16936,432 144,424.83064 144,416" fill="none" stroke="black"/>
              <path d="M 248,432 C 256.83064,432 264,424.83064 264,416" fill="none" stroke="black"/>
              <path d="M 24,592 C 15.16936,592 8,584.83064 8,576" fill="none" stroke="black"/>
              <path d="M 400,592 C 408.83064,592 416,584.83064 416,576" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="272,344 260,338.4 260,349.6" fill="black" transform="rotate(270,264,344)"/>
              <polygon class="arrowhead" points="152,344 140,338.4 140,349.6" fill="black" transform="rotate(270,144,344)"/>
              <polygon class="arrowhead" points="152,296 140,290.4 140,301.6" fill="black" transform="rotate(90,144,296)"/>
              <polygon class="arrowhead" points="152,248 140,242.4 140,253.6" fill="black" transform="rotate(270,144,248)"/>
              <polygon class="arrowhead" points="120,200 108,194.4 108,205.6" fill="black" transform="rotate(90,112,200)"/>
              <polygon class="arrowhead" points="120,72 108,66.4 108,77.6" fill="black" transform="rotate(270,112,72)"/>
              <polygon class="arrowhead" points="88,440 76,434.4 76,445.6" fill="black" transform="rotate(90,80,440)"/>
              <polygon class="arrowhead" points="88,344 76,338.4 76,349.6" fill="black" transform="rotate(270,80,344)"/>
              <polygon class="arrowhead" points="88,296 76,290.4 76,301.6" fill="black" transform="rotate(90,80,296)"/>
              <polygon class="arrowhead" points="88,248 76,242.4 76,253.6" fill="black" transform="rotate(270,80,248)"/>
              <g class="text">
                <text x="84" y="52">Verifier</text>
                <text x="128" y="52">/</text>
                <text x="148" y="52">RP</text>
                <text x="60" y="132">Attester</text>
                <text x="56" y="180">TVM</text>
                <text x="260" y="180">Assigned</text>
                <text x="324" y="180">Device</text>
                <text x="76" y="228">Lead</text>
                <text x="132" y="228">Attester</text>
                <text x="268" y="308">Device</text>
                <text x="80" y="324">Guest</text>
                <text x="132" y="324">Kernel</text>
                <text x="276" y="324">Attester</text>
                <text x="292" y="436">Host</text>
                <text x="340" y="436">Kernel</text>
                <text x="92" y="468">Platform</text>
                <text x="92" y="484">Attester</text>
                <text x="92" y="532">Confidential</text>
                <text x="264" y="532">Untrusted</text>
                <text x="76" y="548">Platform</text>
                <text x="260" y="548">Platform</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
      .---------------.
     | Verifier / RP   |
      '---------------'
              ^
  .-----------+------------------------------------.
 |            |                                     |
 |  Attester  |                .-----------------.  |
 |            |              .-+---------------. |  |
 |  .---------+---------.  .-+---------------. | |  |
 |  | TVM     |         |  | Assigned Device | | |  |
 |  |         v         |  |                 | | |  |
 |  | .---------------. |  |                 | | |  |
 |  | | Lead Attester | |  |                 | | |  |
 |  | '---------------' |  |                 | | |  |
 |  |     ^       ^     |  |                 | | |  |
 |  |     |       |     |  |                 | | |  |
 |  |     v       v     |  | .-------------. | | |  |
 |  | .---+-------+---. |  | | Device      | | | |  |
 |  | | Guest Kernel  | |  | | Attester    | | | |  |
 |  | '---------------' |  | '-------------' | +-'  |
 |  |     ^       ^     |  |     ^           +-'    |
 |  '-----|-------|-----'  '-----|-----------'      |
 |        |       |              |                  |
 |  .-----|-------|-----.  .-----|---------------.  |
 |  |     |       |     |  | .---|-------------. |  |
 |  |     v        '---------+--'  Host Kernel | |  |
 |  | .---------------. |  | '-----------------' |  |
 |  | | Platform      | |  |                     |  |
 |  | | Attester      | |  |                     |  |
 |  | '---------------' |  |                     |  |
 |  |                   |  |                     |  |
 |  | Confidential      |  | Untrusted           |  |
 |  | Platform          |  | Platform            |  |
 |  '-------------------'  '---------------------'  |
 |                                                  |
  '------------------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>When a challenger (i.e., a Verifier or a Relying Party) requests Evidence from the TVM, the Lead Attester broadcasts the received nonce to all the sub-Attesters, obtains Evidence from each of them and assembles the composite Evidence using a CMW Collection (Section 3.3 of <xref target="I-D.ietf-rats-msg-wrap"/>).
It then signs the composite Evidence using its key material as shown in <xref target="fig-ratsd-token"/>.</t>
      <t>The claims obtained by the assigned devices are repackaged into DAT submods, which are then signed as part of the CMW collection using the Lead Attester key.</t>
      <figure anchor="fig-ratsd-token">
        <name>Composite Attestation Evidence</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="560" viewBox="0 0 560 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 72,80 L 72,240" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,72" fill="none" stroke="black"/>
              <path d="M 120,88 L 120,152" fill="none" stroke="black"/>
              <path d="M 120,168 L 120,232" fill="none" stroke="black"/>
              <path d="M 120,248 L 120,272" fill="none" stroke="black"/>
              <path d="M 144,64 L 144,112" fill="none" stroke="black"/>
              <path d="M 144,144 L 144,192" fill="none" stroke="black"/>
              <path d="M 144,224 L 144,256" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,112" fill="none" stroke="black"/>
              <path d="M 272,144 L 272,192" fill="none" stroke="black"/>
              <path d="M 272,224 L 272,256" fill="none" stroke="black"/>
              <path d="M 296,48 L 296,232" fill="none" stroke="black"/>
              <path d="M 296,248 L 296,272" fill="none" stroke="black"/>
              <path d="M 320,176 L 320,304" fill="none" stroke="black"/>
              <path d="M 552,176 L 552,304" fill="none" stroke="black"/>
              <path d="M 120,48 L 296,48" fill="none" stroke="black"/>
              <path d="M 144,64 L 272,64" fill="none" stroke="black"/>
              <path d="M 72,80 L 136,80" fill="none" stroke="black"/>
              <path d="M 144,112 L 272,112" fill="none" stroke="black"/>
              <path d="M 144,144 L 272,144" fill="none" stroke="black"/>
              <path d="M 56,160 L 136,160" fill="none" stroke="black"/>
              <path d="M 320,176 L 552,176" fill="none" stroke="black"/>
              <path d="M 144,192 L 272,192" fill="none" stroke="black"/>
              <path d="M 144,224 L 272,224" fill="none" stroke="black"/>
              <path d="M 72,240 L 136,240" fill="none" stroke="black"/>
              <path d="M 144,256 L 272,256" fill="none" stroke="black"/>
              <path d="M 120,272 L 296,272" fill="none" stroke="black"/>
              <path d="M 320,304 L 552,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="144,240 132,234.4 132,245.6" fill="black" transform="rotate(0,136,240)"/>
              <polygon class="arrowhead" points="144,160 132,154.4 132,165.6" fill="black" transform="rotate(0,136,160)"/>
              <polygon class="arrowhead" points="144,80 132,74.4 132,85.6" fill="black" transform="rotate(0,136,80)"/>
              <g class="text">
                <text x="184" y="36">signed-cbor-cmw</text>
                <text x="172" y="84">Lead</text>
                <text x="228" y="84">Attester</text>
                <text x="188" y="100">Evidence</text>
                <text x="24" y="164">nonce</text>
                <text x="188" y="164">Platform</text>
                <text x="188" y="180">Evidence</text>
                <text x="376" y="196">eat_profile</text>
                <text x="368" y="212">eat_nonce</text>
                <text x="356" y="228">submod</text>
                <text x="392" y="228">{</text>
                <text x="168" y="244">DAT</text>
                <text x="280" y="244">-</text>
                <text x="296" y="244">-</text>
                <text x="312" y="244">-</text>
                <text x="384" y="244">"spdm:A":</text>
                <text x="432" y="244">{</text>
                <text x="456" y="244">...</text>
                <text x="480" y="244">}</text>
                <text x="412" y="260">"legacy-pcie:B":</text>
                <text x="488" y="260">{</text>
                <text x="512" y="260">...</text>
                <text x="536" y="260">}</text>
                <text x="384" y="276">"spdm:C":</text>
                <text x="432" y="276">{</text>
                <text x="456" y="276">...</text>
                <text x="480" y="276">}</text>
                <text x="336" y="292">}</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                signed-cbor-cmw
               .---------------------.
               |  .---------------.  |
         .------->| Lead Attester |  |
         |     |  | Evidence      |  |
         |     |  '---------------'  |
         |     |                     |
         |     |  .---------------.  |
 nonce --+------->| Platform      |  |
         |     |  | Evidence      |  |  .----------------------------.
         |     |  '---------------'  |  | eat_profile                |
         |     |                     |  | eat_nonce                  |
         |     |  .---------------.  |  | submod {                   |
         '------->| DAT           +- - -+   "spdm:A": { ... }        |
               |  '---------------'  |  |   "legacy-pcie:B": { ... } |
               '---------------------'  |   "spdm:C": { ... }        |
                                        | }                          |
                                        '----------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>The Veraison project's <tt>ratsd</tt> daemon is an example of this behaviour.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you
Basma El Gaabouri,
James Bottomley,
Jon Lange,
Lukas Wunner,
Roksana Golizadeh Mojarad,
Simon Frost
and
Yousuf Sait
for your comments and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ef18195pM5KZkdDSfvxexY2/2WsaWG1CGNjN5bDG4iG/WostHtRV5QrdTkfX
ODru4l4iA0ByAV+zxUVmFbTJLudRdKMaXAttgVamc3BvgQ3UKCHdSzZPuLOw
3XiZyT20pqV0EGD5kfA4wHWjmELR9NlMYfPeXHZYpOfA2OLoNsEIhT12rjTZ
p0DmWcfyyozoXApnt+1c8kM+09Ze8+JRgOan1Dac0vyY2IacUfSwPgMeAKpJ
9XHbuVAT2HgGGExSw73cBnJvsxYPJELscxCTIvscoygODi9aeCSNJuuf29ud
fXGzWfSY39+3MFIdg6Ouil0mgqIBRnRMYkSOPtQIIz5goEBzdG3hCUc4qXqM
7eZ41WoS06MWzQG6HfAHDYS8SnLxJX/e6j4L0XsWYvNZiK1nIbafhdh5FmK3
BAE8Dsbz5Wm7W5irAt2eJT80kU1A3na2Z3ZqSC46mPhRorLoOhW6ip5ToSTm
+pRpJ7acCrXEtlOhj9hxKhQRu7lo4NOZJQdLICXK3l86M3y6kn1wFI1wJeNu
uXBen5+WYYgqbXR9PsA2gmd4dvrm6O2n47Phn3B1Xbw/zSMv6eyMUOCiGUcH
w2o4SqHTCYejwbzd4GHdIkGf4dhXgZdQMIPLoVl5MCcFb04lJgSA2YAxkZlI
sA7dc6Tbzqn6wpFFm7AJnfi0I9U9wOYPh6xl6MnlUevPYv1EG/GXKKphC+4x
1eLFPE1gP318eiHWj/3JNL1V+Lc4jdLcfLkw+oxD3a7O34n1q+NzzrXiyJd3
GAfYKIUvU7gukNacumVBwOQDpZG9HlysJw0T/kcRsvZhIWilRaqVMsi3O2xG
WgG8sP+41bldSG8MzI6LLehYjBwVay5M3F4UWp5jaB4dJKX4jpxfqK5YZ31p
DhTG0SLM44eZM/LoZT2PWehgySGNYjiQoK64afIV6+MzE7uDQV+5y8k+/WNX
sX3gXIgCXkJN463JpfeTJy5akv+efH7mEbZsTLFiaQtd5Bp+lvitLy1t4rZ0
pHidRdTTFYIwXgUsnU9zsKrNtGW6n/lRi1nQWEpWUfE8ypBbj2y7eCJZM0Qj
cEWbfpUgxoGcJOVqVChw6w5VOn3Bhlr9ByDAeus+DdEDIj0NsQn0eRpiC0jz
NMQ2kGM5RMNxLKJmZ0k29Q2j5CV0uJD9yk4pxn6cgH65buFOyNSyZ3aPwNjL
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

-->

</rfc>
