<?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.22 (Ruby 3.3.4) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cbor-edn-e-ref-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="EDN external references">External References to Values in CBOR Diagnostic Notation (EDN)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-e-ref-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>
    <date year="2024" month="December" day="29"/>
    <keyword>CBOR numbers</keyword>
    <keyword>References to CDDL numbers</keyword>
    <abstract>
      <?line 55?>

<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.</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.
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:</t>
      <t>The <tt>e''</tt> application extension provides a way to import data items,
particularly constant values, from a CDDL model (which itself has ways
to provide composition).</t>
      <t>The <tt>ref''</tt> application extension provides a way to import data items
that are described in EDN.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cbor-wg.github.io/edn-e-ref/draft-ietf-cbor-edn-e-ref.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cbor-edn-e-ref/"/>.
      </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/cbor-wg/edn-e-ref"/>.</t>
    </note>
  </front>
  <middle>
    <?line 78?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
<xref target="RFC8949"/> <xref target="I-D.ietf-cbor-edn-literals"/></t>
      <t>See <xref target="I-D.bormann-cbor-draft-numbers"/> for a more general discussion of working with assigned
numbers during development of a specification.</t>
    </section>
    <section anchor="the-e-application-extension-importing-from-cddl">
      <name>The <tt>e''</tt> application extension: importing from CDDL</name>
      <section numbered="false" anchor="problem">
        <name>Problem</name>
        <t>In diagnostic notation examples used during development of earlier
drafts, authors often used text strings in place of constants they
need, even though they actually mean a placeholder for a later,
to-be-registered integer.</t>
        <t>One example from a recent draft would be:</t>
        <figure anchor="fig-incorrect">
          <name>Misleading usage of text strings as stand-in for registered constants</name>
          <artwork><![CDATA[
{
    "group_mode" : true,
    "gp_enc_alg" : 10,
          "hkdf" : 5
}
]]></artwork>
        </figure>
        <t>Not only is the reader misled by seeing text strings in places that
are actually intended to be small integers, there are also small
integers that are not explained at all (here: 10, 5).
The usefulness of this example is greatly reduced.
Examples constructed in this are not actually machine-readable -- they
seem to be, but they mean the wrong thing in several places without
any warning that this is so.</t>
      </section>
      <section numbered="false" anchor="solution">
        <name>Solution</name>
        <t>In many cases, the constants needed to clean up this example are
already available in a CDDL model, or could be easily made available
in this way.</t>
        <t>If such a CDDL model can be identified, the EDN application extension
<tt>e'constant-name'</tt> can be used to reference a constant defined by that
model under the name <tt>constant-name</tt>.
(Hint: memorize the <tt>e</tt> as external constant, or enum.)</t>
        <t>For the example in <xref target="fig-incorrect"/>, such a CDDL model could have at
least the content shown in <xref target="fig-cddl"/>:</t>
        <figure anchor="fig-cddl">
          <name>CDDL model defining constants for e''</name>
          <sourcecode type="cddl"><![CDATA[
group_mode = 33
gp_enc_alg = 34
hkdf = 31
HMAC-256-256 = 5
AES-CCM-16-64-128 = 10
]]></sourcecode>
        </figure>
        <t>Note that such a model can have other, unrelated CDDL rules that
define more complex data items; only the ones used in an <tt>e''</tt>
construct need to be constant values.</t>
        <t>Using the CDDL model in <xref target="fig-cddl"/>, the example in <xref target="fig-incorrect"/> can
be notated as (example derived from <xref section="6.2-9" sectionFormat="of" target="I-D.ietf-ace-oscore-gm-admin"/>):</t>
        <figure anchor="fig-using-e">
          <name>Example updated to use e'constantname' for registered constants</name>
          <artwork><![CDATA[
{
    e'group_mode' : true,
    e'gp_enc_alg' : e'AES-CCM-16-64-128',
          e'hkdf' : e'HMAC-256-256'
}
]]></artwork>
        </figure>
        <!--
CBOR_DIAG_CDDL=sourcecode/cddl/cddl-model-defining-constan.cddl diag2diag.rb -ae
 -->

<t>This example is equivalent to notating <tt>{33: true, 34: 10, 31: 5}</tt>,
which expresses the concise 10-byte data item that will actually be
interchanged for this example.</t>
        <t>Note that the application-oriented literal does not itself define
where the CDDL definitions it uses come from.  This information needs
to come from the context of the example.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="implementation">
        <name>Implementation</name>
        <t>The <tt>e''</tt> application extension is now implemented in the <tt>cbor-diag</tt>
tools <xref target="cbor-diag"/>, by the <tt>cbor-diag-e</tt> gem <xref target="cbor-diag-e"/>, which can
be installed as:</t>
        <artwork><![CDATA[
 gem install cbor-diag-e cddlc
]]></artwork>
        <t>(<tt>cbor-diag-e</tt> uses <tt>cddlc</tt> <xref target="cddlc"/> internally, so it must be in PATH.)
