<?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.6 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-msg-wrap-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="RATS CMW">RATS Conceptual Messages Wrapper (CMW)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-04"/>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2024" month="February" day="27"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>evidence</keyword>
    <keyword>attestation results</keyword>
    <keyword>endorsements</keyword>
    <keyword>reference values</keyword>
    <abstract>
      <?line 80?>

<t>This document defines the RATS conceptual message wrapper (CMW) format, a type of encapsulation format that can be used for any RATS messages, such as Evidence, Attestation Results, Endorsements, and Reference Values.
Additionally, the document describes a collection type that enables the aggregation of one or more CMWs into a single message.</t>
      <t>This document also defines corresponding CBOR tag, JSON Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, as well as an X.509 extension.
These allow embedding the wrapped conceptual messages into CBOR-based protocols, web APIs, and PKIX protocols.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Remote ATtestation ProcedureS Working Group mailing list (rats@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/thomas-fossati/draft-ftbs-rats-msg-wrap"/>.</t>
    </note>
  </front>
  <middle>
    <?line 88?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The RATS architecture defines a handful of conceptual messages
(see <xref section="8" sectionFormat="of" target="RFC9334"/>), such as Evidence and Attestation Results.
Each conceptual message can have multiple claims encoding and serialization
formats (<xref section="9" sectionFormat="of" target="RFC9334"/>). Throughout their lifetime, RATS
conceptual messages are typically transported over different protocols.
For example,</t>
      <ul spacing="normal">
        <li>
          <t>EAT <xref target="I-D.ietf-rats-eat"/> Evidence in a "background check" topological
arrangement first flows from Attester to Relying Party, and then from Relying
Party to Verifier, over separate protocol legs.</t>
        </li>
        <li>
          <t>Attestation Results for Secure Interactions (AR4SI) <xref target="I-D.ietf-rats-ar4si"/> payloads in
"passport" mode would be sent by the Verifier to the Attester and then, at a later
point in time and over a different channel, from the Attester to the Relying Party.</t>
        </li>
      </ul>
      <t>It is desirable to reuse any typing information associated with the messages
across such protocol boundaries to minimize the cost associated with
type registrations and maximize interoperability. With the CMW format described
in this document, protocol designers do not need to update protocol specifications
to support different conceptual messages. This approach reduces the implementation
effort for developers to support different attestation technologies. For example,
an implementer of a Relying Party application does not need to parse
attestation-related conceptual messages, such as different Evidence formats,
but can instead utilize the CMW format to be agnostic to the attestation
technology.</t>
      <t>This document defines two encapsulation formats for RATS conceptual
messages that aim to achieve the goals stated above.</t>
      <t>These encapsulation formats have been specifically designed to possess the following characteristics:</t>
      <ul spacing="normal">
        <li>
          <t>They are self-describing, which means that they can convey precise typing information without relying on the framing provided by the embedding protocol or the storage system.</t>
        </li>
        <li>
          <t>They are based on media types <xref target="RFC6838"/>, which allows the cost of their registration to be spread across numerous usage scenarios.</t>
        </li>
      </ul>
      <t>A protocol designer could use these formats, for example, to convey
Evidence, Endorsements and Reference Values in certificates and CRLs
extensions (<xref target="DICE-arch"/>), to embed Attestation Results or Evidence as
first-class authentication credentials in TLS handshake messages
<xref target="I-D.fossati-tls-attestation"/>, to transport attestation-related payloads in RESTful APIs,
or for stable storage of Attestation Results in the form of file system
objects.</t>
      <t>This document also defines corresponding CBOR tag, JSON Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, as well as an X.509 extension.
These allow embedding the wrapped conceptual messages into CBOR-based protocols, web APIs, and PKIX protocols.</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?>

<t>In this document, CDDL <xref target="RFC8610"/> <xref target="RFC9165"/> is used to describe the
data formats.</t>
      <t>The reader is assumed to be familiar with the vocabulary and concepts
defined in <xref target="RFC9334"/>.</t>
      <t>This document reuses the terms defined in <xref section="2" sectionFormat="of" target="RFC9193"/>
(e.g., "Content-Type").</t>
    </section>
    <section anchor="conceptual-message-wrapper-encodings">
      <name>Conceptual Message Wrapper Encodings</name>
      <t>Two types of RATS Conceptual Message Wrapper (CMW) are specified in this
document:</t>
      <ol spacing="normal" type="1"><li>
          <t>A CMW using a CBOR or JSON record (<xref target="type-n-val"/>);</t>
        </li>
        <li>
          <t>A CMW based on CBOR tags (<xref target="cbor-tag"/>).</t>
        </li>
      </ol>
      <t>A further CMW "collection" type that holds together multiple CMW items is defined in <xref target="cmw-coll"/>.</t>
      <t>A CMW "tunnel" type is also defined in <xref target="cmw-tunnel"/> to allow transporting CBOR CMWs in JSON collections and vice-versa.</t>
      <t>The collected CDDL is in <xref target="collected-cddl"/>.</t>
      <section anchor="type-n-val">
        <name>CMW Record</name>
        <t>The format of the CMW record is shown in <xref target="fig-cddl-record"/>.
The JSON <xref target="STD90"/> and CBOR <xref target="STD94"/> representations are provided separately.
Both the <tt>json-record</tt> and <tt>cbor-record</tt> have the same fields except for slight differences in the types discussed below.</t>
        <figure anchor="fig-cddl-record">
          <name>CDDL definition of the Record format</name>
          <artwork type="cddl" align="left"><![CDATA[
json-record = [
  type: media-type
  value: base64-string
  ? ind: uint .bits cm-type
]

cbor-record = [
  type: coap-content-format-type / media-type
  value: bytes
  ? ind: uint .bits cm-type
]
]]></artwork>
        </figure>
        <t>Each contains two or three members:</t>
        <dl newline="true">
          <dt><tt>type</tt>:</dt>
          <dd>
            <t>Either a text string representing a Content-Type (e.g., an EAT media type
<xref target="I-D.ietf-rats-eat-media-type"/>) or an unsigned integer corresponding to a CoAP Content-Format
number (<xref section="12.3" sectionFormat="of" target="RFC7252"/>).
The latter <bcp14>MUST NOT</bcp14> be used in the JSON serialization.</t>
          </dd>
          <dt><tt>value</tt>:</dt>
          <dd>
            <t>The RATS conceptual message serialized according to the
value defined in the type member.
When using JSON, the value field <bcp14>MUST</bcp14> be encoded as Base64 using the URL and
filename safe alphabet (<xref section="5" sectionFormat="of" target="RFC4648"/>) without padding.
This always applies, even if the conceptual message format is already textual (e.g., a JWT EAT).
When using CBOR, the value field <bcp14>MUST</bcp14> be encoded as a CBOR byte string.</t>
          </dd>
          <dt><tt>ind</tt>:</dt>
          <dd>
            <t>An optional bitmap that indicates which conceptual message types are
carried in the <tt>value</tt> field.  Any combination (i.e., any value between
1 and 15, included) is allowed.  This is useful only if the <tt>type</tt> is
potentially ambiguous and there is no further context available to the
CMW consumer to decide.  For example, this might be the case if the base
media type is not profiled (e.g., <tt>application/eat+cwt</tt>), if the <tt>value</tt>
field contains multiple conceptual messages with different types (e.g.,
both Reference Values and Endorsements within the same <tt>application/signed-corim+cbor</tt>), or if the same profile identifier is
shared by different conceptual messages.
Future specifications may add new values to the <tt>ind</tt> field; see <xref target="iana-ind-ext"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="cbor-tag">
        <name>CMW CBOR Tags</name>
        <t>CBOR Tags used as CMW may be derived from CoAP Content-Format numbers.
If a CoAP content format exists for a RATS conceptual message, the
<tt>TN()</tt> transform defined in <xref section="B" sectionFormat="of" target="RFC9277"/> can be used to
derive a corresponding CBOR tag in range [1668546817, 1668612095].</t>
        <t>The RATS conceptual message is first serialized according to the
Content-Format number associated with the CBOR tag and then encoded as a
CBOR byte string, to which the tag is prepended.</t>
        <t>The CMW CBOR Tag is defined in <xref target="fig-cddl-cbor-tag"/>.</t>
        <figure anchor="fig-cddl-cbor-tag">
          <name>CDDL definition of the CBOR Tag format</name>
          <artwork type="cddl" align="left"><![CDATA[
cbor-tag = #6.<0..18446744073709551615>(bytes)
]]></artwork>
        </figure>
        <section anchor="use-of-pre-existing-cbor-tags">
          <name>Use of Pre-existing CBOR Tags</name>
          <t>If a CBOR tag has been registered in association with a certain RATS
conceptual message independently of a CoAP content format (i.e., it is
not obtained by applying the <tt>TN()</tt> transform), it can be readily used
as an encapsulation without the extra processing described in
<xref target="cbor-tag"/>.</t>
          <t>A consumer can always distinguish tags that have been derived via
<tt>TN()</tt>, which all fall in the [1668546817, 1668612095] range, from
tags that are not, and therefore apply the right decapsulation on
receive.</t>
        </section>
      </section>
      <section anchor="cmw-coll">
        <name>CMW Collections</name>
        <t>Layered Attesters and composite devices (Sections <xref target="RFC9334" section="3.2" sectionFormat="bare"/> and <xref target="RFC9334" section="3.3" sectionFormat="bare"/> of <xref target="RFC9334"/>) generate Evidence that consists of multiple parts.</t>
        <t>For example, in data center servers, it is not uncommon for separate attesting environments (AE) to serve a subsection of the entire machine.
One AE might measure and attest to what was booted on the main CPU, while another AE might measure and attest to what was booted on a SmartNIC plugged into a PCIe slot, and a third AE might measure and attest to what was booted on the machine's GPU.</t>
        <t>To address the composite Attester use case, this document defines a CMW "collection" as a container that holds several CMW items, each with a label that is unique within the scope of the collection.</t>
        <t>The CMW collection (<xref target="fig-cddl-collection"/>) is defined as a CBOR map or JSON object with CMW values, either native or "tunnelled" (<xref target="cmw-tunnel"/>).
The position of a <tt>cmw</tt> entry in the <tt>cmw-collection</tt> is not significant.
Instead, the labels identify a conceptual message that, in the case of a composite Attester, should typically correspond to a component of a system.
Labels can be strings (or integers in the CBOR serialization) that serve as a mnemonic for different conceptual messages in the collection.
The <tt>"__cmwc_t"</tt> key is reserved for associating an optional type to the overall collection and <bcp14>MUST NOT</bcp14> be used for a label.
The collection type is either a Uniform Resource Identifier (URI) or an object identifier (OID).
The OID is always absolute and never relative.</t>
        <t>Since the collection type is recursive, implementations may limit the allowed depth of nesting.</t>
        <figure anchor="fig-cddl-collection">
          <name>CDDL definition of the CMW collection format</name>
          <artwork type="cddl" align="left"><![CDATA[
json-collection = {
  ? "__cmwc_t": ~uri / oid
  + text => json-CMW / c2j-tunnel
}

cbor-collection = {
  ? "__cmwc_t": ~uri / oid
  + (int / text) => cbor-CMW / j2c-tunnel
}
]]></artwork>
        </figure>
        <t>Although initially designed for the composite Attester use case, the CMW collection can be repurposed for other use cases requiring CMW aggregation.</t>
      </section>
      <section anchor="cmw-tunnel">
        <name>CMW Tunnel</name>
        <t>The CMW tunnel type (<xref target="fig-cddl-tunnel"/>) allows for moving a CMW in one serialization format, either JSON or CBOR, into a collection that uses the opposite serialization format.</t>
        <t>Both tunnel types are arrays with two elements.
The first element, a fixed text string starting with a <tt>#</tt>, acts as a sentinel value.
The <tt>#</tt>, which is not an acceptable start symbol for the <tt>Content-Type</tt> production (<xref target="collected-cddl"/>), makes it possible to disambiguate a CMW tunnel from a CMW record.</t>
        <figure anchor="fig-cddl-tunnel">
          <name>CDDL definition of the CMW tunnel format</name>
          <artwork type="cddl" align="left"><![CDATA[
c2j-tunnel = [ "#cmw-c2j-tunnel", base64-string ]
j2c-tunnel = [ "#cmw-j2c-tunnel", bytes ]
]]></artwork>
        </figure>
        <t>The conversion algorithms are described in the following subsections.</t>
        <section anchor="cbor-to-json">
          <name>CBOR-to-JSON</name>
          <t>The CBOR byte string of the serialised CBOR CMW is encoded as Base64 using the URL and filename safe alphabet (<xref section="5" sectionFormat="of" target="RFC4648"/>) without padding.
The obtained string is added as the second element of the <tt>c2j-tunnel</tt> array.
The <tt>c2j-tunnel</tt> array is serialized as JSON.</t>
        </section>
        <section anchor="json-to-cbor">
          <name>JSON-to-CBOR</name>
          <t>The UTF-8 string of the serialized JSON CMW is encoded as a CBOR byte string (Major type 2).
The byte string is added as the second element of the <tt>j2c-tunnel</tt> array.
The <tt>j2c-tunnel</tt> array is serialized as CBOR.</t>
        </section>
      </section>
      <section anchor="decapsulation-algorithm">
        <name>Decapsulation Algorithm</name>
        <t>Once any external framing is removed (for example, if the CMW is carried in a certificate extension), the CMW decoder performs a 1-byte lookahead to determine how to decode the remaining byte buffer.
The following pseudo-code illustrates this process:</t>
        <artwork><![CDATA[
func CMWTypeSniff(b []byte) (CMW, error) {
  if len(b) == 0 {
    return Unknown
  }

  if b[0] == 0x82 || b[0] == 0x83 {
    return CBORRecord
  } else if b[0] >= 0xc0 && b[0] <= 0xdb {
    return CBORTag
  } else if b[0] == 0x5b {
    return JSONRecord
  } else if b[0] == 0x7b {
    return JSONCollection
  } else if (b[0] >= 0xa0 && b[0] <= 0xbb) || b[0] == 0xbf {
    return CBORCollection
  }

  return Unknown
}
]]></artwork>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>The (equivalent) examples in <xref target="ex-ja"/>, <xref target="ex-ca"/>, and <xref target="ex-ct"/> assume that
the Media-Type-Name <tt>application/vnd.example.rats-conceptual-msg</tt> has been
registered alongside a corresponding CoAP Content-Format number <tt>30001</tt>.  The
CBOR tag <tt>1668576818</tt> is derived applying the <tt>TN()</tt> transform as described in
<xref target="cbor-tag"/>.</t>
      <t>The example in <xref target="ex-ca-ind"/> is a signed CoRIM payload with an explicit CM
indicator <tt>0b0000_0011</tt> (3), meaning that the wrapped message contains both
Reference Values and Endorsements.</t>
      <section anchor="ex-ja">
        <name>JSON Record</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  "q82rzQ"
]
]]></sourcecode>
        <t>Note that a CoAP Content-Format number can also be used with the JSON record
