<?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.6.39 (Ruby 3.2.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-notable-tags-08" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.5 -->
  <front>
    <title abbrev="Notable CBOR Tags">Notable CBOR Tags</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-08"/>
    <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="2023" month="August" day="01"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 123?>

<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>In CBOR, one point of extensibility is the definition of CBOR tags.
RFC 8949's original edition, RFC 7049, defined a basic set of tags as well
as a registry that can be used to contribute additional tag
definitions <xref target="IANA.cbor-tags"/>.  Since RFC 7049 was published, some 80 tag
definitions have been added to that registry.</t>
      <t>The present document provides a roadmap to a large subset of these tag
definitions.  Where applicable, it points to a IETF standards or
standard development document
that specifies the tag.  Where no such document exists, the intention
is to collect specification information from the sources of the
registrations.  After some more development, the present document is
intended to be useful as a reference document for the IANA
registrations of the CBOR tags the definitions of which have been
collected.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 146?>

<t>This is an individual submission to the CBOR working group of the
IETF, <eref target="https://datatracker.ietf.org/wg/cbor/about/">https://datatracker.ietf.org/wg/cbor/about/</eref>.
Discussion currently takes places on the github repository
<eref target="https://github.com/cabo/notable-tags">https://github.com/cabo/notable-tags</eref>.
If the CBOR WG believes this is a useful document, discussion is
likely to move to the CBOR WG mailing list and a github repository at
the CBOR WG github organization, <eref target="https://github.com/cbor-wg">https://github.com/cbor-wg</eref>.</t>
      <t>The current version is true work in progress; some of the sections
haven't been filled in yet, and in particular, permission has not been
obtained from tag definition authors to copy over their text.</t>
    </note>
  </front>
  <middle>
    <?line 161?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(TO DO, expand on text from abstract here; move references here and
neuter them in the abstract as per <xref section="4.3" sectionFormat="of" target="RFC7322"/>.)</t>
      <t>The selection of the tags presented here is somewhat arbitrary;
considerations such as how wide the scope and area of application of a
tag definition is combine with an assessment how "ready to use" the
tag definition is (i.e., is the tag specification in a state where it
can be used).</t>
      <t>This document can only be a snapshot of a subset of the current registrations.
The most up to date set of registrations is always available in the
registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>.</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t>The definitions of <xref target="STD94"/> apply.
Specifically: The term "byte" is used in its now customary sense as a synonym for
"octet"; "byte strings" are CBOR data items carrying a sequence of
zero or more (binary) bytes, while "text strings" are CBOR data items carrying a
sequence of zero or more Unicode code points, encoded in UTF-8 <xref target="STD63"/>.
Where bit arithmetic is explained, this document uses the notation
familiar from the programming language C (<xref target="C"/>, including C++14's <tt>0bnnn</tt>
binary literals <xref target="Cplusplus20"/>), except that superscript notation
(example for two to the power of 64: 2<sup>64</sup>) denotes exponentiation; in
the plain text version of this document, superscript notation is
rendered in paragraph text by C-incompatible surrogate notation as
seen in this example.
Ranges expressed using <tt>..</tt> are inclusive of the limits given.
<!-- , and in display math by a crude plain text representation. -->
Type names such as "int", "bigint" or "decfrac" are taken from
<xref section="D" sectionFormat="of" target="RFC8610"/>, the Concise Data Definition Language (CDDL).</t>
      </section>
    </section>
    <section anchor="rfc-7049-original-cbor-specification">
      <name>RFC 7049 (original CBOR specification)</name>
      <t><xref target="RFC7049"/> defines a number of tags that are listed here for
convenience only.</t>
      <table anchor="origtags">
        <name>Tag numbers defined in RFC 7049</name>
        <thead>
          <tr>
            <th align="left">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Section of RFC 7049</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">UTF-8 string</td>
            <td align="left">Standard date/time string</td>
            <td align="left">2.4.1</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">multiple</td>
            <td align="left">Epoch-based date/time</td>
            <td align="left">2.4.1</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">byte string</td>
            <td align="left">Positive bignum</td>
            <td align="left">2.4.2</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">byte string</td>
            <td align="left">Negative bignum</td>
            <td align="left">2.4.2</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">array</td>
            <td align="left">Decimal fraction</td>
            <td align="left">2.4.3</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">array</td>
            <td align="left">Bigfloat</td>
            <td align="left">2.4.3</td>
          </tr>
          <tr>
            <td align="left">21</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base64url encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">22</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base64 encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">23</td>
            <td align="left">multiple</td>
            <td align="left">Expected conversion to base16 encoding</td>
            <td align="left">2.4.4.2</td>
          </tr>
          <tr>
            <td align="left">24</td>
            <td align="left">byte string</td>
            <td align="left">Encoded CBOR data item</td>
            <td align="left">2.4.4.1</td>
          </tr>
          <tr>
            <td align="left">32</td>
            <td align="left">UTF-8 string</td>
            <td align="left">URI</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">33</td>
            <td align="left">UTF-8 string</td>
            <td align="left">base64url</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">34</td>
            <td align="left">UTF-8 string</td>
            <td align="left">base64</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">35</td>
            <td align="left">UTF-8 string</td>
            <td align="left">Regular expression</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">36</td>
            <td align="left">UTF-8 string</td>
            <td align="left">MIME message</td>
            <td align="left">2.4.4.3</td>
          </tr>
          <tr>
            <td align="left">55799</td>
            <td align="left">multiple</td>
            <td align="left">Self-describe CBOR</td>
            <td align="left">2.4.5</td>
          </tr>
        </tbody>
      </table>
      <section anchor="related-tags">
        <name>Tags Related to Those Defined in RFC 7049</name>
        <t>Separately registered tags that are directly related to the tags
predefined in RFC 7049 include:</t>
        <ul spacing="normal">
          <li>Tag 63, registered by this document (<xref target="iana"/>), is a parallel to tag 24, with
the single difference that its byte string tag content carries a
CBOR Sequence <xref target="RFC8742"/> instead of a single CBOR data item.</li>
          <li>Tag 257, registered by Peter Occil with a specification in
<eref target="http://peteroupc.github.io/CBOR/binarymime.html">http://peteroupc.github.io/CBOR/binarymime.html</eref>, is a parallel to
tag 36, except that the tag content is a byte string, which
therefore can also carry binary MIME messages as per <xref target="RFC2045"/>.</li>
          <li>Tag 21065, being registered by this document (<xref target="iana"/>), is a parallel to tag 35, with
the difference that its text string tag content carries an
I-Regexp regular expression <xref target="I-D.draft-ietf-jsonpath-iregexp"/> instead of a regexp of a
more unspecified flavor.
Companion tag 21066, being registered by Joe Hildebrand with a
specification in
<eref target="https://github.com/hildjj/cbor-specs/blob/main/regexp.md">https://github.com/hildjj/cbor-specs/blob/main/regexp.md</eref>, is the
equivalent for JavaScript (ECMA262), but besides the regular
expression itself also can include the regular expression flags
as a separate item.</li>
        </ul>
      </section>
      <section anchor="tag35">
        <name>Tags from RFC 7049 not listed in RFC 8949</name>
        <!-- Note that xml2rfc generates a broken reference for {{Appendix G.3 of STD94}}, so we -->
<!-- work around manually: -->

<t><xref section="Appendix G.3" relative="#section-g.3-9" sectionFormat="bare" target="STD94"/> of <xref target="STD94"/> states:</t>
        <blockquote>
          <t>Tag 35 is not defined by this document; the registration based on the
   definition in RFC 7049 remains in place.</t>
        </blockquote>
        <t>The reason for this exclusion is that the definition of Tag 35 in
<xref section="2.4.4.3" sectionFormat="of" target="RFC7049"/>, leaves too much open to ensure interoperability:</t>
        <blockquote>
          <t>Tag 35 is for regular expressions in Perl Compatible Regular
  Expressions (PCRE) / JavaScript syntax [ECMA262].</t>
        </blockquote>
        <t>Not only are two partially incompatible specifications given for the
semantics, JavaScript regular expressions have also developed
significantly within the decade since JavaScript 5.1 (which was
referenced as "ECMA262" by <xref target="RFC7049"/>),
making it less reliable to assume that a producing application will
manage to stay within that 2011 subset.</t>
        <t>Nonetheless, the registration is in place, so it is available for
applications that simply want to mark a text string as being a regular
expression roughly of the PCRE/Javascript flavor families.
See also Tag 21065 and 21066 above.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security</name>
      <t>A number of CBOR tags are defined in security specifications that make
use of CBOR.</t>
      <section anchor="cose">
        <name>COSE</name>
        <t>CBOR Object Signing and Encryption (COSE) is defined in a number of RFCs.
<xref target="RFC8152"/> was the initial specification, set up the registries, and
populated them with an initial set of assignments.
A revision split this specification into the data
structure definitions <xref target="RFC9052"/>, an Internet Standard <xref target="STD96"/>, and a
separate document defining the representation for the algorithms
employed <xref target="RFC9053"/>, which is expected to be updated more frequently
than the COSE format itself.
<xref target="RFC9054"/> added a separate set of algorithms for cryptographic hash
functions (Hash functions have been part of some <xref target="RFC9053"/> combined
algorithms but weren't assigned separate codepoints).
A revised COSE counter signature structure was defined in <xref target="RFC9338"/>, another part
of <xref target="STD96"/>; this also defines a tag for these.</t>
        <table anchor="cosetags">
          <name>Tag numbers defined in RFC9052, COSE, and RFC 9338</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">16</td>
              <td align="left">COSE_Encrypt0</td>
              <td align="left">COSE Single Recipient Encrypted Data Object</td>
            </tr>
            <tr>
              <td align="left">17</td>
              <td align="left">COSE_Mac0</td>
              <td align="left">COSE Mac w/o Recipients Object</td>
            </tr>
            <tr>
              <td align="left">18</td>
              <td align="left">COSE_Sign1</td>
              <td align="left">COSE Single Signer Data Object</td>
            </tr>
            <tr>
              <td align="left">19</td>
              <td align="left">COSE_Countersignature</td>
              <td align="left">COSE standalone V2 countersignature (<xref target="RFC9338"/>)</td>
            </tr>
            <tr>
              <td align="left">96</td>
              <td align="left">COSE_Encrypt</td>
              <td align="left">COSE Encrypted Data Object</td>
            </tr>
            <tr>
              <td align="left">97</td>
              <td align="left">COSE_Mac</td>
              <td align="left">COSE MACed Data Object</td>
            </tr>
            <tr>
              <td align="left">98</td>
              <td align="left">COSE_Sign</td>
              <td align="left">COSE Signed Data Object</td>
            </tr>
          </tbody>
        </table>
        <section anchor="hashtags">
          <name>Tags for Bare Hash Values</name>
          <t><xref target="RFC9054"/> does not define CBOR tags for cryptographic Hash values; it rightly notes
that Hash values are often used in structures that are
application-specific and should be defined with those applications.</t>
          <t>However, there are many cases where just a bare hash value is
required, and for these cases common tags are useful.
In one use case, these tags occur in a data structure that is
specified to indicate elision by using one of these tags as an
alternative to some other data structure.
To enable agility, tags need to indicate the hash function used,
preferably using the COSE algorithms registry as populated by
<xref target="RFC9054"/>.</t>
          <aside>
            <t>(Note that there is another registry, "<xref section="Named Information Hash Algorithm Registry" relative="#hash-alg" sectionFormat="bare" target="IANA.named-information"/>"
<xref target="IANA.named-information"/>, that also defines numbers for some hash algorithms.
We are not using this registry here, as more recent entries seem to
have stopped assigning numbers.
If desired, tags that employ this registry could be added later.)</t>
          </aside>
          <t>The codepoint range available for the COSE algorithms registry is
large, but the most likely range to be used for standard Hash
functions is "Integer values between -256 and 255", which have the
registry policy "Standards Action With Expert Review" (<xref section="16.4" sectionFormat="of" target="RFC8152"/>, Registry "<xref section="COSE Algorithms" relative="#algorithms" sectionFormat="bare" target="IANA.cose"/>" <xref target="IANA.cose"/>).</t>
          <t>To this end, the present document registers a range of 512 tags from
18312 to 18823 (inclusive), paralleling the algorithm identifier
range of <tt>-256 .. 255</tt> (inclusive).
The tag number for COSE algorithm number N is then defined to be
<tt>18568+N</tt>, except for <tt>N = -27</tt> (see below).
The tag value is a CBOR byte string, with the exception <tt>N = -27</tt>.</t>
          <t>For example, in <xref target="IANA.cose"/> SHA-256 has the COSE algorithm identifier
<tt>-16</tt>.
This is in the range <tt>-256 .. 255</tt> (inclusive range).
Therefore, tag 18552 (<tt>= 18568 + (-16)</tt>) is the tag for a byte string
containing a SHA-256 hash.</t>
          <t>As a special case, there is one exception: Tag 18541 (<tt>= 18568 +
(-27)</tt>) stands for the combination of a an explicit numeric COSE
algorithm identifier with a hash value, analogous to the use of
<tt>COSE_CertHash</tt> in <xref target="RFC9360"/>:</t>
          <figure anchor="hashcddl">
            <name>Generic CDDL for Tags for Bare Hash Values</name>
            <sourcecode type="cddl"><![CDATA[
Standard_COSE_Hash<alg, value> =
    #6.<hashmiddle .plus (alg .within directhash)>(value)
General_COSE_Hash<alg, value> = #6.<hashtag>([
    hashAlg: alg .within (int .ne directhash  / tstr),
    hashValue: value .within bstr ])
hashmiddle = 18568
directhash = -256 .. 255
hashtag = hashmiddle .plus (-27) ; 18541
]]></sourcecode>
          </figure>
          <t>An example for the SHA-256 hash of "hello world" in CBOR diagnostic
notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
18552(
 h'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9')
]]></sourcecode>
          <t>The same in CBOR pretty printed hex:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
