<?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.30 (Ruby 3.4.5) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-rfc-cddl-models-06" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title>CDDL models for some existing RFCs</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-rfc-cddl-models-06"/>
    <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="2025" month="August" day="29"/>
    <keyword>CDDL models</keyword>
    <abstract>
      <?line 49?>

<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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-cbor-rfc-cddl-models/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/common-cddl"/>.</t>
    </note>
  </front>
  <middle>
    <?line 59?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
Add in <xref target="STD94"/> <xref target="STD90"/>
        <xref target="RFC8610"/> <xref target="RFC9682"/> <xref target="RFC9165"/> <xref target="RFC9741"/></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>
        <figure anchor="rfc8366">
          <name>CDDL for RFC 8366</name>
          <sourcecode type="cddl" name="rfc8366.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>
        </figure>
        <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>
        <figure anchor="rfc9457">
          <name>CDDL for RFC 9457</name>
          <sourcecode type="cddl" name="rfc9457.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>
        </figure>
        <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>
        <figure anchor="rfc9595">
          <name>CDDL for RFC 9595</name>
          <sourcecode type="cddl" name="rfc9595.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>
        </figure>
      </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-registry">
        <name>COSE Algorithms Registry</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>
        <figure anchor="cose-algorithms">
          <name>CDDL for cose-algorithms Registry</name>
          <sourcecode type="cddl" name="cose-algorithms.cddl"><![CDATA[
============= NOTE: '\' line wrapping per RFC 8792 ==============

algorithms = RS1 / A128CTR / A192CTR / A256CTR / A128CBC / \
  A192CBC / A256CBC / ESB512 / ESB384 / ESB320 / ESB256 / KT256 \
  / KT128 / TurboSHAKE256 / TurboSHAKE128 / WalnutDSA / RS512 / \
  RS384 / RS256 / Ed448 / ESP512 / ESP384 / ML-DSA-87 / ML-DSA-\
  65 / ML-DSA-44 / 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 / Ed25519 / 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 / ESP256 / \
  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
ESB512 = -268
ESB384 = -267
ESB320 = -266
ESB256 = -265
KT256 = -264
KT128 = -263
TurboSHAKE256 = -262
TurboSHAKE128 = -261
WalnutDSA = -260
RS512 = -259
RS384 = -258
RS256 = -257
Ed448 = -53
ESP512 = -52
ESP384 = -51
ML-DSA-87 = -50
ML-DSA-65 = -49
ML-DSA-44 = -48
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
Ed25519 = -19
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
ESP256 = -9
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>
        </figure>
      </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="RFC9682"/>, <xref target="RFC9165"/>, <xref target="RFC9741"/>, <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="RFC9682">
          <front>
            <title>Updates to the Concise Data Definition Language (CDDL) Grammar</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), as defined in RFCs 8610 and 9165, provides an easy and unambiguous way to express structures for protocol messages and data formats that are represented in Concise Binary Object Representation (CBOR) or JSON.</t>
              <t>This document updates RFC 8610 by addressing related errata reports and making other small fixes for the ABNF grammar defined for CDDL.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9682"/>
          <seriesInfo name="DOI" value="10.17487/RFC9682"/>
        </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:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature 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="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <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 in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </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 384?>

<section numbered="false" anchor="list-of-figures">
      <name>List of Figures</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="rfc8366"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc8366"/></t>
        </dd>
        <dt><xref target="rfc9457"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc9457"/></t>
        </dd>
        <dt><xref target="rfc9595"/>:</dt>
        <dd>
          <t><xref format="title" target="rfc9595"/></t>
        </dd>
        <dt><xref target="cose-algorithms"/>:</dt>
        <dd>
          <t><xref format="title" target="cose-algorithms"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
