<?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  (Ruby 3.0.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-schc-8824-update-00" category="std" consensus="true" submissionType="IETF" updates="8824" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.0 -->
  <front>
    <title abbrev="Updates on using SCHC for CoAP">Clarifications and Updates on using Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-schc-8824-update-00"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>Laurent.Toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="I." surname="Martinez" fullname="Ivan Martinez">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>ivanmarinomartinez@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="April" day="03"/>
    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document clarifies, updates and extends the method specified in RFC 8824 for compressing Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. In particular, it considers recently defined CoAP options and specifies how CoAP headers are compressed in the presence of intermediaries. Therefore, this document updates RFC 8824.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Static Context Header Compression Working Group mailing list (schc@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/schc/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://gitlab.com/crimson84/draft-tiloca-schc-8824-update"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> is a web-transfer protocol intended for applications based on the REST (Representational State Transfer) paradigm, and designed to be affordable also for resource-constrained devices.</t>
      <t>In order to enable the use of CoAP in LPWANs (Low-Power Wide-Area Networks) as well as to improve performance, <xref target="RFC8824"/> defines how to use the Static Context Header Compression and fragmentation (SCHC) framework <xref target="RFC8724"/> for compressing CoAP headers.</t>
      <t>This document clarifies, updates and extends the SCHC compression of CoAP headers defined in <xref target="RFC8824"/> at the application level, by: providing specific clarifications; updating specific details of the compression processing, based on recent developments related to the security protocol OSCORE <xref target="RFC8613"/> for end-to-end protection of CoAP messages; and extending the compression processing to take into account additional CoAP options and the presence of CoAP proxies.</t>
      <t>In particular, this document updates <xref target="RFC8824"/> as follows.</t>
      <ul spacing="normal">
        <li>It clarifies the SCHC compression for the CoAP options Size1, Size2, Proxy-URI and Proxy-Scheme (see <xref target="coap-options-updated-set"/>).</li>
        <li>It defines the SCHC compression for the CoAP option Hop-Limit (see <xref target="coap-options-hop-limit"/>).</li>
        <li>It defines the SCHC compression for the recently defined CoAP options Echo (see <xref target="coap-options-echo"/>), Request-Tag (see <xref target="coap-options-request-tag"/>), EDHOC (see <xref target="coap-options-edhoc"/>), as well as Q-Block1 and Q-Block2 (see <xref target="coap-extensions-block"/>).</li>
        <li>It updates the SCHC compression processing for the CoAP option OSCORE (see <xref target="coap-extensions-oscore"/>), in the light of recent developments related to the security protocol OSCORE as defined in <xref target="I-D.ietf-core-oscore-key-update"/> and <xref target="I-D.ietf-core-oscore-groupcomm"/>.</li>
        <li>It clarifies how the SCHC compression handles the CoAP payload marker (see <xref target="payload-marker"/>).</li>
        <li>It defines the SCHC compression of CoAP headers in the presence of CoAP proxies (see <xref target="compression-with-proxies"/>).</li>
      </ul>
      <t>This document does not alter the core approach, design choices and features of the SCHC compression applied to CoAP headers.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
        <t>Readers are expected to be familiar with the terms and concepts related to the SCHC framework <xref target="RFC8724"/>, the web-transfer protocol CoAP <xref target="RFC7252"/>, the security protocol OSCORE <xref target="RFC8613"/> and the use of SCHC for CoAP <xref target="RFC8824"/>.</t>
      </section>
    </section>
    <section anchor="coap-options">
      <name>CoAP Options</name>
      <t>This section updates and extends <xref section="5" sectionFormat="of" target="RFC8824"/>, as to how SCHC compresses some specific CoAP options. In particular, <xref target="coap-options-updated-set"/> updates <xref section="5.4" sectionFormat="of" target="RFC8824"/>.</t>
      <section anchor="coap-options-updated-set">
        <name>CoAP Option Size1, Size2, Proxy-URI, and Proxy-Scheme Fields</name>
        <t>The SCHC Rule description MAY define sending some field values by describing an empty TV, with the MO set to "ignore" and the CDA set to "value-sent". A Rule MAY also use a "match-mapping" MO when there are different options for the same FID. Otherwise, the Rule sets the TV to the value, the MO to "equal", and the CDA to "not-sent".</t>
      </section>
      <section anchor="coap-options-hop-limit">
        <name>CoAP Option Hop-Limit Field</name>
        <t>The Hop-Limit field is an option defined in <xref target="RFC8768"/> that can be used to detect forwarding loops through a chain of CoAP proxies. The first proxy in the chain that understands the option includes it in a received request with a proper value set, before forwarding the request. Any following proxy that understands the option decrements the option value and forwards the request if the new value is different than zero, or returns a 5.08 (Hop Limit Reached) error response otherwise.</t>
        <t>When a packet uses the Hop-Limit option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-echo">
        <name>CoAP Option Echo Field</name>
        <t>The Echo field is an option defined in <xref target="RFC9175"/> that a server can include in a response as a challenge to the client, and that the client echoes back to the server in one or more requests. This enables the server to verify the freshness of a request and to cryptographically verify the aliveness of the client. Also, it forces the client to demonstrate reachability at its claimed network address.</t>
        <t>When a packet uses the Echo option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-request-tag">
        <name>CoAP Option Request-Tag Field</name>
        <t>The Request-Tag field is an option defined in <xref target="RFC9175"/> that the client can set in request messages of block-wise operations, with value an ephemeral short-lived identifier of the specific block-wise operation in question. This allows the server to match message fragments belonging to the same request operation and, if the server supports it, to reliably process simultaneous block-wise request operations on a single resource. If requests are integrity protected, this also protects against interchange of fragments between different block-wise request operations.</t>
        <t>When a packet uses the Request-Tag option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-edhoc">
        <name>CoAP Option EDHOC Field</name>
        <t>The EDHOC field is an option defined in <xref target="I-D.ietf-core-oscore-edhoc"/> that a client can include in a request, in order to perform an optimized, shortened execution of the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. Such a request conveys both the final EDHOC message and actual application data, where the latter is protected with OSCORE <xref target="RFC8613"/> using a Security Context derived from the result of the current EDHOC execution.</t>
        <t>The option occurs at most once and is always empty. The SCHC Rule MUST describe an empty TV, with the MO set to "equal" and the CDA set to "not-sent".</t>
      </section>
    </section>
    <section anchor="coap-extensions">
      <name>SCHC Compression of CoAP Extensions</name>
      <t>This section updates and extends <xref section="6" sectionFormat="of" target="RFC8824"/>, as to how SCHC compresses some specific CoAP options providing protocol extensions. In particular, <xref target="coap-extensions-block"/> updates <xref section="6.1" sectionFormat="of" target="RFC8824"/>, while <xref target="coap-extensions-oscore"/> updates <xref section="6.4" sectionFormat="of" target="RFC8824"/>.</t>
      <section anchor="coap-extensions-block">
        <name>Block</name>
        <t>When a packet uses a Block1 or Block2 option <xref target="RFC7959"/> or a Q-Block1 or Q-Block2 option <xref target="RFC9177"/>, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent". The Block1, Block2, Q-Block1 and Q-Block2 options allow fragmentation at the CoAP level that is compatible with SCHC fragmentation. Both fragmentation mechanisms are complementary, and the node may use them for the same packet as needed.</t>
      </section>
      <section anchor="coap-extensions-oscore">
        <name>OSCORE</name>
        <t>The security protocol OSCORE <xref target="RFC8613"/> provides end-to-end protection for CoAP messages. Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE and defines end-to-end protection of CoAP messages in group communication <xref target="I-D.ietf-core-groupcomm-bis"/>. This section describes how SCHC Rules can be applied to compress messages protected with OSCORE or Group OSCORE.</t>
        <t><xref target="fig-oscore-option"/> shows the OSCORE option value encoding, which was originally defined in <xref section="6.1" sectionFormat="of" target="RFC8613"/> and has been extended in <xref target="I-D.ietf-core-oscore-key-update"/><xref target="I-D.ietf-core-oscore-groupcomm"/>. The first byte of the OSCORE option value specifies the content of the OSCORE option using flags, as follows.</t>
        <ul spacing="normal">
          <li>As defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/>, the eight least significant bit, when set, indicates that the OSCORE option includes a second byte of flags. The seventh least significant bit is currently unassigned.</li>
          <li>As defined in <xref section="5" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, the sixth least significant bit, when set, indicates that the message including the OSCORE option is protected with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). When not set, the bit indicates that the message is protected either with OSCORE, or with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), while the specific OSCORE Security Context used to protect the message determines which of the two cases applies.</li>
          <li>As defined in <xref section="6.1" sectionFormat="of" target="RFC8613"/>, bit h, when set, indicates the presence of the kid context field in the option. Also, bit k, when set, indicates the presence of a kid field. Finally, the three least significant bits form the field n, which indicates the length of the piv (Partial Initialization Vector) field in bytes. When n = 0, no piv is present.</li>
        </ul>
        <t>Assuming the presence of a single flag byte, this is followed by the piv field, the kid context field, and the kid field, in that order. Also, if present, the kid context field's length (in bytes) is encoded in the first byte, denoted by "s".</t>
        <figure anchor="fig-oscore-option">
          <name>OSCORE Option</name>
          <artwork align="center"><![CDATA[
 0 1 2 3 4 5 6 7 <--------- n bytes ------------->
+-+-+-+-+-+-+-+-+---------------------------------+
|0 0 0|h|k|  n  |        Partial IV (if any)      |
+-+-+-+-+-+-+-+-+---------------------------------+
|               |                                 |
|<--   CoAP  -->|<------- CoAP OSCORE_piv ------> |
   OSCORE_flags

 <-- 1 byte --> <------ s bytes ----->
+--------------+----------------------+-----------------------+
|  s (if any)  | kid context (if any) | kid (if any)      ... |
+--------------+----------------------+-----------------------+
|                                     |                       |
|<-------- CoAP OSCORE_kidctx ------->|<-- CoAP OSCORE_kid -->|
]]></artwork>
        </figure>
        <t><xref target="fig-oscore-option-kudos"/> shows the OSCORE option value encoding, with the second byte of flags also present. As defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/>, the least significant bit d of this byte, when set, indicates that two additional fields are included in the option, following the kid context field (if any).</t>
        <t>These two fields, namely x and nonce, are used when running the key update protocol KUDOS defined in <xref target="I-D.ietf-core-oscore-key-update"/>, with x specifying the length of the nonce field in bytes as well as the specific behavior to adopt during the KUDOS execution. In particular, the figure provides the breakdown of the x field, where its three least significant bits form the sub-field m, which specifies the size of nonce in bytes, minus 1.</t>
        <figure anchor="fig-oscore-option-kudos">
          <name>OSCORE Option during a KUDOS execution</name>
          <artwork align="center"><![CDATA[
 0 1 2 3 4 5 6 7  8   9   10  11  12  13  14  15 <----- n bytes ----->
+-+-+-+-+-+-+-+-+---+---+---+---+---+---+---+---+---------------------+
|1|0|0|h|k|  n  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | d | Partial IV (if any) |
+-+-+-+-+-+-+-+-+---+---+---+---+---+---+---+---+---------------------+
|                                               |                     |
|<------------------- CoAP -------------------->|<- CoAP OSCORE_piv ->|
                   OSCORE_flags

 <- 1 byte -> <----------- s bytes ------------> <------ 1 byte ----->
+------------+----------------------------------+---------------------+
| s (if any) |       kid context (if any)       |     x (if any)      |
+------------+----------------------------------+---------------------+
|                                               |                     |
|<------------- CoAP OSCORE_kidctx ------------>|<-- CoAP OSCORE_x -->|
                                                |                     |
                                                |   0 1 2 3 4 5 6 7   |
                                                |  +-+-+-+-+-+-+-+-+  |
                                                |  |0|0|b|p|   m   |  |
                                                |  +-+-+-+-+-+-+-+-+  |

 <----- m + 1 bytes ----->
+-------------------------+-----------------------+
|      nonce (if any)     |    kid (if any) ...   |
+-------------------------+-----------------------+
|                         |                       |
|<-- CoAP OSCORE_nonce -->|<-- CoAP OSCORE_kid -->|
]]></artwork>
        </figure>
        <t>To better perform OSCORE SCHC compression, the Rule description needs to identify the OSCORE option and the fields it contains. Conceptually, it discerns up to six distinct pieces of information within the OSCORE option: the flag bits, the piv, the kid context, the x byte, the nonce, and the kid. The SCHC Rule splits the OSCORE option into six Field Descriptors in order to compress them:</t>
        <ul spacing="normal">
          <li>CoAP OSCORE_flags</li>
          <li>CoAP OSCORE_piv</li>
          <li>CoAP OSCORE_kidctx</li>
          <li>CoAP OSCORE_x</li>
          <li>CoAP OSCORE_nonce</li>
          <li>CoAP OSCORE_kid</li>
        </ul>
        <t><xref target="fig-oscore-option"/> shows the OSCORE option format with the four fields OSCORE_flags, OSCORE_piv, OSCORE_kidctx and OSCORE_kid superimposed on it. Also, <xref target="fig-oscore-option-kudos"/> shows the OSCORE option format with all the six fields superimposed on it, with reference to a message exchanged during an execution of the KUDOS key update protocol.</t>
        <t>In both cases, the CoAP OSCORE_kidctx field directly includes the size octet, s. In the latter case, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>For the x field, if both endpoints know the value, then the SCHC Rule will describe a TV to this value, with the MO set to "equal" and the CDA set to "not-sent". This models the case where the two endpoints run KUDOS with a pre-agreed size of the nonce field, as well as with a pre-agreed combination of its modes of operations, as per the bits b and p of the m sub-field.  </t>
            <t>