form.  That may be the case when it is known that the receiver can handle CoAP
Content-Formats and it is crucial to save bytes.</t>
      </section>
      <section anchor="ex-ca">
        <name>CBOR Record</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  30001,
  h'2347da55'
]
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
82             # array(2)
   19 7531     # unsigned(30001)
   44          # bytes(4)
      2347da55 # "#G\xDAU"
]]></artwork>
        <t>Note that a Media-Type-Name can also be used with the CBOR record form,
for example if it is known that the receiver cannot handle CoAP
Content-Formats, or (unlike the case in point) if a CoAP Content-Format
number has not been registrered.</t>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  h'2347da55'
]
]]></sourcecode>
      </section>
      <section anchor="ex-ct">
        <name>CBOR Tag</name>
        <sourcecode type="cbor-diag"><![CDATA[
1668576818(h'2347da55')
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
da 63747632    # tag(1668576818)
   44          # bytes(4)
      2347da55 # "#G\xDAU"
]]></artwork>
      </section>
      <section anchor="ex-ca-ind">
        <name>CBOR Record with explicit CM indicator</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/signed-corim+cbor",
  h'd28443a10126a1',
  3
]
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
83                                    # array(3)
   78 1d                              # text(29)
      6170706c69636174696f6e2f7369676e65642d636f72696d2b63626f72
                                      # "application/signed-corim+cbor"
   47                                 # bytes(7)
      d28443a10126a1                  # "҄C\xA1\u0001&\xA1"
   03                                 # unsigned(3)
]]></artwork>
      </section>
      <section anchor="cbor-collection">
        <name>CBOR Collection</name>
        <t>The following example is a CBOR collection that assembles conceptual messages from three attesters: Evidence for attesters A and B and Attestation Results for attester C.
