<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mih-sokolov-cose-deterministic-encodings-00" category="std" consensus="true" submissionType="IETF" tocInclude="false" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="COSE Deterministic Encodings">Deterministic Encodings for COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-mih-sokolov-cose-deterministic-encodings-00"/>
    <author initials="S." surname="Mih" fullname="Steven Mih">
      <organization>Action State Group, Inc.</organization>
      <address>
        <email>spec@actionstate.ai</email>
      </address>
    </author>
    <author initials="A." surname="Sokolov" fullname="Anton Sokolov">
      <organization>Tyche Institute</organization>
      <address>
        <email>anton.sokolov@tyche.institute</email>
      </address>
    </author>
    <date year="2026" month="October" day="27"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>COSE</keyword>
    <keyword>hash envelope</keyword>
    <keyword>preimage</keyword>
    <keyword>canonicalization</keyword>
    <keyword>deterministic encoding</keyword>
    <abstract>
      <?line 52?>

<t>A COSE Hash Envelope signs the digest of a preimage, not the preimage
itself. When the preimage is the encoding of a structured value, such as a
CBOR data item, and a verifier holds that value but not the bytes that were
hashed, the verifier has to encode the value again, and the digest matches
only if it applies the same deterministic encoding as the producer. RFC 8949 describes more than one such encoding for the same
content type, and the preimage content type does not identify which one was
applied. This document defines a COSE Hash Envelope protected-header
parameter that identifies the encoding, and an IANA registry of deterministic
encodings whose initial entry is the Core Deterministic Encoding Requirements
of RFC 8949.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 65?>

<t>Individual submission, intended for the COSE Working Group (cose@ietf.org).</t>
      <t>Source for this document, with a reference emitter and verifier and test
vectors, is at
<eref target="https://github.com/action-state-group/cose-deterministic-encodings"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The COSE Hash Envelope <xref target="RFC9995"/> signs the digest of a preimage and
identifies the hash algorithm (258), the content type of the preimage (259),
and optionally where the preimage can be retrieved (260). A verifier that
holds the preimage can check that the digest of it, produced with the hash
algorithm identified by payload-hash-alg (258), matches the payload, as
<xref target="RFC9995"/> Section 5.3 describes. That check needs no information from this
document, and retaining the preimage is the simplest way to make it
possible.</t>
      <t>The Hash Envelope carries the digest, not the preimage, and
payload-location (260) is optional. The content therefore reaches a
verifier, if at all, from outside the Hash Envelope, in whatever form its
application provides, which can be a structured value rather than the bytes
that were hashed. The content can arrive as a data item inside a larger CBOR
message, and unless the message wraps that item in a byte string, most CBOR
decoders cannot return its encoded bytes (<xref target="I-D.ietf-cbor-serialization"/>
Appendices H.1 and J.1). A system can also store the content in another
representation -- for example, a software inventory that keeps Concise
Software Identification (CoSWID) tags <xref target="RFC9393"/> as records in a database
-- rather than keep a second copy of each item as the bytes that were
hashed, provided that representation preserves each data item exactly
(<xref target="security"/>). To check such content against its Hash Envelope, the
verifier has to encode the value again, the case in which
<xref target="I-D.ietf-cbor-serialization"/> Section 5.3.1 says deterministic encoding
becomes necessary and notes that designs of this kind are often chosen to
reduce data size, preserve privacy, or meet other design constraints. COSE
meets the same need for its own Sig_structure, which
the signer and the verifier each construct rather than transmit, by fixing
how that structure is encoded (<xref target="RFC9052"/> Sections 4.4 and 9). For a Hash
Envelope preimage, whose content type the application chooses, COSE fixes
no encoding.</t>
      <t>Re-encoding reproduces the preimage only if the verifier applies the
encoding the producer applied, and <xref target="RFC8949"/> describes more than one.
Section 4.2.1 sorts map keys bytewise, while Section 4.2.3 keeps the
length-first order of the earlier CBOR specification for protocols that need
to be compatible with that order: <tt>{1000: 1, "a": 2}</tt> is
<tt>a2 19 03 e8 01 61 61 02</tt> under the former and <tt>a2 61 61 02 19 03 e8 01</tt>
under the latter. The preimage-content-type (259) names the type of the content, such as
application/swid+cbor, not the encoding applied to it, so a verifier that
guesses the encoding cannot tell a modified value from one encoded under a
different rule.</t>
      <t>This document defines one protected-header parameter,
