<?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.34 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-corr-clar-04" category="std" consensus="true" submissionType="IETF" updates="6690, 7252, 7641, 7959, 8132, 8323" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="Corrections and Clarifications to CoAP">Constrained Application Protocol (CoAP): Corrections and Clarifications</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-corr-clar-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="2026" month="March" day="19"/>
    <abstract>
      <?line 69?>

<t>RFC 7252 defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including RFC 7641, RFC
7959, RFC 8132, and RFC 8323.
RFC 6690 defines the link format that is used in CoAP self-description
documents.</t>
      <t>Some parts of the specification may be unclear or even contain errors
that may lead to misinterpretations that may impair interoperability
between different implementations.
The present document provides corrections, additions, and
clarifications to the RFCs cited; this document thus updates these
RFCs.
In addition, other clarifications related to the use of CoAP in other
specifications, including RFC 7390 and RFC 8075, are also provided.</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-ietf-core-corr-clar/"/>.
      </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/core-wg/corrclar"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7252"/> defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including <xref target="RFC7641"/>,
<xref target="RFC7959"/>, <xref target="RFC8132"/>, and <xref target="RFC8323"/>.
<xref target="RFC6690"/> defines the link format that is used in CoAP
self-description documents.</t>
      <t>During implementation and interoperability testing of these RFCs, and
in their practical use, some ambiguities and common misinterpretations
have been identified, as well as a few errors.</t>
      <t>The present document summarizes identified issues and provides
corrections needed for implementations of CoAP to interoperate, i.e.,
it constitutes an update to the RFCs referenced.  This document also
provides other clarifications related to common misinterpretations of
the specification.  References to CoAP should, therefore, also include
this document.</t>
      <t>In addition, some clarifications and corrections are also provided for
documents that are related to CoAP, including RFC 7390 and RFC 8075.</t>
      <section anchor="process">
        <name>Process</name>
        <section anchor="original-text">
          <name>Original text</name>
          <t>The present document is an Internet-Draft, which is not intended to be
published as an RFC quickly.  Instead, it will be maintained as a
running document of the CoRE WG, probably for a number of years, until
the need for new entries tails off and the document can finally be
published as an RFC.  (This paragraph to be rephrased when that
happens.)</t>
          <t>The status of this document as a running document of the WG implies a
consensus process that is applied in making updates to it.  The rest
of this subsection provides more details about this consensus process.</t>
          <t>(Consensus process TBD, but it will likely be based on an editor's
version in a publicly accessible git repository, as well as periodic
calls for consensus that lead to a new published Internet-Draft.)</t>
        </section>
        <section anchor="proposed-text-based-on-ietf-117-and-2023-08-30-core-wg-interim-discussion">
          <name>Proposed text based on IETF 117 and 2023-08-30 CoRE WG interim discussion</name>
          <t>This section describes the process that will be used for developing
the present document (called "-corr-clar" colloquially).</t>
          <t>This process might be revised as its execution progresses.</t>
          <ol spacing="normal" type="1" start="0"><li>
              <t>(Done as of this a draft): include the present process proposal.<br/>
The document can then already be considered for WG adoption.</t>
            </li>
            <li>
              <t>Go through the following available material and revise/create
Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as needed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Existing issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>More to be opened by Jon Shallow regarding Block-wise, see <eref target="https://datatracker.ietf.org/doc/minutes-interim-2023-core-11-202307051400/#attacks-on-the-constrained-application-protocol-coap-christian-amsuss-jon-shallow">JON-ISSUES</eref></t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>CoAP FAQ at the CoRE WIKI <eref target="https://github.com/core-wg/wiki/wiki/CoAP-FAQ">WIKI-FAQ</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Each point likely to become a new, short issue</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Categorize the Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as to the topics they relate to, by tagging them.<br/>
Completing a first round of this will be a task for a dedicated team.</t>
            </li>
            <li>
              <t>For each issue or set of issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>, confirm with the CoRE
WG and gather feedback from affected protocol
designers/implementors if the issue is best to be:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Included and covered in -corr-clar, as is or revised</t>
                </li>
                <li>
                  <t>Simply omitted in -corr-clar</t>
                </li>
                <li>
                  <t>Omitted in -corr-clar and left for a possible -bis document.<br/>
(For example, this might be the case for some specific points related to RFC 7959.)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Reshape the -corr-clar document in order to reflect a sequence of
 pairs (Diagnosis, Therapy), where:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Diagnosis is the gist of a set of Github issues to cover, and</t>
                </li>
                <li>
                  <t>Therapy is the correction or clarification to address those.</t>
                </li>
              </ul>
              <t>
Even though at a high-level, the scope should be already clear by
looking at the table of contents.
That is, at this stage, there is no need to necessarily elaborate
the Therapy in detail, but it is necessary to make a reader
understand "what we are dealing with and taking which direction".</t>
            </li>
            <li>
              <t>WG document work can then focus on improving the therapy parts,
until all points are satisfactorily addressed and documented.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>When a section of this document makes formal corrections, additions
or invalidations to text in a referenced RFC, this is clearly summarized.
The text from the RFC that is being addressed is given and labeled
"INCOMPLETE", "INCORRECT", or "INCORRECT AND INVALIDATED", followed
by the correct text labeled "CORRECTED", where applicable.  When text
is added that does not simply correct text in previous
specifications, it is given with the label "FORMAL ADDITION".</t>
        <t>Where a resolution has not yet been agreed, the resolution is marked PENDING.</t>
        <t>In this document, a reference to a section in RFC nnnn is written
as RFC nnnn-&lt;number&gt;, where &lt;number&gt; is the section number.</t>
      </section>
    </section>
    <section anchor="rfc-7252">
      <name>RFC 7252</name>
      <section anchor="rfc7252-12-terminology-request-uri">
        <name>RFC7252-1.2: Terminology (Request-URI)</name>
        <t><xref target="RFC7252"/> uses the term "request URI" repeatedly, but only provides a
vague definition in <xref section="5.7.2" sectionFormat="of" target="RFC7252"/>.
Text should be added to the definitions in Section <xref target="RFC7252" section="1.2" sectionFormat="bare">Terminology</xref> of <xref target="RFC7252"/>.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION (Section 1.2):</dt>
          <dd>
            <dl>
              <dt>Request URI:</dt>
              <dd>
                <t>The URI that identifies a resource on a server intended to be
addressed by a request; constructed from the context of the
request combined with Options present in the request using the
process defined in Section <xref target="RFC7252" section="6.5" sectionFormat="bare">Composing URIs from Options</xref> of <xref target="RFC7252"/>, see Section <xref target="RFC7252" section="5.7.2" sectionFormat="bare">Forward-Proxies</xref> of <xref target="RFC7252"/> for further details.
Related to the HTTP concept of "target URI"; see Section <xref target="RFC9110" section="7.1" sectionFormat="bare">Determining the Target Resource</xref> of <xref target="RFC9110"/>; previously called
"effective request URI" in Section <xref target="RFC7230" section="5.5" sectionFormat="bare">Effective Request URI</xref> of <xref target="RFC7230"/>.</t>
              </dd>
            </dl>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Note that a similar, but distinct concept is the "base URI", relative
to which relative URIs are resolved.
This is more complex in CoAP than in HTTP because CoAP can multicast
requests (<xref section="8" sectionFormat="of" target="RFC7252"/>), expecting unicast responses; these need
to be interpreted relative to the unicast source address from which
the responses come.</t>
        <t><xref section="8.2" sectionFormat="of" target="RFC7252"/> has:</t>
        <blockquote>
          <t>For the purposes of interpreting the Location-* options and any links
   embedded in the representation, the request URI (i.e., the base URI
   relative to which the response is interpreted) is formed by replacing
   the multicast address in the Host component of the original request
   URI by the literal IP address of the endpoint actually responding.</t>
        </blockquote>
        <t>Similarly, <xref section="8.2.1" sectionFormat="of" target="RFC7252"/> (Caching) says:</t>
        <blockquote>
          <t>A response received in reply to a GET request to a multicast group
   <bcp14>MAY</bcp14> be used to satisfy a subsequent request on the related unicast
   request URI.  The unicast request URI is obtained by replacing the
   authority part of the request URI with the transport-layer source
   address of the response message.</t>
        </blockquote>
        <t>Further discussion of a more generalized response concept can be found in
