|
1048 | 1048 | <thead><tr> |
1049 | 1049 | <td class="left">Internet-Draft</td> |
1050 | 1050 | <td class="center">dCBOR</td> |
1051 | | -<td class="right">November 2025</td> |
| 1051 | +<td class="right">December 2025</td> |
1052 | 1052 | </tr></thead> |
1053 | 1053 | <tfoot><tr> |
1054 | 1054 | <td class="left">McNally, et al.</td> |
1055 | | -<td class="center">Expires 6 May 2026</td> |
| 1055 | +<td class="center">Expires 23 June 2026</td> |
1056 | 1056 | <td class="right">[Page]</td> |
1057 | 1057 | </tr></tfoot> |
1058 | 1058 | </table> |
|
1065 | 1065 | <dd class="internet-draft">draft-mcnally-deterministic-cbor-latest</dd> |
1066 | 1066 | <dt class="label-published">Published:</dt> |
1067 | 1067 | <dd class="published"> |
1068 | | -<time datetime="2025-11-02" class="published">2 November 2025</time> |
| 1068 | +<time datetime="2025-12-20" class="published">20 December 2025</time> |
1069 | 1069 | </dd> |
1070 | 1070 | <dt class="label-intended-status">Intended Status:</dt> |
1071 | 1071 | <dd class="intended-status">Standards Track</dd> |
1072 | 1072 | <dt class="label-expires">Expires:</dt> |
1073 | | -<dd class="expires"><time datetime="2026-05-06">6 May 2026</time></dd> |
| 1073 | +<dd class="expires"><time datetime="2026-06-23">23 June 2026</time></dd> |
1074 | 1074 | <dt class="label-authors">Authors:</dt> |
1075 | 1075 | <dd class="authors"> |
1076 | 1076 | <div class="author"> |
@@ -1126,7 +1126,7 @@ <h2 id="name-status-of-this-memo"> |
1126 | 1126 | time. It is inappropriate to use Internet-Drafts as reference |
1127 | 1127 | material or to cite them other than as "work in progress."<a href="#section-boilerplate.1-3" class="pilcrow">¶</a></p> |
1128 | 1128 | <p id="section-boilerplate.1-4"> |
1129 | | - This Internet-Draft will expire on 6 May 2026.<a href="#section-boilerplate.1-4" class="pilcrow">¶</a></p> |
| 1129 | + This Internet-Draft will expire on 23 June 2026.<a href="#section-boilerplate.1-4" class="pilcrow">¶</a></p> |
1130 | 1130 | </section> |
1131 | 1131 | </div> |
1132 | 1132 | <div id="copyright"> |
@@ -1296,10 +1296,11 @@ <h3 id="name-conventions-and-definitions"> |
1296 | 1296 | <h2 id="name-narrowing-rules"> |
1297 | 1297 | <a href="#section-2" class="section-number selfRef">2. </a><a href="#name-narrowing-rules" class="section-name selfRef">Narrowing Rules</a> |
1298 | 1298 | </h2> |
1299 | | -<p id="section-2-1">This section specifies the exclusions and reductions that dCBOR applies to CBOR.<a href="#section-2-1" class="pilcrow">¶</a></p> |
| 1299 | +<p id="section-2-1">This section is normative and specifies the exclusions and reductions that dCBOR applies to CBOR, thereby narrowing the set of data items allowed that are drawn from CBOR’s basic generic data model.<a href="#section-2-1" class="pilcrow">¶</a></p> |
1300 | 1300 | <p id="section-2-2">The rules specified here do not "fork" CBOR: A dCBOR implementation produces well-formed, deterministically encoded CBOR according to <span>[<a href="#RFC8949" class="cite xref">RFC8949</a>]</span>, and existing CBOR decoders will therefore be able to decode it. Similarly, CBOR encoders will be able to produce valid dCBOR if handed dCBOR-conforming data model level information from an application.<a href="#section-2-2" class="pilcrow">¶</a></p> |
1301 | 1301 | <p id="section-2-3">Note that the separation between standard CBOR processing and the processing required by the dCBOR rules is a conceptual one: Both dCBOR processing and standard CBOR processing may be combined into a unified dCBOR/CBOR codec. The requirements in this document apply to encoding or decoding of dCBOR data, regardless of whether the codec is a unified dCBOR/CBOR codec operating in dCBOR-compliant modes, or a single-purpose dCBOR codec. Both of these are generically referred to as "dCBOR codecs" in this document.<a href="#section-2-3" class="pilcrow">¶</a></p> |
1302 | | -<p id="section-2-4">dCBOR is intended to be used in conjunction with an application, which typically will use a subset of CBOR, which in turn influences which subset of dCBOR that is used. As a result, dCBOR places no direct requirement on what subset of CBOR is implemented. For instance, there is no requirement that dCBOR implementations support floating point numbers (or any other kind of non-basic integer type, such as arbitrary precision integers or complex numbers) when they are used with applications that do not use them. However, this document does place requirements on dCBOR implementations that support negative 64-bit integers and 64-bit or smaller floating point numbers.<a href="#section-2-4" class="pilcrow">¶</a></p> |
| 1302 | +<p id="section-2-4">A CBOR data item is considered to conform to dCBOR only if every CBOR data item nested within it, recursively (including array elements, map keys and values, and the contents of tagged data items), also conforms to the narrowing rules in this section.<a href="#section-2-4" class="pilcrow">¶</a></p> |
| 1303 | +<p id="section-2-5">dCBOR is intended to be used in conjunction with an application, which typically will use a subset of CBOR, which in turn influences which subset of dCBOR that is used. As a result, dCBOR places no direct requirement on what subset of CBOR is implemented. For instance, there is no requirement that dCBOR implementations support floating point numbers (or any other kind of non-basic integer type, such as arbitrary precision integers or complex numbers) when they are used with applications that do not use them. However, this document does place requirements on dCBOR implementations that support 64-bit integers and 64-bit or smaller floating point numbers.<a href="#section-2-5" class="pilcrow">¶</a></p> |
1303 | 1304 | <div id="definite-length-items"> |
1304 | 1305 | <section id="section-2.1"> |
1305 | 1306 | <h3 id="name-definite-length-items"> |
@@ -1434,6 +1435,7 @@ <h3 id="name-numeric-reduction"> |
1434 | 1435 | <span class="bcp14">MUST</span> reject any encoded floating point values that are not encoded according to the above rules.<a href="#section-2.5-7.1" class="pilcrow">¶</a> |
1435 | 1436 | </li> |
1436 | 1437 | </ol> |
| 1438 | +<p id="section-2.5-8">For the purposes of this document, the dCBOR numeric model comprises only untagged integers and untagged floating point values in the CBOR basic generic data model (major types 0, 1, and 7 as defined in <span>[<a href="#RFC8949" class="cite xref">RFC8949</a>]</span> and by the type <code>number</code> in <span>[<a href="#RFC8610" class="cite xref">RFC8610</a>]</span>). Numeric Reduction and the duplicate-key considerations in this section apply only to such untagged numeric values, wherever they occur in a dCBOR data item. Tagged data items themselves are not part of the dCBOR numeric model: two tagged data items are equal in dCBOR only if both their tag numbers and their enclosed CBOR data items are equal, and no tagged data item is ever considered numerically equal to an untagged data item.<a href="#section-2.5-8" class="pilcrow">¶</a></p> |
1437 | 1439 | </section> |
1438 | 1440 | </div> |
1439 | 1441 | <div id="simple-values"> |
|
0 commit comments