<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.4) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-rfc-cddl-models-04" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title>CDDL models for some existing RFCs</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-rfc-cddl-models-04"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="August" day="27"/>
    <keyword>CDDL models</keyword>
    <abstract>
      <?line 44?>

<t>A number of CBOR- and JSON-based protocols have been defined before
CDDL was standardized or widely used.</t>
      <t>This short draft records some CDDL definitions for such protocols,
which could become part of a library of CDDL definitions available for
use in CDDL2 processors.  It focuses on CDDL in (almost) published
IETF RFCs.</t>
    </abstract>
  </front>
  <middle>
    <?line 54?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
Add in <xref target="STD94"/> <xref target="STD90"/>
        <xref target="RFC8610"/> <xref target="RFC9165"/> <xref target="I-D.ietf-cbor-cddl-more-control"/></t>
    </section>
    <section anchor="cddl-definitions-for-almost-published-rfcs">
      <name>CDDL definitions for (almost) published RFCs</name>
      <t>This section is intended to have one subsection for each CDDL data
model presented for an existing RFC.
As a start, it is fleshed out with three such data models.</t>
      <section anchor="rfc-7071-reputation-interchange">
        <name>RFC 7071 (Reputation Interchange)</name>
        <t><xref section="H" sectionFormat="of" target="RFC8610"/> contains two CDDL definitions for <xref target="RFC7071"/>,
which are not copied here.
Typically, the compact form would be used in applications using the
RFC 7071 format; while the extended form might be useful to
cherry-pick features of RFC 7071 into another protocol.</t>
      </section>
      <section anchor="rfc-8366-voucher-artifact-for-bootstrapping-protocols">
        <name>RFC 8366 (Voucher Artifact for Bootstrapping Protocols)</name>
        <t><xref target="RFC8366"/> defines a data model for a "Voucher Artifact", which can be
represented in CDDL as:</t>
        <sourcecode type="cddl"><![CDATA[
voucher-artifact = {
  "ietf-voucher:voucher": {
    created-on: yang$date-and-time
    ? (
        expires-on: yang$date-and-time
        ? last-renewal-date: yang$date-and-time
        //
        nonce: json-binary<bytes .size (8..32)>
      )
    assertion: assertion
    serial-number: text
    ? idevid-issuer: json-binary<bytes>
    pinned-domain-cert: json-binary<bytes>
    ? domain-cert-revocation-checks: bool
  }
}

assertion = "verified" / "logged" / "proximity"

yang$date-and-time = text .regexp cat3<"[0-9]{4}-[0-9]{2}-[0-9]{2}T",
                            "[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]+)?",
                            "(Z|[+-][0-9]{2}:[0-9]{2})">

cat3<A,B,C> = (A .cat B) .cat C

json-binary<T> = text .b64c T
]]></sourcecode>
        <t>The two examples in the RFC can be validated with this little patchup
script:</t>
        <sourcecode type="shell"><![CDATA[
sed -e s/ue=/uQ=/ -e s/'"true"'/true/ | cddl rfc8366.cddl vp -
]]></sourcecode>
      </section>
      <section anchor="rfc-9457-problem-details-for-http-apis">
        <name>RFC 9457 (Problem Details for HTTP APIs)</name>
        <t><xref target="RFC9457"/> defines a simple data model
that is reproduced in CDDL here:</t>
        <sourcecode type="cddl"><![CDATA[
problem-object = {
  ? type: preferably-absolute-uri
  ? title: text
  ? status: 100..599
  ? detail: text
  ? instance: preferably-absolute-uri
  * text .feature "problem-object-extension" => any
}

; RECOMMENDED: absolute URI or at least absolute path:
preferably-absolute-uri = ~uri
]]></sourcecode>
        <t>Note that <xref section="B" sectionFormat="of" target="RFC9290"/> also defines a CBOR-specific data
model that may be useful for tunneling <xref target="RFC7807"/> or <xref target="RFC9457"/> problem details in
<xref target="RFC9290"/> Concise Problem Details.</t>
      </section>
      <section anchor="rfc-9595-yang-sid">
        <name>RFC 9595 (YANG-SID)</name>
        <t><xref target="RFC9595"/> defines a data model for a