<xref target="I-D.bormann-core-responses"/>.</t>
      </section>
      <section anchor="rfc7252-541-critical-options-and-error-messages">
        <name>RFC7252-5.4.1: Critical Options and Error Messages</name>
        <t><xref section="A" sectionFormat="of" target="I-D.ietf-core-uri-path-abbrev"/> points out that <xref target="RFC7252"/> was overly eager in
<em>rejecting</em> Non-confirmable request messages where a proper response
might have carried useful problem detail information <xref target="RFC9290"/>.
<xref target="I-D.ietf-core-uri-path-abbrev"/> contains an update to <xref target="RFC7252"/> that for this case instead
specifies the use of 4.02 "Bad Option" responses.</t>
        <t>As this is a technical change, it needs to be included in a
standards-track RFC to become effective.
The present document therefore does not repeat the information but
simply points to <xref target="I-D.ietf-core-uri-path-abbrev"/>, which both includes the update and also directly
makes use of the updated functionality if it is available.</t>
      </section>
      <section anchor="rfc7252-58-piggybacking-405-responses">
        <name>RFC7252-5.8: Piggybacking 4.05 Responses</name>
        <!-- Issue #54 contributed by Marco Tiloca -->
<!-- Issue #48 contributed by Achim Kraus -->

<t><xref section="5.8" sectionFormat="of" target="RFC7252"/> says:</t>
        <dl>
          <dt>INCORRECT:</dt>
          <dd>
            <blockquote>
              <t>A request with an unrecognized or unsupported Method Code <bcp14>MUST</bcp14>
generate a 4.05 (Method Not Allowed) piggybacked response.</t>
            </blockquote>
          </dd>
        </dl>
        <t>However, a piggybacked response is carried in an ACK, which is only
used if the request is a Confirmable message.
If the request is a Non-confirmable message, the response can only be
sent as a Separate Response (<xref section="5.2.2" sectionFormat="of" target="RFC7252"/>).</t>
        <dl>
          <dt>CORRECTED:</dt>
          <dd>
            <blockquote>
              <t>A request with an unrecognized or unsupported Method Code <bcp14>MUST</bcp14>
generate a 4.05 (Method Not Allowed) response.
This <bcp14>MUST</bcp14> be sent as a piggybacked response if the request is a
Confirmable message (responses for Non-confirmable messages can only
be sent as a Separate Response).</t>
              <t>Note that the response <bcp14>MAY</bcp14> be suppressed before actually being sent,
e.g., when:</t>
              <ul spacing="normal">
                <li>
                  <t>The server is able to determine that the request was sent to
multiple recipients (e.g., over IP multicast) and the application
does not deem that the response ought to be sent.</t>
                </li>
                <li>
                  <t>The request carried the CoAP No-Response Option <xref target="RFC7967"/> with
an indication that 4.xx error responses are to be suppressed, and
the server ultimately determines such a suppression to be
appropriate and useful.</t>
                </li>
              </ul>
              <t>While this specification is explicit in requiring a 4.05 (Method Not
Allowed) response, the response code 5.01 (Not Implemented) is also
defined (<xref section="5.9.3.2" sectionFormat="of" target="RFC7252"/>) and might be sent as a
catch-all by a server with limited precision in error handling.
Although this response code is not as clear in designating the
problem a client error, the client <bcp14>SHOULD</bcp14> be prepared to handle such
a response, but possibly in a degraded way.</t>
            </blockquote>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t><cref anchor="_405-proxies">The text so far doesn't discuss proxies that forward
4.05 responses; as an ACK may already have been sent by the proxy,
this may convert a piggy-backed response by the origin server to a
separate one.</cref></t>
      </section>
      <section anchor="rfc7252-510161-query-parameters">
        <name>RFC7252-5.10.1/6.1: Query Parameters</name>
        <t><xref section="3.4" sectionFormat="of" target="RFC3986"/> explains the query component of a URI as
follows:</t>
        <blockquote>
          <t>The query component contains non-hierarchical data that, along with
   data in the path component (Section 3.3), serves to identify a
   resource within the scope of the URI's scheme and naming authority
   (if any).  [...]</t>
        </blockquote>
        <t>So there is no technical difference between a path and a query
component in a URI except that the path is hierarchical, and the query
is non-hierarchical.
Both combine with scheme and authority to identify the resource, and
changing any of these leads to a different resource.</t>
        <t><xref target="RFC7252"/> generally follows this definition, but has a few passages
where it is somewhat questionable whether they fully agree:</t>
        <t>Section <xref target="RFC7252" section="5.10.1" sectionFormat="bare">Uri-Host, Uri-Port, Uri-Path, and Uri-Query</xref> of <xref target="RFC7252"/> says:</t>
        <blockquote>
          <t>[...] each Uri-Query Option specifies one argument parameterizing the resource.</t>
        </blockquote>
        <t>(Analog text about Location-Query is in Section <xref target="RFC7252" section="5.10.7" sectionFormat="bare">Location-Path and Location-Query</xref> of <xref target="RFC7252"/>.)</t>
        <t>Similarly, Section <xref target="RFC7252" section="6.1" sectionFormat="bare">coap URI Scheme</xref> of <xref target="RFC7252"/> says:</t>
        <blockquote>
          <t>The query serves to further parameterize the resource.  [...]</t>
        </blockquote>
        <t>This could be read to say that the <em>same</em> resource can be accessed
with different parameters in the Uri-Query options.
It is likely that these passages were meant in the sense of
"parameterize the resource name", i.e., changing the parameters does
indeed lead to a different resource.</t>
        <t>So this could be clarified by applying this change in these three
places:</t>
        <dl>
          <dt>INCORRECT:</dt>
          <dd>
            <t>further parameterize the resource</t>
          </dd>
          <dt>CORRECTED:</dt>
          <dd>
            <t>further parameterize the resource name</t>
          </dd>
        </dl>
        <t>However, the view that the query component supplies parameters to a
request on a resource that exists independent of these parameters is
widely held by implementers in the "big web" (HTTP) world, even if
<xref target="RFC9110"/> strictly follows <xref target="RFC3986"/>.</t>
        <t>This view seems to be fueled by the way that an application may use
(Section <xref target="RFC9110" section="17.9" sectionFormat="bare">Disclosure of Sensitive Information in URIs</xref> of <xref target="RFC9110"/>)...</t>
        <blockquote>
          <t>client-side mechanisms to construct a target URI out of
  user-provided information, such as the query fields of a form using
  GET</t>
        </blockquote>
        <t>This view also seems to be suggested to some by the way query
parameters are used in specifications such as <xref target="I-D.ietf-core-conditional-attributes"/>; implementations
of CoAP servers also often provide primitives to set up a single
"resource handler" that bundles requests to a specific path and receives the
query parameters as additional request parameters <xref target="COAP-RESOURCE"/>.</t>
        <t><xref target="BCP190"/> establishes guidelines with respect to "URI Design and
Ownership".
Section <xref target="RFC8820" section="2.4" sectionFormat="bare"/> of RFC 8820 <xref target="BCP190"/> specifically discusses the query
component of the URI.
On one hand, it says:</t>
        <blockquote>
          <t>Applications can specify the syntax of queries for the resources under their control.</t>
        </blockquote>
        <t>On the other hand, it warns:</t>
        <blockquote>
          <t>Extensions <bcp14>MUST NOT</bcp14> constrain the format or semantics of queries, to avoid collisions and erroneous client assumptions. For example, an Extension that indicates that all query parameters with the name "sig" indicate a cryptographic signature would collide with potentially preexisting query parameters on sites and lead clients to assume that any matching query parameter is a signature.</t>
        </blockquote>
        <t>It also acknowledges:</t>
        <blockquote>
          <t>Per the "Form submission" section of [HTML5], HTML constrains the syntax of query strings used in form submission. New form languages are encouraged to allow creation of a broader variety of URIs (e.g., by allowing the form to create new path components, and so forth).</t>
        </blockquote>
        <t><xref target="I-D.ietf-core-conditional-attributes"/> is a specification that defines a set of query parameters.