deterministic-encodings, which identifies that encoding, and a small IANA
registry of encoding identifiers. It uses the extension point the Hash
Envelope protected header already provides (<xref section="4" sectionFormat="of" target="RFC9995"/>:
<tt>* (int / tstr) =&gt; any</tt>). The encoding is not carried as a media-type
parameter of preimage-content-type (259). The application/cbor media type defines no
parameters (<xref target="RFC8949"/> Section 9.3), so such a parameter would have to be
registered for every media type the encoding applies to, and a CoAP
Content-Format number carries only the parameters fixed in its registry
entry (<xref target="RFC7252"/> Section 12.3), so each pairing of media type and encoding
would also need its own number.</t>
      <t>The scope of this document is structured values, such as CBOR data items,
and the deterministic encodings that serialize them. Media encodings, such
as those of images, and builds of software from source code are out of
scope; such content is checked from its bytes, as <xref target="RFC9995"/> Section 5.3
describes.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.</t>
      <t>"COSE", "COSE_Sign1", and "protected header" are defined in <xref target="RFC9052"/>;
"CDDL" in <xref target="RFC8610"/>; "Hash Envelope" and "preimage" in <xref target="RFC9995"/>.
As in <xref target="RFC9995"/>, the payload of a Hash Envelope is a digest, and the
preimage consists of the bytes that were hashed to produce it.
The Hash Envelope labels this document builds on are 258 (payload-hash-alg),
259 (preimage-content-type), and 260 (payload-location).</t>
      <t>This document also uses the following terms:</t>
      <dl>
        <dt>Structured value:</dt>
        <dd>
          <t>A value with internal structure, such as a CBOR data item, that a
deterministic encoding serializes to create a preimage.</t>
        </dd>
        <dt>Content binding:</dt>
        <dd>
          <t>The correspondence between content a verifier holds -- a preimage, or a
structured value -- and the payload of a Hash Envelope. A verifier that
checks a content binding reports one of three outcomes: verified, failed,
or unverified.</t>
        </dd>
        <dt>Verified:</dt>
        <dd>
          <t>The digest of the preimage, held or re-created from a structured value,
produced with the hash algorithm identified by payload-hash-alg (258),
matches the payload, and the verifier found no inconsistency in the
protected header (<xref target="consistency"/>).</t>
        </dd>
        <dt>Failed:</dt>
        <dd>
          <t>The verifier found the protected header inconsistent (<xref target="consistency"/>), or
the digest of the preimage, held or re-created from a structured value,
produced with the hash algorithm identified by payload-hash-alg (258),
does not match the payload.</t>
        </dd>
        <dt>Unverified:</dt>
        <dd>
          <t>Neither verified nor failed. When the verifier found no inconsistency in
the protected header (<xref target="consistency"/>), this is the case if it holds
neither the preimage nor a structured value; if it holds a structured
value but not the preimage, and deterministic-encodings is absent or
carries a value the verifier does not recognize or implement
(<xref target="verification"/>); or if it does not implement the hash algorithm
identified by payload-hash-alg (258).</t>
        </dd>
      </dl>
    </section>
    <section anchor="header-param">
      <name>The deterministic-encodings Header Parameter</name>
      <dl>
        <dt>TBD_1:</dt>
        <dd>
          <t>deterministic-encodings. The deterministic encoding with which a
structured value was serialized to create the bytes that were hashed
(preimage) to produce the payload, given as the integer Value (not the
Name) assigned to an encoding in the COSE Deterministic Encodings registry
(<xref target="iana-encodings"/>).</t>
        </dd>
      </dl>
      <t>It extends <xref target="RFC9995"/> by adding one optional member to the
Hash_Envelope_Protected_Header CDDL of <xref target="RFC9995"/> Section 4, alongside the
members for labels 258-260. The extended rule restates the <xref target="RFC9995"/> rule
with that member added:</t>
      <sourcecode type="cddl"><![CDATA[
Hash_Envelope_Protected_Header_With_Encoding = {
    ? &(alg: 1) => int,
    &(payload_hash_alg: 258) => int,
    ? &(payload_preimage_content_type: 259) => uint / tstr,
    ? &(payload_location: 260) => tstr,
    ? &(deterministic_encodings: TBD_1) => int,
    * (int / tstr) => any
}
]]></sourcecode>
      <t>Label TBD_1 MAY be present in the protected header and MUST NOT be present