It is given an explicit collection type using the URI form.</t>
        <artwork><![CDATA[
{
  "attester A": [
    30001,
    h'2347da55',
    4
  ],
  "attester B": 1668576818(h'2347da55'),
  "attester C": [
    "application/eat+jwt",
    h'4c693475',
    8
  ]
}
]]></artwork>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
a3                                      # map(3)
   6a                                   # text(10)
      61747465737465722041              # "attester A"
   83                                   # array(3)
      19 7531                           # unsigned(30001)
      44                                # bytes(4)
         2347da55                       # "#G\xDAU"
      04                                # unsigned(4)
   6a                                   # text(10)
      61747465737465722042              # "attester B"
   da 63747632                          # tag(1668576818)
      44                                # bytes(4)
         2347da55                       # "#G\xDAU"
   6a                                   # text(10)
      61747465737465722043              # "attester C"
   83                                   # array(3)
      73                                # text(19)
         6170706c69636174696f6e2f6561742b6a7774 # "application/eat+jwt"
      44                                # bytes(4)
         4c693475                       # "Li4u"
      08                                # unsigned(8)
]]></artwork>
        <t>The following example shows the use of a tunnelled type to move a JSON record to a CBOR collection:</t>
        <artwork><![CDATA[
{
  "__cmwc_t": "tag:example.com,2024:composite-attester",
  0: [
    30001,
    h'2347da55',
    4
  ],
  1: 1668576818(h'2347da55'),
  2: [
    "#cmw-j2c-tunnel",
    '[ "application/eat+jwt", "Li4u", 8 ]'
  ]
}
]]></artwork>
      </section>
      <section anchor="json-collection">
        <name>JSON Collection</name>
        <t>The following example is a JSON collection that assembles Evidence from two attesters.</t>
        <artwork><![CDATA[
{
  "attester A": [
    "application/eat-ucs+json",
    "e30K",
    4
  ],
  "attester B": [
    "application/eat-ucs+cbor",
    "oA",
    4
  ]
}
]]></artwork>
        <t>The following example shows the use of a tunnelled type to move a CBOR record to a JSON collection:</t>
        <artwork><![CDATA[
{
  "attester A": [
    "application/eat-ucs+json",
    "e30K",
    4
  ],
  "attester B (tunnelled)": [
    "#cmw-c2j-tunnel",
    "g3gYYXBwbGljYXRpb24vZWF0LXVjcytjYm9yQaAE"
  ]
}
]]></artwork>
      </section>
      <section anchor="use-in-jwt">
        <name>Use in JWT</name>
        <t>The following example shows the use of the <tt>cmw</tt> JWT claim to transport a CMW collection in a JWT <xref target="RFC7519"/>:</t>
        <artwork><![CDATA[
{
  "cmw": {
    "attester A": [
      "application/eat-ucs+json",
      "e30K",
      4
    ],
    "attester B (tunnelled)": [
      "#cmw-c2j-tunnel",
      "g3gYYXBwbGljYXRpb24vZWF0LXVjcytjYm9yQaAE"
    ]
  },
  "iss": "evidence collection daemon",
  "exp": 1300819380
}
]]></artwork>
      </section>
    </section>
    <section anchor="x509">
      <name>Transporting CMW in X.509 Messages</name>
      <t>There are cases where CMW need to be transported in PKIX messages, for example in Certificate Signing Requests (CSRs) <xref target="I-D.ietf-lamps-csr-attestation"/>, or in X.509 Certificates and Certificate Revocation Lists (CRLs) <xref target="DICE-arch"/>.</t>
      <t>This section specifies the CMW extension to carry CMW objects.</t>
      <t>The CMW extension <bcp14>MAY</bcp14> be included in X.509 Certificates, CRLs <xref target="RFC5280"/>, and CSRs.</t>
      <t>The CMW extension <bcp14>MUST</bcp14> be identified by the following object identifier:</t>
      <sourcecode type="asn.1"><![CDATA[
id-pe-cmw-collection  OBJECT IDENTIFIER ::=
        { iso(1) identified-organization(3) dod(6) internet(1)
          security(5) mechanisms(5) pkix(7) id-pe(1) TBD }
]]></sourcecode>
      <t>This extension <bcp14>MUST NOT</bcp14> be marked critical.</t>
      <t>The CMW extension <bcp14>MUST</bcp14> have the following syntax:</t>
      <sourcecode type="asn.1"><![CDATA[
CMW ::= CHOICE {
    json UTF8String,
    cbor OCTET STRING
}
]]></sourcecode>
      <t>The CMW <bcp14>MUST</bcp14> contain the serialized CMW object in JSON or CBOR format, using the appropriate CHOICE entry.</t>
      <t>The DER-encoded CMW is the value of the OCTET STRING for the extnValue field of the extension.</t>
      <section anchor="asn1-x509">
        <name>ASN.1 Module</name>
        <t>This section provides an ASN.1 module <xref target="X.680"/> for the CMW extension, following the conventions established in <xref target="RFC5912"/> and <xref target="RFC6268"/>.</t>
        <sourcecode type="asn.1"><![CDATA[
CMWExtn
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-cmw-collection-extn(TBD) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

IMPORTS
  EXTENSION
  FROM PKIX-CommonTypes-2009  -- RFC 5912
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkixCommon-02(57) } ;

-- CMW Extension

ext-CMW EXTENSION ::= {
  SYNTAX CMW
  IDENTIFIED BY id-pe-cmw-collection }

-- CMW Extension OID

id-pe-cmw-collection  OBJECT IDENTIFIER  ::=
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) id-pe(1) TBD }