It can be adopted by an "Application" in the sense of <xref target="BCP190"/>.
The current discussion goes in the direction of providing an interface
type (for use in <xref target="RFC6690"/> <tt>if=</tt>) that a server can declare in resource discovery to indicate
to a client that the conditional query parameters interface is available.</t>
        <t><xref section="3.3" sectionFormat="of" target="I-D.irtf-t2trg-rest-iot"/> contains a brief discussion of the role of
query parameters in URIs.
It points to <xref section="3.3.4" sectionFormat="of" target="RFC6943"/>, which discusses identifier
comparison and points out that</t>
        <blockquote>
          <t>[...] it is unspecified whether the order of values matters.</t>
        </blockquote>
        <t><xref section="3.3" sectionFormat="of" target="I-D.irtf-t2trg-rest-iot"/> further mentions that in some implementations,</t>
        <blockquote>
          <t>they might even be re-ordered, for instance by intermediaries.</t>
        </blockquote>
        <t><xref target="I-D.ietf-core-conditional-attributes"/> is designed to allow evolution of the set of conditional query
parameters and provides a registry for the registration of additional ones.
To facilitate the introduction of new parameters, it has been
discussed whether <xref target="I-D.ietf-core-conditional-attributes"/> should adopt an "ignore unknown" policy.
Since that policy would not necessarily apply to query parameters
outside the conditional set, it would require a test whether a
parameter is a conditional query parameter.
The names of all parameters initially registered start with "<tt>c.</tt>",
which might be a convention that might be part of the <tt>if=</tt> interface type.</t>
        <t>Any "ignore unknown" policy raises the question whether there,
conversely, need to be "must understand" exceptions, here chosen by
the client.
For instance, the client might use the parameter name "<tt>C.pmin</tt>" instead
of "<tt>c.pmin</tt>" to indicate that it wants the request to fail if its
preference for a minimum period between notifications cannot be fulfilled.</t>
        <t>In summary:
In the definitions of URIs and of HTTP, the URI query
parameters are not much different from path components.
In practice, implementations tend to provide ways to handle query
parameters more in terms of additional parameters to a single resource
handler that handles a number of related URIs, differing in query
parameters only.
There appears to be little to be gained by discussing this more in the
documentation (outside the present document); however, the duality
between these two perspectives on query parameters needs to be kept in
mind in discussions.</t>
      </section>
      <section anchor="rfc7252-5105-max-age">
        <name>RFC7252-5.10.5: Max-Age</name>
        <t>In the discussion of <xref target="RFC8516"/>, a comment was
made that it would be needed to define the point in time relative to
which Max-Age is defined.  A sender might reference it to the time it
actually sends the message containing the option (and paragraph 3 of
RFC7252-5.10.5 indeed requests that Max-Age be updated each time a
message is retransmitted).  The receiver of the message does not have
reliable information about the time of sending, though.  It may
instead reference the Max-Age to the time of reception.  This in
effect extends the time of Max-Age by the latency of the packet.
This extension was deemed acceptable for the purposes of <xref target="RFC8516"/>,
but may be suboptimal when Max-Age is about the lifetime of a response
object.</t>
        <dl newline="true">
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>The value is intended to be current at the time of transmission.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
      </section>
      <section anchor="rfc7252-64-decomposing-uris-into-options">
        <name>RFC7252-6.4: Decomposing URIs into Options</name>
        <t><xref target="Err4895"/> notes (text updated with newer link):</t>
        <blockquote>
          <t>The current specification for decomposing a URI into CoAP Options
(Section 6.4) is correct; however the text may still be unclear to
implementers who may think that the phrase "not including the
delimiting slash characters" means simply omitting a trailing slash
character in the URI path. This is incorrect. See the discussion
outcome in email thread
<eref target="https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/">https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/</eref>.</t>
        </blockquote>
        <t><xref target="Err4895"/> proceeds to propose adding another note at the end of
<xref section="6.4" sectionFormat="of" target="RFC7252"/>.
A slightly updated version of the proposed note might be:</t>
        <dl newline="true">
          <dt>FORMAL ADDITION at the end of <xref section="6.4" sectionFormat="of" target="RFC7252"/>:</dt>
          <dd>
            <t>Also note that a trailing slash character in the &lt;path&gt; component
represents a separate, zero-character path segment (see the ABNF in
<xref section="3.3" sectionFormat="of" target="RFC3986"/>).
This is encoded using a Uri-Path Option of zero length.
The exception at the start of step 8 means that no such
zero-character path segment is added for a trailing slash that
immediately follows the authority (host and port).
</t>
            <aside>
              <t>This exception means that, for a CoAP server, no difference is visible
between a request that was generated from the URI
<tt>coap://authority/</tt> and one that was generated from the URI
<tt>coap://authority</tt> — in both cases, there is no Uri-Path Option in
the request.
(The URI continues to be parsed as defined:  e.g., for the URIs
<tt>coap://authority/?</tt> and <tt>coap://authority?</tt>, there is no Uri-Path
Option but a single Uri-Query Option that carries an empty query
component.)</t>
              <t>Note that the exception at the start of step 8 does not mean that
a client cannot create a request with a single empty Uri-Path
Option; such a request just cannot be generated from a URI because
of the algorithm given here.
It also does not mean that a server is compelled to treat a request
with such a single empty Uri-Path Option in the same way as one
without any Uri-Path Option — the exception at the start of step 8
is only about the process of generating a sequence of CoAP Options
from a URI.</t>
              <t>The exception only applies to initial Uri-Path Options.
So for <tt>coap://authority/foo</tt>, a single Uri-Path Option with the
value <tt>foo</tt> is generated, while for <tt>coap://authority/foo/</tt> that
Uri-Path Option is followed by an empty Uri-Path Option (an
established idiom for a collection resource).</t>
              <t>Similarly, there is a difference between requests generated
from <tt>coap://authority/</tt>, <tt>coap://authority//</tt>, and
<tt>coap://authority///</tt>, respectively:
The first has no Uri-Path Options (due to the special exception);
the second, two (empty ones); the third, three (empty ones).
No server is compelled to offer resources under URIs with
multiple empty path name components, which would generally be
considered weird.</t>
            </aside>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-721-ct-attribute-content-format-code">
        <name>RFC7252-7.2.1: "ct" Attribute (content-format code)</name>
        <t>As has been noted in <xref target="Err5078"/>, there is no information in <xref target="RFC7252"/>
about whether the "ct" target attribute can be present multiply or
not.</t>
        <t>The text does indicate that the value of the attribute <bcp14>MAY</bcp14> be "a
space-separated sequence of Content-Format codes, indicating that
multiple content-formats are available", but it does not repeat the
prohibition of multiple instances that the analogously structured "rt"
and "if" attributes in Sections <xref target="RFC6690" section="3.1" sectionFormat="bare"/> and <xref target="RFC6690" section="3.2" sectionFormat="bare"/> of <xref target="RFC6690"/> have.</t>
        <t>This appears to be an oversight.
Published examples in <xref section="4.1" sectionFormat="of" target="RFC9148"/> and <xref section="4.3" sectionFormat="of" target="RFC9176"/> further illustrate that the space-separated approach is
generally accepted to be the one to be used.
There is no gain to be had from allowing both variants, and it would
be likely to cause interoperability problems.</t>
        <t>At the 2022-11-23 CoRE WG interim meeting, there was agreement that