The provided</t>
        <t>Use of this extension has two prerequisites:</t>
        <ol spacing="normal" type="1"><li>
            <t>Opt-in to the application extension <tt>e</tt>, which in the <tt>cbor-diag</tt>
tools such as <tt>diag2</tt><em>x</em><tt>.rb</tt> is done using the <tt>-a</tt> command line
flag, here: <tt>-ae</tt>.</t>
          </li>
          <li>
            <t>Identification of the CDDL model to be used, which will give the
actual values for the constants.  </t>
            <t>
This can be a complete CDDL model for the application, no need to
limit it just to constant definitions.
(Where the constant values need to be obtained by registration at
the time of completion of the document using the examples, the CDDL
model can be set up with TBD values of the constants to be
assigned, and once they are, the necessary updates are all in one
place.)</t>
          </li>
        </ol>
        <t>Assuming that the example in <xref target="fig-using-e"/> is in a file called
<tt>gmadmin.diag</tt>, and that the CDDL model that includes the constants
defined in <xref target="fig-cddl"/> is in <tt>gmadmin.cddl</tt>, the following commands can
be used to translate the <tt>e'</tt>` constants into their actual values:</t>
        <sourcecode type="shell"><![CDATA[
$ export CBOR_DIAG_CDDL=gmadmin.cddl
$ diag2diag.rb -ae gmadmin.diag
{33: true, 34: 10, 31: 5}
]]></sourcecode>
      </section>
      <section numbered="false" removeInRFC="true" anchor="provisional-use">
        <name>Provisional use</name>
        <t>The need for this application is there now, while ratification of the
present specification might take a year or so.
Until then, each document using this scheme can simply use boilerplate
such as:</t>
        <blockquote>
          <t>In the CBOR diagnostic notation used in this document, constructs of
the form <tt>e’somename'</tt> are replaced by the value assigned to
<tt>somename</tt> in CDDL in figure 0815.
E.g., <tt>{e'group_mode': "bar"}</tt> stands for <tt>{33: "bar"}</tt>.</t>
        </blockquote>
        <t>(Choose 0815, group_mode and 33 along the lines of the figure you
include with the CDDL definitions needed.)</t>
      </section>
    </section>
    <section anchor="the-ref-application-extension-importing-from-edn">
      <name>The <tt>ref''</tt> application extension: importing from EDN</name>
      <section numbered="false" anchor="problem-1">
        <name>Problem</name>
        <t>Examples using CBOR diagnostic notation can get large.
One way to manage the size of an example is to make it incomplete.
This reduces the usefulness of the example for machine-processing.
It can also be misleading, unless the elision is made explicit (see
<xref section="3.2" sectionFormat="of" target="I-D.ietf-cbor-edn-literals"/>).</t>
      </section>
      <section numbered="false" anchor="solution-1">
        <name>Solution</name>
        <t>In a set of CBOR examples, recurring subtrees can often be identified,
the details of which do not need to be repeated in each example.</t>
        <t>By enabling examples to reference these subtrees from a separate piece
of EDN, each example can focus on what is specific for them.</t>
        <t>The <tt>ref''</tt> application-oriented literal enables composition by
standing for a CBOR data item from a separate EDN instance that is
referenced using its text as an identifier.</t>
        <t>So, for example, if <tt>123.diag</tt> is a file containing</t>
        <artwork><![CDATA[
[1, 2, 3]
]]></artwork>
        <t>the result of the EDN</t>
        <artwork><![CDATA[
[4711.0, true, ref’123.diag’]
]]></artwork>
        <t>is</t>
        <artwork><![CDATA[
[4711.0, true, [1, 2, 3]]
]]></artwork>
        <t>The text of the literal can be one of two kinds of identifiers:</t>
        <ol spacing="normal" type="1"><li>
            <t>a file name to be interpreted in the context of the referencing
example, as shown above, or</t>
          </li>
          <li>
            <t>a URI that references the EDN to be embedded, as in  </t>
            <artwork><![CDATA[
  [4711.0, true, ref'http://tzi.de/~cabo/123.diag']
]]></artwork>
            <t><!-- URI-references that are not absolute would, again, be interpreted -->
            </t>
            <t><!-- in the context of the referencing example. -->
            </t>
          </li>
        </ol>
        <aside>
          <t>(ISSUE: We could use upper-case REF to unambiguously identify one of
he two; the current implementation however just tries to parse the
literal text as a URI and, if that fails, interprets it as a file
name.)</t>
        </aside>
        <t>Note that a <tt>ref''</tt> application-oriented literal can only be used for
a single CBOR data item; the extension point provided by EDN does not
work for splicing in CBOR sequences.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="implementation-1">
        <name>Implementation</name>
        <t>The <tt>ref''</tt> application extension is now implemented in the <tt>cbor-diag</tt>
tools <xref target="cbor-diag"/>, by the <tt>cbor-diag-ref</tt> gem <xref target="cbor-diag-ref"/>, which can be installed as:</t>
        <artwork><![CDATA[
 gem install cbor-diag-ref
]]></artwork>
        <t>For using the application extension, the <tt>cbor-diag</tt> tools such as