-- CMW Extension Syntax

CMW ::= CHOICE {
    json UTF8String,
    cbor OCTET STRING
}

END
]]></sourcecode>
      </section>
      <section anchor="compatibility-with-dice-conceptualmessagewrapper">
        <name>Compatibility with DICE <tt>ConceptualMessageWrapper</tt></name>
        <t>Section 6.1.8 of <xref target="DICE-arch"/> defines the ConceptualMessageWrapper format and the associated object identifier.
The CMW format defined in <xref target="DICE-arch"/> allows only a subset of the CMW grammar defined in this document.
Specifically, the tunnel and collection formats cannot be encoded using DICE CMWs.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the
IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not
imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of
available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see
fit".</t>
      <section anchor="project-veraison">
        <name>Project Veraison</name>
        <t>The organization responsible for this implementation is Project Veraison, a
Linux Foundation project hosted at the Confidential Computing Consortium.</t>
        <t>The software, hosted at <eref target="https://github.com/veraison/cmw"/>, provides a Golang
package that allows encoding and decoding of CMW payloads.
The implementation covers all the features presented in this draft.
The maturity level is alpha.
The license is Apache 2.0.
The developers can be contacted on the Zulip channel:
<eref target="https://veraison.zulipchat.com/#narrow/stream/383526-CMW/"/>.</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>This document introduces two encapsulation formats for RATS conceptual messages.
RATS conceptual messages are typically secured using cryptography.
If the messages are already protected, then there are no additional security requirements imposed by the introduction of this encapsulation.
If an adversary tries to modify the payload encapsulation, it will result in incorrect processing of the encapsulated message and lead to an error.
If the messages are not protected, additional security must be added at a different layer.
As an example, a CMW record containing an UCCS <xref target="I-D.ietf-rats-uccs"/> can be signed using COSE Sign1 <xref target="STD96"/>.</t>
      <t>This document introduces a format for holding multiple CMW items in a collection.
