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/ |