<tt>diag2</tt><em>x</em><tt>.rb</tt> need to be informed by the <tt>-a</tt> command line flag,
here: <tt>-aref</tt>.</t>
        <t>For experimenting with the implementation, the web resource
<tt>http://tzi.de/~cabo/123.diag</tt> contains <tt>[1, 2, 3]</tt>.
This example enables usage as in:</t>
        <sourcecode type="shell"><![CDATA[
$ echo "[4711.0, true, ref'http://tzi.de/~cabo/123.diag']" >my.diag
$ diag2diag.rb -aref my.diag
[4711.0, true, [1, 2, 3]]

$ echo "[4, 5, 6]" >456.diag
$ echo "[4711.0, true, ref'456.diag']" >my.diag
$ diag2diag.rb -aref my.diag
[4711.0, true, [4, 5, 6]]
]]></sourcecode>
        <t>If a referenced EDN file parses as a CBOR sequence this is currently
treated as an error.</t>
      </section>
      <section numbered="false" removeInRFC="true" anchor="provisional-use-1">
        <name>Provisional use</name>
        <t>Documents that want to use the application extension <tt>ref''</tt> now can
use boilerplate similar to that given above for <tt>e''</tt>.</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]:</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">e</td>
            <td align="left">import value from external CDDL</td>
          </tr>
          <tr>
            <td align="left">ref</td>
            <td align="left">import value from external EDN</td>
          </tr>
        </tbody>
      </table>
      <t>All entries 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 new registry group, 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="RFC8949"/>, and <xref target="I-D.bormann-t2trg-deref-id"/> apply.</t>
      <t>The proof of concept implementations described do not do any
sanitizing of URLs or file names at all.
Upcoming versions of the present document will need to define the
right restrictions for external references like this.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="9" month="December" year="2024"/>
            <abstract>
              <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.

   In addition to the binary interchange format, CBOR from the outset
   (RFC 7049) defined a text-based "diagnostic notation" in order to be
   able to converse about CBOR data items without having to resort to
   binary data.  RFC 8610 extended this into what is known as Extended
   Diagnostic Notation (EDN).

   This document consolidates the definition of EDN, sets forth a
   further step of its evolution, and is intended to serve as a single
   reference target in specifications that use EDN.  It updates RFC
   8949, obsoleting its Section 8, and RFC 8610, obsoleting its
   Appendix G.

   It specifies an extension point for adding application-oriented
   extensions to the diagnostic notation.  It then defines two such
   extensions that enhance EDN with text representations of epoch-based
   date/times and of IP addresses and prefixes (RFC 9164).

   A few further additions close some gaps in usability.  The document
   modifies one extension originally specified in Appendix G.4 of RFC
   8610 to enable further increasing usability.  To facilitate tool
   interoperation, this document specifies a formal ABNF grammar, and it
   adds media types.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision -14 is intended to reflect the feedback on -13 as
   // discussed during IETF 121.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-14"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.bormann-cbor-draft-numbers">
          <front>
            <title>Managing CBOR codepoints in Internet-Drafts</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="29" month="August" year="2024"/>
            <abstract>
              <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e'', a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-04"/>
        </reference>
        <reference anchor="cddlc" target="https://github.com/cabo/cddlc">
          <front>
            <title>CDDL conversion utilities</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cbor-diag" target="https://github.com/cabo/cbor-diag">
          <front>
            <title>CBOR diagnostic utilities</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cbor-diag-e" target="https://github.com/cabo/cbor-diag-e">
          <front>
            <title>CBOR diagnostic extension e''</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin">
          <front>
            <title>Admin Interface for the OSCORE Group Manager</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Group communication for CoAP can be secured using Group Object
   Security for Constrained RESTful Environments (Group OSCORE).  A
   Group Manager is responsible for handling the joining of new group
   members, as well as managing and distributing the group keying
   material.  This document defines a RESTful admin interface at the
   Group Manager that allows an Administrator entity to create and
   delete OSCORE groups, as well as to retrieve and update their
   configuration.  The ACE framework for Authentication and
   Authorization is used to enforce authentication and authorization of
   the Administrator at the Group Manager.  Protocol-specific transport
   profiles of ACE are used to achieve communication security, proof-of-
   possession, and server authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-12"/>
        </reference>
        <reference anchor="cbor-diag-ref" target="https://github.com/cabo/cbor-diag-ref">
          <front>
            <title>CBOR diagnostic extension ref''</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.bormann-t2trg-deref-id">
          <front>
            <title>The "dereferenceable identifier" pattern</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   In a protocol or an application environment, it is often important to
   be able to create unambiguous identifiers for some meaning (concept
   or some entity).

   Due to the simplicity of creating URIs, these have become popular for
   this purpose.  Beyond the purpose of identifiers to be uniquely
   associated with a meaning, some of these URIs are in principle
   _dereferenceable_, so something can be placed that can be retrieved
   when encountering such a URI.


   // The present revision -04 includes a few clarifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-deref-id-04"/>
        </reference>
      </references>
    </references>
    <?line 354?>

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

-->

</rfc>