Otherwise, if the value is changing over time, the SCHC Rule will set the MO to "ignore" and the CDA to "value-sent". The Rule may also use a "match-mapping" MO to compress this field, in case the two endpoints pre-agree on a set of alternative ways to run KUDOS, with respect to the size of the nonce field and the combination of the KUDOS modes of operation to use.</t>
          </li>
          <li>
            <t>For the nonce field, the SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".  </t>
            <t>
In addition, for the value of the nonce field, SCHC MUST NOT send it as variable-length data in the Compression Residue, to avoid ambiguity with the length of the nonce field encoded in the x field. Therefore, SCHC MUST use the m sub-field of the x field to define the size of the Compression Residue. SCHC designates a specific function, "osc.x.m", that the Rule MUST use to complete the Field Descriptor. During the decompression, this function returns the length of the nonce field in bytes, as the value of the three least significant bits of the m sub-field of the x field, plus 1.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="payload-marker">
      <name>Compression of the CoAP Payload Marker</name>
      <t>As originally intended in <xref target="RFC8824"/>, the following applies with respect to the 0xFF payload marker. A SCHC compression rule for CoAP includes all the expected CoAP options, therefore the payload marker does not have to be specified.</t>
      <section anchor="payload-marker-without-e2e">
        <name>Without End-to-End Security</name>
        <t>If the CoAP message to compress with SCHC is not going to be protected with OSCORE and includes a payload, then the 0xFF payload marker MUST NOT be included in the compressed message, which is composed of the Compression RuleID, the Compression Residue (if any), and the CoAP payload.</t>
        <t>After having decompressed an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the CoAP payload, if any was present after the consumed Compression Residue.</t>
      </section>
      <section anchor="with-end-to-end-security">
        <name>With End-to-End Security</name>
        <t>If the CoAP message has to be protected with OSCORE, the same rationale described in <xref target="payload-marker-without-e2e"/> applies to both the Inner SCHC Compression and the Outer SCHC Compression defined in <xref section="7.2" sectionFormat="of" target="RFC8824"/>. That is:</t>
        <ul spacing="normal">
          <li>After the Inner SCHC Compression of a CoAP message including a payload, the payload marker MUST NOT be included in the input to the AEAD Encryption, which is composed of the Inner Compression RuleID, the Inner Compression Residue (if any), and the CoAP payload.</li>
          <li>The Outer SCHC Compression takes as input the OSCORE-protected message, which always includes a payload (i.e., the OSCORE Ciphertext) preceded by the payload marker.</li>
          <li>After the Outer SCHC Compression, the payload marker MUST NOT be included in the final compressed message, which is composed of the Outer Compression RuleID, the Outer Compression Residue (if any), and the OSCORE Ciphertext.</li>
        </ul>
        <t>After having completed the Outer SCHC Decompression of an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the OSCORE Ciphertext.</t>
        <t>After having completed the Inner SCHC Decompression of an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the CoAP payload, if any was present after the consumed Compression Residue.</t>
      </section>
    </section>
    <section anchor="compression-with-proxies">
      <name>CoAP Header Compression with Proxies</name>
      <t>Building on <xref target="RFC8824"/>, this section clarifies how SCHC Compression/Decompression is performed when CoAP proxies are deployed. The following refers to the origin client and origin server as application endpoints.</t>
      <section anchor="without-end-to-end-security">
        <name>Without End-to-End Security</name>
        <t>In case OSCORE is not used end-to-end between client and server, the SCHC processing occurs hop-by-hop, by relying on SCHC Rules that are consistently shared between two adjacent hops.</t>
        <t>In particular, SCHC is used as defined below.</t>
        <ul spacing="normal">
          <li>The sender application endpoint compresses the CoAP message, by using the SCHC Rules that it shares with the next hop towards the recipient application endpoint. The resulting, compressed message is sent to the next hop towards the recipient application endpoint.</li>
          <li>
            <t>Each proxy decompresses the incoming compressed message, by using the SCHC Rules that it shares with the (previous hop towards the) sender application endpoint.  </t>
            <t>