in the unprotected header, following the placement rule <xref target="RFC9995"/> states
for labels 258 through 260. When label TBD_1 is present,
preimage-content-type (259) MUST also be present (<xref target="consistency"/>). A
producer MUST NOT list label TBD_1 in the crit header parameter
(<xref target="RFC9052"/> Section 3.1), so that a verifier that implements only
<xref target="RFC9995"/> can ignore it.</t>
    </section>
    <section anchor="behavior">
      <name>Producer and Verifier Behavior</name>
      <section anchor="producers">
        <name>Producers</name>
        <t>When a producer creates the preimage by applying a deterministic encoding to
a structured value, it SHOULD include deterministic-encodings, so that a
verifier holding only the structured value can re-create the preimage. When
present, the value MUST identify the encoding actually applied. A producer
that serializes a structured value without a deterministic encoding, or
whose preimage is not the serialization of a structured value -- for
example application/octet-stream content, an image, or an archive -- has no
encoding to identify, and the parameter is absent; the content binding can
then be checked only from the preimage bytes.</t>
      </section>
      <section anchor="consistency">
        <name>Consistency with preimage-content-type</name>
        <t>Each registered encoding lists the content types it applies to, as the
Applicable Content Types of its registry entry (<xref target="iana-encodings"/>). When
deterministic-encodings is present, preimage-content-type (259) MUST also
be present, and its value MUST match one of the Applicable Content Types of
the encoding that deterministic-encodings identifies:</t>
        <ul spacing="normal">
          <li>
            <t>A 259 value that is a media-type name matches when its type and subtype --
with any parameters removed, and compared case-insensitively (<xref target="RFC6838"/>
Section 4.2) -- equal a listed media type, or when its subtype ends in a
listed structured syntax suffix (<xref target="RFC6838"/> Section 4.2.8).</t>
          </li>
          <li>
            <t>A 259 value that is a Content-Format number matches when the CoAP
Content-Formats registry (<xref target="RFC7252"/> Section 12.3) assigns that number to
a matching media type with no content coding.</t>
          </li>
        </ul>
        <t>A producer MUST NOT emit a Hash Envelope that violates these rules -- for
example, one pairing core-deterministic with application/json. A verifier
that finds deterministic-encodings present with preimage-content-type
(259) absent, or with a 259 value that does not match the Applicable Content
Types of an encoding the verifier recognizes, MUST report the content
binding as failed, without attempting recomputation. This check comes
first, and takes precedence over <xref target="verification"/>. This outcome applies only
to Hash Envelopes that carry deterministic-encodings; a verifier that
implements only <xref target="RFC9995"/> ignores the parameter, and its results are
unchanged.</t>
      </section>
      <section anchor="verification">
        <name>Verifying the Content Binding</name>
        <t>A verifier that holds the preimage itself -- for example, as retrieved from
payload-location (260) -- checks the content binding as <xref target="RFC9995"/>
Section 5.3 describes: it checks whether the digest of the preimage, produced
with the hash algorithm identified by payload-hash-alg (258), matches the
payload. That check needs no encoding information, and applies whether or not deterministic-encodings
is present, subject to <xref target="consistency"/>.</t>
        <t>A verifier that holds only a structured value -- for example, content it
received, stored, or decoded in a form other than the preimage itself --
has to re-create the preimage by encoding that value, and needs
deterministic-encodings to do so. Such a verifier MUST encode the value
with the encoding that deterministic-encodings identifies, and MUST NOT infer the encoding
from preimage-content-type (259) or from the structure of the value. If
deterministic-encodings is absent, or carries a value the verifier does
not recognize or implement, the verifier cannot re-create the preimage: it
MUST NOT report the content binding as verified, and MUST report it as
unverified rather than as failed.</t>
        <t>A Hash Envelope produced without this parameter -- including any produced
before the parameter was registered -- is not defective: its content binding
can still be verified from the preimage bytes. Signature validity is
unaffected by any content-binding outcome: a verifier that has not
established the content binding can still validate the signature of the
COSE_Sign1 as specified in <xref target="RFC9052"/>.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>These use Extended Diagnostic Notation (<xref target="RFC8610"/> Appendix G), in the
style of <xref target="RFC9995"/> Section 4.1; signature and key material are truncated.</t>
      <t>The structured value <tt>{"b": 2, "a": 1}</tt>, a CBOR map, encoded per the Core