<xref target="Err5078"/> should be marked "VERIFIED", which was done on 2023-01-18.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION:</dt>
          <dd>
            <t>The Content-Format code attribute <bcp14>MUST NOT</bcp14> appear more than once in a
link.</t>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-911912-match-boxing">
        <name>RFC7252-9.1.1/9.1.2: (match boxing)</name>
        <t>Sections <xref target="RFC7252" section="9.1.1" sectionFormat="bare"/> and <xref target="RFC7252" section="9.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/> provide details about using CoAP
over DTLS connections; in particular they restrict both message-id
matching and request/response matching to within a single combination
of DTLS session/DTLS epoch.</t>
        <t>At the time, this was a decision to be very conservative based on the
wide variety of security implications a new DTLS epoch might have
(which also were not widely understood, e.g., for a re-authentication).
The normally short time between a request and a response made this
rather strict boxing appear acceptable.</t>
        <t>However, with the Observe functionality <xref target="RFC7641"/>, it is quite likely
that significant time elapses between a request and the arrival of a
notification that is sent back as a response, causing a need for the
latter to use a different box from the original request.</t>
        <t>Also, additions to CoAP such as CoAP over connection-oriented
transports <xref target="RFC8323"/> and OSCORE <xref target="RFC8613"/> create similar matching
boxes that also do not fit certain likely use cases of these additions
(e.g., with short-lived TCP connections as discussed in <xref section="4.3" sectionFormat="of" target="RFC9006"/>).</t>
        <t>The match boxing semantics of the current protocol are clearly defined, but can be unsatisfactory given the current requirements.</t>
        <t>This calls for careful design choices and enhancements when developing extensions for CoAP or protocols and methods applicable to CoAP, such as in the cases overviewed in the following <xref target="match-boxing-oscore"/> and <xref target="match-boxing-eclipse"/>.</t>
        <section anchor="dtls-with-connection-id">
          <name>DTLS with Connection ID</name>
          <t>PENDING:</t>
          <aside>
            <t>Protocol mechanisms that have been defined for stitching
together connections or phases of an underlying connection, such
as Connection Identifiers for DTLS 1.2 <xref target="RFC9146"/>, may enable
keeping the session/epoch unchanged and even to change the
transport address (ip-address/port), once appropriately modified
match boxing rules are specified for the stitching mechanism.
(These rules either need to be defined to be implicitly active
for any use of the mechanism or they may require negotiation.)</t>
          </aside>
        </section>
        <section anchor="match-boxing-oscore">
          <name>OSCORE, KUDOS, and Group OSCORE</name>
          <t>The security protocol Object Security for Constrained RESTful Environments (OSCORE) defined in <xref target="RFC8613"/> provides end-to-end security for CoAP messages at the application level, by using CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>. In order to protect their communications, two peers need to have already established an OSCORE Security Context.</t>
          <t><xref section="B.2" sectionFormat="of" target="RFC8613"/> provides an example for a key update procedure, which two OSCORE peers can run for establishing a new shared OSCORE Security Context that replaces their old one. The recent key update protocol KUDOS <xref target="I-D.ietf-core-oscore-key-update"/> specifies how two OSCORE peers can establish a new shared OSCORE Security Context that replaces their old one, with a number of advantages compared to the method defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
          <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) defined in <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE and protects group communication for CoAP <xref target="I-D.ietf-core-groupcomm-bis"/>. The management of the group keying material is entrusted to a Group Manager (see <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), which provides the latest group keying material to a new group member upon its group joining, and can update the group keying material by performing a group rekeying.</t>
          <t>The following discusses how OSCORE, KUDOS, and Group OSCORE position themselves with respect to the match boxing, the transport used underlying CoAP, and the renewal of the keying material.</t>
          <section anchor="match-boxing">
            <name>Match Boxing</name>
            <t>The security processing of (Group) OSCORE is agnostic of the value assumed by the CoAP Token and Message ID. Also, (Group) OSCORE can be seamlessly used in the presence of (cross-)proxies that will change the value of the CoAP Token and Message ID on the different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Before any security processing is performed, the only use that (Group) OSCORE makes of the Token value is on the CoAP client upon receiving a response, in order to retrieve the right Security Context to use for decrypting and verifying the response.</t>
            <t>Even in case the Token value in a CoAP response is manipulated to induce a Request-Response matching at the client, there is no risk for the client to successfully decrypt the response instead of failing as expected. This is because, per <xref section="12.3" sectionFormat="of" target="RFC8613"/>, the OSCORE Master Secret of each OSCORE Security Context is required not only to be secret, but also to have a good amount of randomness.</t>
            <t>Building on that, an HKDF is used to derive the actual encryption keys