d9 4878                                 # tag(18552)
   58 20                                # bytes(32)
      b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
]]></sourcecode>
          <t>As none has been registered, no real example can be given for a hash
algorithm with an identifier not in the standard range, but if
<tt>-4711</tt> were such an identifier, a hash with an explicit algorithm
number could look like:</t>
          <sourcecode type="cbor-diag"><![CDATA[
18541([-4711, h'1234123412341234123412341234123412341234'])
]]></sourcecode>
        </section>
      </section>
      <section anchor="rfc-8392-cwt">
        <name>RFC 8392 (CWT)</name>
        <t><xref target="RFC8392"/> defines the CBOR Web Token (CWT), making use of COSE to
define a CBOR variant of the JOSE Web Token (JWT), <xref target="RFC7519"/>, a
standardized security token that has found use in the area of web
applications, but is not technically limited to those.</t>
        <table anchor="cwttags">
          <name>Tag number defined for RFC 8392 CBOR Web Token (CWT)</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">61</td>
              <td align="left">CBOR Web Token (CWT)</td>
              <td align="left">CBOR Web Token (CWT)</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="cbor-based-representation-formats">
      <name>CBOR-based Representation Formats</name>
      <t>Representation formats can be built on top of CBOR.</t>
      <section anchor="yang-cbor">
        <name>YANG-CBOR</name>
        <t>YANG <xref target="RFC7950"/> is a data modeling language originally designed in
