<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcnally-cbor-nan-bstr-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="nan-bstr">A CBOR Tag for Lossless Transport of IEEE-754 NaN Bit Patterns</title>
    <seriesInfo name="Internet-Draft" value="draft-mcnally-cbor-nan-bstr-00"/>
    <author initials="W." surname="McNally" fullname="Wolf McNally" role="editor">
      <organization>Blockchain Commons</organization>
      <address>
        <email>wolf@wolfmcnally.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="01"/>
    <area>ART</area>
    <workgroup>CBOR</workgroup>
    <keyword>CBOR</keyword>
    <keyword>IEEE-754</keyword>
    <keyword>NaN</keyword>
    <keyword>determinism</keyword>
    <keyword>interoperability</keyword>
    <abstract>
      <?line 46?>

<t>IEEE-754 NaN formations are not numbers and have no equivalence class. They are not comparable to anything, including reflexively, and therefore each attribute - sign bit, signaling/quiet bit, payload bits, and representation width (binary16, binary32, binary64) - can carry meaning for an implementation. CBOR permits encoding NaNs as floating-point values, but generic processing, preferred serialization, and deterministic profiles may canonicalize or otherwise alter NaN encodings, losing information. This document defines a CBOR tag, colloquially "nan-bstr", whose content is a byte string carrying the exact IEEE-754 NaN bit pattern so that all attributes are preserved across encode/decode, enabling use cases like NaN boxing, platform-specific error signaling, diagnostics, and forensics.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcnally-cbor-nan-bstr/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/BlockchainCommons/draft-mcnally-cbor-nan-bstr"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>CBOR defines an extensible binary format with semantic tags (major type 6) that can ascribe additional meaning to enclosed data items (<xref target="RFC8949"/>). While CBOR's floating-point types can encode NaN values, encoders and application profiles commonly canonicalize NaNs or collapse them to a single preferred representation. For applications that rely on specific NaN formations, this behavior is unacceptable. This specification defines a single CBOR tag that wraps a CBOR byte string (bstr) containing 2, 4, or 8 octets representing the big-endian bit pattern of a single IEEE-754 NaN (binary16/32/64). The tag enables exact round-tripping of NaN attributes independent of the policies that an ecosystem applies to floating-point numbers.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="motivation-and-rationale">
      <name>Motivation and Rationale</name>
      <t>IEEE-754 purposefully leaves NaNs incomparable and allows implementations to use sign, signaling/quiet, and payload bits for implementation-defined purposes (<xref target="IEEE754"/>). When CBOR encoders perform preferred serialization or when deterministic profiles constrain encodings for predictability (see <xref section="4.2" sectionFormat="comma" target="RFC8949"/>), the precise NaN formation can be lost. A narrowly scoped tag that treats a NaN as an opaque bit pattern avoids interfering with numeric semantics while providing an explicit, interoperable mechanism to preserve all attributes. This mechanism addresses concrete needs: (1) NaN boxing schemes use NaN payload space to embed tagged values and pointers; preserving those bits across transports is essential (<xref target="JSC-NaNBox"/>). (2) Some profiles, such as dCBOR, intentionally allow only a single canonical NaN and reject others to maximize determinism; those ecosystems still benefit from an explicit escape hatch when a precise NaN must be preserved (<xref target="I-D.mcnally-deterministic-cbor"/>). (3) Other communities canonicalize NaNs for determinism (for example, WebAssembly discussions), illustrating the tension between reproducibility and information retention (<xref target="WASM-NaN"/>). See also prior CBOR WG threads that discussed NaN handling and determinism (<xref target="CBOR-WG-NaN-Threads"/>). A tag solves the transport problem without weakening profile policies for ordinary numeric values.</t>
    </section>
    <section anchor="the-nan-bstr-tag">
      <name>The nan-bstr Tag</name>
      <section anchor="semantics">
        <name>Semantics</name>
        <t>The nan-bstr tag denotes that its content is a CBOR byte string whose bytes are, in network byte order (big-endian), the bit pattern of a single IEEE-754 NaN in one of the three interchange widths: 2 bytes (binary16), 4 bytes (binary32), or 8 bytes (binary64). The tag does not change IEEE-754 NaN semantics: it does not define equality or ordering for NaNs. A tagged NaN is not a CBOR floating-point number; it is an opaque bit pattern that an application <bcp14>MAY</bcp14> convert to a native NaN when desired, acknowledging that the conversion could lose information if the platform cannot represent signaling NaNs or payload bits.</t>
      </section>
      <section anchor="validity">
        <name>Validity</name>
        <t>A decoder that understands this tag <bcp14>MUST</bcp14> enforce all of the following: (1) The enclosed bstr length is exactly 2, 4, or 8. (2) The bytes are interpreted in network byte order, consistent with CBOR's encoding of multi-byte values (<xref target="RFC8949"/>). (3) The bit pattern is a NaN for the indicated width (that is, exponent is all ones and the significand/fraction field is non-zero per <xref target="IEEE754"/>). (4) No normalization or canonicalization of the payload, sign bit, signaling/quiet bit, or width is performed by the tag processing itself. If any check fails, the decoder <bcp14>MUST</bcp14> treat the tagged value as invalid for this tag and handle it per application error policy.</t>
      </section>
      <section anchor="deterministic-encoding-and-preferred-serialization">
        <name>Deterministic Encoding and Preferred Serialization</name>
        <t>CBOR's preferred serialization and deterministically encoded CBOR rules (<xref section="4.2" sectionFormat="comma" target="RFC8949"/>) apply to the tag and to the bstr's container (for example, definite length), not to the content bytes themselves. The content of the bstr is application-defined and <bcp14>MUST</bcp14> be preserved exactly. When an application needs exact preservation of a NaN, the sender <bcp14>SHOULD</bcp14> use this tag in place of a floating-point NaN literal.</t>
      </section>
      <section anchor="interoperability-with-deterministic-profiles-and-dcbor">
        <name>Interoperability with Deterministic Profiles and dCBOR</name>
        <t>Deterministic profiles often restrict or canonicalize floating-point representations to ensure byte-for-byte stability. For example, the dCBOR profile allows only a single canonical NaN formation (half-width value with CBOR representation 0xf97e00) and rejects others (<xref target="I-D.mcnally-deterministic-cbor"/>). These profiles can still carry non-canonical NaNs by allowing this tag: encoders emit nan-bstr when exact NaN preservation is required and emit the profile's canonical NaN otherwise. This keeps deterministic rules for numbers intact while providing a precise transport for exceptional cases.</t>
      </section>
    </section>
    <section anchor="examples-and-diagnostic-notation">
      <name>Examples and Diagnostic Notation</name>
      <t>The requested tag number for this specification is 102. Diagnostic notation shows tags in decimal by default. (a) Half-precision quiet NaN (0x7E00): <tt>102(h'7E00')</tt>. (b) Single-precision quiet NaN with payload 0x000001: <tt>102(h'7FC00001')</tt>. (c) Double-precision signaling NaN with minimal payload 0x00000000000001 and sign bit set: <tt>102(h'FFF0000000000001')</tt>. CBOR encodings (hex) for the above are, respectively: (a) <tt>D8 66 42 7E 00</tt> (tag(102), bstr len 2, 0x7E00), (b) <tt>D8 66 44 7F C0 00 01</tt>, (c) <tt>D8 66 48 FF F0 00 00 00 00 00 01</tt>. In all cases, the content preserves sign, signaling/quiet, payload bits, and width exactly; applications that cannot natively represent a formation still retain the bit pattern for pass-through or later analysis.</t>
    </section>
    <section anchor="cddl">
      <name>CDDL</name>
      <t>The following CDDL (<xref target="RFC8610"/>) defines the tagged value.</t>
      <t><tt>