"SID file" in YANG, to be transported as a YANG-JSON instance.</t>
        <t>An equivalent CDDL data model is given here:</t>
        <sourcecode type="cddl"><![CDATA[
sid-file = {
  "ietf-sid-file:sid-file": {
    module-name: yang$yang-identifier
    ? module-revision: revision-identifier
    ? sid-file-version: sid-file-version-identifier
    ? sid-file-status: "unpublished" / "published"
    ? description: text
    ? dependency-revision: [* dependency-revision]
    ? assignment-range: [* assignment-range]
    ? item: [*item]
  }
}

rep<RE>=cat3<"(", RE, ")*">
opt<RE>=cat3<"(", RE, ")?">
cat3<A,B,C> = (A .cat B) .cat C

id-re = "[a-zA-Z_][a-zA-Z0-9\\-_.]*"
yang$yang-identifier = text .regexp id-re
revision-identifier = text .regexp "[0-9]{4}-[0-9]{2}-[0-9]{2}"
sid-file-version-identifier = uint .size 4
sid = text .decimal (0..0x7fffffffffffffff); uint63 as text string
plus-id<Prefix> = Prefix .cat id-re
schema-node-re = cat3<plus-id<"/">, plus-id<":">, ; qualified
                      rep<plus-id<"/"> .cat       ; optionally
                          opt<plus-id<":">> > >     ; qualified
schema-node-path = text .regexp schema-node-re

dependency-revision = {
  module-name: yang$yang-identifier
  module-revision: revision-identifier
}

assignment-range = {
  entry-point: sid
  size: sid
}

item = {
  ? status: "stable" / "unstable" / "obsolete"
  (
    namespace: "module" / "identity" / "feature"
    identifier: yang$yang-identifier
  //
    namespace: "data"
    identifier: schema-node-path
  )
  sid: sid
}
]]></sourcecode>
      </section>
      <section anchor="your-favorite-rfc-here">
        <name>Your favorite RFC here...</name>
      </section>
    </section>
    <section anchor="iana-defs">
      <name>CDDL definitions derived from IANA registries</name>
      <t>Often, CDDL models need to use numbers that have been registered as
values in IANA registries.</t>
      <t>This section is intended to have one subsection for each CDDL data
model presented that is derived from an existing IANA registry.
As a start, it is fleshed out with one such data model.</t>
      <t>The intention is that these reference modules are update automatically
(after each change of the registry or periodically, frequent enough.)
Hence, this document can only present a snapshot for IANA-derived data
models.</t>
      <t>The model(s) presented here clearly are in proof-of-concept stage;
suggestions for improvement are very welcome.</t>
      <section anchor="cose-algorithms">
        <name>COSE algorithms</name>
        <t>The IANA registry for COSE Algorithms is part of the IANA cose
registry group <xref target="IANA.cose"/>.</t>
        <t>The following automatically derived model defines some 70 CDDL rules
that have the name for a COSE algorithm as its rule name and the
actual algorithm number as its right hand side.
The additional first rule is a type choice between all these
constants; this could be used in places that just have to validate the
presence of a COSE algorithm number that was registered at the time
the model was derived.</t>
        <t>This section does not explore potential filtering of the registry
entries, e.g., by recommended status (such as leaving out deprecated
entries) or by capabilities.</t>
        <t>The names given in the COSE algorithms registry are somewhat irregular