the context of the Network Configuration Protocol (NETCONF)
<xref target="RFC6241"/>, now widely used for modeling management and
configuration information.  <xref target="RFC7950"/> defines an XML-based
representation format, and <xref target="RFC7951"/> defines a JSON-based
<xref target="RFC8259"/> representation format for YANG.</t>
        <t>YANG-CBOR <xref target="RFC9254"/> is a representation format for
YANG data in CBOR.</t>
        <table anchor="yangtags">
          <name>Tag number defined for YANG-CBOR</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
              <th align="left">Section of YANG-CBOR</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">43</td>
              <td align="left">byte string</td>
              <td align="left">YANG bits datatype</td>
              <td align="left">6.7</td>
            </tr>
            <tr>
              <td align="left">44</td>
              <td align="left">unsigned integer</td>
              <td align="left">YANG enumeration datatype</td>
              <td align="left">6.6</td>
            </tr>
            <tr>
              <td align="left">45</td>
              <td align="left">unsigned integer or text string</td>
              <td align="left">YANG identityref datatype</td>
              <td align="left">6.10</td>
            </tr>
            <tr>
              <td align="left">46</td>
              <td align="left">unsigned integer or text string or array</td>
              <td align="left">YANG instance-identifier datatype</td>
              <td align="left">6.13</td>
            </tr>
            <tr>
              <td align="left">47</td>
              <td align="left">unsigned integer</td>
              <td align="left">YANG Schema Item iDentifier (sid)</td>
              <td align="left">3.2</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="protocols">
      <name>Protocols</name>
      <t>Protocols may want to allocate CBOR tag numbers to identify specific
protocol elements.</t>
      <section anchor="dots">
        <name>DOTS</name>
        <t>DDoS Open Threat Signaling (DOTS) defines tag number 271 for the DOTS
signal channel object in <xref target="RFC9132"/>.</t>
      </section>
      <section anchor="rains">
        <name>RAINS</name>
        <t>As an example for how experimental protocols can make use of CBOR tag
definitions, the RAINS (Another Internet Naming Service) Protocol
Specification defines tag number 15309736 for a RAINS Message
<xref target="I-D.trammell-rains-protocol"/>.
(The seemingly random tag number was chosen so that, when represented
as an encoded CBOR tag
argument, it contains the Unicode character <u format="lit-num">雨</u>
in UTF-8, which represents rain in a number of languages.)</t>
      </section>
    </section>
    <section anchor="datatypes">
      <name>Datatypes</name>
      <section anchor="advanced-arithmetic">
        <name>Advanced arithmetic</name>
        <t>A number of tags have been registered for arithmetic representations
beyond those built into CBOR and defined by tags in <xref target="RFC7049"/>.
These are all documented under <tt>http://peteroupc.github.io/CBOR/</tt>; the
last pathname component for the URL is given in <xref target="arithtags"/>.</t>
        <table anchor="arithtags">
          <name>Tags for advanced arithmetic</name>
          <thead>
            <tr>
              <th align="left">Tag number</th>
              <th align="left">Tag content</th>
              <th align="left">Short Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">30</td>
              <td align="left">array</td>
              <td align="left">Rational number</td>
              <td align="left">rational.html</td>
            </tr>
            <tr>
              <td align="left">264</td>
              <td align="left">array</td>
              <td align="left">Decimal fraction with arbitrary  exponent</td>
              <td align="left">bigfrac.html</td>
            </tr>
            <tr>
              <td align="left">265</td>
              <td align="left">array</td>
              <td align="left">Bigfloat with arbitrary exponent</td>
              <td align="left">bigfrac.html</td>
            </tr>
            <tr>
              <td align="left">268</td>
              <td align="left">array</td>
              <td align="left">Extended decimal fraction</td>
              <td align="left">extended.html</td>
            </tr>
            <tr>
              <td align="left">269</td>
              <td align="left">array</td>
              <td align="left">Extended bigfloat</td>
              <td align="left">extended.html</td>
            </tr>
            <tr>
              <td align="left">270</td>
              <td align="left">array</td>
              <td align="left">Extended rational number</td>
              <td align="left">extended.html</td>
            </tr>
          </tbody>
        </table>
        <t>CBOR's basic generic data model (<xref section="2" sectionFormat="of" target="STD94"/>) has a number
system with limited-range integers (major types 0 and 1:
-2<sup>64</sup>..2<sup>64</sup>-1) and floating point numbers that
cover binary16, binary32, and binary64 (including non-finites) from
<xref target="IEEE754"/>.
With the tags defined with <xref target="RFC7049"/>, the extended generic data model
(<xref section="2.1" sectionFormat="of" target="STD94"/>) adds unlimited-range integers (tag numbers 2
and 3, "bigint" in CDDL) as well as floating point values using the bases
2 (tag number 5, "bigfloat") and 10 (tag number 4, "decfrac").</t>
        <t>This pre-defined number system has a number of limitations that are
addressed in three of the tags discussed here:</t>
        <ul spacing="normal">
          <li>
            <t>Tag number 30 allows the representation of rational numbers as a
ratio of two integers: a numerator (usually written as the top part
of a fraction), and a denominator (the bottom part), where both
integers can be limited-range basic and unlimited-range integers.
The mathematical value of a rational number is the numerator divided
by the denominator.
This tag can express all numbers that the extended generic data
model of <xref target="RFC7049"/> can express, except for non-finites <xref target="IEEE754"/>; it
also can express rational numbers that cannot be expressed with
denominators that are a power of 2 or a power of 10.  </t>
            <t>
For example, the rational number 1/3 is encoded:  </t>
            <sourcecode type="cbor-pretty"><![CDATA[
  d8 1e      ---- Tag 30
     82      ---- Array length 2
        01   ---- 1
        03   ---- 3
]]></sourcecode>
            <t>
Many programming languages have built-in support for rational
numbers or support for them is included in their standard libraries;
tag number 30 is a way for these platforms to interchange these
rational numbers in CBOR.</t>
          </li>
          <li>Tag numbers 4 and 5 are limited in the range of the (base 10 or base
2) exponents by the limited-range integers in the basic generic data
model.  Tag numbers 264 and 265 are exactly equivalent to 4 and 5,
respectively, but also allow unlimited-range integers as exponents.
While applications for floating point numbers with exponents outside
the CBOR basic integer range are limited, tags 264 and 265 allow
unlimited roundtripping with other formats that allow very large or
very small exponents, such as those JSON <xref target="RFC8259"/> can provide if the
limitations of I-JSON <xref target="RFC7493"/> do not apply.</li>
        </ul>
        <t>The tag numbers 268..270 extend these tags further by providing a way
