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&nbsp;Identifiers</title> <title abbrev="CBOR Tags for OIDs">Concise Binary Object Representation (CBO R) Tags for Object&nbsp;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&nbsp;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&nbsp;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 =&gt; country-value} country-rdn = {country-oid =&gt; 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 &lt;&l
t;X&gt;&gt;)
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/