If the collection is not protected from tampering by external security measures (such as object security primitives) or internal mechanisms (such as intra-item binding), an attacker could easily manipulate the collection's contents.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="rfced">RFC Editor:</cref> replace "RFCthis" with the RFC number assigned to this document.</t>
      <section anchor="cwt-cmw-claim-registration">
        <name>CWT <tt>cmw</tt> Claim Registration</name>
        <t>IANA is requested to add a new <tt>cmw</tt> claim to the "CBOR Web Token (CWT) Claims" registry <xref target="IANA.cwt"/> as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: cmw</t>
          </li>
          <li>
            <t>Claim Description: A RATS Conceptual Message Wrapper</t>
          </li>
          <li>
            <t>Claim Key: TBD</t>
          </li>
          <li>
            <t>Claim Value Type(s): CBOR Map, CBOR Array, or CBOR Tag</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="type-n-val"/> and <xref target="cbor-tag"/> of RFCthis</t>
          </li>
        </ul>
        <t>The suggested value for the Claim Key is 299.</t>
      </section>
      <section anchor="jwt-cmw-claim-registration">
        <name>JWT <tt>cmw</tt> Claim Registration</name>
        <t>IANA is requested to add a new <tt>cmw</tt> claim to the "JSON Web Token Claims" sub-registry of the "JSON Web Token (JWT)" registry <xref target="IANA.jwt"/> as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: cmw</t>
          </li>
          <li>
            <t>Claim Description: A RATS Conceptual Message Wrapper</t>
          </li>
          <li>
            <t>Claim Value Type(s): JSON Object or JSON Array</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="type-n-val"/> of RFCthis</t>
          </li>
        </ul>
      </section>
      <section anchor="cbor-tag-registration">
        <name>CBOR Tag Registration</name>
        <t>IANA is requested to add the following tag to the "CBOR Tags" <xref target="IANA.cbor-tags"/> registry.</t>
        <table>
          <thead>
            <tr>
              <th align="left">CBOR Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">CBOR map, CBOR array, CBOR tag</td>
              <td align="left">RATS Conceptual Message Wrapper</td>
              <td align="left">
                <xref target="type-n-val"/>, <xref target="cbor-tag"/> and <xref target="cmw-coll"/> of RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-ind-ext">
        <name>RATS Conceptual Message Wrapper (CMW) Indicators Registry</name>
        <t>This specification defines a new "RATS Conceptual Message Wrapper (CMW) Indicators" registry, with the policy "Expert Review" (<xref section="4.5" sectionFormat="of" target="BCP26"/>).</t>
        <t>The objective is to have Indicators values registered for all RATS Conceptual Messages (<xref section="8" sectionFormat="of" target="RFC9334"/>).</t>
        <section anchor="de-instructions">
          <name>Instructions for the Designated Expert</name>
          <t>The expert is instructed to add the values incrementally.</t>
          <t>Acceptable values are those corresponding to RATS Conceptual Messages defined by the RATS architecture <xref target="RFC9334"/> and any of its updates.</t>
        </section>
        <section anchor="structure-of-entries">
          <name>Structure of Entries</name>
          <t>Each entry in the registry must include:</t>
          <dl newline="true">
            <dt>Indicator value:</dt>
            <dd>
              <t>A number corresponding to the bit position in the <tt>cm-ind</tt> bitmap.</t>
            </dd>
            <dt>Conceptual Message name:</dt>
            <dd>
              <t>A text string describing the RATS conceptual message this indicator corresponds to.</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>A reference to a document, if available, or the registrant.</t>
            </dd>
          </dl>
          <t>The initial registrations for the registry are detailed in <xref target="tab-ind-regs"/>.</t>
          <table anchor="tab-ind-regs">
            <name>CMW Indicators Registry Initial Contents</name>
            <thead>
              <tr>
                <th align="left">Indicator value</th>
                <th align="left">Conceptual Message name</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">Reference Values</td>
                <td align="left">RFCthis</td>
              </tr>
              <tr>
                <td align="left">1</td>
                <td align="left">Endorsements</td>
                <td align="left">RFCthis</td>
              </tr>
              <tr>
                <td align="left">2</td>
                <td align="left">Evidence</td>
                <td align="left">RFCthis</td>
              </tr>
              <tr>
                <td align="left">3</td>
                <td align="left">Attestation Results</td>
                <td align="left">RFCthis</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>IANA is requested to add the following media types to the "Media Types" registry <xref target="IANA.media-types"/>.</t>
        <table anchor="tab-mt-regs">
          <name>CMW Media Types</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>cmw+cbor</tt></td>
              <td align="left">
                <tt>application/cmw+cbor</tt></td>
              <td align="left">
                <xref target="type-n-val"/>, <xref target="cbor-tag"/> and <xref target="cmw-coll"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cmw+json</tt></td>
              <td align="left">
                <tt>application/cmw+json</tt></td>
              <td align="left">
                <xref target="type-n-val"/> and <xref target="cmw-coll"/> of RFCthis</td>
            </tr>
          </tbody>
        </table>
        <section anchor="applicationcmwcbor">
          <name><tt>application/cmw+cbor</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>cmw+cbor</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t><tt>cmwc_t</tt> (CMW collection type in string format.  The parameter value is case-insensitive.  It <bcp14>MUST NOT</bcp14> be used for CMW that are not collections.)</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (CBOR)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers, Endorsers and Reference-Value providers, Relying Parties that need to transfer CMW payloads over HTTP(S), CoAP(S), and other transports.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
        <section anchor="applicationcmwjson">
          <name><tt>application/cmw+json</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>cmw+json</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t><tt>cmwc_t</tt> (CMW collection type in string format.  The parameter value is case-insensitive.  It <bcp14>MUST NOT</bcp14> be used for CMW that are not collections.)</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (JSON is UTF-8-encoded text)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers, Endorsers and Reference-Value providers, Relying Parties that need to transfer CMW payloads over HTTP(S), CoAP(S), and other transports.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/json". (No fragment identification syntax is currently defined for "application/json".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="new-smi-numbers-registrations">
        <name>New SMI Numbers Registrations</name>
        <t>IANA is requested to assign an object identifier (OID) for the CMW extension defined in <xref target="x509"/> in the "Certificate Extension" sub-registry of the "SMI Numbers" <xref target="IANA.smi-numbers"/> registry.</t>
        <t>IANA is requested to assign an object identifier (OID) for the ASN.1 Module defined in <xref target="asn1-x509"/> in the "Module Identifier" sub-registry of the "SMI Numbers" <xref target="IANA.smi-numbers"/> registry.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </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="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. There are no bits- on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="STD90">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="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>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="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </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="IANA.cwt" target="http://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.jwt" target="http://www.iana.org/assignments/jwt">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="BCP26">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="X.680">
          <front>
            <title>Specification of Abstract Syntax Notation One (ASN.1): Specification of Basic Notation</title>
            <author>
              <organization>International Telephone and Telegraph