Then, the proxy compresses the CoAP message to be forwarded, by using the SCHC Rules that it shares with the (next hop towards the) recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the (next hop towards the) recipient application endpoint.</t>
          </li>
          <li>The recipient application endpoint decompresses the incoming compressed message, by using the SCHC Rules that it shares with the previous hop towards the sender application endpoint.</li>
        </ul>
      </section>
      <section anchor="with-end-to-end-security-1">
        <name>With End-to-End Security</name>
        <t>In case OSCORE is used end-to-end between client and server (see <xref section="7.2" sectionFormat="of" target="RFC8824"/>), the following applies.</t>
        <t>The SCHC processing occurs end-to-end as to the Inner SCHC Compression/Decompression, by relying on Inner SCHC Rules that are consistently shared between the two application endpoints acting as OSCORE endpoints and sharing the used OSCORE Security Context.</t>
        <t>Instead, the SCHC processing occurs hop-by-hop as to the Outer SCHC Compression/Decompression, by relying on Outer SCHC Rules that are consistently shared between two adjacent hops.</t>
        <t>In particular, SCHC is used as defined below.</t>
        <ul spacing="normal">
          <li>
            <t>The sender application endpoint performs the Inner SCHC Compression on the original CoAP message, by using the Inner SCHC Rules that it shares with the recipient application endpoint.  </t>
            <t>