to express non-finites within a tag with this number.  This does not
increase the expressiveness of the data model (the non-finites can
already be expressed using major type 7 floating point numbers), but
does allow both finite and non-finite values to carry the same tag.
In most applications, a choice that includes some of the three tags
30, 264, 265 for finite values and major type 7 floating point values
for non-finites (as well as possibly other parts of the CBOR number
system) will be the preferred solution.</t>
        <t>This document suggests using the CDDL typenames defined in
<xref target="arith-tags-cddl"/> for the three most useful tag numbers in this section.</t>
        <figure anchor="arith-tags-cddl">
          <name>CDDL for extended arithmetic tags</name>
          <sourcecode type="cddl"><![CDATA[
rational = #6.30([numerator: integer, denominator: integer .ne 0])
rational_of<N,D> = #6.30([numerator: N, denominator: D])
; the value 1/3 can be notated as rational_of<1, 3>

extended_decfrac = #6.264([e10: integer, m: integer])
extended_bigfloat = #6.265([e2: integer, m: integer])
]]></sourcecode>
        </figure>
      </section>
      <section anchor="variants-of-undefined">
        <name>Variants of undefined</name>
        <t><tt>https://github.com/svaarala/cbor-specs/blob/master/cbor-absent-tag.rst</tt>
defines tag 31 to be applied to the CBOR value Undefined (0xf7),
slightly modifying its semantics to stand for an absent value in a
CBOR Array.</t>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
      </section>
      <section anchor="typed-and-homogeneous-arrays">
        <name>Typed and Homogeneous Arrays</name>
        <t><xref target="RFC8746"/> defines tags for various kinds of arrays.  A summary is
reproduced in <xref target="arraytags"/>.</t>
        <table anchor="arraytags">
          <name>Tag numbers defined for Arrays</name>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">64</td>
              <td align="left">byte string</td>
              <td align="left">uint8 Typed Array</td>
            </tr>
            <tr>
              <td align="left">65</td>
              <td align="left">byte string</td>
              <td align="left">uint16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">66</td>
              <td align="left">byte string</td>
              <td align="left">uint32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">67</td>
              <td align="left">byte string</td>
              <td align="left">uint64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">68</td>
              <td align="left">byte string</td>
              <td align="left">uint8 Typed Array, clamped arithmetic</td>
            </tr>
            <tr>
              <td align="left">69</td>
              <td align="left">byte string</td>
              <td align="left">uint16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">70</td>
              <td align="left">byte string</td>
              <td align="left">uint32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">71</td>
              <td align="left">byte string</td>
              <td align="left">uint64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">72</td>
              <td align="left">byte string</td>
              <td align="left">sint8 Typed Array</td>
            </tr>
            <tr>
              <td align="left">73</td>
              <td align="left">byte string</td>
              <td align="left">sint16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">74</td>
              <td align="left">byte string</td>
              <td align="left">sint32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">75</td>
              <td align="left">byte string</td>
              <td align="left">sint64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">76</td>
              <td align="left">byte string</td>
              <td align="left">(reserved)</td>
            </tr>
            <tr>
              <td align="left">77</td>
              <td align="left">byte string</td>
              <td align="left">sint16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">78</td>
              <td align="left">byte string</td>
              <td align="left">sint32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">79</td>
              <td align="left">byte string</td>
              <td align="left">sint64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">80</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary16, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">81</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary32, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">82</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary64, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">83</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary128, big endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">84</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary16, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">85</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary32, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">86</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary64, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">87</td>
              <td align="left">byte string</td>
              <td align="left">IEEE 754 binary128, little endian, Typed Array</td>
            </tr>
            <tr>
              <td align="left">40</td>
              <td align="left">array of two arrays*</td>
              <td align="left">Multi-dimensional Array, row-major order</td>
            </tr>
            <tr>
              <td align="left">1040</td>
              <td align="left">array of two arrays*</td>
              <td align="left">Multi-dimensional Array, column-major order</td>
            </tr>
            <tr>
              <td align="left">41</td>
              <td align="left">array</td>
              <td align="left">Homogeneous Array</td>
            </tr>
          </tbody>
        </table>
        <!--  cols='r l l' -->

</section>
    </section>
    <section anchor="domain-specific">
      <name>Domain-Specific</name>
      <t>(TO DO: Obtain permission to copy the definitions here; explain how
tags 52 and 54 essentially obsolete 260/261.)</t>
      <table>
        <thead>
          <tr>
            <th align="left">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Reference</th>
            <th align="left">Author</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">37</td>
            <td align="left">byte string</td>
            <td align="left">Binary UUID (<xref section="4.1.2" sectionFormat="of" target="RFC4122"/>)</td>
            <td align="left">https://github.com/lucas-clemente/cbor-specs/blob/master/uuid.md</td>
            <td align="left">Lucas Clemente</td>
          </tr>
          <tr>
            <td align="left">257</td>
            <td align="left">byte string</td>
            <td align="left">Binary MIME message</td>
            <td align="left">http://peteroupc.github.io/CBOR/binarymime.html</td>
            <td align="left">Peter Occil</td>
          </tr>
          <tr>
            <td align="left">260</td>
            <td align="left">byte string</td>
            <td align="left">Network Address (IPv4 or IPv6 or MAC Address)</td>
            <td align="left">http://www.employees.org/~ravir/cbor-network.txt</td>
            <td align="left">Ravi Raju</td>
          </tr>
          <tr>
            <td align="left">261</td>
            <td align="left">map</td>
            <td align="left">Network Address Prefix (IPv4 or IPv6 Address + Mask Length)</td>
            <td align="left">https://github.com/toravir/CBOR-Tag-Specs/blob/master/networkPrefix.md</td>
            <td align="left">Ravi Raju</td>
          </tr>
          <tr>
            <td align="left">263</td>
            <td align="left">byte string</td>
            <td align="left">Hexadecimal string</td>
            <td align="left">https://github.com/toravir/CBOR-Tag-Specs/blob/master/hexString.md</td>
            <td align="left">Ravi Raju</td>
          </tr>
          <tr>
            <td align="left">266</td>
            <td align="left">text string</td>
            <td align="left">Internationalized resource identifier (IRI)</td>
            <td align="left">https://peteroupc.github.io/CBOR/iri.html</td>
            <td align="left">Peter Occil</td>
          </tr>
          <tr>
            <td align="left">267</td>
            <td align="left">text string</td>
            <td align="left">Internationalized resource identifier reference (IRI reference)</td>
            <td align="left">https://peteroupc.github.io/CBOR/iri.html</td>
            <td align="left">Peter Occil</td>
          </tr>
        </tbody>
      </table>
      <section anchor="human-readable-text">
        <name>Human-readable Text</name>
        <table>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">38</td>
              <td align="left">array</td>
              <td align="left">Language-tagged string</td>
              <td align="left">
                <xref section="A" sectionFormat="of" target="RFC9290"/></td>
            </tr>
          </tbody>
        </table>
        <t>Tag 38 was originally registered by Peter Occil in
<eref target="http://peteroupc.github.io/CBOR/langtags.html">http://peteroupc.github.io/CBOR/langtags.html</eref>; it has since been
adopted and extended in <xref section="A" sectionFormat="of" target="RFC9290"/>, where a detailed
definition of the tag and a few simple examples for its use are
provided.</t>
        <t>The problem that this tag was designed to solve is that text strings