Deterministic Encoding Requirements of <xref target="RFC8949"/> Section 4.2.1 (bytewise
key order, placing "a" before "b"), gives the 7-octet preimage
<tt>a2616101616202</tt>, whose SHA-256 digest is
<tt>a0d3af9e86e5517f729bad0657e2c6f3b7d03899894c8d6b33759074c893b5e3</tt>:</t>
      <artwork><![CDATA[
18([ # COSE_Sign1
  <<{
    / alg                     / 1: -7, # ES256
    / hash algorithm          / 258: -16, # sha-256
    / preimage type           / 259: "application/cbor",
    / deterministic encodings / TBD_1: 1, # core-deterministic
  }>>
  / unprotected / {},
  / payload     / h'a0d3af9e...c893b5e3', # digest above
  / signature   / h'...'  # 64 octets, r || s
])
]]></artwork>
      <t><xref target="RFC9393"/> registers application/swid+cbor for Concise Software
Identification (CoSWID) tags but does not require a deterministic encoding of
them, so two producers may serialize the same tag as different byte
sequences. A producer that applies the Core Deterministic Encoding
Requirements before hashing a CoSWID tag sets preimage-content-type (259) to
application/swid+cbor and deterministic-encodings to core-deterministic
(Value 1) -- recording its own choice, not a CoSWID requirement -- so that a
verifier holding the decoded tag knows how to re-create the preimage.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The preimage is exactly the bytes that the identified encoding produces,
not a rendering of them.</t>
      <t>A deterministic encoding fixes the preimage for a given structured value, so
decoding a preimage and encoding the result again reproduces the preimage
only if decoding preserved that value exactly. Decoding into a programming
language's native types can lose distinctions the encoding depends on -- for
example, between integer and floating-point numbers, or the presence of a
tag. Choices that decide which data item represents a value, such as those
<xref target="RFC8949"/> Section 4.2.2 leaves to each protocol for tags and for integer
versus floating-point values, belong to the structured value, not to
the encoding that deterministic-encodings identifies. A choice that changes only how the same
data item is serialized, such as encoding every floating-point value as binary64, is a different
encoding and needs its own value. A producer that re-reads stored content before hashing
MUST ensure the preimage it hashes is byte-identical to the encoding's own
output. A verifier that re-creates a preimage from a structured value
(<xref target="verification"/>) needs that value exactly as the producer encoded it;
otherwise its recomputed digest can differ from the payload, and the content
binding is then reported as failed.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A digest over deterministically encoded content is a stable function of
that content, so the payload is linkable wherever the content recurs. If the
structured value comes from a low-entropy space, encoding and hashing
candidate values can recover it; this risk already exists wherever
<xref target="RFC9995"/> is used, and identifying the encoding removes an ambiguity that
might have slowed such an attempt.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-header">
        <name>COSE Header Parameters</name>
        <t>IANA is requested to register the following entry in the "COSE Header
Parameters" registry, in the "Integer values from 256 to 65535" range,
under the Specification Required policy (<xref target="RFC8126"/> Section 4.6) that
governs that range:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">Value Type</th>
              <th align="left">Value Registry</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">deterministic-encodings</td>
              <td align="left">TBD_1</td>
              <td align="left">int</td>
              <td align="left">COSE Deterministic Encodings (<xref target="iana-encodings"/>)</td>
              <td align="left">Deterministic encoding applied to create the preimage of a Hash Envelope payload</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>The suggested value for TBD_1 is 271, the lowest unassigned value in the
"Integer values from 256 to 65535" range of the COSE Header Parameters
registry as of 2026-10-18.</t>
      </section>
      <section anchor="iana-encodings">
        <name>COSE Deterministic Encodings Registry</name>
        <t>IANA is requested to create a new registry, "COSE Deterministic Encodings".
The registry identifies deterministic encodings of structured content; it
carries no Hash Envelope semantics of its own, and a value is meaningful only
through a parameter, such as deterministic-encodings (<xref target="header-param"/>),
that gives it a role. The registry is not specific to one data model or
content type: an entry applies wherever preimage-content-type (259) matches
its Applicable Content Types (<xref target="consistency"/>), and encodings for other
structured content types can be registered under the policy below.</t>
        <t>A registry is used, rather than a fixed reference, for the reasons in