and do not consider their potential use in modeling or programming
languages; the automatic derivation used here turns sequences of one
or more spaces and other characters that cannot be in CDDL names
(<tt>[/+]</tt> here) into underscores.</t>
        <sourcecode type="cddl"><![CDATA[
============= NOTE: '\' line wrapping per RFC 8792 ==============

algorithms = RS1 / A128CTR / A192CTR / A256CTR / A128CBC / \
  A192CBC / A256CBC / WalnutDSA / RS512 / RS384 / RS256 / \
  ES256K / HSS-LMS / SHAKE256 / SHA-512 / SHA-384 / RSAES-\
  OAEP_w_SHA-512 / RSAES-OAEP_w_SHA-256 / RSAES-\
  OAEP_w_RFC_8017_default_parameters / PS512 / PS384 / PS256 / \
  ES512 / ES384 / ECDH-SS_A256KW / ECDH-SS_A192KW / ECDH-\
  SS_A128KW / ECDH-ES_A256KW / ECDH-ES_A192KW / ECDH-ES_A128KW \
  / ECDH-SS_HKDF-512 / ECDH-SS_HKDF-256 / ECDH-ES_HKDF-512 / \
  ECDH-ES_HKDF-256 / SHAKE128 / SHA-512_256 / SHA-256 / SHA-\
  256_64 / SHA-1 / direct_HKDF-AES-256 / direct_HKDF-AES-128 / \
  direct_HKDF-SHA-512 / direct_HKDF-SHA-256 / EdDSA / ES256 / \
  direct / A256KW / A192KW / A128KW / A128GCM / A192GCM / \
  A256GCM / HMAC_256_64 / HMAC_256_256 / HMAC_384_384 / \
  HMAC_512_512 / AES-CCM-16-64-128 / AES-CCM-16-64-256 / AES-CCM\
  -64-64-128 / AES-CCM-64-64-256 / AES-MAC_128_64 / AES-\
  MAC_256_64 / ChaCha20_Poly1305 / AES-MAC_128_128 / AES-\
  MAC_256_128 / AES-CCM-16-128-128 / AES-CCM-16-128-256 / AES-\
  CCM-64-128-128 / AES-CCM-64-128-256 / IV-GENERATION
RS1 = -65535
A128CTR = -65534
A192CTR = -65533
A256CTR = -65532
A128CBC = -65531
A192CBC = -65530
A256CBC = -65529
WalnutDSA = -260
RS512 = -259
RS384 = -258
RS256 = -257
ES256K = -47
HSS-LMS = -46
SHAKE256 = -45
SHA-512 = -44
SHA-384 = -43
RSAES-OAEP_w_SHA-512 = -42
RSAES-OAEP_w_SHA-256 = -41
RSAES-OAEP_w_RFC_8017_default_parameters = -40
PS512 = -39
PS384 = -38
PS256 = -37
ES512 = -36
ES384 = -35
ECDH-SS_A256KW = -34
ECDH-SS_A192KW = -33
ECDH-SS_A128KW = -32
ECDH-ES_A256KW = -31
ECDH-ES_A192KW = -30
ECDH-ES_A128KW = -29
ECDH-SS_HKDF-512 = -28
ECDH-SS_HKDF-256 = -27
ECDH-ES_HKDF-512 = -26
ECDH-ES_HKDF-256 = -25
SHAKE128 = -18
SHA-512_256 = -17
SHA-256 = -16
SHA-256_64 = -15
SHA-1 = -14
direct_HKDF-AES-256 = -13
direct_HKDF-AES-128 = -12
direct_HKDF-SHA-512 = -11
direct_HKDF-SHA-256 = -10
EdDSA = -8
ES256 = -7
direct = -6
A256KW = -5
A192KW = -4
A128KW = -3
A128GCM = 1
A192GCM = 2
A256GCM = 3
HMAC_256_64 = 4
HMAC_256_256 = 5
HMAC_384_384 = 6
HMAC_512_512 = 7
AES-CCM-16-64-128 = 10
AES-CCM-16-64-256 = 11
AES-CCM-64-64-128 = 12
AES-CCM-64-64-256 = 13
AES-MAC_128_64 = 14
AES-MAC_256_64 = 15
ChaCha20_Poly1305 = 24
AES-MAC_128_128 = 25
AES-MAC_256_128 = 26
AES-CCM-16-128-128 = 30
AES-CCM-16-128-256 = 31
AES-CCM-64-128-128 = 32
AES-CCM-64-128-256 = 33
IV-GENERATION = 34
]]></sourcecode>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
      <t>However, the use of IANA registries for deriving CDDL (e.g., as in
<xref target="iana-defs"/>) is an active subject of discussion.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/>, <xref target="RFC9165"/>, <xref target="I-D.ietf-cbor-cddl-more-control"/>, <xref target="STD94"/> and <xref target="STD90"/> apply.
This collection of CDDL models is not thought to create new security
considerations.
Errors in the models could -- if we knew of them, we'd fix those
errors instead of explaining their security consequences in this
section.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD90" target="https://www.rfc-editor.org/info/std90">
          <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
            <front>
              <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
              <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
              <date month="December" year="2017"/>
              <abstract>
                <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
                <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="90"/>
            <seriesInfo name="RFC" value="8259"/>
            <seriesInfo name="DOI" value="10.17487/RFC8259"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-cddl-more-control">
          <front>
            <title>More Control Operators for CDDL</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="21" month="July" year="2024"/>
            <abstract>
              <t>   The Concise Data Definition Language (CDDL), standardized in RFC
   8610, provides "control operators" as its main language extension
   point.  RFCs have added to this extension point both in an
   application-specific and a more general way.

   The present document defines a number of additional generally
   applicable control operators for text conversion (Bytes, Integers,
   JSON, Printf-style formatting) and for an operation on text.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cddl-more-control-06"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7807"/>
          <seriesInfo name="DOI" value="10.17487/RFC7807"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC7071">
          <front>
            <title>A Media Type for Reputation Interchange</title>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <author fullname="M. Kucherawy" initials="M." surname="Kucherawy"/>
            <date month="November" year="2013"/>
            <abstract>
              <t>This document defines the format of reputation response data ("reputons"), the media type for packaging it, and definition of a registry for the names of reputation applications and response sets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7071"/>
          <seriesInfo name="DOI" value="10.17487/RFC7071"/>
        </reference>
        <reference anchor="RFC9595">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="A. Pelov" initials="A." role="editor" surname="Pelov"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>YANG Schema Item iDentifiers (YANG SIDs) are globally unique 63-bit unsigned integers used to identify YANG items. SIDs provide a more compact method for identifying those YANG items that can be used efficiently, notably in constrained environments (RFC 7228). This document defines the semantics, registration processes, and assignment processes for YANG SIDs for IETF-managed YANG modules. To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9595"/>
          <seriesInfo name="DOI" value="10.17487/RFC9595"/>
        </reference>
        <reference anchor="IANA.cose" target="https://www.iana.org/assignments/cose">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <?line 360?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