Consultative Committee</organization>
            </author>
            <date month="July" year="1994"/>
          </front>
          <seriesInfo name="CCITT" value="Recommendation X.680"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="http://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="http://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.smi-numbers" target="http://www.iana.org/assignments/smi-numbers">
          <front>
            <title>Structure of Management Information (SMI) Numbers (MIB Module Registrations)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values. In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </reference>
        <reference anchor="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>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="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-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
         </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="15" month="January" year="2024"/>
            <abstract>
              <t>   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 the type
   and degree of trust placed in 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-25"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="7" month="November" year="2023"/>
            <abstract>
              <t>   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-05"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="30" month="August" year="2023"/>
            <abstract>
              <t>   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-05"/>
        </reference>
        <reference anchor="I-D.ietf-rats-uccs">
          <front>
            <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="16" month="January" year="2024"/>
            <abstract>
              <t>   When transported over secure channels, CBOR Web Token (CWT, RFC 8392)
   Claims Sets may not need the protection afforded by wrapping them
   into COSE, as is required for a true CWT.  This specification defines
   a CBOR tag for such unprotected CWT Claims Sets (UCCS) and discusses
   conditions for its proper use.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-uccs-08"/>
        </reference>
        <reference anchor="I-D.fossati-tls-attestation">
          <front>
            <title>Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Limited</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   Attestation is the process by which an entity produces evidence about
   itself that another party can use to evaluate the trustworthiness of
   that entity.

   In use cases that require the use of remote attestation, such as
   confidential computing or device onboarding, an attester has to
   convey evidence or attestation results to a relying party.  This
   information exchange may happen at different layers in the protocol
   stack.

   This specification provides a generic way of passing evidence and
   attestation results in the TLS handshake.  Functionality-wise this is
   accomplished with the help of key attestation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-04"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certificate Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="13" month="February" year="2024"/>
            <abstract>
              <t>   A client requesting a certificate from a Certification Authority (CA)
   may wish to offer believable claims about the protections afforded to
   the corresponding private key, such as whether the private key
   resides on a hardware security module or the protection capabilities
   provided by the hardware.

   This document describes how to encode Evidence produced by an
   Attester for inclusion in Certificate Signing Requests (CSRs), and
   any certificates necessary for validating it.

   Including Evidence along with a CSR can help to improve the
   assessment of the security posture for the private key, and the
   trustworthiness properties of the submitted key to the requested
   certificate profile.  These Evidence Claims can include information
   about the hardware component's manufacturer, the version of installed
   or running firmware, the version of software installed or running in
   layers above the firmware, or the presence of hardware components
   providing specific protection capabilities or shielded locations
   (e.g., to protect keys).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-05"/>
        </reference>
        <reference anchor="DICE-arch" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 881?>

