| rfc9090.original.xml | rfc9090.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.13 --> | <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.13 --> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocdepth="2"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| <?rfc sortrefs="yes"?> | -ietf-cbor-tags-oid-08" number="9090" submissionType="IETF" category="std" conse | |||
| <?rfc symrefs="yes"?> | nsus="true" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="2" | |||
| <?rfc compact="yes"?> | sortRefs="true" symRefs="true" version="3"> | |||
| <?rfc comments="yes"?> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | <!-- xml2rfc v2v3 conversion 3.7.0 --> | |||
| -ietf-cbor-tags-oid-08" category="std" consensus="true" obsoletes="" updates="" | ||||
| submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="2" sortRefs="tru | ||||
| e" symRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.7.0 --> | ||||
| <front> | <front> | |||
| <title abbrev="CBOR Tags for OIDs">Concise Binary Object Representation (CBO R) Tags for Object Identifiers</title> | <title abbrev="CBOR Tags for OIDs">Concise Binary Object Representation (CBO R) Tags for Object Identifiers</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-tags-oid-08"/> | <seriesInfo name="RFC" value="9090"/> | |||
| <author initials="C." surname="Bormann" fullname="Carsten Bormann"> | <author initials="C." surname="Bormann" fullname="Carsten Bormann"> | |||
| <organization>Universität Bremen TZI</organization> | <organization>Universität Bremen TZI</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Postfach 330440</street> | <street>Postfach 330440</street> | |||
| <city>Bremen</city> | <city>Bremen</city> | |||
| <code>D-28359</code> | <code>D-28359</code> | |||
| <country>Germany</country> | <country>Germany</country> | |||
| </postal> | </postal> | |||
| <phone>+49-421-218-63921</phone> | <phone>+49-421-218-63921</phone> | |||
| <email>cabo@tzi.org</email> | <email>cabo@tzi.org</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2021" month="May" day="21"/> | <date year="2021" month="July"/> | |||
| <keyword>Internet-Draft</keyword> | ||||
| <keyword>binary format</keyword> | ||||
| <keyword>data interchange format</keyword> | ||||
| <keyword>ASN.1</keyword> | ||||
| <keyword>OID</keyword> | ||||
| <keyword>Object Identifier</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data | <t>The Concise Binary Object Representation (CBOR), defined in RFC 8949, i s a data | |||
| format whose design goals include the possibility of extremely small | format whose design goals include the possibility of extremely small | |||
| code size, fairly small message size, and extensibility without the | code size, fairly small message size, and extensibility without the | |||
| need for version negotiation.</t> | need for version negotiation.</t> | |||
| <t>The present document defines CBOR tags for | <t>This document defines CBOR tags for | |||
| object identifiers (OIDs). It is intended | object identifiers (OIDs) and is | |||
| as the reference document for the IANA registration of the CBOR tags | the reference document for the IANA registration of the CBOR tags | |||
| so defined.</t> | so defined.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" toc="default"> | <section anchor="intro" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>The Concise Binary Object Representation (CBOR, <xref target="RFC8949" format="default"/>) provides | <t>The Concise Binary Object Representation (CBOR) <xref target="RFC8949" format="default"/> provides | |||
| for the interchange of structured data without a requirement for a | for the interchange of structured data without a requirement for a | |||
| pre-agreed schema. | pre-agreed schema. | |||
| <xref target="RFC8949" format="default"/> defines a basic set of data types, as well as a tagging | <xref target="RFC8949" format="default"/> defines a basic set of data types, as well as a tagging | |||
| mechanism that enables extending the set of data types supported via | mechanism that enables extending the set of data types supported via | |||
| an IANA registry.</t> | an IANA registry.</t> | |||
| <t>The present document defines CBOR tags for object identifiers | <t>This document defines CBOR tags for object identifiers | |||
| (OIDs, <xref target="X.660" format="default"/>), which many IETF protocols carry | (OIDs) <xref target="X.660" format="default"/>, which many IETF protocols carry. | |||
| . | ||||
| The ASN.1 Basic Encoding Rules | The ASN.1 Basic Encoding Rules | |||
| (BER, <xref target="X.690" format="default"/>) specify binary encodings of both (absolute) object identifiers | (BER) <xref target="X.690" format="default"/> specify binary encodings of both ( absolute) object identifiers | |||
| and relative object identifiers. | and relative object identifiers. | |||
| The contents of these encodings (the "value" part of BER's | The contents of these encodings (the "value" part of BER's | |||
| type-length-value structure) can be carried in a CBOR byte string. | type-length-value structure) can be carried in a CBOR byte string. | |||
| This document defines two CBOR tags that cover the two kinds of | This document defines two CBOR tags that cover the two kinds of | |||
| ASN.1 object identifiers encoded in this way, and a third one to enable a | ASN.1 object identifiers encoded in this way and a third one to enable a | |||
| common optimization. | common optimization. | |||
| The tags can also be applied to arrays and maps to efficiently tag all | The tags can also be applied to arrays and maps to efficiently tag all | |||
| elements of an array or all keys of a map. | elements of an array or all keys of a map. | |||
| It is intended as the reference document for the IANA registration of | This document is the reference document for the IANA registration of | |||
| the tags so defined.</t> | the tags so defined.</t> | |||
| <section anchor="terms" toc="default"> | <section anchor="terms" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <t> | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| described in BCP 14 <xref target="RFC2119" format="default"/> <xref target= | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| "RFC8174" format="default"/> when, and only when, they | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| appear in all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| <t>The terminology of <xref target="RFC8949" format="default"/> applies; | be interpreted as | |||
| in particular | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| the term "byte" is used in its now customary sense as a synonym for | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | ||||
| <t>The terminology of <xref target="RFC8949" format="default"/> applies; | ||||
| in particular, | ||||
| the term "byte" is used in its now-customary sense as a synonym for | ||||
| "octet". | "octet". | |||
| The verb "to tag (something)" is used to express the construction of a | The verb "to tag (something)" is used to express the construction of a | |||
| CBOR tag with the object (something) as the tag content and a tag | CBOR tag, with the object (something) as the tag content and a tag | |||
| number indicated elsewhere in the sentence (for instance in a "with" | number indicated elsewhere in the sentence (for instance, in a "with" | |||
| clause, or by the shorthand "an NNN tag" for "a tag with tag number NNN"). | clause or by the shorthand "an NNN tag" for "a tag with tag number NNN"). The te | |||
| The term "SDNV" (Self-Delimiting Numeric Value) is used as defined in | rm "SDNV" (Self-Delimiting Numeric Value) is used as defined in | |||
| <xref target="RFC6256" format="default"/>, with the additional restriction detai led in <xref target="reqts" format="default"/> (no | <xref target="RFC6256" format="default"/>, with the additional restriction detai led in <xref target="reqts" format="default"/> (no | |||
| leading zeros).</t> | leading zeros).</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="oids" toc="default"> | <section anchor="oids" toc="default"> | |||
| <name>Object Identifiers</name> | <name>Object Identifiers</name> | |||
| <t>The International Object Identifier tree <xref target="X.660" format="d efault"/> is | <t>The International Object Identifier tree <xref target="X.660" format="d efault"/> is | |||
| a hierarchically managed space of | a hierarchically managed space of | |||
| identifiers, each of which is uniquely represented as a sequence of | identifiers, each of which is uniquely represented as a sequence of | |||
| unsigned integer values | unsigned integer values | |||
| <xref target="X.680" format="default"/>. | <xref target="X.680" format="default"/>. | |||
| (These integer values are called "primary integer values" in X.660 | (These integer values are called "primary integer values" in <xref target="X.660 | |||
| because they can be accompanied by (not necessarily unambiguous) | " format="default"/> because they can be accompanied by (not necessarily unambig | |||
| uous) | ||||
| secondary identifiers. We ignore the latter and simply use the term | secondary identifiers. We ignore the latter and simply use the term | |||
| "integer values" here, occasionally calling out their unsignedness. | "integer values" here, occasionally calling out their unsignedness. | |||
| We also use the term "arc" when the focus is on the edge of the tree | We also use the term "arc" when the focus is on the edge of the tree | |||
| labeled by such an integer value, as well as in the sense of a "long | labeled by such an integer value, as well as in the sense of a "long | |||
| arc", i.e., a (sub)sequence of such integer values.)</t> | arc", i.e., a (sub)sequence of such integer values.)</t> | |||
| <t>While these sequences can easily be represented in CBOR arrays of | <t>While these sequences can easily be represented in CBOR arrays of | |||
| unsigned integers, a more compact representation can often be achieved | unsigned integers, a more compact representation can often be achieved | |||
| by adopting the widely used representation of object identifiers | by adopting the widely used representation of object identifiers | |||
| defined in BER; this representation may also be more amenable to | defined in BER; this representation may also be more amenable to | |||
| processing by other software that makes use of object identifiers.</t> | processing by other software that makes use of object identifiers.</t> | |||
| <t>BER represents the sequence of unsigned integers by concatenating | <t>BER represents the sequence of unsigned integers by concatenating | |||
| self-delimiting <xref target="RFC6256" format="default"/> representations of eac | self-delimiting representations <xref target="RFC6256" format="default"/> of eac | |||
| h of the integer values in sequence.</t> | h of the integer values in sequence.</t> | |||
| <t>ASN.1 distinguishes absolute object identifiers (ASN.1 Type <tt>OBJECT | <t>ASN.1 distinguishes absolute object identifiers (ASN.1 type <tt>OBJECT | |||
| IDENTIFIER</tt>), | IDENTIFIER</tt>), | |||
| which begin at a root arc (<xref target="X.660" format="default"/> Clause 3.5.21 | which begin at a root arc (<xref target="X.660" format="default"/>, Clause 3.5.2 | |||
| ), from relative object | 1), from relative object | |||
| identifiers (ASN.1 Type <tt>RELATIVE-OID</tt>), which begin | identifiers (ASN.1 type <tt>RELATIVE-OID</tt>), which begin | |||
| relative to some object identifier known from context (<xref target="X.680" form | relative to some object identifier known from context (<xref target="X.680" form | |||
| at="default"/> | at="default"/>, | |||
| Clause 3.8.63). | Clause 3.8.63). | |||
| As a special optimization, | As a special optimization, | |||
| BER combines the first two integers in an absolute object identifier | BER combines the first two integers in an absolute object identifier | |||
| into one numeric identifier by making use of the property of the | into one numeric identifier by making use of the property of the | |||
| hierarchy that the first arc has only three integer values (0, 1, and 2), | hierarchy that the first arc has only three integer values (0, 1, and 2) | |||
| and the second arcs under 0 and 1 are limited to the integer values between | and the second arcs under 0 and 1 are limited to the integer values between | |||
| 0 and 39. (The root arc <tt>joint-iso-itu-t(2)</tt> has | 0 and 39. (The root arc <tt>joint-iso-itu-t(2)</tt> has | |||
| no such limitations on its second arc.) | no such limitations on its second arc.) | |||
| If X and Y are the first two integer values, | If X and Y are the first two integer values, | |||
| the single integer value actually encoded is computed as:</t> | the single integer value actually encoded is computed as:</t> | |||
| <ul empty="true" spacing="normal"> | ||||
| <li>X * 40 + Y</li> | <t indent="3">X * 40 + Y</t> | |||
| </ul> | ||||
| <t>The inverse transformation (again making use of the known ranges of X | <t>The inverse transformation (again making use of the known ranges of X | |||
| and Y) is applied when decoding the object identifier.</t> | and Y) is applied when decoding the object identifier.</t> | |||
| <t>Since the semantics of absolute and relative object identifiers | <t>Since the semantics of absolute and relative object identifiers | |||
| differ, and it is very common for companies to use self-assigned numbers | differ and since it is very common for companies to use self-assigned numbers | |||
| under the arc "1.3.6.1.4.1" (IANA Private Enterprise Number OID, | under the arc <tt>1.3.6.1.4.1</tt> (IANA Private Enterprise Number OID | |||
| <xref target="IANA.enterprise-numbers" format="default"/>) that adds 5 fixed byt es to an encoded OID value, | <xref target="IANA.enterprise-numbers" format="default"/>) that adds 5 fixed byt es to an encoded OID value, | |||
| this specification defines three tags, collectively called the | this specification defines three tags, collectively called the | |||
| "OID tags" here:</t> | "OID tags" here:</t> | |||
| <t>Tag number TBD111: used to tag a byte string as the <xref target="X.690 | ||||
| " format="default"/> encoding of an | <dl> | |||
| absolute object identifier (simply "object identifier" or "OID").</t> | <dt>Tag number 111:</dt><dd>Used to tag a byte string as the BER encoding | |||
| <t>Tag number TBD110: used to tag a byte string as the <xref target="X.690 | <xref target="X.690" format="default"/> of an | |||
| " format="default"/> encoding of a relative | absolute object identifier (simply "object identifier" or "OID").</dd> | |||
| object identifier (also "relative OID"). Since the encoding of each | <dt>Tag number 110:</dt><dd>Used to tag a byte string as the BER encoding | |||
| number is the same as for <xref target="RFC6256" format="default"/> Self-Delimit | <xref target="X.690" format="default"/> of a relative | |||
| ing Numeric Values | object identifier (also called "relative OID"). Since the encoding of each | |||
| (SDNVs), this tag can also be used for tagging a byte string that | number is the same as for Self-Delimiting Numeric Values | |||
| (SDNVs) <xref target="RFC6256" format="default"/>, this tag can also be used for | ||||
| tagging a byte string that | ||||
| contains a sequence of zero or more SDNVs (or a more | contains a sequence of zero or more SDNVs (or a more | |||
| application-specific tag can be created for such an application).</t> | application-specific tag can be created for such an application).</dd> | |||
| <t>Tag TBD112: structurally like TBD110, but understood to be relative to | <dt>Tag number 112:</dt><dd>Structurally like tag 110 but understood to be | |||
| <tt>1.3.6.1.4.1</tt> (IANA Private Enterprise Number OID, <xref target="IANA.ent | relative to | |||
| erprise-numbers" format="default"/>). Hence, the | <tt>1.3.6.1.4.1</tt> (IANA Private Enterprise Number OID <xref target="IANA.ente | |||
| semantics of the result are that of an absolute object identifier.</t> | rprise-numbers" format="default"/>). Hence, the | |||
| semantics of the result are that of an absolute object identifier.</dd> | ||||
| </dl> | ||||
| <section anchor="reqts" toc="default"> | <section anchor="reqts" toc="default"> | |||
| <name>Requirements on the byte string being tagged</name> | ||||
| <t>To form a valid tag, a byte string tagged with TBD111, TBD110, or TBD | <name>Requirements on the Byte String Being Tagged</name> | |||
| 112 | <t>To form a valid tag, a byte string tagged with 111, 110, or 112 | |||
| MUST be syntactically valid contents (the value part) for a BER | <bcp14>MUST</bcp14> be syntactically valid contents (the value part) for a BER | |||
| representation of an object identifier (Sections 8.19, 8.20, and 8.20 | representation of an object identifier (see <xref target="oid-x.690" format="def | |||
| of <xref target="X.690" format="default"/>, respectively): A concatenation of ze | ault"/>): </t> | |||
| ro or | ||||
| <table anchor="oid-x.690"> | ||||
| <name>Tag Number and Section of X.690 Governing Tag Content</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Tag number</th> | ||||
| <th>Section of <xref target="X.690" format="default"/></th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>111</td> | ||||
| <td>8.19</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>110</td> | ||||
| <td>8.20</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>112</td> | ||||
| <td>8.20</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>This is a concatenation of zero or | ||||
| more SDNV values, where each SDNV value is a sequence of one or more bytes that | more SDNV values, where each SDNV value is a sequence of one or more bytes that | |||
| all have their most significant bit set, except for the last byte, | all have their most significant bit set, except for the last byte, | |||
| where it is unset. | where it is unset. | |||
| Also, the first byte of each SDNV cannot be a | Also, the first byte of each SDNV cannot be a | |||
| leading zero in SDNV's base-128 arithmetic, so it cannot take the | leading zero in SDNV's base-128 arithmetic, so it cannot take the | |||
| value 0x80 (bullet (c) in Section 8.1.2.4.2 of <xref target="X.690" format="defa ult"/>).</t> | value 0x80 (bullet (c) in Section 8.1.2.4.2 of <xref target="X.690" format="defa ult"/>).</t> | |||
| <t>In other words:</t> | <t>In other words:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>the byte string's first byte, and any byte that follows a byte tha | <li>The byte string's first byte, and any byte that follows a byte tha | |||
| t has the most significant | t has the most significant | |||
| bit unset, MUST NOT be 0x80 (this requirement requires expressing the | bit unset, <bcp14>MUST NOT</bcp14> be 0x80 (this requirement requires expressing | |||
| integer values in their shortest form, with no leading zeroes)</li> | the | |||
| <li>the byte string's last byte MUST NOT have the most significant bit | integer values in their shortest form, with no leading zeroes).</li> | |||
| set (this | <li>The byte string's last byte <bcp14>MUST NOT</bcp14> have the most | |||
| requirement excludes an incomplete final integer value)</li> | significant bit set (this | |||
| requirement excludes an incomplete final integer value).</li> | ||||
| </ul> | </ul> | |||
| <t>If either of these invalid conditions are encountered, the tag is | <t>If either of these invalid conditions are encountered, the tag is | |||
| invalid.</t> | invalid.</t> | |||
| <t><xref target="X.680" format="default"/> restricts RELATIVE-OID values to have at least | <t><xref target="X.680" format="default"/> restricts RELATIVE-OID values to having at least | |||
| one arc, i.e., their encoding would have at least one SDNV. | one arc, i.e., their encoding would have at least one SDNV. | |||
| This specification permits | This specification permits | |||
| empty relative object identifiers; they may | empty relative object identifiers; they may | |||
| still be excluded by application semantics.</t> | still be excluded by application semantics.</t> | |||
| <t>To facilitate the search for specific object ID values, it is RECOMME | <t>To facilitate the search for specific object ID values, it is <bcp14> | |||
| NDED | RECOMMENDED</bcp14> | |||
| that definite length encoding (see Section 3.2.3 of <xref target="RFC8949" forma | that definite length encoding (see <xref target="RFC8949" sectionFormat="of" sec | |||
| t="default"/>) is used | tion="3.2.3"/>) be used | |||
| for the byte strings used as tag content for these tags.</t> | for the byte strings that are used as tag content for these tags.</t> | |||
| <t>The valid set of byte strings can also be expressed using regular | <t>The valid set of byte strings can also be expressed using regular | |||
| expressions on bytes, using no specific notation but resembling | expressions on bytes, using no specific notation but resembling Perl Compatible Regular Expressions | |||
| <xref target="PCRE" format="default"/>. Unlike typical regular expressions that operate on | <xref target="PCRE" format="default"/>. Unlike typical regular expressions that operate on | |||
| character sequences, the following regular expressions take bytes as | character sequences, the following regular expressions take bytes as | |||
| their domain, so they can be applied directly to CBOR byte strings.</t> | their domain, so they can be applied directly to CBOR byte strings.</t> | |||
| <t>For byte strings with tag TBD111:</t> | <t>For byte strings with tag 111:</t> | |||
| <ul empty="true" spacing="normal"> | <t indent="3"> | |||
| <li> | <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])+$/</tt></t> | |||
| <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])+$/</tt></li> | ||||
| </ul> | <t>For byte strings with tags 110 or 112:</t> | |||
| <t>For byte strings with tag TBD110 or TBD112:</t> | <t indent="3"> | |||
| <ul empty="true" spacing="normal"> | <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])*$/</tt></t> | |||
| <li> | ||||
| <tt>/^(([\x81-\xFF][\x80-\xFF]*)?[\x00-\x7F])*$/</tt></li> | ||||
| </ul> | ||||
| <t>A tag with tagged content that does not conform to the applicable | <t>A tag with tagged content that does not conform to the applicable | |||
| regular expression is invalid.</t> | regular expression is invalid.</t> | |||
| </section> | </section> | |||
| <section anchor="prefser" toc="default"> | <section anchor="prefser" toc="default"> | |||
| <name>Preferred Serialization Considerations</name> | <name>Preferred Serialization Considerations</name> | |||
| <t>For an absolute OID with a prefix of "1.3.6.1.4.1", representations | <t>For an absolute OID with a prefix of <tt>1.3.6.1.4.1</tt>, representa | |||
| with both the TBD111 and TBD112 tags are applicable, where the | tions | |||
| representation with TBD112 will be five bytes shorter (by leaving out | with both the 111 and 112 tags are applicable, where the | |||
| representation with 112 will be five bytes shorter (by leaving out | ||||
| the prefix h'2b06010401' from the enclosed byte string). | the prefix h'2b06010401' from the enclosed byte string). | |||
| This specification makes that shorter representation the preferred | This specification makes that shorter representation the preferred | |||
| serialization (see Sections <xref target="RFC8949" section="3.4" sectionFormat=" bare" format="default"/> and <xref target="RFC8949" section="4.1" sectionFormat= "bare" format="default"/> of <xref target="RFC8949" format="default"/>). | serialization (see Sections <xref target="RFC8949" section="3.4" sectionFormat=" bare" format="default"/> and <xref target="RFC8949" section="4.1" sectionFormat= "bare" format="default"/> of <xref target="RFC8949" format="default"/>). | |||
| Note that this also implies that the Core Deterministic Encoding | Note that this also implies that the Core Deterministic Encoding | |||
| Requirements (<xref section="4.2.1" sectionFormat="of" target="RFC8949" format=" | Requirements (<xref section="4.2.1" sectionFormat="of" target="RFC8949" format=" | |||
| default"/>) require the use of TBD112 | default"/>) require the use of 112 | |||
| tags instead of TBD111 wherever that is possible.</t> | tags instead of 111 tags wherever that is possible.</t> | |||
| </section> | </section> | |||
| <section anchor="discussion" toc="default"> | <section anchor="discussion" toc="default"> | |||
| <name>Discussion</name> | <name>Discussion</name> | |||
| <t>Staying close to the way object identifiers are encoded in ASN.1 | <t>Staying close to the way object identifiers are encoded in ASN.1 | |||
| BER makes back-and-forth translation easy; otherwise we would choose a | BER makes back-and-forth translation easy; otherwise, we would choose a | |||
| more efficient encoding. Object | more efficient encoding. Object | |||
| identifiers in IETF protocols | identifiers in IETF protocols | |||
| are serialized in dotted decimal form or BER form, so | are serialized in dotted decimal form or BER form, so | |||
| there is an advantage in not inventing a third form. Also, | there is an advantage in not inventing a third form. Also, | |||
| expectations of the cost of encoding object identifiers are | expectations of the cost of encoding object identifiers are | |||
| based on BER; using a different encoding might not be aligned with | based on BER; using a different encoding might not be aligned with | |||
| these expectations. If additional information about an OID is desired, | these expectations. If additional information about an OID is desired, | |||
| lookup services such as | lookup services such as | |||
| the <xref target="X.672" format="default">OID Resolution Service (ORS)</xref> | the <xref target="X.672" format="default">OID Resolution Service (ORS)</xref> | |||
| and the <xref target="OID-INFO" format="default">OID Repository</xref> are avail able.</t> | and the <xref target="OID-INFO" format="default">OID Repository</xref> are avail able.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="examples" toc="default"> | <section anchor="examples" toc="default"> | |||
| <name>Basic Examples</name> | <name>Basic Examples</name> | |||
| <t>This section gives simple examples of an absolute and a relative | <t>This section gives simple examples of an absolute and a relative | |||
| object identifier, represented via tag number TBD111 and TBD110, | object identifier, represented via tag numbers 111 and 110, | |||
| respectively.</t> | respectively.</t> | |||
| <!-- <note removeinrfc="true" markdown="1"> --> | ||||
| <t>RFC editor: These and other examples assume the allocation of 111 for | ||||
| TBD111 and 110 for TBD110 and need to be changed if that isn't the | ||||
| actual allocation. Please remove this paragraph. | ||||
| <!-- </note> --> | ||||
| </t> | ||||
| <section anchor="encoding-of-the-sha-256-oid" toc="default"> | <section anchor="encoding-of-the-sha-256-oid" toc="default"> | |||
| <name>Encoding of the SHA-256 OID</name> | <name>Encoding of the SHA-256 OID</name> | |||
| <dl> | <dl> | |||
| <dt> | <dt>ASN.1 Value Notation:</dt> | |||
| ASN.1 Value Notation: </dt> | <dd><sourcecode type="asn.1"> | |||
| <dd> | { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) | |||
| <t>{ joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) | csor(3) nistalgorithm(4) hashalgs(2) sha256(1) } | |||
| csor(3) nistalgorithm(4) hashalgs(2) sha256(1) }</t> | </sourcecode></dd> | |||
| </dd> | <dt> | |||
| <dt> | ||||
| Dotted Decimal Notation: </dt> | Dotted Decimal Notation: </dt> | |||
| <dd> | <dd> | |||
| <t>2.16.840.1.101.3.4.2.1</t> | <t>2.16.840.1.101.3.4.2.1</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| <figure anchor="fig-sha-ber"> | <figure anchor="fig-sha-ber"> | |||
| <name>SHA-256 OID in BER</name> | <name>SHA-256 OID in BER</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
| 06 # UNIVERSAL TAG 6 | 06 # UNIVERSAL TAG 6 | |||
| 09 # 9 bytes, primitive | 09 # 9 bytes, primitive | |||
| 60 86 48 01 65 03 04 02 01 # X.690 Clause 8.19 | 60 86 48 01 65 03 04 02 01 # X.690 Clause 8.19 | |||
| # | 840 1 | 3 4 2 1 show component encoding | # | 840 1 | 3 4 2 1 show component encoding | |||
| # 2.16 101 | # 2.16 101 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <figure anchor="fig-sha-cbor"> | <figure anchor="fig-sha-cbor"> | |||
| <name>SHA-256 OID in CBOR</name> | <name>SHA-256 OID in CBOR</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="cbor-pretty"><![CDATA[ | |||
| D8 6F # tag(111) | D8 6F # tag(111) | |||
| 49 # 0b010_01001: mt 2, 9 bytes | 49 # 0b010_01001: mt 2, 9 bytes | |||
| 60 86 48 01 65 03 04 02 01 # X.690 Clause 8.19 | 60 86 48 01 65 03 04 02 01 # X.690 Clause 8.19 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="encoding-of-a-mib-relative-oid" toc="default"> | <section anchor="encoding-of-a-mib-relative-oid" toc="default"> | |||
| <name>Encoding of a MIB Relative OID</name> | <name>Encoding of a MIB Relative OID</name> | |||
| <t>Given some OID (e.g., <tt>lowpanMib</tt>, assumed to be <tt>1.3.6.1.2 .1.226</tt> <xref target="RFC7388" format="default"/>), | <t>Given some OID (e.g., <tt>lowpanMib</tt>, assumed to be <tt>1.3.6.1.2 .1.226</tt> <xref target="RFC7388" format="default"/>), | |||
| to which the following is added:</t> | to which the following is added:</t> | |||
| <dl> | <dl> | |||
| <dt> | <dt>ASN.1 Value Notation:</dt> | |||
| ASN.1 Value Notation: </dt> | <dd> | |||
| <dd> | <sourcecode type="asn.1"> | |||
| <t>{ lowpanObjects(1) lowpanStats(1) lowpanOutTransmits(29) }</t> | { lowpanObjects(1) lowpanStats(1) lowpanOutTransmits(29) } | |||
| </dd> | </sourcecode> | |||
| <dt> | </dd> | |||
| <dt> | ||||
| Dotted Decimal Notation: </dt> | Dotted Decimal Notation: </dt> | |||
| <dd> | <dd> | |||
| <t>.1.1.29</t> | <t>.1.1.29</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| <figure anchor="fig-mib-ber"> | <figure anchor="fig-mib-ber"> | |||
| <name>MIB relative object identifier, in BER</name> | <name>MIB Relative Object Identifier in BER</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
| 0D # UNIVERSAL TAG 13 | 0D # UNIVERSAL TAG 13 | |||
| 03 # 3 bytes, primitive | 03 # 3 bytes, primitive | |||
| 01 01 1D # X.690 Clause 8.20 | 01 01 1D # X.690 Clause 8.20 | |||
| # 1 1 29 show component encoding | # 1 1 29 show component encoding | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <figure anchor="fig-mib-cbor"> | <figure anchor="fig-mib-cbor"> | |||
| <name>MIB relative object identifier, in CBOR</name> | <name>MIB Relative Object Identifier in CBOR</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="cbor-pretty"><![CDATA[ | |||
| D8 6E # tag(110) | D8 6E # tag(110) | |||
| 43 # 0b010_00011: mt 2 (bstr), 3 bytes | 43 # 0b010_00011: mt 2 (bstr), 3 bytes | |||
| 01 01 1D # X.690 Clause 8.20 | 01 01 1D # X.690 Clause 8.20 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>This relative OID saves seven bytes compared to the full OID encoding .</t> | <t>This relative OID saves seven bytes compared to the full OID encoding .</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="tfs" toc="default"> | <section anchor="tfs" toc="default"> | |||
| <name>Tag Factoring with Arrays and Maps</name> | <name>Tag Factoring with Arrays and Maps</name> | |||
| <t>The tag content of OID tags can be byte strings (as discussed above), b ut also CBOR arrays and maps. | <t>The tag content of OID tags can be byte strings (as discussed above) bu t also CBOR arrays and maps. | |||
| The idea in the latter case is that | The idea in the latter case is that | |||
| the tag construct is factored out from each individual item in the container; | the tag construct is factored out from each individual item in the container; | |||
| the tag is placed on the array or map instead.</t> | the tag is placed on the array or map instead.</t> | |||
| <t>When the tag content of an OID tag is an array, this means | <t>When the tag content of an OID tag is an array, this means | |||
| that the respective tag is imputed to all elements of the array that are | that the respective tag is imputed to all elements of the array that are | |||
| byte strings, arrays, or maps. (There is no effect on other elements, | byte strings, arrays, or maps. (There is no effect on other elements, | |||
| including text strings or tags.) | including text strings or tags.) | |||
| For example, when the tag content of a TBD111 tag is an array, | For example, when the tag content of a 111 tag is an array, | |||
| every array element that is a byte string | every array element that is a byte string | |||
| is an OID, and every element that is an array or map is in turn | is an OID, and every element that is an array or map is, in turn, | |||
| treated as discussed here.</t> | treated as discussed here.</t> | |||
| <t>When the tag content of an OID tag is a map, this means that a tag | <t>When the tag content of an OID tag is a map, this means that a tag | |||
| with the same tag number is imputed to all keys in the map that are byte | with the same tag number is imputed to all keys in the map that are byte | |||
| strings, arrays, or maps; again, there is no effect on keys of other major types . | strings, arrays, or maps; again, there is no effect on keys of other major types . | |||
| Note that there is also no effect on the values in the map.</t> | Note that there is also no effect on the values in the map.</t> | |||
| <t>As a result of these rules, tag factoring in nested arrays and maps is supported. | <t>As a result of these rules, tag factoring in nested arrays and maps is supported. | |||
| For example, | For example, | |||
| a 3-dimensional array of OIDs can be composed by using | a 3-dimensional array of OIDs can be composed by using | |||
| a single TBD111 tag containing an array of arrays of arrays | a single 111 tag containing an array of arrays of arrays | |||
| of byte strings. All such byte strings are then considered OIDs.</t> | of byte strings. All such byte strings are then considered OIDs.</t> | |||
| <section anchor="preferred-serialization-considerations" toc="default"> | <section anchor="preferred-serialization-considerations" toc="default"> | |||
| <name>Preferred Serialization Considerations</name> | <name>Preferred Serialization Considerations</name> | |||
| <t>Where tag factoring with tag number TBD111 is used, some OIDs enclose | <t>Where tag factoring with tag number 111 is used, some OIDs enclosed i | |||
| d in the | n the | |||
| tag may be encoded in a shorter way by using tag number TBD112 instead of | tag may be encoded in a shorter way by using tag number 112 instead of | |||
| encoding an unadorned byte string. | encoding an unadorned byte string. | |||
| This remains the preferred serialization (see also <xref target="prefser" format ="default"/>). | This remains the preferred serialization (see also <xref target="prefser" format ="default"/>). | |||
| However, this specification does not make the presence or absence of | However, this specification does not make the presence or absence of | |||
| tag factoring a preferred serialization; application protocols can | tag factoring a preferred serialization; application protocols can | |||
| define where tag factoring is to be used or not (and will need to do | define where tag factoring is to be used or not (and will need to do | |||
| so if they have deterministic encoding requirements).</t> | so if they have deterministic encoding requirements).</t> | |||
| </section> | </section> | |||
| <section anchor="tag-factoring-example-x500-distinguished-name" toc="defau lt"> | <section anchor="tag-factoring-example-x500-distinguished-name" toc="defau lt"> | |||
| <name>Tag Factoring Example: X.500 Distinguished Name</name> | <name>Tag Factoring Example: X.500 Distinguished Name</name> | |||
| <t>Consider the X.500 distinguished name:</t> | <t>Consider the X.500 distinguished name:</t> | |||
| skipping to change at line 363 ¶ | skipping to change at line 391 ¶ | |||
| <td align="left">street (2.5.4.9)</td> | <td align="left">street (2.5.4.9)</td> | |||
| <td align="left">532 S Olive St</td> | <td align="left">532 S Olive St</td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">businessCategory (2.5.4.15)<br/>buildingName (0.9 .2342.19200300.100.1.48)</td> | <td align="left">businessCategory (2.5.4.15)<br/>buildingName (0.9 .2342.19200300.100.1.48)</td> | |||
| <td align="left">Public Park<br/>Pershing Square</td> | <td align="left">Public Park<br/>Pershing Square</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t><xref target="tab-dn-data" format="default"/> has four "relative dist inguished names" (RDNs). The | <t><xref target="tab-dn-data" format="default"/> has four "relative dist inguished names" (RDNs). The | |||
| country (first) and street (third) RDNs are single-valued. | country (first) and street (third) RDNs are single valued. | |||
| The second and fourth RDNs are multi-valued.</t> | The second and fourth RDNs are multivalued.</t> | |||
| <t>The equivalent representations in CBOR diagnostic notation (<xref sec tion="8" sectionFormat="of" target="RFC8949" format="default"/>) and CBOR are:</ t> | <t>The equivalent representations in CBOR diagnostic notation (<xref sec tion="8" sectionFormat="of" target="RFC8949" format="default"/>) and CBOR are:</ t> | |||
| <figure anchor="fig-dn-cbor-diag"> | <figure anchor="fig-dn-cbor-diag"> | |||
| <name>Distinguished Name, in CBOR Diagnostic Notation</name> | <name>Distinguished Name in CBOR Diagnostic Notation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="cbor-diag"><![CDATA[ | |||
| 111([{ h'550406': "US" }, | 111([{ h'550406': "US" }, | |||
| { h'550407': "Los Angeles", | { h'550407': "Los Angeles", | |||
| h'550408': "CA", | h'550408': "CA", | |||
| h'550411': "90013" }, | h'550411': "90013" }, | |||
| { h'550409': "532 S Olive St" }, | { h'550409': "532 S Olive St" }, | |||
| { h'55040f': "Public Park", | { h'55040f': "Public Park", | |||
| h'0992268993f22c640130': "Pershing Square" }]) | h'0992268993f22c640130': "Pershing Square" }]) | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <figure anchor="fig-dn-cbor"> | <figure anchor="fig-dn-cbor"> | |||
| <name>Distinguished Name, in CBOR (109 bytes)</name> | <name>Distinguished Name in CBOR (109 Bytes)</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="cbor-pretty"><![CDATA[ | |||
| d8 6f # tag(111) | d8 6f # tag(111) | |||
| 84 # array(4) | 84 # array(4) | |||
| a1 # map(1) | a1 # map(1) | |||
| 43 550406 # 2.5.4.6 (4) | 43 550406 # 2.5.4.6 (4) | |||
| 62 # text(2) | 62 # text(2) | |||
| 5553 # "US" | 5553 # "US" | |||
| a3 # map(3) | a3 # map(3) | |||
| 43 550407 # 2.5.4.7 (4) | 43 550407 # 2.5.4.7 (4) | |||
| 6b # text(11) | 6b # text(11) | |||
| 4c6f7320416e67656c6573 # "Los Angeles" | 4c6f7320416e67656c6573 # "Los Angeles" | |||
| skipping to change at line 408 ¶ | skipping to change at line 436 ¶ | |||
| 43 550409 # 2.5.4.9 (4) | 43 550409 # 2.5.4.9 (4) | |||
| 6e # text(14) | 6e # text(14) | |||
| 3533322053204f6c697665205374 # "532 S Olive St" | 3533322053204f6c697665205374 # "532 S Olive St" | |||
| a2 # map(2) | a2 # map(2) | |||
| 43 55040f # 2.5.4.15 (4) | 43 55040f # 2.5.4.15 (4) | |||
| 6b # text(11) | 6b # text(11) | |||
| 5075626c6963205061726b # "Public Park" | 5075626c6963205061726b # "Public Park" | |||
| 4a 0992268993f22c640130 # 0.9.2342.19200300.100.1.48 (11) | 4a 0992268993f22c640130 # 0.9.2342.19200300.100.1.48 (11) | |||
| 6f # text(15) | 6f # text(15) | |||
| 5065727368696e6720537175617265 # "Pershing Square" | 5065727368696e6720537175617265 # "Pershing Square" | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>(This example encoding assumes that all attribute values are UTF-8 st | <t>(This example encoding assumes that all attribute values are UTF-8 st | |||
| rings, | rings or can be represented as UTF-8 strings with no loss of information.)</t> | |||
| or can be represented as UTF-8 strings with no loss of information.)</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="control" toc="default"> | <section anchor="control" toc="default"> | |||
| <name>CDDL Control Operators</name> | <name>CDDL Control Operators</name> | |||
| <t>Concise Data Definition Language (CDDL <xref target="RFC8610" format="d efault"/>) specifications may | <t>Concise Data Definition Language (CDDL) specifications <xref target="RF C8610" format="default"/> may | |||
| want to specify the use of SDNVs or SDNV | want to specify the use of SDNVs or SDNV | |||
| sequences (as defined for the tag content for TBD110). This document | sequences (as defined for the tag content for tag 110). This document | |||
| introduces two new control operators that can be applied to a target | introduces two new control operators that can be applied to a target | |||
| value that is a byte string:</t> | value that is a byte string:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <tt>.sdnv</tt>, with a control type that contains unsigned integers. The | <tt>.sdnv</tt>, with a control type that contains unsigned integers. The | |||
| byte string is specified to be encoded as an <xref target="RFC6256" format="defa | byte string is specified to be encoded as an SDNV (BER | |||
| ult"/> SDNV (BER | encoding) <xref target="RFC6256" format="default"/> for the matching values of t | |||
| encoding) for the matching values of the control type.</li> | he control type.</li> | |||
| <li> | <li> | |||
| <tt>.sdnvseq</tt>, with a control type that contains arrays of unsigne d | <tt>.sdnvseq</tt>, with a control type that contains arrays of unsigne d | |||
| integers. The byte string is specified to be encoded as a sequence | integers. The byte string is specified to be encoded as a sequence | |||
| of <xref target="RFC6256" format="default"/> SDNVs (BER encoding) that decodes t o an array of | of SDNVs (BER encoding) <xref target="RFC6256" format="default"/> that decodes t o an array of | |||
| unsigned integers matching the control type.</li> | unsigned integers matching the control type.</li> | |||
| <li> | <li> | |||
| <tt>.oid</tt>, like <tt>.sdnvseq</tt>, except that the X*40+Y translat ion for | <tt>.oid</tt>, like <tt>.sdnvseq</tt>, except that the X*40+Y translat ion for | |||
| absolute OIDs is included (see <xref target="fig-dn-cddl-oid" format="default"/> ).</li> | absolute OIDs is included (see <xref target="fig-dn-cddl-oid" format="default"/> ).</li> | |||
| </ul> | </ul> | |||
| <t><xref target="fig-dn-cddl" format="default"/> shows an example for the use of <tt>.sdnvseq</tt> for a part | <t><xref target="fig-dn-cddl" format="default"/> shows an example for the use of <tt>.sdnvseq</tt> for a part | |||
| of a structure using OIDs that could be used in <xref target="fig-dn-cbor" forma t="default"/>; | of a structure using OIDs that could be used in <xref target="fig-dn-cbor" forma t="default"/>; | |||
| <xref target="fig-dn-cddl-oid" format="default"/> shows the same with the <tt>.o id</tt> operator.</t> | <xref target="fig-dn-cddl-oid" format="default"/> shows the same with the <tt>.o id</tt> operator.</t> | |||
| <figure anchor="fig-dn-cddl"> | <figure anchor="fig-dn-cddl"> | |||
| <name>Using .sdnvseq</name> | <name>Using .sdnvseq</name> | |||
| skipping to change at line 454 ¶ | skipping to change at line 481 ¶ | |||
| </sourcecode> | </sourcecode> | |||
| </figure> | </figure> | |||
| <figure anchor="fig-dn-cddl-oid"> | <figure anchor="fig-dn-cddl-oid"> | |||
| <name>Using .oid</name> | <name>Using .oid</name> | |||
| <sourcecode type="cddl"> | <sourcecode type="cddl"> | |||
| country-rdn = {country-oid => country-value} | country-rdn = {country-oid => country-value} | |||
| country-oid = bytes .oid [2, 5, 4, 6] | country-oid = bytes .oid [2, 5, 4, 6] | |||
| country-value = text .size 2 | country-value = text .size 2 | |||
| </sourcecode> | </sourcecode> | |||
| </figure> | </figure> | |||
| <t>Note that the control type need not be a literal; e.g., <tt>bytes .oid | ||||
| [2, 5, 4, *uint]</tt> matches all OIDs inside OID arc 2.5.4, | <t>Note that the control type need not be a literal; for example, <tt>byte | |||
| s .oid | ||||
| [2, 5, 4, *uint]</tt> matches all OIDs inside OID arc <tt>2.5.4</tt>, | ||||
| <tt>attributeType</tt>.</t> | <tt>attributeType</tt>.</t> | |||
| </section> | </section> | |||
| <section anchor="cddl-typenames" toc="default"> | <section anchor="cddl-typenames" toc="default"> | |||
| <name>CDDL typenames</name> | <name>CDDL Type Names</name> | |||
| <t>For the use with CDDL, the | <t>For the use with CDDL, the | |||
| typenames defined in <xref target="tag-cddl" format="default"/> are recommended: </t> | type names defined in <xref target="tag-cddl" format="default"/> are recommended :</t> | |||
| <figure anchor="tag-cddl"> | <figure anchor="tag-cddl"> | |||
| <name>Recommended typenames for CDDL</name> | <name>Recommended Type Names for CDDL</name> | |||
| <sourcecode type="cddl"> | <sourcecode name="rfc9090.cddl" type="cddl"> | |||
| oid = #6.111(bstr) | oid = #6.111(bstr) | |||
| roid = #6.110(bstr) | roid = #6.110(bstr) | |||
| pen = #6.112(bstr) | pen = #6.112(bstr) | |||
| </sourcecode> | </sourcecode> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="iana" toc="default"> | <section anchor="iana" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <section anchor="cbor-tags" toc="default"> | <section anchor="cbor-tags" toc="default"> | |||
| <name>CBOR Tags</name> | <name>CBOR Tags</name> | |||
| <t>IANA is requested to assign in the 1+1 byte space (24..255) of the CB | <t>IANA has assigned the CBOR tag numbers in <xref target="tab-tag-value | |||
| OR tags registry | s-new" format="default"/> | |||
| <xref target="IANA.cbor-tags" format="default"/> the CBOR tag numbers in <xref t | in the 1+1 byte space (24..255) of the "CBOR Tags" registry | |||
| arget="tab-tag-values-new" format="default"/>, with the | <xref target="IANA.cbor-tags" format="default"/>, with this document as the spec | |||
| present document as the specification reference.</t> | ification reference.</t> | |||
| <table anchor="tab-tag-values-new" align="center"> | <table anchor="tab-tag-values-new" align="center"> | |||
| <name>New Tag Numbers</name> | <name>New Tag Numbers</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Tag</th> | <th align="left">Tag</th> | |||
| <th align="left">Data Item</th> | <th align="left">Data Item</th> | |||
| <th align="right">Semantics</th> | <th align="left">Semantics</th> | |||
| <th align="left">Reference</th> | <th align="left">Reference</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">TBD111</td> | <td align="left">111</td> | |||
| <td align="left">byte string or array or map</td> | <td align="left">byte string, array, or map</td> | |||
| <td align="right">object identifier (BER encoding)</td> | <td align="left">object identifier (BER encoding)</td> | |||
| <td align="left">[this document, <xref target="oids" format="defau | <td align="left">RFC 9090</td> | |||
| lt"/>]</td> | ||||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">TBD110</td> | <td align="left">110</td> | |||
| <td align="left">byte string or array or map</td> | <td align="left">byte string, array, or map</td> | |||
| <td align="right">relative object identifier (BER encoding); <br/> | <td align="left">relative object identifier (BER encoding); SDNV < | |||
| SDNV <xref target="RFC6256" format="default"/> sequence</td> | xref target="RFC6256" format="default"/> sequence</td> | |||
| <td align="left">[this document, <xref target="oids" format="defau | <td align="left">RFC 9090</td> | |||
| lt"/>]</td> | ||||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">TBD112</td> | <td align="left">112</td> | |||
| <td align="left">byte string or array or map</td> | <td align="left">byte string, array, or map</td> | |||
| <td align="right">object identifier (BER encoding), relative to 1. | <td align="left">object identifier (BER encoding), relative to 1.3 | |||
| 3.6.1.4.1</td> | .6.1.4.1</td> | |||
| <td align="left">[this document, <xref target="oids" format="defau | <td align="left">RFC 9090</td> | |||
| lt"/>]</td> | ||||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| </section> | </section> | |||
| <section anchor="cddl-control-operators" toc="default"> | <section anchor="cddl-control-operators" toc="default"> | |||
| <name>CDDL Control Operators</name> | <name>CDDL Control Operators</name> | |||
| <t>IANA is requested to assign in the CDDL Control Operators registry | <t>IANA has assigned the CDDL control operators in | |||
| <xref target="IANA.cddl" format="default"/> the CDDL Control Operators in | <xref target="tab-operators-new" format="default"/> in the "CDDL Control Operato | |||
| <xref target="tab-operators-new" format="default"/>, with the present document a | rs" registry | |||
| s the specification | <xref target="IANA.cddl" format="default"/>, with this document as the specifica | |||
| tion | ||||
| reference.</t> | reference.</t> | |||
| <table anchor="tab-operators-new" align="center"> | <table anchor="tab-operators-new" align="center"> | |||
| <name>New CDDL Operators</name> | <name>New CDDL Control Operators</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Name</th> | <th align="left">Name</th> | |||
| <th align="left">Reference</th> | <th align="left">Reference</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">.sdnv</td> | <td align="left">.sdnv</td> | |||
| <td align="left">[this document, <xref target="control" format="de fault"/>]</td> | <td align="left">RFC 9090</td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">.sdnvseq</td> | <td align="left">.sdnvseq</td> | |||
| <td align="left">[this document, <xref target="control" format="de fault"/>]</td> | <td align="left">RFC 9090</td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">.oid</td> | <td align="left">.oid</td> | |||
| <td align="left">[this document, <xref target="control" format="de fault"/>]</td> | <td align="left">RFC 9090</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="security-considerations" toc="default"> | <section anchor="security-considerations" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>The security considerations of <xref target="RFC8949" format="default"/ > apply.</t> | <t>The security considerations of <xref target="RFC8949" format="default"/ > apply.</t> | |||
| <t>The encodings in Clauses 8.19 and 8.20 of <xref target="X.690" format=" | ||||
| default"/> are quite compact and unambiguous, | <t>The encodings in Clauses 8.19 and 8.20 of <xref target="X.690" format=" | |||
| but MUST be followed precisely to avoid security pitfalls. | default"/> are quite compact and unambiguous | |||
| but <bcp14>MUST</bcp14> be followed precisely to avoid security pitfalls. | ||||
| In particular, the requirements set out in <xref target="reqts" format="default" /> of this document need to be | In particular, the requirements set out in <xref target="reqts" format="default" /> of this document need to be | |||
| followed; otherwise, an attacker may be able to subvert a checking | followed; otherwise, an attacker may be able to subvert a checking | |||
| process by submitting alternative representations that are later taken | process by submitting alternative representations that are later taken | |||
| as the original (or even something else entirely) by another decoder | as the original (or even something else entirely) by another decoder | |||
| supposed to be protected by the checking process.</t> | that is intended to be protected by the checking process.</t> | |||
| <t>OIDs and relative OIDs can always be treated as opaque byte strings. | <t>OIDs and relative OIDs can always be treated as opaque byte strings. | |||
| Actually understanding the structure that was used for generating them | Actually understanding the structure that was used for generating them | |||
| is not necessary, and, except for checking the structure requirements, | is not necessary, and, except for checking the structure requirements, | |||
| it is strongly NOT RECOMMENDED to perform any | it is strongly <bcp14>NOT RECOMMENDED</bcp14> to perform any | |||
| processing of this kind (e.g., converting into dotted notation and | processing of this kind (e.g., converting into dotted notation and | |||
| back) unless absolutely necessary. | back) unless absolutely necessary. | |||
| If the OIDs are translated into other representations, the usual | If the OIDs are translated into other representations, the usual | |||
| security considerations for non-trivial representation conversions | security considerations for non-trivial representation conversions | |||
| apply; the integer values are unlimited in range.</t> | apply; the integer values are unlimited in range.</t> | |||
| <t>An attacker might trick an application into using a byte string inside | <t>An attacker might trick an application into using a byte string inside | |||
| a tag-factored data item, where the byte string is not actually | a tag-factored data item, where the byte string is not actually | |||
| intended to fall under one of the tags defined here. This may cause | intended to fall under one of the tags defined here. This may cause | |||
| the application to emit data with semantics different from what was | the application to emit data with semantics different from what was | |||
| intended. Applications therefore need to be restrictive with respect | intended. Applications therefore need to be restrictive with respect | |||
| to what data items they apply tag factoring to.</t> | to what data items they apply tag factoring to.</t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC6256" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 256"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6256. | |||
| <front> | xml"/> | |||
| <title>Using Self-Delimiting Numeric Values in Protocols</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8949. | |||
| <author fullname="W. Eddy" initials="W." surname="Eddy"> | xml"/> | |||
| <organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8610. | |||
| </author> | xml"/> | |||
| <author fullname="E. Davies" initials="E." surname="Davies"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2011"/> | ||||
| <abstract> | ||||
| <t>Self-Delimiting Numeric Values (SDNVs) have recently been intro | ||||
| duced as a field type in proposed Delay-Tolerant Networking protocols. SDNVs enc | ||||
| ode an arbitrary-length non-negative integer or arbitrary- length bitstring with | ||||
| minimum overhead. They are intended to provide protocol flexibility without sa | ||||
| crificing economy and to assist in future-proofing protocols under development. | ||||
| This document describes formats and algorithms for SDNV encoding and decoding, | ||||
| along with notes on implementation and usage. This document is a product of the | ||||
| Delay-Tolerant Networking Research Group and has been reviewed by that group. | ||||
| No objections to its publication as an RFC were raised. This document is not an | ||||
| Internet Standards Track specification; it is published for informational purpo | ||||
| ses.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6256"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6256"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 949"> | ||||
| <front> | ||||
| <title>Concise Binary Object Representation (CBOR)</title> | ||||
| <author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2020"/> | ||||
| <abstract> | ||||
| <t>The Concise Binary Object Representation (CBOR) is a data forma | ||||
| t whose design goals include the possibility of extremely small code size, fairl | ||||
| y small message size, and extensibility without the need for version negotiation | ||||
| . These design goals make it different from earlier binary serializations such a | ||||
| s ASN.1 and MessagePack.</t> | ||||
| <t>This document obsoletes RFC 7049, providing editorial improveme | ||||
| nts, new details, and errata fixes while keeping full compatibility with the int | ||||
| erchange format of RFC 7049. It does not create a new version of the format.</t | ||||
| > | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="94"/> | ||||
| <seriesInfo name="RFC" value="8949"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8949"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 610"> | ||||
| <front> | ||||
| <title>Concise Data Definition Language (CDDL): A Notational Convent | ||||
| ion to Express Concise Binary Object Representation (CBOR) and JSON Data Structu | ||||
| res</title> | ||||
| <author fullname="H. Birkholz" initials="H." surname="Birkholz"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Vigano" initials="C." surname="Vigano"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="June" year="2019"/> | ||||
| <abstract> | ||||
| <t>This document proposes a notational convention to express Conci | ||||
| se Binary Object Representation (CBOR) data structures (RFC 7049). Its main goa | ||||
| l is to provide an easy and unambiguous way to express structures for protocol m | ||||
| essages 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="X.660" target="https://www.itu.int/rec/T-REC-X.660"> | <reference anchor="X.660" target="https://www.itu.int/rec/T-REC-X.660"> | |||
| <front> | <front> | |||
| <title>Information technology — Procedures for the operation of obje ct identifier registration authorities: General procedures and top arcs of the i nternational object identifier tree</title> | <title>Information technology - Procedures for the operation of obje ct identifier registration authorities: General procedures and top arcs of the i nternational object identifier tree</title> | |||
| <author> | <author> | |||
| <organization>International Telecommunications Union</organization > | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2011" month="July"/> | <date year="2011" month="July"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T" value="Recommendation X.660"/> | <seriesInfo name="ITU-T Recommendation" value="X.660"/> | |||
| </reference> | </reference> | |||
| <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680"> | <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680"> | |||
| <front> | <front> | |||
| <title>Information technology — Abstract Syntax Notation One (ASN.1) : Specification of basic notation</title> | <title>Information technology - Abstract Syntax Notation One (ASN.1) : Specification of basic notation</title> | |||
| <author> | <author> | |||
| <organization>International Telecommunications Union</organization > | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2015" month="August"/> | <date year="2015" month="August"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T" value="Recommendation X.680"/> | <seriesInfo name="ITU-T Recommendation" value="X.680"/> | |||
| </reference> | </reference> | |||
| <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690"> | <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690"> | |||
| <front> | <front> | |||
| <title>Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title> | <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title> | |||
| <author> | <author> | |||
| <organization>International Telecommunications Union</organization > | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2015" month="August"/> | <date year="2015" month="August"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T" value="Recommendation X.690"/> | <seriesInfo name="ITU-T Recommendation" value="X.690"/> | |||
| </reference> | ||||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 119"> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <author fullname="S. Bradner" initials="S." surname="Bradner"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" year="1997"/> | ||||
| <abstract> | ||||
| <t>In many standards track documents several words are used to sig | ||||
| nify the requirements in the specification. These words are often capitalized. | ||||
| This document defines these words as they should be interpreted in IETF document | ||||
| s. 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" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
| t 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> | </reference> | |||
| <reference anchor="IANA.cbor-tags" target="http://www.iana.org/assignmen | ||||
| ts/cbor-tags"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
| xml"/> | ||||
| <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignme | ||||
| nts/cbor-tags"> | ||||
| <front> | <front> | |||
| <title>Concise Binary Object Representation (CBOR) Tags</title> | <title>Concise Binary Object Representation (CBOR) Tags</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="IANA.cddl" target="http://www.iana.org/assignments/cd | ||||
| dl"> | <reference anchor="IANA.cddl" target="https://www.iana.org/assignments/c | |||
| ddl"> | ||||
| <front> | <front> | |||
| <title>Concise Data Definition Language (CDDL)</title> | <title>Concise Data Definition Language (CDDL)</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| </references> | </references> | |||
| <references> | <references> | |||
| skipping to change at line 710 ¶ | skipping to change at line 667 ¶ | |||
| <title>Concise Data Definition Language (CDDL)</title> | <title>Concise Data Definition Language (CDDL)</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="X.672" target="https://www.itu.int/rec/T-REC-X.672"> | <reference anchor="X.672" target="https://www.itu.int/rec/T-REC-X.672"> | |||
| <front> | <front> | |||
| <title>Information technology — Open systems interconnection — Objec t identifier resolution system</title> | <title>Information technology - Open systems interconnection - Objec t identifier resolution system (ORS)</title> | |||
| <author> | <author> | |||
| <organization>International Telecommunications Union</organization > | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2010" month="August"/> | <date year="2010" month="August"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T" value="Recommendation X.672"/> | <seriesInfo name="ITU-T Recommendation" value="X.672"/> | |||
| </reference> | </reference> | |||
| <reference anchor="PCRE" target="http://www.pcre.org/"> | ||||
| <reference anchor="PCRE" target="http://www.pcre.org/"> | ||||
| <front> | <front> | |||
| <title>PCRE - Perl Compatible Regular Expressions</title> | <title>PCRE - Perl Compatible Regular Expressions</title> | |||
| <author initials="A." surname="Ho" fullname="Andrew Ho"> | <author/> | |||
| <organization/> | <date/> | |||
| </author> | ||||
| <date year="2018"/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="OID-INFO" target="http://www.oid-info.com/"> | <reference anchor="OID-INFO" target="http://www.oid-info.com/"> | |||
| <front> | <front> | |||
| <title>OID Repository</title> | <title>Object Identifier (OID) Repository</title> | |||
| <author> | <author> | |||
| <organization>Orange SA</organization> | <organization>Orange SA</organization> | |||
| </author> | </author> | |||
| <date year="2016"/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="IANA.enterprise-numbers" target="http://www.iana.org/ | ||||
| assignments/enterprise-numbers"> | <reference anchor="IANA.enterprise-numbers" target="https://www.iana.org | |||
| /assignments/enterprise-numbers"> | ||||
| <front> | <front> | |||
| <title>Enterprise Numbers</title> | <title>Private Enterprise Numbers</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC7388" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 388"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7388. | |||
| <front> | xml"/> | |||
| <title>Definition of Managed Objects for IPv6 over Low-Power Wireles | ||||
| s Personal Area Networks (6LoWPANs)</title> | ||||
| <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwae | ||||
| lder"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="A. Sehgal" initials="A." surname="Sehgal"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="T. Tsou" initials="T." surname="Tsou"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Zhou" initials="C." surname="Zhou"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2014"/> | ||||
| <abstract> | ||||
| <t>This document defines a portion of the Management Information B | ||||
| ase (MIB) for use with network management protocols in the Internet community. | ||||
| In particular, it defines objects for managing IPv6 over Low-Power Wireless Pers | ||||
| onal Area Networks (6LoWPANs).</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7388"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7388"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <section removeInRFC="true" anchor="change-log" toc="default"> | ||||
| <name>Change Log</name> | ||||
| <section anchor="changes-from-06-to-07" toc="default"> | ||||
| <name>Changes from -06 to -07</name> | ||||
| <ul spacing="normal"> | ||||
| <li>Various editorial changes prompted by IESG feedback; clarify the | ||||
| usage of "SDNV" in this document (no leading zeros).</li> | ||||
| <li>Add security consideration about tag-factoring.</li> | ||||
| <li>Make TBD112, where applicable, the preferred serialization (and th | ||||
| us | ||||
| the required deterministic encoding) over TBD111.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="changes-from-05-to-06" toc="default"> | ||||
| <name>Changes from -05 to -06</name> | ||||
| <t>Add references to specific section numbers of <xref target="X.690" fo | ||||
| rmat="default"/> to better | ||||
| explain validity of enclosed byte string.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-04-to-05" toc="default"> | ||||
| <name>Changes from -04 to -05</name> | ||||
| <ul spacing="normal"> | ||||
| <li>Update acknowledgements, contributor list, and author list</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="changes-from-03-to-04" toc="default"> | ||||
| <name>Changes from -03 to -04</name> | ||||
| <t>Process WGLC and shepherd comments:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Update references (RFC 8949, URIs for ITU-T)</li> | ||||
| <li>Define arc for this document, reference SDN definition</li> | ||||
| <li>Restructure, small editorial clarifications</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="changes-from-02-to-03" toc="default"> | ||||
| <name>Changes from -02 to -03</name> | ||||
| <ul spacing="normal"> | ||||
| <li>Add tag TBD112 for PEN-relative OIDs</li> | ||||
| <li>Add suggested CDDL typenames; reference RFC8610</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="changes-from-01-to-02" toc="default"> | ||||
| <name>Changes from -01 to -02</name> | ||||
| <t>Minor editorial changes, remove some remnants, ready for WGLC.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-00-to-01" toc="default"> | ||||
| <name>Changes from -00 to -01</name> | ||||
| <t>Clean up OID tag factoring.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-07-bormann-to-00-ietf" toc="default"> | ||||
| <name>Changes from -07 (bormann) to -00 (ietf)</name> | ||||
| <t>Resubmitted as WG draft after adoption.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-06-to-07-1" toc="default"> | ||||
| <name>Changes from -06 to -07</name> | ||||
| <t>Reduce the draft back to its basic mandate: Describe CBOR tags for | ||||
| what is colloquially know as ASN.1 Object IDs.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-05-to-06-1" toc="default"> | ||||
| <name>Changes from -05 to -06</name> | ||||
| <t>Refreshed the draft to the current date ("keep-alive").</t> | ||||
| </section> | ||||
| <section anchor="changes-from-04-to-05-1" toc="default"> | ||||
| <name>Changes from -04 to -05</name> | ||||
| <t>Discussed UUID usage in CBOR, and incorporated fixes | ||||
| proposed by Olivier Dubuisson, including fixes regarding OID nomenclature.</t> | ||||
| </section> | ||||
| <section anchor="changes-from-03-to-04-1" toc="default"> | ||||
| <name>Changes from -03 to -04</name> | ||||
| <t>Changes occurred based on limited feedback, mainly centered around | ||||
| the abstract and introduction, rather than substantive | ||||
| technical changes. These changes include:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Changed the title so that it is about tags and techniques.</li> | ||||
| <li>Rewrote the abstract to describe the content more accurately, | ||||
| and to point out that no changes to the wire protocol are being proposed.</li> | ||||
| <li>Removed "ASN.1" from "object identifiers", as OIDs are independent | ||||
| of ASN.1.</li> | ||||
| <li>Rewrote the introduction to be more about the present text.</li> | ||||
| <li>Proposed a concise OID arc.</li> | ||||
| <li>Provided binary regular expression forms for OID validation.</li> | ||||
| <li>Updated IANA registration tables.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="changes-from-02-to-03-1" toc="default"> | ||||
| <name>Changes from -02 to -03</name> | ||||
| <t>Many significant changes occurred in this version. These changes incl | ||||
| ude:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Expanded the draft scope to be a comprehensive CBOR update.</li> | ||||
| <li>Added OID-related sections: OID Enumerations, | ||||
| OID Maps and Arrays, and | ||||
| Applications and Examples of OIDs.</li> | ||||
| <li>Added Tag 36 update (binary MIME, better definitions).</li> | ||||
| <li>Added stub/experimental sections for X.690 Series Tags (tag <&l | ||||
| t;X>>) | ||||
| and Regular Expressions (tag 35).</li> | ||||
| <li>Added technique for representing sets and multisets.</li> | ||||
| <li>Added references and fixed typos.</li> | ||||
| </ul> | ||||
| <!-- LocalWords: CBOR extensibility IANA uint sint IEEE endian IETF | ||||
| --> | ||||
| <!-- LocalWords: signedness endianness ASN BER encodings OIDs OID | ||||
| --> | ||||
| <!-- LocalWords: Implementers SDNV SDNVs repurpose SDNV's UTF | ||||
| --> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="false" anchor="acknowledgments" toc="default"> | <section numbered="false" anchor="acknowledgments" toc="default"> | |||
| <name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
| <t><contact fullname="Sean Leonard"/> started the work on this document in 2014 with an | <t><contact fullname="Sean Leonard"/> started the work on this document in 2014 with an | |||
| elaborate proposal. | elaborate proposal. | |||
| <contact fullname="Jim Schaad"/> provided a significant review of this document. | <contact fullname="Jim Schaad"/> provided a significant review of this document. | |||
| <contact fullname="Rob Wilton"/>'s IESG review prompted us to provide preferred | <contact fullname="Rob Wilton"/>'s IESG review prompted us to provide preferred | |||
| serialization considerations.</t> | serialization considerations.</t> | |||
| </section> | </section> | |||
| <section anchor="contributors" numbered="false" toc="include" removeInRFC="f alse"> | <section anchor="contributors" numbered="false" toc="include" removeInRFC="f alse"> | |||
| <name>Contributors</name> | <name>Contributors</name> | |||
| <contact initials="S." surname="Leonard" fullname="Sean Leonard"> | <contact initials="S." surname="Leonard" fullname="Sean Leonard"> | |||
| <organization>Penango, Inc.</organization> | <organization>Penango, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>5900 Wilshire Boulevard</street> | <street>5900 Wilshire Boulevard</street> | |||
| <street>21st Floor</street> | <street>21st Floor</street> | |||
| <city>Los Angeles, CA</city> | <city>Los Angeles</city> | |||
| <region>CA</region> | ||||
| <code>90036</code> | <code>90036</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>dev+ietf@seantek.com</email> | <email>dev+ietf@seantek.com</email> | |||
| </address> | </address> | |||
| </contact> | </contact> | |||
| </section> | </section> | |||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| </rfc> | </rfc> | |||
| End of changes. 109 change blocks. | ||||
| 711 lines changed or deleted | 295 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||