nan-bstr = #6.102 (bstr .size (2 / 4 / 8))
</tt></t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Treat the bstr as untrusted input. A decoder <bcp14>MUST</bcp14> validate NaN well-formedness for the indicated width. Implementations <bcp14>MUST</bcp14> avoid triggering floating-point exceptions when merely transporting the bit pattern. Because payload bits can carry platform-specific metadata, applications should consider confidentiality and integrity requirements when transporting tagged NaNs. The tag restricts size to 2/4/8 bytes and introduces no variable-length resource concerns beyond those of CBOR bstr handling (<xref target="RFC8949"/>).</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to register one new entry in the CBOR Tags registry (<xref target="IANA-CBOR-TAGS"/>) using the template of <xref section="9.2" sectionFormat="comma" target="RFC8949"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Tag: 102 (Specification Required range).</t>
        </li>
        <li>
          <t>Data item: byte string.</t>
        </li>
        <li>
          <t>Semantics: IEEE-754 NaN encoded as a 2, 4, or 8 octet byte string (nan-bstr).</t>
        </li>
        <li>
          <t>Reference: This document.</t>
        </li>
      </ul>
    </section>
    <section anchor="implementation-notes">
      <name>Implementation Notes</name>
      <t>This section is non-normative.</t>
      <t>Encoders <bcp14>SHOULD</bcp14> use definite-length bstrs. Decoders <bcp14>SHOULD</bcp14> expose APIs that surface width, sign, signaling/quiet, and payload without mutating bits. Implementations <bcp14>SHOULD</bcp14> avoid using nan-bstr values as map keys because NaN equivalence is undefined; generic CBOR guidance on key equivalence applies (<xref target="RFC8949"/>). Profiles that otherwise canonicalize floating-point NaNs can retain those rules and treat nan-bstr as the explicit mechanism for exact preservation when needed.</t>
    </section>
    <section anchor="alternatives-considered">
      <name>Alternatives Considered</name>
      <t>This section is non-normative.</t>
      <t>The CBOR Tags registry defines tags 80-87 for various permutations of "IEEE 754 binary&lt;length&gt;, &lt;endianness&gt;, Typed Array" (<xref target="IANA-CBOR-TAGS"/>). These tags may be used to preserve exact bit patterns of floating-point values, including NaNs. However, they do not connote the special semantics of NaNs, such as incomparability and payload significance. Using those tags for NaNs could mislead implementers into treating tagged values as ordinary numbers, risking unintended comparisons or arithmetic. A dedicated nan-bstr tag clarifies intent and avoids semantic confusion.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to CBOR WG participants for discussion of determinism and floating-point edge cases, and to implementers who documented NaN canonicalization and processing behavior across platforms.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="IEEE" value="Std 754-2019"/>
        </reference>
        <reference anchor="IANA-CBOR-TAGS" target="https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.mcnally-deterministic-cbor">
          <front>
            <title>dCBOR: A Deterministic CBOR Application Profile</title>
            <author fullname="Wolf McNally" initials="W." surname="McNally">
              <organization>Blockchain Commons</organization>
            </author>
            <author fullname="Christopher Allen" initials="C." surname="Allen">
              <organization>Blockchain Commons</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="10" month="August" year="2025"/>
            <abstract>
              <t>   The purpose of determinism is to ensure that semantically equivalent
   data items are encoded into identical byte streams.  CBOR (RFC 8949)
   defines "Deterministically Encoded CBOR" in its Section 4.2, but
   leaves some important choices up to the application developer.  The
   CBOR Common Deterministic Encoding (CDE) Internet Draft builds on
   this by specifying a baseline for application profiles that wish to
   implement deterministic encoding with CBOR.  The present document
   provides an application profile "dCBOR" that can be used to help
   achieve interoperable deterministic encoding based on CDE for a
   variety of applications wishing an even narrower and clearly defined
   set of choices.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcnally-deterministic-cbor-13"/>
        </reference>
        <reference anchor="WASM-NaN" target="https://github.com/WebAssembly/design/issues/1463">
          <front>
            <title>WebAssembly issue</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSC-NaNBox" target="https://browser.training.ret2.systems/content/module_1/8_jsc_internals/exercises/jsc_nan_boxing">
          <front>
            <title>JavaScriptCore NaN Boxing exercise</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CBOR-WG-NaN-Threads" target="https://mailarchive.ietf.org/arch/browse/cbor/?q=NaN">
          <front>
            <title>CBOR WG mailing list threads on NaN and determinism</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAFLzBmkAA41aaXPcRpL9jl9RS0WMyIm+SHEoqjUzHoqHrQldK9KrmJhw