often need additional information to be properly presented to a human.
While Unicode (and the UTF-8 form of Unicode used in CBOR) define the
characters, additional information about the human language in use
and the writing direction appropriate for the text given are often
required.</t>
        <t>The need to provide language information with text has been well-known
for a while and led to a common form for this information, the
language tag, defined in <xref target="BCP47"/>.</t>
        <t>Less well-known is the need to provide separate directionality
information as well.
The need for this information is demonstrated in <xref target="W3C-STRINGS-BIDI"/>,
which points out that it is "actually a bad idea to rely on language
information to apply direction" and points out further reference
information on this.
<xref target="W3C-BIDI-USE-CASES"/> shows more examples for language tags and
directionality, while <xref target="W3C-UBA-BASICS"/> provides an introduction to the
way browsers, where "the order of characters in memory (logical) is
not the same as the order in which they are displayed (visual)",
"produce the correct order at the time of display" (Unicode
Bidirectional Algorithm).</t>
        <t>Tag 38 meets the requirements of its specific application in
<xref target="RFC9290"/>, which could be summarized as: Supplying the necessary
information to present isolated, linear, comparatively small pieces of
human-readable text.
It neither addresses more complex requirements of specific languages
such as <xref target="W3C-SIMPLE-RUBY"/>, nor does it address requirements for more
complex structure in texts such as emphasis, lists, or tables.
These more complex requirements are typically met by specific media
types such as HTML <xref target="HTML"/>.</t>
      </section>
      <section anchor="extended-time-formats">
        <name>Extended Time Formats</name>
        <t>Additional tag definitions have been provided for date and time values.</t>
        <table anchor="timetags">
          <name>Tag numbers for date and time</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">100</td>
              <td align="left">integer</td>
              <td align="left">date in number of days since epoch</td>
              <td align="left">
                <xref target="RFC8943"/></td>
            </tr>
            <tr>
              <td align="right">1004</td>
              <td align="left">text string</td>
              <td align="left">RFC 3339 full-date string</td>
              <td align="left">
                <xref target="RFC8943"/></td>
            </tr>
            <tr>
              <td align="right">1001</td>
              <td align="left">map</td>
              <td align="left">extended time</td>
              <td align="left">
                <xref target="I-D.ietf-cbor-time-tag"/></td>
            </tr>
            <tr>
              <td align="right">1002</td>
              <td align="left">map</td>
              <td align="left">duration</td>
              <td align="left">
                <xref target="I-D.ietf-cbor-time-tag"/></td>
            </tr>
            <tr>
              <td align="right">1003</td>
              <td align="left">map</td>
              <td align="left">period</td>
              <td align="left">
                <xref target="I-D.ietf-cbor-time-tag"/></td>
            </tr>
          </tbody>
        </table>
        <t>Note that tags 100 and 1004 are for calendar dates that are not
anchored to a specific time zone; they are meant to specify calendar
dates as perceived by humans, e.g. for use in personal identification
documents.
Converting such a calendar date into a specific point in time needs the
addition of a time-of-day (for which a CBOR tag is outstanding) and
timezone information (also outstanding).  Alternatively, a calendar
date plus timezone information can be converted into a time period
(range of time values given by the starting and the ending time); note
that these time periods are not always exactly 24 h (86400 s) long.</t>
        <t><xref target="RFC8943"/> does not suggest CDDL <xref target="RFC8610"/> type names for the two tags.
We suggest copying the definitions in <xref target="time-tags-cddl"/> into
application-specific CDDL as needed.</t>
        <figure anchor="time-tags-cddl">
          <name>CDDL for calendar date tags (RFC8943)</name>
          <sourcecode type="cddl"><![CDATA[
caldate = #6.100(int) ; calendar date as a number of days from 1970-01-01
tcaldate = #6.1004(tstr) ; calendar date as an RFC 3339 full-date string
]]></sourcecode>
        </figure>
        <t>Tag 1001 extends tag 1 by additional information (such as picosecond
resolution) and allows the use of Decimal and Bigfloat numbers for the
time.</t>
      </section>
    </section>
    <section anchor="platform-oriented">
      <name>Platform-oriented</name>
      <section anchor="perl">
        <name>Perl</name>
        <t>(These are actually not as Perl-specific as the title of this section
suggests.  See also the penultimate paragraph of <xref section="3.4" sectionFormat="of" target="STD94"/>.)</t>
        <t>These are all documented under <tt>http://cbor.schmorp.de/</tt>; the
last pathname component is given in <xref target="perltags"/>.</t>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <table anchor="perltags">
          <name>Tag numbers that aid the Perl platform</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">256</td>
              <td align="left">multiple</td>
              <td align="left">mark value as having string references</td>
              <td align="left">stringref</td>
            </tr>
            <tr>
              <td align="right">25</td>
              <td align="left">unsigned integer</td>
              <td align="left">reference the nth previously seen string</td>
              <td align="left">stringref</td>
            </tr>
            <tr>
              <td align="right">26</td>
              <td align="left">array</td>
              <td align="left">Serialized Perl object with classname and constructor arguments</td>
              <td align="left">perl-object</td>
            </tr>
            <tr>
              <td align="right">27</td>
              <td align="left">array</td>
              <td align="left">Serialized language-independent object with type name and constructor arguments</td>
              <td align="left">generic-object</td>
            </tr>
            <tr>
              <td align="right">28</td>
              <td align="left">multiple</td>
              <td align="left">mark value as (potentially) shared</td>
              <td align="left">value-sharing</td>
            </tr>
            <tr>
              <td align="right">29</td>
              <td align="left">unsigned integer</td>
              <td align="left">reference nth marked value</td>
              <td align="left">value-sharing</td>
            </tr>
            <tr>
              <td align="right">22098</td>
              <td align="left">multiple</td>
              <td align="left">hint that indicates an additional level of indirection</td>
              <td align="left">indirection</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="json">
        <name>JSON</name>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <t>Tag number 262 has been registered to identify byte strings that carry embedded
