<?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.31 (Ruby 3.4.8) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-edn-mapkey-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Numeric Map Labels from Textual EDN">CBOR: Generating Numeric Map Labels from Textual EDN</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-edn-mapkey-01"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="01"/>
    <keyword>CBOR EDN</keyword>
    <keyword>References to CDDL numbers</keyword>
    <abstract>
      <?line 50?>

<t>The Concise Binary Object Representation (CBOR, STD 94 == RFC 8949) 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.</t>
      <t>CBOR diagnostic notation (EDN) is widely used to represent CBOR data
items in a way that is accessible to humans, for instance for examples
in a specification.
Complex examples often use nested maps, the map keys (labels) for each
of which are often sourced from different specifications.
While the <tt>e''</tt> application extension provides a way to import data items,
particularly constant values, from a CDDL model, it does not help with
automatically selecting the right kind of map depending on its
position in the nested maps.</t>
      <t><cref anchor="status">The present document is intended to capture ideas initially
discussed at the CBOR WG interim 2025-06-25 and demonstrate some
design alternatives.  It is not ready for adoption yet in any way.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cabo.github.io/mapkey/draft-bormann-cbor-edn-mapkey.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-cbor-edn-mapkey/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cbor Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/mapkey"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
<xref target="STD94"/> <xref target="I-D.ietf-cbor-edn-literals"/> <xref target="I-D.ietf-cbor-edn-e-ref"/></t>
    </section>
    <section anchor="the-mapkey-application-extension-importing-map-labels-from-cddl">
      <name>The <tt>mapkey&lt;&lt;&gt;&gt;</tt> application extension: importing map labels from CDDL</name>
      <section numbered="false" anchor="problem">
        <name>Problem</name>
        <t>In diagnostic notation examples, authors often would prefer to use
text names in place of the integer map keys that are used in a
protocol message for efficiency.
While the <tt>e''</tt> application extension provides a way to associate
names with integer data items, the protocol designer must be very
careful to use the right name for the kind of map that uses the
integer key: Different specifications may use different integer numbers
for a key with the same textual name, and even in a single specification there
may be homonyms that resolve to different integer values in different
kinds of maps (e.g., in <xref target="STD96"/>, <tt>alg</tt> is represented by 1 in headers
and by 3 in <tt>COSE_Key</tt>).</t>
        <t>For example, Figure 4 in <xref section="3.5.2" sectionFormat="of" target="RFC9528"/> contains this
example that employs nested maps:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{                                              /CCS/
  2 : "42-50-31-FF-EF-37-32-39",               /sub/
  8 : {                                        /cnf/
    1 : {                                      /COSE_Key/
      1 : 1,                                   /kty/
      2 : h'00',                               /kid/
     -1 : 4,                                   /crv/
     -2 : h'b1a3e89460e88d3a8d54211dc95f0b90   /x/
            3ff205eb71912d6db8f4af980d2db83a'
    }
  }
}
]]></sourcecode>
        <t>To check this example, a human reviewer has to look up the integer
labels in the specifications for the different maps employed and
translate them to the names of the map keys defined for each type of
map.
The outer map is a CWT Claims Set (CCS), for which the labels 2 (<tt>sub</tt>)
and 8 (<tt>cnf</tt>) are defined in <xref target="RFC8392"/> and <xref target="RFC8747"/>, respectively.
Within <tt>cnf</tt>, the label for <tt>COSE_Key</tt> is also defined by <xref target="RFC8747"/>, while
the labels within that map are defined in Section <xref target="RFC9052" section="7" sectionFormat="bare"/> of RFC 9052 <xref target="STD96"/>.
Map keys are also often an extension point, and obtaining their
numeric values therefore also may require consulting an IANA registry.</t>
        <t>The objective of the present proposal is that a specification writer
could employ an EDN app-extension that allows the example to read a
bit like:</t>
        <sourcecode type="cbor-diag"><![CDATA[
mapkey<<"Claims-Set",
  {
    "sub": "42-50-31-FF-EF-37-32-39"
    "cnf": {
      "COSE_Key": {
        "kty": "OKP"
        "kid": h'00'
        "crv": "X25519"
        "x": h'b1a3e89460e88d3a8d54211dc95f0b90
              3ff205eb71912d6db8f4af980d2db83a'
      }
    }
  }
>>
]]></sourcecode>
        <t>Note that this example not only uses names for map keys, but also uses
names for map values 1 ("OKP") and 4 ("X25519").</t>
        <t><cref anchor="Discussion">Discussion:</cref> For use in EDN, the names need to be provided in some
form that is a valid CBOR data item.
In the example above, this is done in text strings; for increased
clarity, it could be done in a more eye-catching way, e.g., as single-quoted (byte) strings or
even in an <tt>e'...'</tt>-like construct.</t>
      </section>
      <section numbered="false" anchor="solution">
        <name>Solution</name>
        <t>In many cases, the constants needed to handle the numeric map labels
in this example are already available in a CDDL model, or could be
easily made available in this way.</t>
        <t>For the example used in this section, <xref target="RFC9781"/> provides CDDL for <xref target="RFC8392"/>
and <xref target="RFC8747"/>, and <xref target="STD96"/> provides CDDL for its own data types.
Note that, to remain useful with extension points where new map keys
are defined regularly, there needs to be a way to reference
IANA registries for the name-to-integer translation; this is a
separate problem for which a potential solution is presented in
<xref section="A.2.1" sectionFormat="of" target="I-D.bormann-cbor-cddl-2-draft"/>.</t>
        <t>This section needs to define where in the CDDL the names to be