SNVAdTdMAAWjADbbCv+X/S37y/ZlZhWOJuWxwpa6cdSR+fLly6wej8dRndaZ
maszdf7q/Ud1o1dqaSv1xjqXGefUTaULV9qqVnapXl9eXo6f/+VYvdPv1Ku0
Vh90XZuqcJFeLCpzN1eFLsYLV1dRYuNC5xg4qfSyHuf4lmXbcbyw1Tg8NJ7N
oljXZmWr7Vy5Oolw0eh8jolurqK0rOaqrhpXH81mL2ZHkcZNrPTjTbSx1e2q
sk0552VHt2aLS8lc/Zu+jtqFjmilI5UYrDJPi9TlI5UW+GJLU+lFmqX19ifM
qovks85sgfVujYvKFCPVNh4ph51XZunwaZvTh5+iO1M0Zh4p1V+AUrlOs7mi
/f0jNfVyYqsVPZPW62YxV68yG9/Ga50W5zbPbeGmv2OXSDf12lY0x1iJFT/Z
bKnexu/oYVxWCsP3R1V+WL5nZC0bvPMP+stPMoltzvcrSx43SVrbKipsles6
veMtfbw6Pz05nIWPL45fzKO0WPYfIdPCsnMeyYOHrqlrsqKuEsbPVWbxRrEa
f7CwtzqrYIfc1GnMrzlTpcbRwDKMjDrHEInC2OOj2eELGV9XK1PP1bquSzef
TlNjzH2Z2cpM6CMZeQqkNbkp6unp85OToyN68fXZu7Mx+WV8c/b99WCp57aI
U2eA3kJXW/V+8bOJa/XRlJVxGASLtoXap3cPKBgcbq1S+GT76Ho2m80k1YXm
hWjn0lVBS3FT9meN97tPk/t1nWe0uvHFJPi9QyZswyig1X46u347BnIHK/9k
FmfOmXyRbVXqXGPUk8Pjk2eAyKe1rnFJ1WujcgtHyS7IDxSosS5skcY6S3/l
G989uhVBKmFk2ptpmhja1JQndFOaEG//8/qclvfK3g9W+E99p6/jKi3rc3hI
SMLeAwXK3JuKzP7ozIvKboCISV0ByHh6Upn6aOK2rjY57GcRr/BubpMmM58P
p6eff3bxZ45i2NBNw9huStcRQ58XPCnmYgh8+p7WOr5Zgz0SNwQDUd6n7zl2
aZkZ3AAr8oMKFqQdANR9/nh0B/S+ruI1QmQSgn9KF/zeGATT7375GwaMxiBd
+ktpinUd11E04FUfbQhmBcJTha1V0eQLUzley1rf0UVlfmng6MwUsVFxBuxN
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
lIwpAAA=

-->

</rfc>