Following the AEAD Encryption of the compressed input obtained from the previous step, the sender application endpoint performs the Outer SCHC Compression on the resulting OSCORE-protected message, by using the Outer SCHC Rules that it shares with the next hop towards the recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the next hop towards the recipient application endpoint.</t>
          </li>
          <li>
            <t>Each proxy performs the Outer SCHC Decompression on the incoming compressed message, by using the SCHC Rules that it shares with the (previous hop towards the) sender application endpoint.  </t>
            <t>
Then, the proxy performs the Outer SCHC Compression of the OSCORE-protected message to be forwarded, by using the SCHC Rules that it shares with the (next hop towards the) recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the (next hop towards the) recipient application endpoint.</t>
          </li>
          <li>
            <t>The recipient application endpoint performs the Outer SCHC Decompression on the incoming compressed message, by using the Outer SCHC Rules that it shares with the previous hop towards the sender application endpoint.  </t>
            <t>
Then, the recipient application endpoint performs the AEAD Decryption of the OSCORE-protected message obtained from the previous step.  </t>
            <t>
Finally, the recipient application endpoint performs the Inner SCHC Decompression on the compressed input obtained from the previous step, by using the Inner SCHC rules that it shares with the sender application endpoint. The result is the original CoAP message produced by the sender application endpoint.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples of CoAP Header Compression with Proxies</name>
      <t>TBD</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations discussed in <xref target="RFC8724"/> and <xref target="RFC8824"/> continue to apply.  When SCHC is used in the presence of CoAP proxies, the security considerations discussed in <xref section="11.2" sectionFormat="of" target="RFC7252"/> continue to apply. When SCHC is used with OSCORE, the security considerations discussed in <xref target="RFC8613"/> continue to apply.</t>
      <t>The security considerations in <xref target="RFC8824"/> specifically discuss how the use of SCHC for CoAP when OSCORE is also used may result in (more frequently) triggering key-renewal operations for the two endpoints. This can be due to an earlier exhaustion of the OSCORE Sender Sequence Number space, or to the installation of new compression Rules on one of the endpoints.</t>
      <t>In either case, the two endpoints can run the key update protocol KUDOS defined in <xref target="I-D.ietf-core-oscore-key-update"/>, as the recommended method to update their shared OSCORE Security Context.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to 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="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC7959" target="https://www.rfc-editor.org/info/rfc7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby">
              <organization/>
            </author>
            <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in 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>
        <reference anchor="RFC8724" target="https://www.rfc-editor.org/info/rfc8724">
          <front>
            <title>SCHC: Generic Framework for Static Context Header Compression and Fragmentation</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo">
              <organization/>
            </author>
            <author fullname="L. Toutain" initials="L." surname="Toutain">
              <organization/>
            </author>
            <author fullname="C. Gomez" initials="C." surname="Gomez">
              <organization/>
            </author>
            <author fullname="D. Barthel" initials="D." surname="Barthel">
              <organization/>
            </author>
            <author fullname="JC. Zuniga" initials="JC." surname="Zuniga">
              <organization/>
            </author>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document defines the Static Context Header Compression and fragmentation (SCHC) framework, which provides both a header compression mechanism and an optional fragmentation mechanism. SCHC has been designed with Low-Power Wide Area Networks (LPWANs) in mind.</t>
              <t>SCHC compression is based on a common static context stored both in the LPWAN device and in the network infrastructure side. This document defines a generic header compression mechanism and its application to compress IPv6/UDP headers.</t>
              <t>This document also specifies an optional fragmentation and reassembly mechanism. It can be used to support the IPv6 MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 datagrams that, after SCHC compression or when such compression was not possible, still exceed the Layer 2 maximum payload size.</t>
              <t>The SCHC header compression and fragmentation mechanisms are independent of the specific LPWAN technology over which they are used. This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities. Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents. Data models for the context and profiles are out of scope.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8724"/>
          <seriesInfo name="DOI" value="10.17487/RFC8724"/>
        </reference>
        <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <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="RFC8768" target="https://www.rfc-editor.org/info/rfc8768">
          <front>
            <title>Constrained Application Protocol (CoAP) Hop-Limit Option</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair">
              <organization/>
            </author>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K">
              <organization/>
            </author>
            <author fullname="J. Shallow" initials="J." surname="Shallow">
              <organization/>
            </author>
            <date month="March" year="2020"/>
            <abstract>
              <t>The presence of Constrained Application Protocol (CoAP) proxies may lead to infinite forwarding loops, which is undesirable. To prevent and detect such loops, this document specifies the Hop-Limit CoAP option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8768"/>
          <seriesInfo name="DOI" value="10.17487/RFC8768"/>
        </reference>
        <reference anchor="RFC8824" target="https://www.rfc-editor.org/info/rfc8824">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo">
              <organization/>
            </author>
            <author fullname="L. Toutain" initials="L." surname="Toutain">
              <organization/>
            </author>
            <author fullname="R. Andreasen" initials="R." surname="Andreasen">
              <organization/>
            </author>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8824"/>
          <seriesInfo name="DOI" value="10.17487/RFC8824"/>
        </reference>
        <reference anchor="RFC9175" target="https://www.rfc-editor.org/info/rfc9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss">
              <organization/>
            </author>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <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="RFC9177" target="https://www.rfc-editor.org/info/rfc9177">
          <front>
            <title>Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair">
              <organization/>
            </author>
            <author fullname="J. Shallow" initials="J." surname="Shallow">
              <organization/>
            </author>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies alternative Constrained Application Protocol (CoAP) block-wise transfer options: Q-Block1 and Q-Block2.</t>
              <t>These options are similar to, but distinct from, the CoAP Block1 and Block2 options defined in RFC 7959. The Q-Block1 and Q-Block2 options are not intended to replace the Block1 and Block2 options but rather have the goal of supporting Non-confirmable (NON) messages for large amounts of data with fewer packet interchanges. Also, the Q-Block1 and Q-Block2 options support faster recovery should any of the blocks get lost in transmission.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9177"/>
          <seriesInfo name="DOI" value="10.17487/RFC9177"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-07">
          <front>
            <title>Using EDHOC with CoAP and OSCORE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <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>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol EDHOC can be run
   over CoAP and used by two peers to establish an OSCORE Security
   Context.  This document details this use of the EDHOC protocol, by
   specifying a number of additional and optional mechanisms.  These
   especially include an optimization approach for combining the
   execution of EDHOC with the first OSCORE transaction.  This
   combination reduces the number of round trips required to set up an
   OSCORE Security Context and to complete an OSCORE transaction using
   that Security Context.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-07"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-groupcomm-17">
          <front>
            <title>Group OSCORE - Secure Group Communication for CoAP</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="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date day="20" month="December" year="2022"/>
            <abstract>
              <t>   This document defines Group Object Security for Constrained RESTful
   Environments (Group OSCORE), providing end-to-end security of CoAP
   messages exchanged between members of a group, e.g., sent over IP
   multicast.  In particular, the described approach 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 any other
   member of the group for pairwise OSCORE communication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-17"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-key-update-04">
          <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="13" month="March" year="2023"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-04"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-groupcomm-bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-groupcomm-bis-08">
          <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="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="January" year="2023"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (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 RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-08"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-edhoc-19">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="February" year="2023"/>
            <abstract>
              <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-19"/>
        </reference>
      </references>
    </references>
    <section anchor="yang-data-model">
      <name>YANG data model</name>
      <t>TBD</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Göran Selander"/> for his comments and feedback.</t>
      <t>The work on this document has been partly supported by the H2020 projects SIFIS-Home (Grant agreement 952652) and ARCADIAN-IoT (Grant agreement 101020259).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Uu44NQ48QpFZ7dhcCDNNpcPVPL4V25/QpwPP/jyL8W/8OxuLXwBDebFTbwoF