resolved are looked for; CDDL rule names are one obvious candidate, as
are member names for group choices that are often
employed for documentation (Figure 2 in <xref section="2" sectionFormat="of" target="RFC9290"/> shows
member names such as "title", "detail", etc.):</t>
        <sourcecode type="cddl"><![CDATA[
   problem-details = non-empty<{
     ? &(title: -1) => oltext
     ? &(detail: -2) => oltext
     ? &(instance: -3) => ~uri
     ? &(response-code: -4) => uint .size 1
     ? &(base-uri: -5) => ~uri
     ? &(base-lang: -6) => tag38-ltag
     ? &(base-rtl: -7) => tag38-direction
]]></sourcecode>
        <!-- {: #fig-cddl title="CDDL model defining the constants for e''"} -->

<t>This specification defines an app-extension <tt>mapkey&lt;&lt;&gt;&gt;</tt> with two parameters:</t>
        <ul spacing="normal">
          <li>
            <t>The name of the CDDL rule for the top level (here: <tt>Claims-Set</tt>),
and</t>
          </li>
          <li>
            <t>an EDN depiction of the data structure where names can be used in
place of numeric map keys and values.</t>
          </li>
        </ul>
        <t>Note that the app-extension does not itself define
where the CDDL definitions it uses come from.
This information needs to come from the context of the example, and
there is probably value in establishing a convention.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to make the following two assignments in the CBOR
Diagnostic Notation Application-extension Identifiers
registry [IANA.cbor-diagnostic-notation] established by <xref target="I-D.ietf-cbor-edn-literals"/>:</t>
      <table anchor="tab-iana">
        <name>Additions to Application-extension Identifier Registry</name>
        <thead>
          <tr>
            <th align="left">Application-extension Identifier</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">mapkey</td>
            <td align="left">import map labels from external CDDL</td>
          </tr>
        </tbody>
      </table>
      <t>All entries have the Change Controller "IETF" and the Reference "RFC-XXXX".</t>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFC-XXXX with the RFC
number of this RFC, [IANA.cbor-diagnostic-notation] with a
reference to the registry group established by <xref target="I-D.ietf-cbor-edn-literals"/>, and remove this note.</cref></t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/>, <xref target="STD94"/>, <xref target="I-D.ietf-cbor-edn-literals"/> apply.</t>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <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="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="16" month="October" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -19
   // includes the definition of the cri'' application- extension. cri''
   // was previously defined in draft-ietf-core-href; however the latter
   // document overtook the present document in the approval process.
   // As the definition of cri'' is dependent on the present document
   // (and conversely has essentially no dependency on the technical
   // content of draft-ietf-core-href beyond its mere existence), the
   // text (including IANA considerations) has been moved here. -19 is
   // intended for use at the CBOR WG meeting at IETF 124.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-19"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-cbor-edn-e-ref">
          <front>
            <title>External References to Values in CBOR Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) 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.

   CBOR diagnostic notation (EDN) is widely used to represent CBOR data
   items in a way that is accessible to humans, for instance for
   examples in a specification.  At the time of writing, EDN did not
   provide mechanisms for composition of such examples from multiple
   components or sources.  This document uses EDN application extensions
   to provide two such mechanisms, both of which insert an imported data
   item into the data item being described in EDN:

   The e'' application extension provides a way to import data items,
   particularly constant values, from a CDDL model (which itself has
   ways to provide composition).

   The ref'' application extension provides a way to import data items
   that are described in EDN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-e-ref-02"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9781">
          <front>
            <title>A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR Web Token Claims Sets (UCCS)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>This document defines the Unprotected CWT Claims Set (UCCS), a data format for representing a CBOR Web Token (CWT) Claims Set without protecting it by a signature, Message Authentication Code (MAC), or encryption. UCCS enables the use of CWT claims in environments where protection is provided by other means, such as secure communication channels or trusted execution environments. This specification defines a CBOR tag for UCCS and describes the UCCS format, its encoding, and its processing considerations. It also discusses security implications of using unprotected claims sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9781"/>
          <seriesInfo name="DOI" value="10.17487/RFC9781"/>
        </reference>
        <referencegroup anchor="STD96" target="https://www.rfc-editor.org/info/std96">
          <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/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="RFC9338" target="https://www.rfc-editor.org/info/rfc9338">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="December" year="2022"/>
              <abstract>
                <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9338"/>
            <seriesInfo name="DOI" value="10.17487/RFC9338"/>
          </reference>
        </referencegroup>
        <reference anchor="I-D.bormann-cbor-cddl-2-draft">
          <front>
            <title>CDDL 2.0 and beyond -- a draft plan</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="30" month="August" year="2025"/>
            <abstract>
              <t>   The Concise Data Definition Language (CDDL) today is defined by
   RFC 8610, RFC 9165, RFC 9682, and RFC\ 9741).  RFC 9165 and the
   latter (as well as some more application specific specifications such
   as RFC 9090) have used the extension point provided in RFC 8610, the
   control operator.

   As CDDL is used in larger projects, feature requirements become known
   that cannot be easily mapped into this single extension point.
   Hence, there is a need for evolution of the base CDDL specification
   itself.

   The present document provides a roadmap towards a "CDDL 2.0"; it is
   intended to serve as a basis for implementations that evolve with the
   concept of CDDL 2.0.  It is based on draft-bormann-cbor-cddl-freezer,
   but is more selective in what potential features it takes up and more
   detailed in their discussion.  This document is intended to evolve
   over time; it might spawn specific documents and then retire, or it
   might eventually be published as a roadmap document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cddl-2-draft-07"/>
        </reference>
      </references>
    </references>
    <?line 233?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
v+/H8dOSHgAA

-->

</rfc>