JSON text (<tt>https://github.com/toravir/CBOR-Tag-Specs/blob/master/embeddedJSON.md</tt>).</t>
        <t>Tag number 275 can be used to identify maps that contain keys that are
all of type Text String, as they would occur in JSON
(<tt>https://github.com/ecorm/cbor-tag-text-key-map</tt>).</t>
      </section>
      <section anchor="weird-text-encodings">
        <name>Weird text encodings</name>
        <t>(TO DO: Obtain permission to copy the definitions here.)</t>
        <t>Some variants of UTF-8 are in use in specific areas of application.
Tags have been registered to be able to carry around strings in these
variants in case they are not also valid UTF-8 and can therefore not
be represented as a CBOR text string
(<tt>https://github.com/svaarala/cbor-specs/blob/master/cbor-nonutf8-string-tags.rst</tt>).</t>
        <table anchor="weirdtags">
          <name>Tag numbers for UTF-8 variants</name>
          <thead>
            <tr>
              <th align="right">Tag Number</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">272</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 CESU-8 string</td>
            </tr>
            <tr>
              <td align="right">273</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 WTF-8 string</td>
            </tr>
            <tr>
              <td align="right">274</td>
              <td align="left">byte string</td>
              <td align="left">Non-UTF-8 MUTF-8 string</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="application-specific">
      <name>Application-specific</name>
      <t>(TO DO: Obtain permission to copy the definitions here.)</t>
      <table>
        <thead>
          <tr>
            <th align="left">Tag number</th>
            <th align="left">Tag content</th>
            <th align="left">Short Description</th>
            <th align="left">Reference</th>
            <th align="left">Author</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">39</td>
            <td align="left">multiple</td>
            <td align="left">Identifier</td>
            <td align="left">[https://github.com/lucas-clemente/cbor-specs/blob/master/id.md</td>
            <td align="left">Lucas Clemente</td>
          </tr>
          <tr>
            <td align="left">42</td>
            <td align="left">byte string</td>
            <td align="left">IPLD content identifier</td>
            <td align="left">[https://github.com/ipld/cid-cbor/</td>
            <td align="left">Volker Mische</td>
          </tr>
          <tr>
            <td align="left">103</td>
            <td align="left">array</td>
            <td align="left">Geographic Coordinates</td>
            <td align="left">[https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag103-Geographic-Coordinates.md</td>
            <td align="left">Danilo Vidovic</td>
          </tr>
          <tr>
            <td align="left">104</td>
            <td align="left">multiple</td>
            <td align="left">Geographic Coordinate Reference System  WKT or EPSG number</td>
            <td align="left">
              <xref target="I-D.clarke-cbor-crs"/></td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">120</td>
            <td align="left">multiple</td>
            <td align="left">Internet of Things Data Point</td>
            <td align="left">[https://github.com/allthingstalk/cbor/blob/master/CBOR-Tag120-Internet-of-Things-Data-Points.md</td>
            <td align="left">Danilo Vidovic</td>
          </tr>
          <tr>
            <td align="left">258</td>
            <td align="left">array</td>
            <td align="left">Mathematical finite set</td>
            <td align="left">[https://github.com/input-output-hk/cbor-sets-spec/blob/master/CBOR_SETS.md</td>
            <td align="left">Alfredo Di Napoli</td>
          </tr>
          <tr>
            <td align="left">259</td>
            <td align="left">map</td>
            <td align="left">Map  datatype with key-value  operations (e.g. <tt>.get ()/.set()/.delete()</tt>)</td>
            <td align="left">[https://github.com/shanewholloway/js-cbor-codec/blob/master/docs/CBOR-259-spec--explicit-maps.md</td>
            <td align="left">Shane Holloway</td>
          </tr>
        </tbody>
      </table>
      <section anchor="enumerated-alternative-data-items">
        <name>Enumerated Alternative Data Items</name>
        <t>(Original Text for this section was contributed by Duncan Coutts and
Michael Peyton Jones; all errors are the author's.)</t>
        <t>A set of CBOR tag numbers has been allocated (<xref target="iana"/>) for
encoding data composed of enumerated alternatives:</t>
        <table anchor="tab-tag-enum">
          <name>Tags for Enumerated Alternative Data Items</name>
          <thead>
            <tr>
              <th align="right">Tags</th>
              <th align="left">Data Item</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">121..127</td>
              <td align="left">any</td>
              <td align="left">alternatives 0..6, 1+1 encoding</td>
            </tr>
            <tr>
              <td align="right">1280..1400</td>
              <td align="left">any</td>
              <td align="left">alternatives 7..127, 1+2 encoding</td>
            </tr>
            <tr>
              <td align="right">101</td>
              <td align="left">array [uint, any]</td>
              <td align="left">alternatives as given by the uint + 128</td>
            </tr>
          </tbody>
        </table>
        <t>The tags defined in this section are for encoding data that can be
in one of a number of different enumerated forms.</t>
        <t>For example data representing the result of some action might be either
a failure with some failure detail, or a success with some result. In
this example there are two cases, the failure case and the success case,
and we can enumerate them as 0 and 1.</t>
        <t>In general the number of alternatives, and what data is expected in each
alternative case is entirely application dependent.</t>
        <t>The tags defined in this specification allow the encoding of any number
of alternatives, but provide compact encoding for the common cases of
low numbers of alternatives:</t>
        <ul spacing="normal">
          <li>Alternatives 0..6 can be encoded in 2 bytes;</li>
          <li>Alternatives 7..127 can be encoded in 3 bytes;</li>
          <li>Alternatives 128+ can be encoded in 3-12 bytes.</li>
        </ul>
        <t>There are no special considerations for deterministic encoding
<xref section="4.2" sectionFormat="of" target="STD94"/>: The case numbers covered by each tag do not
overlap; particularly, tag 101 encoding starts where the more compact
special encodings for 0..6 and 7..127 end.</t>
        <t>For cases 0..6 and 7..127, the tag value indicates the value of the alternative.
For cases 128+, a single tag number is used with an enclosed two-element array that contains the case number and the value of the alternative.</t>
        <section anchor="semantics">
          <name>Semantics</name>
          <t>The value consists of a case number and a case body. The case number is
an unsigned integer that indicates which case out of the set of
alternatives is used. The case body is any CBOR data value.</t>
          <t>In a setting where the application uses a schema (formally or
informally), then there will be an appropriate sub-schema for each case
in the set of alternatives. The representation of the case body should
comply with the schema corresponding to the case number used.</t>
          <t>To continue the example above about representing failure or success,
suppose that the failure detail consists of an integer code and a
string, and suppose that the successful result is a byte string. A
failure value will use case 0 and the case body will be a CBOR list
containing an integer and a text string. Alternatively, a success value
will use case 1 and the body will be a single CBOR byte string.</t>
          <t>Decoders that enforce a schema must check the case number is within the
range of cases allowed, and that the case body follows the schema for
the supplied case number. Generic decoders should allow any case number
and any CBOR data value for the case body.</t>
        </section>
        <section anchor="rationale">
          <name>Rationale</name>
          <t>CBOR has direct support for <em>combinations</em> of multiple values but not
for <em>alternatives</em> of multiple values. Combinations are expressed in
CBOR using lists or maps.</t>
          <t>Most programming languages have a notion of data consisting of
combinations of data values, often called records, structs or objects. Many
programming languages also have a notion of data consisting of multiple
alternative data values. For example C has unions, and other languages
have "tagged" unions (where it is always clear which alternative is in
use).</t>
          <t>Crucially for this set of tags, the set of alternatives must be closed
and ordered. This allows encoding using an unsigned number to distinguish
each case.</t>
          <t>Note that this does <em>not</em> correspond to the notion in some programming
languages of classes and subclasses since in that context the set of
alternatives is open and unordered. Alternatives of this kind are
well-supported by tag 27 "Serialized language-independent object with
type name and constructor arguments".</t>
          <t>In functional programming languages, the primary way of forming new data
types is to enumerate a set of alternatives (each of which may be a
record). Such forms of data are also supported in hybrid functional
languages or languages with functional features.</t>
          <t>Thus, in some applications, it is very common to have data making use of
alternatives, and it is worth finding a compact encoding, at least for
the common cases. Just as most records are small, most alternatives are
also small.</t>
          <t>In this specification we reserve 7 values in the 2-byte part of the
available tag encoding space for alternatives 0..6 which are by far the
most common. We reserve a range of 121 values in the 3-bytes tag
encoding space. To cover the general case we use an encoding using a
pair consisting of an unsigned integer and the case body, the first 24
of which also result in a 3-byte encoding.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <t>To elaborate on the example from the introduction, we have a "result"
that is a failure or success, where:</t>
          <ul spacing="normal">
            <li>the failure detail consists of an integer code and a string;</li>
            <li>the successful result is a byte string.</li>
          </ul>
          <t>This corresponds to the following schema, in CDDL notation:</t>
          <sourcecode type="cddl"><![CDATA[
result = #6.121([int, text])
       / #6.122(bytes)
]]></sourcecode>
          <t>Example values:</t>
          <sourcecode type="cbor-diag"><![CDATA[
121([3, "the printer is on fire"])
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
122(h'ff00')
]]></sourcecode>
          <t>As a second example, here is one based on a data type defined within the
Haskell programming language, representing a simple expression tree.</t>
          <sourcecode type="haskell"><![CDATA[
-- A data type representing simple arithmetic expressions

data Expr = Lit Int -- integer literal
| Add Expr Expr -- addition
| Sub Expr Expr -- subtraction
| Neg Expr -- unary negation
| Mul Expr Expr -- multiplication
| Div Expr Expr -- integer division
]]></sourcecode>
          <t>In CDDL notation, and using the tags in this specification, such data
could be encoded using this schema:</t>
          <sourcecode type="cddl"><![CDATA[
; A data type representing simple arithmetic expressions

expr = 121(int)          ; integer literal
     / 122([expr, expr]) ; addition
     / 123([expr, expr]) ; subtraction
     / 124(expr)         ; unary negation
     / 125([expr, expr]) ; multiplication
     / 126([expr, expr]) ; integer division
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="implementation-aids">
      <name>Implementation aids</name>
      <section anchor="invalid-tag">
        <name>Invalid Tag</name>
        <t>The present document registers tag numbers 65535, 4294967295, and
18446744073709551615 (16-bit 0xffff, 32-bit 0xffffffff, and 64-bit
0xffffffffffffffff) as Invalid Tags, tags that are always invalid,
independent of the tag content provided.  The purpose of these tag
number registrations is to enable the tag numbers to be reserved for
internal use by implementations to note the absence of a tag on a data
item where a tag could also be expected with that data item as tag
content.</t>
        <t>The Invalid Tags are not intended to ever occur in interchanged CBOR
data items.  Generic CBOR decoder implementations are encouraged to
raise an error if an Invalid Tag occurs in a CBOR data item even if
there is no validity checking implemented otherwise.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA has allocated the first to third tag in <xref target="tab-tag-values"/> from the
FCFS space, with the present document as the specification reference.
IANA has allocated the tag in the next row, and is requested to
allocate the tags in the next four rows, from the Specification
Required space, with the present document as the specification reference.</t>
      <table anchor="tab-tag-values">
        <name>Values for Tags</name>
        <thead>
          <tr>
            <th align="right">Tag</th>
            <th align="left">Data Item</th>
            <th align="left">Semantics</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">65535</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">4294967295</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">18446744073709551615</td>
            <td align="left">(none valid)</td>
            <td align="left">always invalid</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="invalid-tag"/></td>
          </tr>
          <tr>
            <td align="right">63</td>
            <td align="left">byte string</td>
            <td align="left">Encoded CBOR Sequence <xref target="RFC8742"/></td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="related-tags"/></td>
          </tr>
          <tr>
            <td align="right">21065</td>
            <td align="left">text string</td>
            <td align="left">I-Regexp</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="related-tags"/>; <xref target="I-D.draft-ietf-jsonpath-iregexp"/></td>
          </tr>
          <tr>
            <td align="right">18312 to 18540 (inclusive)</td>
            <td align="left">byte string</td>
            <td align="left">Bare Hash value (COSE algorithm -256 to -28)</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
          <tr>
            <td align="right">18541</td>
            <td align="left">array</td>
            <td align="left">[COSE algorithm identifier, Bare Hash value]</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
          <tr>
            <td align="right">18542 to 18823 (inclusive)</td>
            <td align="left">byte string</td>
            <td align="left">Bare Hash value (COSE algorithm -26 to 255)</td>
            <td align="left">draft-bormann-cbor-notable-tags, <xref target="hashtags"/></td>
          </tr>
        </tbody>
      </table>
      <t>In addition, IANA is requested to allocate the tags from
<xref target="tab-tag-enum"/>, with a reference to the present document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="STD94"/> apply; the tags discussed here
may also have specific security considerations that are mentioned in
their specific sections above.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="STD63">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose" target="https://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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="RFC8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined 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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <referencegroup anchor="STD96">
          <reference anchor="RFC9052" target="httpss://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="httpss://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="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9054">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Hash Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) syntax (see RFC 9052) does not define any direct methods for using hash algorithms. There are, however, circumstances where hash algorithms are used, such as indirect signatures, where the hash of one or more contents are signed, and identification of an X.509 certificate or other object by the use of a fingerprint. This document defines hash algorithms that are identified by COSE algorithm identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9054"/>
          <seriesInfo name="DOI" value="10.17487/RFC9054"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </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="RFC9132">
          <front>
            <title>Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Channel Specification</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="J. Shallow" initials="J." surname="Shallow"/>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document specifies the Distributed Denial-of-Service Open Threat Signaling (DOTS) signal channel, a protocol for signaling the need for protection against Distributed Denial-of-Service (DDoS) attacks to a server capable of enabling network traffic mitigation on behalf of the requesting client.</t>
              <t>A companion document defines the DOTS data channel, a separate reliable communication layer for DOTS management and configuration purposes.</t>
              <t>This document obsoletes RFC 8782.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9132"/>
          <seriesInfo name="DOI" value="10.17487/RFC9132"/>
        </reference>
        <reference anchor="RFC8746">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Typed Arrays</title>
            <author fullname="C. Bormann" initials="C." role="editor" surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), as defined in RFC 7049, 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>This document makes use of this extensibility to define a number of CBOR tags for typed arrays of numeric data, as well as additional tags for multi-dimensional and homogeneous arrays. It is intended as the reference document for the IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8746"/>
          <seriesInfo name="DOI" value="10.17487/RFC8746"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <referencegroup anchor="BCP47">
          <reference anchor="RFC4647" target="https://www.rfc-editor.org/info/rfc4647">
            <front>
              <title>Matching of Language Tags</title>
              <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
              <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
              <date month="September" year="2006"/>
              <abstract>
                <t>This document describes a syntax, called a "language-range", for specifying items in a user's list of language preferences. It also describes different mechanisms for comparing and matching these to language tags. Two kinds of matching mechanisms, filtering and lookup, are defined. Filtering produces a (potentially empty) set of language tags, whereas lookup produces a single language tag. Possible applications include language negotiation or content selection. This document, in combination with RFC 4646, replaces RFC 3066, which replaced RFC 1766. 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="47"/>
            <seriesInfo name="RFC" value="4647"/>
            <seriesInfo name="DOI" value="10.17487/RFC4647"/>
          </reference>
          <reference anchor="RFC5646" target="https://www.rfc-editor.org/info/rfc5646">
            <front>
              <title>Tags for Identifying Languages</title>
              <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
              <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
              <date month="September" year="2009"/>
              <abstract>
                <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. 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="47"/>
            <seriesInfo name="RFC" value="5646"/>
            <seriesInfo name="DOI" value="10.17487/RFC5646"/>
          </reference>
        </referencegroup>
        <reference anchor="W3C-STRINGS-BIDI" target="https://www.w3.org/International/articles/strings-and-bidi/">
          <front>
            <title>Strings and bidi</title>
            <author>
              <organization/>
            </author>
            <date year="2017" month="July" day="31"/>
          </front>
        </reference>
        <reference anchor="W3C-BIDI-USE-CASES" target="https://www.w3.org/International/articles/lang-bidi-use-cases/">
          <front>
            <title>Use cases for bidi and language metadata on the Web</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="May" day="06"/>
          </front>
        </reference>
        <reference anchor="W3C-UBA-BASICS" target="https://www.w3.org/International/articles/inline-bidi-markup/uba-basics">
          <front>
            <title>Unicode Bidirectional Algorithm basics</title>
            <author>
              <organization/>
            </author>
            <date year="2016" month="August" day="09"/>
          </front>
        </reference>
        <reference anchor="W3C-SIMPLE-RUBY" target="https://www.w3.org/TR/simple-ruby/">
          <front>
            <title>W3C Rules for Simple Placement of Japanese Ruby</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="June" day="09"/>
          </front>
          <refcontent>W3C First Public Working Draft</refcontent>
        </reference>
        <reference anchor="HTML" target="https://html.spec.whatwg.org">
          <front>
            <title>HTML — Living Standard</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2045">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This initial document specifies the various headers used to describe the structure of MIME messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2045"/>
          <seriesInfo name="DOI" value="10.17487/RFC2045"/>
        </reference>
        <reference anchor="RFC4122">
          <front>
            <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4122"/>
          <seriesInfo name="DOI" value="10.17487/RFC4122"/>
        </reference>
        <reference anchor="RFC7049">
          <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="October" year="2013"/>
            <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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7049"/>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
        </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="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-time-tag">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Ben Gamari" initials="B." surname="Gamari">
              <organization>Well-Typed</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <date day="23" month="July" year="2023"/>
            <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.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 8949 defines two tags for time: CBOR tag 0 (RFC3339 time as a
   string) and tag 1 (Posix time as int or float).  Since then,
   additional requirements have become known.  The present document
   defines a CBOR tag for time that allows a more elaborate
   representation of time, as well as related CBOR tags for duration and
   time period.  It is intended as the reference document for the IANA
   registration of the CBOR tags defined.


   // The present version (-09) addresses IANA early review comments.
   // It reflects the state of the document after the short final WGLC
   // completed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-time-tag-09"/>
        </reference>
        <reference anchor="I-D.draft-ietf-jsonpath-iregexp">
          <front>
            <title>I-Regexp: An Interoperable Regexp Format</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Tim Bray" initials="T." surname="Bray">
              <organization>Textuality</organization>
            </author>
            <date day="29" month="June" year="2023"/>
            <abstract>
              <t>   This document specifies I-Regexp, a flavor of regular expressions
   that is limited in scope with the goal of interoperation across many
   different regular-expression libraries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jsonpath-iregexp-08"/>
        </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="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="C" target="https://www.iso.org/standard/74528.html">
          <front>
            <title>Information technology — Programming languages — C</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2018" month="June"/>
          </front>
          <seriesInfo name="ISO/IEC" value="9899:2018"/>
        </reference>
        <reference anchor="Cplusplus20" target="https://isocpp.org/files/papers/N4860.pdf">
          <front>
            <title>Programming languages — C++</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISO/IEC" value="ISO/IEC JTC1 SC22 WG21 N 4860"/>
        </reference>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </reference>
        <reference anchor="RFC7322">
          <front>
            <title>RFC Style Guide</title>
            <author fullname="H. Flanagan" initials="H." surname="Flanagan"/>
            <author fullname="S. Ginoza" initials="S." surname="Ginoza"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>This document describes the fundamental and unique style conventions and editorial policies currently in use for the RFC Series. It captures the RFC Editor's basic requirements and offers guidance regarding the style and structure of an RFC. Additional guidance is captured on a website that reflects the experimental nature of that guidance and prepares it for future inclusion in the RFC Style Guide. This document obsoletes RFC 2223, "Instructions to RFC Authors".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7322"/>
          <seriesInfo name="DOI" value="10.17487/RFC7322"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="I-D.trammell-rains-protocol">
          <front>
            <title>RAINS (Another Internet Naming Service) Protocol Specification</title>
            <author fullname="Brian Trammell" initials="B." surname="Trammell">
              <organization>ETH Zurich</organization>
            </author>
            <author fullname="Christian Fehlmann" initials="C." surname="Fehlmann">
              <organization>ETH Zurich</organization>
            </author>
            <date day="29" month="January" year="2019"/>
            <abstract>
              <t>   This document defines an alternate protocol for Internet name
   resolution, designed as a prototype to facilitate conversation about
   the evolution or replacement of the Domain Name System protocol.  It
   attempts to answer the question: "how would we design DNS knowing
   what we do now," on the background of a set of properties of an
   idealized Internet naming service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-trammell-rains-protocol-05"/>
        </reference>
        <reference anchor="RFC8943">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Date</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="J. Richter" initials="J." surname="Richter"/>
            <date month="November" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), as specified in RFC 7049, 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>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 7049 defines two tags for time: CBOR tag 0 (date/time string as per RFC 3339) and tag 1 (POSIX "seconds since the epoch"). Since then, additional requirements have become known. This specification defines a CBOR tag for a date text string (as per RFC 3339) for applications needing a textual date representation within the Gregorian calendar without a time. It also defines a CBOR tag for days since the date 1970-01-01 in the Gregorian calendar for applications needing a numeric date representation without a time. This specification is the reference document for IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8943"/>
          <seriesInfo name="DOI" value="10.17487/RFC8943"/>
        </reference>
        <reference anchor="I-D.clarke-cbor-crs">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tag for Coordinate Reference System (CRS) Specification</title>
            <author fullname="Trevor Clarke" initials="T." surname="Clarke">
              <organization>Ball Aerospace and Technologies Corp.</organization>
            </author>
            <date day="17" month="March" year="2020"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 7049) 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 CBOR, one point of extensibility is the definition of CBOR tags.
   An existing CBOR tag, 103, allows for the representation of
   geographic coordinates.  Proper exploitation of geographic
   coordinates requires an associated reference frame.  The present
   document defines a CBOR tag for referencing the coordinate reference
   system (CRS) for a geographic coordinate.  It is intended as the
   reference document for the IANA registration of the CBOR tag defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-clarke-cbor-crs-02"/>
        </reference>
      </references>
    </references>
    <?line 957?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>(Many, TBD)</t>
      <!--  LocalWords:  CBOR extensibility IANA uint sint IEEE endian
 -->
<!--  LocalWords:  signedness endianness
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="P." surname="Occil" fullname="Peter Occil">
        <organization/>
        <address>
          <email>poccil14 at gmail dot com</email>
        </address>
      </contact>
      <t>Peter Occil registered tags 30, 264, 265, 268–270
(<xref target="advanced-arithmetic"/>), 38, 257, 266 and 267
(<xref target="domain-specific"/>), and contributed much of the text about
these tags in this document.</t>
      <contact initials="D." surname="Coutts" fullname="Duncan Coutts">
        <organization/>
        <address>
          <email>duncan@well-typed.com</email>
        </address>
      </contact>
      <contact initials="M. P." surname="Jones" fullname="Michael Peyton Jones">
        <organization/>
        <address>
          <email>me@michaelpj.com</email>
        </address>
      </contact>
      <contact initials="J." surname="Doe" fullname="Jane Doe">
        <organization>To do</organization>
        <address>
      </address>
      </contact>
      <t>Further contributors will be listed here as text is added.</t>
      <t>Plase stay tuned.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