WFuOE9+L3SEwHk1BPEVNL4DrY62r1ApFc18mHkYNQLOZWDe2ikyhlnCA0cLD
fiTXPoHDlanNArtTjOXSTxML24qp/kVbpGzbTe4ISplhG54jZ63LsaYIEsfA
bml08f+z/gzErtgT++I78RK00StxKP49sB9h5heB//lh8G3Q/u+xz7eD+11Y
aPd+dn9zL2BecW8bAh05f+EO2my5wzfun7eOaH7av7uf+8E9bBm+kE8Ce/3h
3qLAhOgk7f9EGhsMwDMw3lwnAzEYIN4Ak2Q2cIiZQ2gfh4i7JsAr9rFuf9pD
1H2DQdx1vtzE52g0Ipz+4fU3+KwaxbjuQS6AG5Z3ltGIAu37RJkG6345Ei86
7piglvjvt4yO5vwKRBoFpWUDUBjT7Pst7IJQxdZDr0cX3FRRrp/i11kD1Oc7
2NwYK5yv5Pf0uyARK8pYG8Ff7RaA0fEanSZcz+QUHzlCLbMw9EpE/VbE8hon
NjTbNZ53SP3K4BTdkRbMcmrMw8XIXhKQRZVlbnK1NNF0Hdr87fPpxdUT208M
Xe6M3V7a+Zs2hcBpWY1GY2EjA6xm8jbOKSMmI8CNiMADMPMyjHWKp52AYLU8
rQpVh2XkARVK3kTYZ2BAurMWglNVMZXaNjGluhoHvJPUmtOmt67j34kxedN2
u0MBBrDSYu8x0wBungC/SYi9Xfi3B//24d93AtsuxN6B0XlNs9FvLh7716t6
9u537xsmZHfNvwj+9dmWfrPyLHg2UoWPKUVfJXof1n59C6Ny7BqmH+4HPZN3
TJSzUD8If9WmlbILORvmzFrQMWGP2+Q1+NO+xeJPrznz8XfX4yZ8LXj+FHqu
sXP06Rq7OzZ1TwRnJTzPmacj+c+bpyNqz5yHBH98P0fQUnPpq8EzsHorFd8a
Vl/lrm3AaI6PWMc2mJXuNDwzdMo6PPy0dfp32n990OE1hvKPuVzsL/U6XtY+
yrZ1XOORXWNHHVVmbNHJxtuthLXXY+Q3V2E2lQ8EcCl32ePB2XDMeD58qASP
ZUHEeML9ehUHsuhWxTpU2JJSzXFaHd/hpRJcpRIiPxVyzdmd64Hp0fEwDlRj
3SNelAJKsNxDGzx2Yr2hcQRs2Kmc21THke30u54ncdnnrlJ/O0LN9cVTg6uc
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

-->

</rfc>