<section anchor="collected-cddl">
      <name>Collected CDDL</name>
      <sourcecode type="cddl"><![CDATA[
start = cmw

cmw = json-CMW / cbor-CMW

json-CMW = json-record / json-collection
cbor-CMW = cbor-record / cbor-collection / cbor-tag

json-record = [
  type: media-type
  value: base64-string
  ? ind: uint .bits cm-type
]

cbor-record = [
  type: coap-content-format-type / media-type
  value: bytes
  ? ind: uint .bits cm-type
]

cbor-tag = #6.<0..18446744073709551615>(bytes)

json-collection = {
  ? "__cmwc_t": ~uri / oid
  + text => json-CMW / c2j-tunnel
}

cbor-collection = {
  ? "__cmwc_t": ~uri / oid
  + (int / text) => cbor-CMW / j2c-tunnel
}

c2j-tunnel = [ "#cmw-c2j-tunnel", base64-string ]
j2c-tunnel = [ "#cmw-j2c-tunnel", bytes ]

media-type = text .abnf ("Content-Type" .cat Content-Type-ABNF)
base64-string = text .regexp "[A-Za-z0-9_-]+"

cm-type = &(
  reference-values: 0
  endorsements: 1
  evidence: 2
  attestation-results: 3
)

coap-content-format-type = uint .size 2

oid = text .regexp "([0-2])((\\.0)|(\\.[1-9][0-9]*))*"

Content-Type-ABNF = '

Content-Type   = Media-Type-Name *( *SP ";" *SP parameter )
parameter      = token "=" ( token / quoted-string )

token          = 1*tchar
tchar          = "!" / "#" / "$" / "%" / "&" / "\'" / "*"
               / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
               / DIGIT / ALPHA
quoted-string  = %x22 *( qdtext / quoted-pair ) %x22
qdtext         = SP / %x21 / %x23-5B / %x5D-7E
quoted-pair    = "\" ( SP / VCHAR )

Media-Type-Name = type-name "/" subtype-name

type-name = restricted-name
subtype-name = restricted-name

restricted-name = restricted-name-first *126restricted-name-chars
restricted-name-first  = ALPHA / DIGIT
restricted-name-chars  = ALPHA / DIGIT / "!" / "#" /
                         "$" / "&" / "-" / "^" / "_"
restricted-name-chars =/ "." ; Characters before first dot always
                             ; specify a facet name
restricted-name-chars =/ "+" ; Characters after last plus always
                             ; specify a structured syntax suffix

DIGIT     =  %x30-39           ; 0 - 9
POS-DIGIT =  %x31-39           ; 1 - 9
ALPHA     =  %x41-5A / %x61-7A ; A - Z / a - z
SP        =  %x20
VCHAR     =  %x21-7E           ; printable ASCII (no SP)
'

]]></sourcecode>
    </section>
    <section anchor="registering-and-using-cmws">
      <name>Registering and Using CMWs</name>
      <t><xref target="fig-howto-cmw"/> describes the registration preconditions for using