<xref target="intro"/>. A profile that has its own media type, such as
application/vnd.ipld.dag-cbor <xref target="DAG-CBOR"/>, is already identified by 259; content labelled
application/cbor, or with an application's own type such as
application/swid+cbor, is not. Rules that only restrict which data items may
occur produce Section 4.2.1 output and use value 1; this includes the
deterministic serialization of <xref target="I-D.ietf-cbor-serialization"/>, which only
excludes non-trivial NaNs (Appendix B.5 of that document).</t>
        <t>Registration policy: Specification Required (<xref target="RFC8126"/> Section 4.6). The
registration template is: Value (an unsigned integer), Name, Description,
Applicable Content Types (media types and structured syntax suffixes, matched
against 259 as <xref target="consistency"/> specifies), Reference, and Change Controller.
The designated expert checks that the referenced specification defines
exactly one deterministic encoding for the value, together with any
constraints on the structured values it accepts, and that its Applicable
Content Types are correct and can be matched as <xref target="consistency"/> specifies.
Entries are immutable: the registry grows by adding values, never by
reinterpreting an existing one. An entry MAY be withdrawn through the same
procedure; a withdrawn value and its name are never reassigned.</t>
        <t>Initial contents:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
              <th align="left">Change Controller</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">core-deterministic</td>
              <td align="left">Core Deterministic Encoding Requirements</td>
              <td align="left">
                <xref target="RFC8949"/> Section 4.2.1</td>
              <td align="left">IETF</td>
            </tr>
          </tbody>
        </table>
        <t>The Applicable Content Types of value 1 are application/cbor,
application/cbor-seq, application/cose, application/cose-key,
application/cose-key-set, application/cose-x509, application/cwt, and
application/multipart-core, and media types with
the +cbor, +cbor-seq, +cose, +cwt, or +sd-cwt structured syntax suffix.
For a CBOR sequence <xref target="RFC8742"/>, each data item is encoded according
to these requirements. Value 1 is exactly <xref target="RFC8949"/> Section 4.2.1; the
choices that Section 4.2.2 leaves to a protocol are not part of it
(<xref target="security"/>).</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="RFC8126">
          <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="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="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="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="RFC9995">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Hash Envelope</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document defines new CBOR Object Signing and Encryption (COSE) header parameters for signaling a payload as an output of a hash function. This mechanism enables faster validation, as access to the original payload is not required for signature validation. Additionally, hints of the hashed payload's content format and availability are defined, providing references to optional discovery mechanisms that can help to find the original payload content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9995"/>
          <seriesInfo name="DOI" value="10.17487/RFC9995"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles. SWID tag representations can be too large for devices with network and storage constraints. This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags. CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-serialization">
          <front>
            <title>CBOR Serialization and Determinism</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="23" month="October" year="2026"/>
            <abstract>
              <t>   RFC 8949 defines CBOR, a standard for serializing data types such as
   integers, strings, and arrays into encoded bytes.  CBOR serialization
   is flexible, allowing data types to be encoded in multiple ways to
   accommodate deployment in constrained environments.  This document
   normatively defines one particular serialization, called "preferred-
   plus serialization," that is suitable for the majority of CBOR-based
   protocols.  Protocol designers and implementers who choose it need
   not understand or specify serialization details themselves.  This
   document also normatively defines a deterministic serialization.
   These serializations are largely compatible with those widely
   implemented by the CBOR community.

   This document updates RFC 8949 with a new rule that limits how new
   tag definitions can affect the CBOR data model.

   This document provides clarifications to RFC 8949 regarding bignums
   and floating-point NaN handling, along with general background
   information on serialization, determinism, and CBOR byte-string
   wrapping.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-serialization-11"/>
        </reference>
        <reference anchor="DAG-CBOR" target="https://ipld.io/specs/codecs/dag-cbor/spec/">
          <front>
            <title>Specification: DAG-CBOR</title>
            <author>
              <organization>IPLD</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 418?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Amaury Chamayou for a detailed review that aligned this
document's terminology, CDDL, and verification rules with <xref target="RFC9995"/> and
proposed the name core-deterministic, and Henk Birkholz for a review of its
scope, motivation, and terminology.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