from the Master Secret and, optionally, from an additional Master
Salt. Furthermore, for each OSCORE Security Context, the quartet
(Master Secret, Master Salt, ID Context, Sender ID) must be unique. As
per <xref section="3.3" sectionFormat="of" target="RFC8613"/>, this is a hard requirement and
guarantees unique (key, nonce) pairs for the AEAD algorithm used.</t>
            <t>In Group OSCORE, the Security Context extends that of OSCORE, and the same as above holds  (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="2" sectionFormat="bare"/>, <xref target="I-D.ietf-core-oscore-groupcomm" section="2.2" sectionFormat="bare"/>, and <xref target="I-D.ietf-core-oscore-groupcomm" section="13.11" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
            <t>Finally, (Group) OSCORE performs a separate secure match boxing under its own control, by cryptographically binding each protected request with all the corresponding protected responses. This is achieved by means of the COSE external_aad involved during the security processing of protected messages (see <xref section="5.4" sectionFormat="of" target="RFC8613"/> and <xref section="4.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </section>
          <section anchor="underlying-transport">
            <name>Underlying Transport</name>
            <t>The security protocol (Group) OSCORE does not have any requirement on
binding the Security Context in use to specific addressing information used by the transport protocol underlying CoAP. What occurs below (Group) OSCORE with transport-specific addressing information is transparent to (Group) OSCORE, but it needs to work well enough to ensure that received data is delivered to (Group) OSCORE for security processing.</t>
            <t>Consistent with the above, (Group) OSCORE does not interfere with any low-layer, transport specific information. Instead, it entrusts data to a Request-Response exchange mechanism that can rely on different means to enforce the Request-Response matching at the transport level (e.g., the 5-tuple, the CoAP Message ID, a file handle). Also, (Group) OSCORE does not alter the fact that a CoAP response needs to come from where the corresponding CoAP request was sent, which simply follows from using transports where that is a requirement.</t>
            <t>Furthermore, two peers can seamlessly use (Group) OSCORE also in the presence of cross-proxies that change transport across different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Practically, (Group) OSCORE relies on the underlying CoAP implementation for obtaining received CoAP messages on which to perform the expected security processing.</t>
            <t>Upon receiving a protected message, the recipient endpoint retrieves the OSCORE Security Context to use for decryption based on key identifier information specified in the CoAP OSCORE Option of protected requests, and on the value of the CoAP Token of protected responses.</t>
            <t>In OSCORE, the key identifier information in request messages is
typically limited to a "kid", with a value the OSCORE Sender ID associated with the message sender. In case Sender IDs are not unique among different OSCORE Security Contexts stored by the same peer, it is possible to disambiguate by additionally using a "kid context" identifying the OSCORE Security Context as a whole. Instead, response messages are not required to convey key identifier information, as the client can rely on the Token conveyed in the response for retrieving the Security Context to use (see above).</t>
            <t>In Group OSCORE, the key identifier information in request messages always includes also a "kid context", whose value is used as identifier of the OSCORE group associated with the Security Context to use for security processing of the exchanged message. Response messages are also required to convey a "kid" as key identifier information (i.e., the OSCORE Sender ID associated with the message sender), if the corresponding request was protected with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) .</t>
            <t>Some particular uses of (Group) OSCORE enable to build OSCORE-based tunneling <xref target="I-D.ietf-core-oscore-capable-proxies"/>. In such a case, a CoAP server might have to enforce that some OSCORE Security Contexts are not just looked up by a "kid" and similar key identifier information from the CoAP OSCORE Option in the incoming request to decrypt. Such a lookup should also rely on the alleged client's address, or on an alternative identifier of the tunnel from which the request came from.</t>
          </section>
          <section anchor="key-update">
            <name>Key Update</name>
            <t>Updating an OSCORE Security Context does not change or interfere with the values of the Token or Message ID used in the exchanged CoAP messages. However, if long-term exchanges are involved (e.g., CoAP Observations <xref target="RFC7641"/>), one has to be careful to ensure that updating the Security Context does not impair the security properties of (Group) OSCORE or result in other security vulnerabilities.</t>
            <t>The following provides more details about key update, separately for OSCORE, KUDOS, and Group OSCORE.</t>
            <ul spacing="normal">
              <li>
                <t>OSCORE: <xref target="RFC8613"/> tacitly assumes that two peers terminate any ongoing CoAP Observation that they still have ongoing, upon installing a new OSCORE Security Context, irrespective of the method used to perform the key update.  </t>
                <t>
On these premises, a belated response protected with the old OSCORE
Security Context will fail decryption, as that Security Context is not available anymore on the receiving client.</t>
              </li>
              <li>
                <t>KUDOS: The key update protocol KUDOS allows the two OSCORE peers to negotiate about preserving their ongoing CoAP Observations across the performed key update. If and only if both peers agree to do that during an execution of KUDOS, their Observations will remain active after installing the new OSCORE Security Context, which the two peers will use from then on to protect their exchanged Observe notifications.  </t>
                <t>
Furthermore, irrespective of the method used to perform a key update, <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> updates the security protocol OSCORE <xref target="RFC8613"/> in order to prevent security issues that can arise from misbinding a request and a response, when those are protected with two different OSCORE Security Contexts.  </t>
                <t>
Such an update to the OSCORE protocol requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request. An exception safely applies to the response messages that are sent when running the key update procedure defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
              </li>
              <li>
                <t>Group OSCORE: The Group Manager can distribute new group keying material to the members of an OSCORE group, by performing a group rekeying. When receiving updated group keying material from the Group Manager, either upon joining the group or by participating in a group rekeying, a group member uses that material to install a new, commonly shared Group OSCORE Security Context, which replaces the old one (if any is stored).  </t>
                <t>
Also, Group OSCORE makes it possible for group members to safely
preserve their ongoing active requests (e.g., CoAP Observations), also across the establishment of new Group OSCORE Security Contexts. This is achieved by virtue of how the Group Manager assigns and maintains the identifiers of OSCORE groups (see <xref section="3.2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).  </t>
                <t>
Furthermore, analogous to the update that <xref target="I-D.ietf-core-oscore-key-update"/> makes on the OSCORE protocol with respect to protecting responses, Group OSCORE prevents security issues that can arise from misbinding a request and a response, when those are protected with two different Group OSCORE Security Contexts.  </t>
                <t>
In the same way specified in <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> for OSCORE, Group OSCORE requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="8.3" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="9.5" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="match-boxing-eclipse">
          <name>Eclipse/Californium</name>
          <t>Enhancements may be called for optimizations such as Eclipse/Californium EndpointContextMatcher <xref target="CF-MATCHER"/> might not work properly unless both sides of the communication agree on the extent of the matching boxes. Mechanisms to indicate capabilities and choices selected may need to be defined; also, a way to define the progression of matching boxes needs to be defined that is compatible with the security properties of the underlying protocols. This may require new efforts, to be initiated based on some formative contributions.</t>
          <t>PENDING.</t>
          <t>Relevant starting points for retrieving existing discussion of this
issue include:</t>
          <ul spacing="normal">
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/">https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/</eref><br/>
("DTLS and Epochs")</t>
            </li>
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/">https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/</eref><br/>
("Connection ID")</t>
            </li>
            <li>
              <t><eref target="https://github.com/core-wg/corrclar/issues/9">https://github.com/core-wg/corrclar/issues/9</eref><br/>
("Clarify/revise language around epochs in section 9.1.1 #9")</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="amp-0rtt">
        <name>RFC 7252-9.1/11.3: Handling outdated addresses and security contexts</name>
        <dl>
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>Tools for mitigating these scenarios were unavailable when CoAP originally was specified, and are now explained.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Information obtained about an established communication partner can experience continuity interruptions
and become obsolete.
This can happen on different levels:
For example,
return routability information is lost when client's IP address changes;
and information about whether a request was already handled can be lost when an OSCORE context is recovered as described in its <xref section="B.1.2" sectionFormat="of" target="RFC8613"/>.
No matter the cause of the loss, a server still needs to maintain its security and amplification mitigation properties.</t>
        <t>The concerns addressed in the following subsections are independent on a specification level,
but are described together because they can be addressed with the same tools --
moreover, a single round trip of using Echo in a response can address both at the same time.
In some scenarios, these are even expected to coincide.</t>
        <t>(move)
A safe option is always to reject the initial request and request confirmation.
The <bcp14>RECOMMENDED</bcp14> way to do that is using CoAP's mechanism of sending a 4.01 (Unauthorized) response with an Echo option
(where a subsequent request with the same Echo value proves to the server that the destination was reachable);
clients <bcp14>SHOULD</bcp14> act to the Echo option as specified in <xref target="RFC9175"/>.
Tools specific to a security protocol, such as RRC <xref target="I-D.ietf-tls-dtls-rrc"/> in case of DTLS, may be used. However, their use may depend on successful negotiation.</t>
        <section anchor="amplification-mitigation-and-return-routability">
          <name>Amplification mitigation and return routability</name>
          <t>CoAP servers have to mitigate the effects of traffic amplification
as required in <xref section="11.3" sectionFormat="of" target="RFC7252"/>;
the maximum acceptable amplification factor of 3 is now the IETF consensus
reflected for CoAP in <xref section="2.4" sectionFormat="of" target="RFC9175"/>,
which can be summarized for this application as follows:</t>
          <t>If the server has learned that the client is reachable on the request's sender address,
it can send a response.
Otherwise, if the response does not exceed the request's size by a factor of 3 (<xref section="2.4" sectionFormat="of" target="RFC9175"/>, item 3),
the server can answer the request successfully, but should still include an Echo value,
whose presence in the next request serves to confirm the client's address.
Otherwise, a 4.01 (Unautorized) error response with an Echo value is sent.</t>
          <t>Address verification is triggered
both for new clients
and for existing clients that changed their address.
This situation can happen at any time, especially after a prolonged period of quiescence, regardless of the security protocol.</t>
          <t>Verifying the client's address is not only crucial for mitigating amplification attacks <xref target="I-D.irtf-t2trg-amplification-attacks"/>, but also to avoid traffic misdirection.
<xref section="7" sectionFormat="of" target="I-D.ietf-tls-dtls-rrc"/> describes options for how to use RRC messages to distinguish different cases.
A 4.01 response with Echo can perform some of the same functions, with the Echo value replacing the RRC cookie. However, it does not offer a way to distinguish between non-preferred and preferred paths.
Where that distinction matters,
RRC provides the right tools to make it.</t>
          <!-- maybe compare Echo to HelloRetryRequest from 9147? -->

</section>
        <section anchor="replay-protection">
          <name>Replay protection</name>
          <t>Security mechanisms can offer trade-offs between performance and the security properties freshness and replay protection.
They sometimes use names such as "0RTT" (zero round-trip time).
With those mechanisms, the server recognizes that a request is sent in such a 0RTT mode,
but can still decide to send a response.
The general trade-off is that an attacker may intercept such a message
and replay it at any later time, possibly multiple times,
without the server having a reliable way of recognizing the replay.</t>
          <t>The semantics of CoAP are conducive to using such facilities:
Safe requests are recognized by their request method code to not have side effects.
Nonetheless, more aspects need to be considered:
There is no risk of metadata revealing data if the server answers a request multiple times.
Kinds of metadata to look out for are the size of the response
(which, in a replay situation, can give an active attacker additional data)
as well as any processing delays.
(Side effects would also fall into that category, but there should not be any effects for safe requests).</t>
          <t>If nothing else, GET requests to constant resources,
such as queries to /.well-known/core,
can often be responded to safely on the CoAP layer even without any replay protection.</t>
          <t>There are resources for which more requests than those with safe
request methods may be handled without replay protection,
but as that assessment is hard to make, it is prudent to err at the side of caution.</t>
          <t>CoAP has no error code like HTTP's 425 Too Early with which a server could ask the client to resubmit its request later
when all the security mechanism's guarantees are available.
Instead, servers can send 4.01 Unauthorized responses with Echo option;
clients then repeat the request with the Echo value in the request.</t>
          <t><xref section="B.1.2" sectionFormat="of" target="RFC8613"/> describes how this is used to recover loss of state in OSCORE.
Exceeding what is described there, a server can safely send a successful response,
provided its criteria for 0RTT responses are met.
The server can still send an Echo option with the successful response:
Only when the client repeats that Echo value in a subsequent response
can the replay window be initialized.</t>
          <t>Implementers of OSCORE should be aware that answering potential replays can only be determined to be safe from the CoAP application's point of view.
As always, unless the sequence number in the request has just been removed from an initialized replay window,
the response can not reuse the request's nonce, but needs to be sent with a new sequence number from the server's space.</t>
          <t>Requests with 0RTT properties currently cannot happen in DTLS because 0-RTT Data is not allowed for CoAP (cf. <xref section="14" sectionFormat="of" target="I-D.ietf-uta-tls13-iot-profile"/>). However, that may change if a future document defines a profile for using early data with CoAP.</t>
        </section>
      </section>
      <section anchor="ct">
        <name>RFC 7252-12.3: Content-Format Registry</name>
        <t><xref section="12.3" sectionFormat="of" target="RFC7252"/> established the CoAP Content-Formats
Registry, which maps a combination of an Internet Media Type
with an HTTP Content Coding, collectively called a Content-Format, to
a concise numeric identifier for that Content-Format.
The "Media Type" is more than a Media-Type-Name (see <xref target="RFC9193"/> for an
extensive discussion), i.e., it may contain parameters beyond the mere
combination of a type-name and a subtype-name registered in
<xref target="IANA.media-types"/>, as per <xref target="RFC6838"/>, conventionally identified by
the two names separated by a slash.
This construct is often called a Content Type to reduce the confusion
with a Media-Type-Name (e.g., in <xref section="8.3" sectionFormat="of" target="RFC9110"/>, which then
however also opts to use the term Media Type for the same information set).</t>
        <t>The second column of the Content-Format registry is the Content
Coding, which is defined in <xref section="8.4.1" sectionFormat="of" target="RFC9110"/>.
For historical reasons, the HTTP header field that actually carries
the content coding is called Content-Encoding; this often leads to the
misnaming of Content Coding as "content encoding".</t>
        <t>As has been noted in <xref target="Err4954"/>, the text in <xref section="12.3" sectionFormat="of" target="RFC7252"/>
incorrectly uses these terms in the context of content types and
content coding:</t>
        <ol spacing="normal" type="1"><li>
            <t>The field that describes the Content Type is called "Media Type".
This can lead to the misunderstanding that this column just carries
a Media-Type-Name (such as "<tt>text/plain</tt>"), while it actually also
can carry media type parameters (as in "<tt>text/plain; charset=UTF-8</tt>").</t>
          </li>
          <li>
            <t>The field that describes the Content Coding uses the incorrect name
"Content Encoding".</t>
          </li>
        </ol>
        <dl newline="true">
          <dt>INCORRECT, CORRECTED:</dt>
          <dd>
            <t>The VERIFIED Errata Report <xref target="Err4954"/> corrects the usage of
"Content-Encoding" in the text and changes the name of the first
column of the Content-Format registry to "Content Type" and the name
of the second field to "Content Coding".
This change has been carried out by IANA.</t>
          </dd>
        </dl>
        <t><xref target="Err4954"/> also has some notes on what would be valid or invalid
Content-Format registrations.
These are not repeated here; they are however quite useful as a
reference when preparing additional Content-Format registrations.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no new requests to IANA.</t>
      <t>Individual clarifications may contain IANA considerations; as for
example in <xref target="ct"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document provides a number of corrections and clarifications to
existing RFCs, but it does not make any changes with regard to the security
aspects of the protocol.  As a consequence, the security
considerations of the referenced RFCs apply without additions.</t>
      <t>(To be changed when that is no longer true; probably the security
considerations will then be on the individual clarifications.)</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks. The state of a resource on a CoAP server can change over time. This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time. The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks. Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates. In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS). These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs. In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers. Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations. Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </reference>
        <reference anchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource. In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable. Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. 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">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that 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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-uri-path-abbrev">
          <front>
            <title>URI-Path abbreviation in CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Applications built on CoAP face a conflict between the technical need
   for short message sizes and the interoperability requirement of
   following BCP190 and thus using (relatively verbose) well-known URI
   paths.  This document introduces a CoAP option that allows expressing
   well-known URI paths in as little as two bytes.

   Negotiating the use of this option between client and server revealed
   a subtle flaw in RFC7252.  This document updates RFC7252 to rectify
   it, thus making the extension point of critical options more useful.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-03"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="I-D.irtf-t2trg-rest-iot">
          <front>
            <title>Guidance on RESTful Design for Internet of Things Systems</title>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Matthias Kovatsch" initials="M." surname="Kovatsch">
              <organization>Siemens</organization>
            </author>
            <author fullname="Klaus Hartke" initials="K." surname="Hartke">
         </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document gives guidance for designing Internet of Things (IoT)
   systems that follow the principles of the Representational State
   Transfer (REST) architectural style.  This document is a product of
   the IRTF Thing-to-Thing Research Group (T2TRG).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-rest-iot-17"/>
        </reference>
        <reference anchor="RFC7967">
          <front>
            <title>Constrained Application Protocol (CoAP) Option for No Server Response</title>
            <author fullname="A. Bhattacharyya" initials="A." surname="Bhattacharyya"/>
            <author fullname="S. Bandyopadhyay" initials="S." surname="Bandyopadhyay"/>
            <author fullname="A. Pal" initials="A." surname="Pal"/>
            <author fullname="T. Bose" initials="T." surname="Bose"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>There can be machine-to-machine (M2M) scenarios where server responses to client requests are redundant. This kind of open-loop exchange (with no response path from the server to the client) may be desired to minimize resource consumption in constrained systems while updating many resources simultaneously or performing high-frequency updates. CoAP already provides Non-confirmable (NON) messages that are not acknowledged by the recipient. However, the request/response semantics still require the server to respond with a status code indicating "the result of the attempt to understand and satisfy the request", per RFC 7252.</t>
              <t>This specification introduces a CoAP option called 'No-Response'. Using this option, the client can explicitly express to the server its disinterest in all responses against the particular request. This option also provides granular control to enable expression of disinterest to a particular response class or a combination of response classes. The server MAY decide to suppress the response by not transmitting it back to the client according to the value of the No-Response option in the request. This option may be effective for both unicast and multicast requests. This document also discusses a few examples of applications that benefit from this option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7967"/>
          <seriesInfo name="DOI" value="10.17487/RFC7967"/>
        </reference>
        <reference anchor="RFC8516">
          <front>
            <title>"Too Many Requests" Response Code for the Constrained Application Protocol</title>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>A Constrained Application Protocol (CoAP) server can experience temporary overload because one or more clients are sending requests to the server at a higher rate than the server is capable or willing to handle. This document defines a new CoAP response code for a server to indicate that a client should reduce the rate of requests.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8516"/>
          <seriesInfo name="DOI" value="10.17487/RFC8516"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="I-D.bormann-core-responses">
          <front>
            <title>CoAP: Non-traditional response forms</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   In CoAP as defined by RFC 7252, responses are always unicast back to
   a client that posed a request.  The present memo describes two forms
   of responses that go beyond that model.

   The design spaces for the new CoAP Options proposed to represent
   these responses are now sufficiently understood that they can be
   developed to standards-track specifications, either in this document
   or by transferring the specification for an Option to a document that
   that Option closely works with.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-06"/>
        </reference>
        <reference anchor="I-D.ietf-core-conditional-attributes">
          <front>
            <title>Conditional Query Parameters for CoAP Observe</title>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>Tampere University</organization>
            </author>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>Dogtiger Labs</organization>
            </author>
            <author fullname="Alan Soloway" initials="A." surname="Soloway">
              <organization>Qualcomm Technologies, Inc.</organization>
            </author>
            <date day="16" month="March" year="2026"/>
            <abstract>
              <t>   This specification defines Conditional Notification and Control Query
   Parameters compatible with CoAP Observe (RFC7641).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-conditional-attributes-12"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="Err4895" target="https://www.rfc-editor.org/errata/eid4895" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4895</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err4954" target="https://www.rfc-editor.org/errata/eid4954" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4954</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err5078" target="https://www.rfc-editor.org/errata/eid5078" quoteTitle="false">
          <front>
            <title>RFC Errata Report 5078</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Communications with the Constrained Application Protocol (CoAP) can
   be protected end-to-end at the application-layer by using the
   security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  Under some circumstances, two CoAP endpoints
   need to update their OSCORE keying material before communications can
   securely continue, e.g., due to approaching key usage limits.  This
   document defines Key Update for OSCORE (KUDOS), a lightweight key
   update procedure that two CoAP endpoints can use to update their
   OSCORE keying material by establishing a new OSCORE Security Context.
   Accordingly, this document updates the use of the OSCORE flag bits in
   the CoAP OSCORE Option as well as the protection of CoAP response
   messages with OSCORE.  Also, it deprecates the key update procedure
   specified in Appendix B.2 of RFC 8613.  Therefore, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-13"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="February" year="2026"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) is a web transfer
   protocol for constrained devices and constrained networks.  In a
   number of use cases, constrained devices often naturally operate in
   groups (e.g., in a building automation scenario, all lights in a
   given room may need to be switched on/off as a group).  This document
   specifies the use of CoAP for group communication, including the use
   of UDP/IP multicast as the default underlying data transport.  Both
   unsecured and secured CoAP group communication are specified.
   Security is achieved by use of the Group Object Security for
   Constrained RESTful Environments (Group OSCORE) protocol.  The target
   application area of this specification is any group communication use
   cases that involve resource-constrained devices or networks that
   support CoAP.  This document replaces and obsoletes RFC 7390, while
   it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-18"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="23" month="December" year="2025"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of messages exchanged with the Constrained Application
   Protocol (CoAP) between members of a group, e.g., sent over IP
   multicast.  In particular, the described protocol defines how OSCORE
   is used in a group communication setting to provide source
   authentication for CoAP group requests, sent by a client to multiple
   servers, and for protection of the corresponding CoAP responses.
   Group OSCORE also defines a pairwise mode where each member of the
   group can efficiently derive a symmetric pairwise key with each other
   member of the group for pairwise OSCORE communication.  Group OSCORE
   can be used between endpoints communicating with CoAP or CoAP-
   mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-28"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   When using the Constrained Application Protocol (CoAP), messages
   exchanged between two endpoints can be protected end-to-end at the
   application layer by means of Object Security for Constrained RESTful
   Environments (OSCORE), also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines rules
   to escalate the protection of a CoAP option, in order to encrypt and
   integrity-protect it whenever possible.  Finally, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints; and between an application endpoint and an intermediary or
   between two intermediaries.  Therefore, this document updates RFC
   8613.  Furthermore, this document updates RFC 8768, by explicitly
   defining the processing with OSCORE for the CoAP Hop-Limit Option.
   The approach defined in this document can be seamlessly employed also
   with Group OSCORE, for protecting CoAP messages when group
   communication is used in the presence of intermediaries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-capable-proxies-06"/>
        </reference>
        <reference anchor="CF-MATCHER" target="https://github.com/eclipse-californium/californium/blob/main/element-connector/src/main/java/org/eclipse/californium/elements/EndpointContextMatcher.java">
          <front>
            <title>EndpointContextMatcher.java</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC9146">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </reference>
        <reference anchor="COAP-RESOURCE" target="https://libcoap.net/doc/reference/4.3.5/man_coap_resource.html">
          <front>
            <title>libcoap: coap_resource(3)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.irtf-t2trg-amplification-attacks">
          <front>
            <title>Amplification Attacks Using the Constrained Application Protocol (CoAP)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
              <organization>Energy Harvesting Solutions</organization>
            </author>
            <date day="18" month="June" year="2025"/>
            <abstract>
              <t>   Protecting Internet of Things (IoT) devices against attacks is not
   enough.  IoT deployments need to make sure that they are not used for
   Distributed Denial-of-Service (DDoS) attacks.  DDoS attacks are
   typically done with compromised devices or with amplification attacks
   using a spoofed source address.  This document gives examples of
   different theoretical amplification attacks using the Constrained
   Application Protocol (CoAP).  The goal with this document is to raise
   awareness and to motivate generic and protocol-specific
   recommendations on the usage of CoAP.  Some of the discussed attacks
   can be mitigated by not using NoSec or by using the Echo option.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-amplification-attacks-05"/>
        </reference>
        <reference anchor="I-D.ietf-tls-dtls-rrc">
          <front>
            <title>Return Routability Check for DTLS 1.2 and DTLS 1.3</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Achim Kraus" initials="A." surname="Kraus">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="14" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies a return routability check for use in context
   of the Connection ID (CID) construct for the Datagram Transport Layer
   Security (DTLS) protocol versions 1.2 and 1.3.

   Implementations offering the CID functionality described in RFC 9146
   and RFC 9147 are encouraged to also provide the return routability
   check functionality described in this document.  For this reason,
   this document updates RFC 9146 and RFC 9147.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-dtls-rrc-20"/>
        </reference>
        <reference anchor="I-D.ietf-uta-tls13-iot-profile">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Daniel Migault" initials="D." surname="Migault">
              <organization>Ericsson</organization>
            </author>
            <date day="20" month="February" year="2026"/>
            <abstract>
              <t>   RFC 7925 offers guidance to developers on using TLS/DTLS 1.2 for
   Internet of Things (IoT) devices with resource constraints.  This
   document is a companion to RFC 7925, defining TLS/DTLS 1.3 profiles
   for IoT devices.  Additionally, it updates RFC 7925 with respect to
   the X.509 certificate profile and ciphersuite requirements.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/thomas-fossati/draft-tls13-iot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-19"/>
        </reference>
        <reference anchor="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC6943">
          <front>
            <title>Issues in Identifier Comparison for Security Purposes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>Identifiers such as hostnames, URIs, IP addresses, and email addresses are often used in security contexts to identify security principals and resources. In such contexts, an identifier presented via some protocol is often compared using some policy to make security decisions such as whether the security principal may access the resource, what level of authentication or encryption is required, etc. If the parties involved in a security decision use different algorithms to compare identifiers, then failure scenarios ranging from denial of service to elevation of privilege can result. This document provides a discussion of these issues that designers should consider when defining identifiers and protocols, and when constructing architectures that use multiple protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6943"/>
          <seriesInfo name="DOI" value="10.17487/RFC6943"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9006">
          <front>
            <title>TCP Usage Guidance in the Internet of Things (IoT)</title>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="J. Crowcroft" initials="J." surname="Crowcroft"/>
            <author fullname="M. Scharf" initials="M." surname="Scharf"/>
            <date month="March" year="2021"/>
            <abstract>
              <t>This document provides guidance on how to implement and use the Transmission Control Protocol (TCP) in Constrained-Node Networks (CNNs), which are a characteristic of the Internet of Things (IoT). Such environments require a lightweight TCP implementation and may not make use of optional functionality. This document explains a number of known and deployed techniques to simplify a TCP stack as well as corresponding trade-offs. The objective is to help embedded developers with decisions on which TCP features to use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9006"/>
          <seriesInfo name="DOI" value="10.17487/RFC9006"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values. In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
    </references>
    <?line 890?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The present document is modeled after RFC 4815 and the Internet-Drafts
of the ROHC WG that led to it.  Many thanks to the co-chairs of the
ROHC WG and WG members that made this a worthwhile and successful
experiment at the time.</t>
      <!--  LocalWords:  interoperate invalidations retransmitted ROHC
 -->
<!--  LocalWords:  suboptimal
 -->

</section>
  </back>
  <!-- ##markdown-source:
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
iwyf0NmEtvJjSFiza6FZEkin6H6CZbSqc6QyQBQgVvfew8ky1LstSfRcZVZR
JZujh15mxBgvyGRc2fXV7Bt5vHf48Fu5uhKy6AL7X3k3C0mKxHtXojpVviCQ
997gIrEB/R3qxxX23F/ap0RvsKwndHbXyIVXQdeZmXWdFZ8gKE3uBpWWxiaz
e7sXl5c9t8Wt2FjnG7DOh+e3Ca5ywGUd3+XRj6WCv8TRnPSeu1lNe+7zGjAX
p2GIBssygFkoWhiMJV+3KxOgrWnXjgApuepbLzdhakOGRKrGEt9ipVMqMSQR
fPLG2A8in5UyIX+9m++jwiDrJ9Z4qiUJfQmKNhIF9kqvTwZGKCDBjL66Lqog
Z8HNFeMl6kL0QmtRPHnp2qo7x4UEb6H/ere03Fnur86UtK+8ijKPONTGHTia
MiRRc6NcVWtgGRUwGGacWsHx15Sds3XsPgptgI5a3VC4GgXOoqxJOUUXrtqU
DXnJOm4pDiJS6wg12jAeJt/nhdzl4gek+ZEowk3juURUM11Z0pdt5UA7UvTN
NOFT9mKnz3g25bBpCKAa0kSlHJh3G2odJ1fzbXqtRKlxRuPSYrfeRoDU9knM
4ycpawNNaR7qhhTVSlWGhsGnioN2ZsMENg6nZ8XnzPlnEzzK7jiy4QlLo0u8
w5U6aXR/EyGskbZdXUKP7QyxpwG3DGcvTz8R/tNYc3v232bjECZplWDJtdps
q8V92DYwHOvzXMVXpWBv2gm9rCJM5gYwwl2kfwPNnLTR2Lt1zWlg86/NrVax
MQa4kGprAMnFLsrmfVpktRxryj2JEm+35pIkRka0bogBoE3ARNFiykJvCm7+
TQrF4f59OJ/cKfd+4K1ojxSvWQqW1O9jpZkNWL75o2E3g+2c2VIiHhEtFanX
JMhXuHPHV+u02kbB5Nb8SzNxvLrNEj+2WkP4JZL/ol0EI7KRoKS/xXrNbo1V
zZb2P2xdZ77uoolUGgl4SUjM4gzq/GFnjfTxg32WFz5355TNARDIrRrvkU+E
+963L+5Q5FYxExmVPkqShBuoaOc0FIc6GYdZfrXvi51LN+aWCSEyTaZo+QAi
O3994qPkHIqoxqg8kgjUFavbYO64EpQZjtIikj00ZTEmwHovOl9mD9YSdxUO
8cLQLyq9TU2lEgYuvnO9sEeHDxcdS4BAL8M1+cEMrZ03GBmbX9XatxxXe+TZ
7RC94sS507eYiiC/Rru07r2NYUybv0opHGMpvEZjX6sX7boNErH8Wo4syUu2
iwuCecnlb8LG43hI7YtjtLK/s06/ccEN2Klop8VBCeWA/DajVaTVaT+Y2cqa
eKrRRPvmSIG5+HYHePG5lvlIIYk0bPSuga3RZBi7Jg5b1sWySWFh7B3gxhSk
oqJoBcG42B2TSmdqu+mP71tb8oVO/sr7cOePjuHkUh0phON+OFik9nU5fjNs
hwNQY3rUbSB2YfebfLw3gqt/vSQ1NPiK3ese0drj1YkNaDkH83QhV4D49lsa
OD0DTZBy5F6hJbC7XC2yxExqMHwbGdeTc5qENblE70gLP6ad+RHKSvj6jxFi
J4QhRFCjOH1V3DFp03lRuEsvrKXn7EoEFp+pLHOAnwavYZ9p5FUceY8PNOac
Fol2ArqJW3Nv28WReWOXALPbO7r84CpblWqD0KKzpAsxvp5kwN0lU+WqV+Gr
6H6UvKBT/Pbs+PXxkLstD/AUm8lprWXHfMHQowNuCxmuSmHXgAfV2C4iQcBe
rRnf7E9unUZrZwuL+EsHUVbOCk/3iBisIm24RFsit8Vkyb3LlcDXoCzJIS3f
2yOPmI/39nbDJUkQn4n1e5c7ABeivxmv4bzecMahB086b99SUGfNtrcnYDsA
+5Zz34O8Q0X+lqC8jn9ODHVlfeFWiO5+tDOj35Hc+kJwhe9pxGIgraV9zLWo
Q+4640vI+H5GFR92eYQ2WE4UwI2UcY21d4Aei+3gtJCfnohSIEfnr/+lIZJ5
XutdyaHvphIlm7Y2RaYj9Yaf60Z6+Pj+oZW3WxHpZ5hO4jveS61brUENuW7F
emVpGKuc+P0yzssFxy0IHCXJ3lDbznrIBeUoOjzBkACwmDegb6zz4UC76JVJ
N6/DHT+59iF1etErY5C2jZYjwpX1GziLeQ1+wbZ2OBD6S2/b2gzn0VnrffK8
DgwK1RXL5EvXIu6yJZ3F4hGfcCt7wvQ/vbt8MXhEE9DB7f9B4Oj524mEiwnk
tlhaUc8ePY3wot3rkm+h7bvWdbSY3XpnOsIXSLSLjGsTI/yx+x1k8iVn+/Pl
pr0uXvsb7qR6ipM5JKuf/cRp8LpxH2JuyvtHKJ3OuxdjSs97kBQAwWEK9qEA
jV46MaAYJonk92QjKDJm05zYLfNzu3xBYMAsDs+z71Cu3eDqxjS6x4bU2Hws
5RP8Z7J5Q5ZkfOlDhqENLi0CKv4TCXbiN2Oy0rORkAAaNkz5JNzVollQEBnM
KYIH4PMrSO7xXrnzEZwiesdrokWnqgtJFlxRskYYm+oKpzOiPjIv0IZC71W2
npux+OWJRq2JnkhspkqscxbzJ9KNuHdeK4PrM8uLbpALXaQUZ3O7QbSzMNJc
vNuf+F+93pWY3afwCBgKa7rfVO3u2IRNzM8Ubs0Qf71zx3onmynS/faLbXgE
L5Ae7JgXp3fHeTeFNYpEPPlSnFoarFBLK9WSBC6wYXfskjAKLXnTq9nqsyvg
BHq2ja981Cu/63zRvm4wGHCLTxzYcbhzlPPXiAXpkWTjP31VlF9pv7rutVai
/o35rmcJl0CRPny0d98Tummwg+cVPcHXELMv/vzlCToJ8561lXjeENxfcSyG
wPLeh5pHfJ9GXhmYE3sZc9D/fFqt2AfakBV+fFwVKuKAE3i8oZtIesu8c9uP
udz58vjZj2U1ro9c1CKZzX1mEAr01r1PvKeEne8bRgm3Gskj/xdyxWos+7QA
AA==

-->

</rfc>