CMWs in either CMW record or CBOR tag forms.
When using CMW collection, the preconditions apply for each entry in the collection.</t>
      <figure anchor="fig-howto-cmw">
        <name>How To Create a CMW</name>
        <artset>
          <artwork type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="400" viewBox="0 0 400 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,80" fill="none" stroke="black"/>
              <path d="M 56,176 L 56,424" fill="none" stroke="black"/>
              <path d="M 80,96 L 80,152" fill="none" stroke="black"/>
              <path d="M 80,168 L 80,424" fill="none" stroke="black"/>
              <path d="M 96,144 L 96,176" fill="none" stroke="black"/>
              <path d="M 104,256 L 104,288" fill="none" stroke="black"/>
              <path d="M 120,96 L 120,144" fill="none" stroke="black"/>
              <path d="M 168,192 L 168,232" fill="none" stroke="black"/>
              <path d="M 168,304 L 168,376" fill="none" stroke="black"/>
              <path d="M 184,48 L 184,80" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
              <path d="M 224,96 L 224,144" fill="none" stroke="black"/>
              <path d="M 240,256 L 240,288" fill="none" stroke="black"/>
              <path d="M 248,144 L 248,176" fill="none" stroke="black"/>
              <path d="M 264,96 L 264,152" fill="none" stroke="black"/>
              <path d="M 264,168 L 264,328" fill="none" stroke="black"/>
              <path d="M 264,344 L 264,424" fill="none" stroke="black"/>
              <path d="M 288,176 L 288,328" fill="none" stroke="black"/>
              <path d="M 288,344 L 288,424" fill="none" stroke="black"/>
              <path d="M 296,48 L 296,80" fill="none" stroke="black"/>
              <path d="M 304,256 L 304,288" fill="none" stroke="black"/>
              <path d="M 344,304 L 344,320" fill="none" stroke="black"/>
              <path d="M 392,256 L 392,288" fill="none" stroke="black"/>
              <path d="M 56,32 L 168,32" fill="none" stroke="black"/>
              <path d="M 216,32 L 280,32" fill="none" stroke="black"/>
              <path d="M 56,96 L 168,96" fill="none" stroke="black"/>
              <path d="M 216,96 L 280,96" fill="none" stroke="black"/>
              <path d="M 112,128 L 232,128" fill="none" stroke="black"/>
              <path d="M 72,160 L 104,160" fill="none" stroke="black"/>
              <path d="M 240,160 L 272,160" fill="none" stroke="black"/>
              <path d="M 112,192 L 232,192" fill="none" stroke="black"/>
              <path d="M 120,240 L 224,240" fill="none" stroke="black"/>
              <path d="M 320,240 L 376,240" fill="none" stroke="black"/>
              <path d="M 120,304 L 224,304" fill="none" stroke="black"/>
              <path d="M 320,304 L 376,304" fill="none" stroke="black"/>
              <path d="M 184,336 L 328,336" fill="none" stroke="black"/>
              <path d="M 112,384 L 248,384" fill="none" stroke="black"/>
              <path d="M 96,416 L 232,416" fill="none" stroke="black"/>
              <path d="M 24,432 L 336,432" fill="none" stroke="black"/>
              <path d="M 8,464 L 320,464" fill="none" stroke="black"/>
              <path d="M 8,464 L 24,432" fill="none" stroke="black"/>
              <path d="M 96,416 L 112,384" fill="none" stroke="black"/>
              <path d="M 232,416 L 248,384" fill="none" stroke="black"/>
              <path d="M 320,464 L 336,432" 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 216,32 C 207.16936,32 200,39.16936 200,48" fill="none" stroke="black"/>
              <path d="M 280,32 C 288.83064,32 296,39.16936 296,48" fill="none" stroke="black"/>
              <path d="M 56,96 C 47.16936,96 40,88.83064 40,80" fill="none" stroke="black"/>
              <path d="M 168,96 C 176.83064,96 184,88.83064 184,80" fill="none" stroke="black"/>
              <path d="M 216,96 C 207.16936,96 200,88.83064 200,80" fill="none" stroke="black"/>
              <path d="M 280,96 C 288.83064,96 296,88.83064 296,80" fill="none" stroke="black"/>
              <path d="M 112,128 C 103.16936,128 96,135.16936 96,144" fill="none" stroke="black"/>
              <path d="M 232,128 C 240.83064,128 248,135.16936 248,144" fill="none" stroke="black"/>
              <path d="M 72,160 C 63.16936,160 56,167.16936 56,176" fill="none" stroke="black"/>
              <path d="M 104,160 C 112.83064,160 120,152.83064 120,144" fill="none" stroke="black"/>
              <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
              <path d="M 272,160 C 280.83064,160 288,167.16936 288,176" fill="none" stroke="black"/>
              <path d="M 112,192 C 103.16936,192 96,184.83064 96,176" fill="none" stroke="black"/>
              <path d="M 232,192 C 240.83064,192 248,184.83064 248,176" fill="none" stroke="black"/>
              <path d="M 120,240 C 111.16936,240 104,247.16936 104,256" fill="none" stroke="black"/>
              <path d="M 224,240 C 232.83064,240 240,247.16936 240,256" fill="none" stroke="black"/>
              <path d="M 320,240 C 311.16936,240 304,247.16936 304,256" fill="none" stroke="black"/>
              <path d="M 376,240 C 384.83064,240 392,247.16936 392,256" fill="none" stroke="black"/>
              <path d="M 120,304 C 111.16936,304 104,296.83064 104,288" fill="none" stroke="black"/>
              <path d="M 224,304 C 232.83064,304 240,296.83064 240,288" fill="none" stroke="black"/>
              <path d="M 320,304 C 311.16936,304 304,296.83064 304,288" fill="none" stroke="black"/>
              <path d="M 376,304 C 384.83064,304 392,296.83064 392,288" fill="none" stroke="black"/>
              <path d="M 184,336 C 175.16936,336 168,343.16936 168,352" fill="none" stroke="black"/>
              <path d="M 328,336 C 336.83064,336 344,328.83064 344,320" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="296,424 284,418.4 284,429.6" fill="black" transform="rotate(90,288,424)"/>
              <path class="jump" d="M 288,344 C 282,344 282,328 288,328" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="272,424 260,418.4 260,429.6" fill="black" transform="rotate(90,264,424)"/>
              <path class="jump" d="M 264,344 C 258,344 258,328 264,328" fill="none" stroke="black"/>
              <path class="jump" d="M 264,168 C 258,168 258,152 264,152" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="176,376 164,370.4 164,381.6" fill="black" transform="rotate(90,168,376)"/>
              <polygon class="arrowhead" points="176,232 164,226.4 164,237.6" fill="black" transform="rotate(90,168,232)"/>
              <polygon class="arrowhead" points="88,424 76,418.4 76,429.6" fill="black" transform="rotate(90,80,424)"/>
              <path class="jump" d="M 80,168 C 74,168 74,152 80,152" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="64,424 52,418.4 52,429.6" fill="black" transform="rotate(90,56,424)"/>
              <g class="text">
                <text x="72" y="52">Reuse</text>
                <text x="136" y="52">EAT/CoRIM</text>
                <text x="244" y="52">Register</text>
                <text x="72" y="68">media</text>
                <text x="128" y="68">type(s)</text>
                <text x="224" y="68">new</text>
                <text x="264" y="68">media</text>
                <text x="56" y="84">+</text>
                <text x="96" y="84">profile</text>
                <text x="228" y="84">type</text>
                <text x="172" y="148">Register</text>
                <text x="152" y="164">new</text>
                <text x="188" y="164">CoAP</text>
                <text x="172" y="180">Content-Format</text>
                <text x="168" y="260">Automatically</text>
                <text x="348" y="260">Existing</text>
                <text x="140" y="276">derive</text>
                <text x="188" y="276">CBOR</text>
                <text x="332" y="276">CBOR</text>
                <text x="128" y="292">tag</text>
                <text x="184" y="292">[RFC9277]</text>
                <text x="328" y="292">tag</text>
                <text x="140" y="404">CBOR</text>
                <text x="176" y="404">tag</text>
                <text x="208" y="404">CMW</text>
                <text x="168" y="452">CMW</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="left"><![CDATA[
       .---------------.   .---------.
      | Reuse EAT/CoRIM | | Register  |
      | media type(s)   | | new media |
      | + profile       | | type      |
       `---+----+------'   `-+----+--'
           |    |            |    |
           |  .-+------------+-.  |
           | |  |  Register  |  | |
         .-(-+-'   new CoAP   `-+-(-.
        |  | |  Content-Format  | |  |
        |  |  `-------+--------'  |  |
        |  |          |           |  |
        |  |          v           |  |
        |  |   .--------------.   |  |  .--------.
        |  |  | Automatically  |  |  | | Existing |
        |  |  | derive CBOR    |  |  | | CBOR     |
        |  |  | tag [RFC9277]  |  |  | | tag      |
        |  |   `------+-------'   |  |  `---+----'
        |  |          |           |  |      |
        |  |          |.----------(--(-----'
        |  |          |           |  |
        |  |          v           |  |
        |  |   .----------------. |  |
        |  |  /  CBOR tag CMW  /  |  |
        v  v `----------------'   v  v
    .--------------------------------------.
   /                 CMW                  /
  `--------------------------------------'
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>The list of currently open issues for this documents can be found at
<eref target="https://github.com/thomas-fossati/draft-ftbs-rats-msg-wrap/issues"/>.</t>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank
Carl Wallace,
Carsten Bormann,
Dionna Glaze,
Laurence Lundblade,
Russ Housley,
and
Tom Jones
for their reviews and suggestions.</t>
      <t>The definition of a CMW collection has been modelled on a proposal originally made by Simon Frost for an EAT-based Evidence collection type.  The CMW collection intentionally attains binary compatibility with Simon's design and aims at superseding it by also generalizing on the allowed Evidence formats.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
