<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-edhoc-psk-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <?v3xml2rfc silence="Found SVG with width or height specified"?>
  <front>
    <title abbrev="EDHOC-PSK">EDHOC Authenticated with Pre‑Shared Keys (PSK)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-07"/>
    <author initials="E." surname="Lopez-Perez" fullname="Elsa Lopez-Perez">
      <organization>Inria</organization>
      <address>
        <email>elsa.lopez-perez@inria.fr</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
      <organization>University of Murcia</organization>
      <address>
        <email>rafa@um.es</email>
      </address>
    </author>
    <author initials="F." surname="Lopez-Gomez" fullname="Francisco Lopez-Gomez">
      <organization>University of Murcia</organization>
      <address>
        <email>francisco.lopezg@um.es</email>
      </address>
    </author>
    <date year="2026" month="March" day="01"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <abstract>
      <?line 94?>

<t>This document specifies a Pre-Shared Key (PSK) authentication method for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange protocol. The PSK method enhances computational efficiency while providing mutual authentication, ephemeral key exchange, identity protection, and quantum resistance. It is particularly suited for systems where nodes share a PSK provided out-of-band (external PSK) and enables efficient session resumption with less computational overhead when the PSK is provided from a previous EDHOC session (resumption PSK). This document details the PSK method flow, key derivation changes, message formatting, processing, and security considerations.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lake-wg.github.io/psk/#go.draft-ietf-lake-edhoc-psk.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lake-edhoc-psk/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAKE Working Group mailing list (<eref target="mailto:lake@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lake/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/lake/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lake-wg/psk"/>.</t>
    </note>
  </front>
  <middle>
    <?line 98?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a Pre-Shared Key (PSK) authentication method for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange protocol <xref target="RFC9528"/>. The PSK method balances the complexity of credential distribution with computational efficiency. While symmetric key distribution is more complex than asymmetric approaches, PSK authentication offers greater computational efficiency compared to the methods outlined in <xref target="RFC9528"/>. The PSK method retains mutual authentication, asymmetric ephemeral key exchange, and identity protection established by <xref target="RFC9528"/>.</t>
      <t>EDHOC with PSK authentication benefits use cases where two nodes share a Pre-Shared Key (PSK) provided out-of-band (external PSK). Examples include the Authenticated Key Management Architecture (AKMA) in mobile systems or the Peer and Authenticator in Extensible Authentication Protocol (EAP) systems. The PSK method enables the nodes to perform ephemeral key exchange, achieving Perfect Forward Secrecy (PFS). This ensures that even if the PSK is compromised, past communications remain secure against active attackers, while future communications are protected against passive attackers. Additionally, by leveraging the PSK for both authentication and key derivation, the method provides quantum-resistant key exchange and authentication even when used with ECDHE.</t>
      <t>Another important use case of PSK authentication in the EDHOC protocol is session resumption. This allows previously connected parties to quickly reestablish secure communication using pre-shared keys from a prior session, reducing the overhead associated with key exchange and asymmetric authentication. By using PSK authentication, EDHOC allows session keys to be refreshed with significantly lower computational overhead compared to public-key authentication. In this case, the resumption PSK is provisioned after the establishment of a previous EDHOC session by using EDHOC_Exporter. Thus, the external PSK serves as a long-term credential while the resumption PSK acts as a session key.</t>
      <t>Section 3 provides an overview of the PSK method flow and credentials. Section 4 outlines the changes to key derivation compared to <xref target="RFC9528"/>. Section 5 details message formatting and processing, and Section 6 describes the usage of PSK for resumption. Section 7 defines the use of EDHOC-PSK with OSCORE. Security considerations are described in Section 8, and Section 9 outlines the IANA considerations.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>Readers are expected to be familiar with the terms and concepts described in EDHOC <xref target="RFC9528"/>, CBOR <xref target="RFC8949"/>, CBOR Sequences <xref target="RFC8742"/>, COSE Structures and Processing <xref target="RFC9052"/>, COSE Algorithms <xref target="RFC9053"/>, CWT and CCS <xref target="RFC8392"/>, and the Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, which is used to express CBOR data structures.</t>
    </section>
    <section anchor="protocol">
      <name>Protocol</name>
      <t>This document specifies a new EDHOC authentication method (see <xref section="3.2" sectionFormat="of" target="RFC9528"/>) referred to as the Pre-Shared Key method (EDHOC-PSK). This method shares some features with, and differs in other respects from, the authentication methods previously defined in EDHOC.</t>
      <t>Authentication is based on a Pre-Shared Key (PSK) shared between the Initiator and the Responder. As in the methods defined in <xref target="RFC9528"/>, CRED_I and CRED_R are authentication credentials containing identifying information for the Initiator and Responder, respectively. However, unlike those methods, there is a single shared authentication credential identifier, ID_CRED_PSK, which the Responder uses to retrieve the PSK and the associated authentication credentials.</t>
      <section anchor="credentials">
        <name>Credentials</name>
        <t>The Initiator and Responder are assumed to share a PSK (either an external PSK or a resumption PSK) with high entropy that meets the following requirements:</t>
        <ul spacing="normal">
          <li>
            <t>Only the Initiator and the Responder have access to the PSK.</t>
          </li>
          <li>
            <t>The Responder can retrieve the PSK, CRED_I, and CRED_R, using ID_CRED_PSK.</t>
          </li>
        </ul>
        <section anchor="idcredpsk">
          <name>ID_CRED_PSK</name>
          <t>ID_CRED_PSK is a COSE header map containing header parameters that can identify a pre-shared key. For example:</t>
          <artwork><![CDATA[
ID_CRED_PSK = {4 : h'0f' }; 4 = 'kid'
]]></artwork>
          <t>The purpose of ID_CRED_PSK is to facilitate retrieval of the correct PSK. While ID_CRED_PSK use encoding and representation patterns from <xref target="RFC9528"/>, it differs fundamentally in that it identifies a symmetric key rather than a public authentication key.</t>
          <t>It is <bcp14>RECOMMENDED</bcp14> that ID_CRED_PSK uniquely or stochastically identifies the corresponding PSK. Uniqueness avoids ambiguity that could require the recipient to try multiple keys, while stochasticity reduces the risk of identifier collisions and supports stateless processing. These properties align with the requirements for rKID in session resumption.</t>
        </section>
        <section anchor="credi-and-credr">
          <name>CRED_I and CRED_R</name>
          <t>CRED_I and CRED_R are authentication credentials associated with the PSK. The notation CRED_x refers to either CRED_I or CRED_R. Authentication is achieved implicitly through the successful use of the PSK to derive keying material, and to encrypt and subsequently decrypt protected messages.</t>
          <t>When using an external PSK, a common representation of CRED_I and CRED_R is a CBOR Web Token (CWT) or CWT Claims Set (CCS) <xref target="RFC8392"/>, where the 'cnf' claim includes the confirmation method COSE_Key. An example of CRED_I and CRED_R is shown below:</t>
          <artwork><![CDATA[
{                                               /CCS/
  2 : "42-50-31-FF-EF-37-32-39",                /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'0f',                               /kid/
    }
  }
}
]]></artwork>
          <artwork><![CDATA[
{                                               /CCS/
  2 : "23-11-58-AA-B3-7F-10",                   /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'0f',                               /kid/
    }
  }
}
]]></artwork>
          <t>Alternative formats for CRED_I and CRED_R <bcp14>MAY</bcp14> be used. When a resumption PSK is employed, CRED_I and CRED_R <bcp14>MUST</bcp14> be the same credentials used in the initial EDHOC exchange, for example, public-key credentials such as X.509 certificates.</t>
          <t>Implementations <bcp14>MUST</bcp14> ensure that CRED_I and CRED_R are distinct, for example by including different identities in their sub-claims (e.g., "42-50-31-FF-EF-37-32-39" and "23-11-58-AA-B3-7F-10"). Ensuring distinct credentials simplifies correct party identification and prevents reflection and misbinding attacks, as described in <xref section="D.2" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="encoding-and-processing-guidelines">
          <name>Encoding and processing guidelines</name>
          <t>The following guidelines apply to the encoding and handling of CRED_x and ID_CRED_PSK. Requirements on CRED_x applies both to CRED_I and to CRED_R.</t>
          <ul spacing="normal">
            <li>
              <t>If CRED_x is CBOR-encoded, it <bcp14>SHOULD</bcp14> use deterministic encoding as specified in Sections <xref target="RFC8949" section="4.2.1" sectionFormat="bare"/> and <xref target="RFC8949" section="4.2.2." sectionFormat="bare"/> of <xref target="RFC8949"/>. Deterministic encoding ensures consistent identification and avoids interoperability issues caused by non-deterministic CBOR variants.</t>
            </li>
            <li>
              <t>If CRED_x is provisioned out-of-band and transported by value, it <bcp14>SHOULD</bcp14> be used as received without re-encoding. Re-encoding can cause mismatches when comparing identifiers such as hash values or 'kid' references.</t>
            </li>
            <li>
              <t>ID_CRED_PSK <bcp14>SHOULD</bcp14> uniquely identify the corresponding PSK to avoid ambiguity. When ID_CRED_PSK contains a key identifier, care must be taken to ensure that 'kid' is unique for the PSK.</t>
            </li>
            <li>
              <t>When ID_CRED_PSK consists solely of a 'kid' parameter (i.e., { 4 : kid }), the compact encoding optimization defined in <xref section="3.5.3.2" sectionFormat="of" target="RFC9528"/> <bcp14>MUST</bcp14> be applied in plaintext fields (such as PLAINTEXT_3A). These optimizations <bcp14>MUST NOT</bcp14> be applied in COSE header parameters or in other contexts where the full map structure is required. For example:
              </t>
              <ul spacing="normal">
                <li>
                  <t>{ 4 : h'0f' } encoded as h'0f' (CBOR byte string)</t>
                </li>
                <li>
                  <t>{ 4 : 21 } encoded as 0x15 (CBOR integer)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>To mitigate misbinding attacks, identity information such as a 'sub' (subject) claim <bcp14>MUST</bcp14> be included in both CRED_I and CRED_R.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="message-flow-of-edhoc-psk">
        <name>Message Flow of EDHOC-PSK</name>
        <t>The message flow of EDHOC-PSK follows the structure defined in <xref target="RFC9528"/>, with authentication based on symmetric keys rather than public keys. For identity protection, credential-related message fields appear first in message_3.</t>
        <t>ID_CRED_PSK is encrypted using a key derived from a shared secret obtained through the first two messages. If Diffie-Hellman key exchange is used, G_X and G_Y are the ephemeral public keys, and the shared secret G_XY is the DH shared secret, as in <xref target="RFC9528"/>. If the Diffie-Hellman procedure is replaced by a KEM, then G_X and G_Y are encapsulation key and ciphertext, respectively, and the shared secret G_XY is derived by the KEM, see <xref target="I-D.spm-lake-pqsuites"/>.</t>
        <t>The Responder authenticates the Initiator first. <xref target="fig-variant2"/> illustrates the message flow of the EDHOC-PSK authentication method.</t>
        <figure anchor="fig-variant2">
          <name>Overview of Message Flow of EDHOC-PSK.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="560" viewBox="0 0 560 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,272" fill="none" stroke="black"/>
                <path d="M 552,48 L 552,272" fill="none" stroke="black"/>
                <path d="M 8,64 L 544,64" fill="none" stroke="black"/>
                <path d="M 16,128 L 552,128" fill="none" stroke="black"/>
                <path d="M 8,192 L 544,192" fill="none" stroke="black"/>
                <path d="M 16,256 L 552,256" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="552,192 540,186.4 540,197.6" fill="black" transform="rotate(0,544,192)"/>
                <polygon class="arrowhead" points="552,64 540,58.4 540,69.6" fill="black" transform="rotate(0,544,64)"/>
                <polygon class="arrowhead" points="24,256 12,250.4 12,261.6" fill="black" transform="rotate(180,16,256)"/>
                <polygon class="arrowhead" points="24,128 12,122.4 12,133.6" fill="black" transform="rotate(180,16,128)"/>
                <g class="text">
                  <text x="40" y="36">Initiator</text>
                  <text x="520" y="36">Responder</text>
                  <text x="184" y="52">METHOD,</text>
                  <text x="256" y="52">SUITES_I,</text>
                  <text x="316" y="52">G_X,</text>
                  <text x="356" y="52">C_I,</text>
                  <text x="400" y="52">EAD_1</text>
                  <text x="280" y="84">message_1</text>
                  <text x="204" y="116">G_Y,</text>
                  <text x="244" y="116">Enc(</text>
                  <text x="284" y="116">C_R,</text>
                  <text x="328" y="116">EAD_2</text>
                  <text x="360" y="116">)</text>
                  <text x="280" y="148">message_2</text>
                  <text x="180" y="180">Enc(</text>
                  <text x="252" y="180">ID_CRED_PSK,</text>
                  <text x="328" y="180">AEAD(</text>
                  <text x="376" y="180">EAD_3</text>
                  <text x="408" y="180">)</text>
                  <text x="424" y="180">)</text>
                  <text x="280" y="212">message_3</text>
                  <text x="248" y="244">AEAD(</text>
                  <text x="296" y="244">EAD_4</text>
                  <text x="328" y="244">)</text>
                  <text x="280" y="276">message_4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
Initiator                                                   Responder
|                  METHOD, SUITES_I, G_X, C_I, EAD_1                |
+------------------------------------------------------------------>|
|                             message_1                             |
|                                                                   |
|                      G_Y, Enc( C_R, EAD_2 )                       |
|<------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                   Enc( ID_CRED_PSK, AEAD( EAD_3 ) )               |
+------------------------------------------------------------------>|
|                             message_3                             |
|                                                                   |
|                           AEAD( EAD_4 )                           |
|<------------------------------------------------------------------+
|                             message_4                             |
]]></artwork>
          </artset>
        </figure>
        <t>This approach provides identity protection against passive attackers for both Initiator and Responder. EDHOC message_4 remains <bcp14>OPTIONAL</bcp14>, but is needed to authenticate the Responder and achieve mutual authentication in EDHOC when external applications (e.g., OSCORE) are not relied upon. In either case, the inclusion of a fourth message provides mutual authentication and explicit key confirmation (see <xref target="message-4"/>).</t>
      </section>
    </section>
    <section anchor="key-der">
      <name>Key Derivation</name>
      <t>The pseudorandom keys (PRKs) used in the EDHOC-PSK authentication method are derived with EDHOC_Extract, as in <xref target="RFC9528"/>.</t>
      <artwork><![CDATA[
PRK  = EDHOC_Extract( salt, IKM )
]]></artwork>
      <t>where <tt>salt</tt> and input keying material (<tt>IKM</tt>) are defined for each key. The definition of EDHOC_Extract depends on the EDHOC hash algorithm selected in the cipher suite, see <xref section="4.1.1" sectionFormat="of" target="RFC9528"/>.</t>
      <t>To maintain a uniform key schedule across all EDHOC authentication methods, the same pseudorandom key notation (PRK_2e, PRK_3e2m, and PRK_4e3m) is retained. The index notation is preserved for consistency with other EDHOC authentication variants, even though it does not fully reflect the functional role of the keys in this method; for example, no MACs are used in EDHOC-PSK.</t>
      <t>PRK_2e is extracted as in <xref target="RFC9528"/> with</t>
      <ul spacing="normal">
        <li>
          <t><tt>salt</tt> = TH_2, and</t>
        </li>
        <li>
          <t><tt>IKM</tt> = G_XY,</t>
        </li>
      </ul>
      <t>where the transcript hash TH_2 = H( G_Y, H(message_1) ) is defined in <xref section="5.3.2" sectionFormat="of" target="RFC9528"/>.</t>
      <t>SALT_4e3m is derived from PRK_3e2m and TH_3, as shown in Figure 6 of <xref target="RFC9528"/>.</t>
      <t>The other PRKs and transcript hashes are modified as specified below. <xref target="fig-variant2key"/> lists the key derivations that differ from <xref section="4.1.2" sectionFormat="of" target="RFC9528"/>.</t>
      <figure anchor="fig-variant2key">
        <name>Key Derivation of EDHOC-PSK.</name>
        <artwork align="center"><![CDATA[
PRK_3e2m     = PRK_2e
KEYSTREAM_2A = EDHOC_KDF( PRK_2e,   0, TH_2,  plaintext_length_2a )
PRK_4e3m     = EDHOC_Extract( SALT_4e3m, PSK )
KEYSTREAM_3A = EDHOC_KDF( PRK_3e2m, 12, TH_3, plaintext_length_3a )
K_3          = EDHOC_KDF( PRK_4e3m, 3, TH_3, key_length )
IV_3         = EDHOC_KDF( PRK_4e3m, 4, TH_3, iv_length )
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>KEYSTREAM_2A is used to encrypt PLAINTEXT_2A in message_2.
          </t>
          <ul spacing="normal">
            <li>
              <t>plaintext_length_2a is the length of PLAINTEXT_2A in message_2.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>KEYSTREAM_3A is used to encrypt PLAINTEXT_3A (the concatenation of ID_CRED_PSK and CIPHERTEXT_3B) in message_3.
          </t>
          <ul spacing="normal">
            <li>
              <t>plaintext_length_3a is the length of PLAINTEXT_3A in message_3.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>TH_3 = H( TH_2, PLAINTEXT_2A ).</t>
        </li>
      </ul>
      <t>The definition of the transcript hash TH_4 is modified as follows:</t>
      <ul spacing="normal">
        <li>
          <t>TH_4 = H( TH_3, ID_CRED_PSK, PLAINTEXT_3B, CRED_I, CRED_R )</t>
        </li>
      </ul>
    </section>
    <section anchor="message-formatting-and-processing">
      <name>Message Formatting and Processing</name>
      <t>This section specifies the differences in message formatting and processing compared to <xref section="5" sectionFormat="of" target="RFC9528"/>. Note that if any processing step fails, then the Responder <bcp14>MUST</bcp14> send an EDHOC error message back as defined in <xref section="6" sectionFormat="of" target="RFC9528"/>, and the EDHOC session <bcp14>MUST</bcp14> be aborted.</t>
      <section anchor="message-1">
        <name>Message 1</name>
        <t>Message 1 is formatted and processed as specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>.</t>
      </section>
      <section anchor="message-2">
        <name>Message 2</name>
        <section anchor="formatting-of-message-2">
          <name>Formatting of Message 2</name>
          <t>Message 2 is formatted as specified in <xref section="5.3.1" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="responder-composition-of-message-2">
          <name>Responder Composition of Message 2</name>
          <t>CIPHERTEXT_2A is calculated with a binary additive stream cipher, using a keystream generated with EDHOC_Expand, and the following plaintext:</t>
          <ul spacing="normal">
            <li>
              <t>PLAINTEXT_2A = ( C_R, ? EAD_2 )</t>
            </li>
            <li>
              <t>CIPHERTEXT_2A = PLAINTEXT_2A XOR KEYSTREAM_2A</t>
            </li>
          </ul>
          <t>C_R, EAD_2 are defined in <xref section="5.3.2" sectionFormat="of" target="RFC9528"/>. In contrast to <xref target="RFC9528"/>, ID_CRED_R, MAC_2, and Signature_or_MAC_2 are not included in message_2. This omission is the primary difference from the signature and MAC-based authentication methods defined in <xref target="RFC9528"/>, as authentication in EDHOC-PSK relies solely on the shared PSK and the successful decryption of protected messages. KEYSTREAM_2A is defined in <xref target="key-der"/>.</t>
        </section>
        <section anchor="initiator-processing-of-message-2">
          <name>Initiator Processing of Message 2</name>
          <t>Upon receiving message_2, the Initiator processes it as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Compute KEYSTREAM_2A as defined in <xref target="key-der"/>.</t>
            </li>
            <li>
              <t>Decrypt CIPHERTEXT_2A using binary XOR, i.e., PLAINTEXT_2A = CIPHERTEXT_2A XOR KEYSTREAM_2A</t>
            </li>
          </ul>
          <t>In contrast to <xref section="5.3.3" sectionFormat="of" target="RFC9528"/>, ID_CRED_R is not made available to the application in step 4, and steps 5 and 6 are skipped.</t>
        </section>
      </section>
      <section anchor="message-3">
        <name>Message 3</name>
        <section anchor="formatting-of-message-3">
          <name>Formatting of Message 3</name>
          <t>Message 3 is formatted as specified in <xref section="5.4.1" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="initiator-composition-of-message-3">
          <name>Initiator Composition of Message 3</name>
          <ul spacing="normal">
            <li>
              <t>CIPHERTEXT_3A is computed using a binary additive stream cipher with a keystream generated by EDHOC_Expand, applied to the following plaintext:  </t>
              <ul spacing="normal">
                <li>
                  <t>PLAINTEXT_3A = ( ID_CRED_PSK / bstr / -24..23, CIPHERTEXT_3B )      </t>
                  <ul spacing="normal">
                    <li>
                      <t>If ID_CRED_PSK contains a single 'kid' parameter, i.e., ID_CRED_PSK = { 4 : kid_PSK }, then the compact encoding is applied, see <xref section="3.5.3.2" sectionFormat="of" target="RFC9528"/>.</t>
                    </li>
                    <li>
                      <t>For the case of plaintext_length exceeding the EDHOC_KDF output size, see <xref section="G" sectionFormat="of" target="RFC9528"/>.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>Compute KEYSTREAM_3A as in <xref target="key-der"/>.</t>
                </li>
                <li>
                  <t>CIPHERTEXT_3A = PLAINTEXT_3A XOR KEYSTREAM_3A</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIPHERTEXT_3B is the 'ciphertext' of COSE_Encrypt0 object as defined in Section <xref target="RFC9528" section="5.2" sectionFormat="bare"/> and Section <xref target="RFC9528" section="5.3" sectionFormat="bare"/> of <xref target="RFC9528"/>, with the EDHOC AEAD algorithm of the selected cipher suite, using the encryption key K_3, the initialization vector IV_3 (if used by the AEAD algorithm), the parameters described in <xref section="5.2" sectionFormat="of" target="RFC9528"/>, plaintext PLAINTEXT_3B and the following parameters as input:  </t>
              <ul spacing="normal">
                <li>
                  <t>protected = h''</t>
                </li>
                <li>
                  <t>external_aad = &lt;&lt; ID_CRED_PSK, TH_3, CRED_I, CRED_R &gt;&gt;</t>
                </li>
                <li>
                  <t>K_3 and IV_3 as defined in <xref target="key-der"/></t>
                </li>
                <li>
                  <t>PLAINTEXT_3B = ( ? EAD_3 )</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>The Initiator computes TH_4 as defined in <xref target="key-der"/>.</t>
          <t>There is no need for MAC_3 or signature, since AEAD's built-in integrity and the use of PSK-based key derivation provides implicit authentication of the Initiator.</t>
        </section>
        <section anchor="responder-processing-of-message-3">
          <name>Responder Processing of Message 3</name>
          <t>Upon receiving message_3, the Responder proceeds as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Derive K_3 and IV_3 as defined in <xref target="key-der"/>.</t>
            </li>
            <li>
              <t>Parse the structure of message_3, which consists of a stream-cipher encrypted structure, CIPHERTEXT_3A = PLAINTEXT_3A XOR KEYSTREAM_3A, where PLAINTEXT_3A = ( ID_CRED_PSK, CIPHERTEXT_3B ) and CIPHERTEXT_3B is the inner AEAD-encrypted object.</t>
            </li>
            <li>
              <t>Generate KEYSTREAM_3A with the same method the Initiator used.</t>
            </li>
            <li>
              <t>Decrypt CIPHERTEXT_3A using binary XOR with KEYSTREAM_3A to recover PLAINTEXT_3A.</t>
            </li>
            <li>
              <t>Use ID_CRED_PSK to identify the authentication credentials and retrieve PSK.</t>
            </li>
            <li>
              <t>AEAD-decrypt CIPHERTEXT_3B using:  </t>
              <ul spacing="normal">
                <li>
                  <t>K_3, IV_3</t>
                </li>
                <li>
                  <t>external_aad = &lt;&lt; ID_CRED_PSK, TH_3, CRED_I, CRED_R &gt;&gt;</t>
                </li>
                <li>
                  <t>protected = h''</t>
                </li>
                <li>
                  <t>AEAD algorithm from cipher suite</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>If AEAD verification fails, this indicates a processing problem or that the message was tampered with. If it succeeds, the Responder concludes that the Initiator possesses the PSK, correctly derived TH_3, and is actively participating in the protocol.</t>
          <t>Finally, the Responder computes TH_4 as defined in <xref target="key-der"/>.</t>
          <t>No MAC_3 or signature is needed, as the AEAD tag guarantees both integrity and authenticity in this symmetric setting.</t>
        </section>
      </section>
      <section anchor="message-4">
        <name>Message 4</name>
        <t>Message 4 is formatted and processed as specified in <xref section="5.5" sectionFormat="of" target="RFC9528"/>.</t>
        <t>After successfully verifying message_4, or another fourth message from the Responder protected with an exported application key such as an OSCORE message, the Initiator is assured that the Responder has derived PRK_out (key confirmation) and that no other party can derive this key.</t>
        <t>The Initiator <bcp14>MUST NOT</bcp14> persistently store PRK_out or application keys until it has successfully verified such a fourth message and the application has authenticated the Responder.</t>
        <t>Compared to <xref target="RFC9528"/>, the fourth message not only provides key confirmation but also authenticates the Responder. For mutual authentication a fourth message is therefore mandatory.</t>
      </section>
    </section>
    <section anchor="psk-resumption">
      <name>PSK usage for Session Resumption</name>
      <t>This section specifies how EDHOC-PSK is used for session resumption in EDHOC. The EDHOC_Exporter, as defined in <xref section="4.2" sectionFormat="of" target="RFC9528"/>, is used to derive the resumption parameters rPSK and rKID:</t>
      <figure anchor="fig-resumption">
        <name>Resumption Parameters.</name>
        <artwork align="center"><![CDATA[
rPSK         = EDHOC_Exporter( TBD2, h'', resumption_psk_length )
rKID         = EDHOC_Exporter( TBD3, h'', id_cred_psk_length )
rID_CRED_PSK = { 4 : rKID }
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>resumption_psk_length defaults to the key_length, i.e., the length of the encryption key of the EDHOC AEAD algorithm in the selected cipher suite of the session where the EDHOC_Exporter is invoked.</t>
        </li>
        <li>
          <t>id_cred_psk_length defaults to 2 bytes.</t>
        </li>
      </ul>
      <t>A peer that has successfully completed an EDHOC session, regardless of the authentication method used or whether the session was a PSK resumption, <bcp14>MUST</bcp14> generate a resumption key for the next resumption within the current "session series", provided that PSK resumption is supported.</t>
      <t>To ensure both peers share the same resumption key, when a resumption session is run using rPSK_i as the resumption key:</t>
      <ul spacing="normal">
        <li>
          <t>The Responder <bcp14>MAY</bcp14> delete the previous resumption key rPSK_(i-1), if present, after successfully verifying message_3. At that point the Responder can be certain that the Initiator has access to the current resumption key rPSK_i.</t>
        </li>
        <li>
          <t>The Initiator <bcp14>MAY</bcp14> delete rPSK_i after successfully verifying the fourth message. At that point, the Initiator can be certain that the Responder already has derived the next resumption key, rPSK_(i+1).</t>
        </li>
        <li>
          <t>The Responder <bcp14>MAY</bcp14> delete rPSK_i after successfully verifying a fifth message from the Initiator protected with an exported application key such as an OSCORE message, if present. At that point, the Initiator can be certain that the Responder already has derived the next resumption key, rPSK_(i+1).</t>
        </li>
      </ul>
      <section anchor="cipher-suite-requirements-for-resumption">
        <name>Cipher Suite Requirements for Resumption</name>
        <t>When using a resumption PSK derived from a previous EDHOC exchange:</t>
        <ol spacing="normal" type="1"><li>
            <t>The resumption PSK <bcp14>MUST</bcp14> only be used with the same cipher suite from which it was derived, or with a cipher suite that provides stronger security guarantees.</t>
          </li>
          <li>
            <t>Implementations <bcp14>MUST</bcp14> maintain a mapping between each resumption PSK and its originating cipher suite to enforce this requirement.</t>
          </li>
          <li>
            <t>If a resumption PSK is offered with a cipher suite that provides weaker security, the Responder <bcp14>MUST</bcp14> reject the ongoing EDHOC session.</t>
          </li>
        </ol>
      </section>
      <section anchor="privacy-considerations-for-resumption">
        <name>Privacy Considerations for Resumption</name>
        <t>When using resumption PSKs:</t>
        <ul spacing="normal">
          <li>
            <t>ID_CRED_PSK is not exposed to passive attackers, and under normal operation it is not reused. Reuse of the same ID_CRED_PSK can occur due to transmission errors or when a peer loses its stored resumption key. An active attacker can obtain the value of ID_CRED_PSK and force its reuse. This aligns with the security goals of EDHOC-PSK, which are to provide identity protection against passive attackers, but not against active attackers.</t>
          </li>
        </ul>
      </section>
      <section anchor="security-considerations-for-resumption">
        <name>Security Considerations for Resumption</name>
        <ul spacing="normal">
          <li>
            <t>Resumption PSKs <bcp14>MUST NOT</bcp14> be used for purposes other than EDHOC session resumption.</t>
          </li>
          <li>
            <t>Resumption PSKs <bcp14>MUST</bcp14> be securely stored with the same level of protection as the session keys.</t>
          </li>
          <li>
            <t>Parties <bcp14>SHOULD</bcp14> prevent excessive reuse of the same resumption PSK.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="edhoc-psk-and-extensible-authentication-protocol-eap">
      <name>EDHOC-PSK and Extensible Authentication Protocol (EAP)</name>
      <t>EDHOC with PSK authentication has several important use cases within the Extensible Authentication Protocol (EAP).</t>
      <t>One use case is the resumption of a session established with the EAP method EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, regardless of the EDHOC-based authentication method originally used in that session. This is similar to the resumption mechanism in EAP-TLS 1.3 <xref target="RFC9190"/>. Resumption reduces the number of round trips and allows the EAP-EDHOC server to avoid database lookups that might be required during an initial handshake. If the server accepts resumption, the resumed session is considered authenticated and securely bound to the prior authentication or resumption.</t>
      <t>The use of resumption with EAP-EDHOC is optional for the peer, but it is <bcp14>RECOMMENDED</bcp14> whenever a valid rPSK is available. On the server side, resumption acceptance is also optional, but it is <bcp14>RECOMMENDED</bcp14> if the rPSK remains valid. The server may, however, require a new initial handshake by refusing resumption. It is further <bcp14>RECOMMENDED</bcp14> to use Network Access Identifiers (NAIs) with the same realm in the identity response during both the full handshake and resumption. For example, the NAI @realm can safely be reused since it does not expose information that links a user’s resumption attempt with the original full handshake.</t>
      <t>EAP-EDHOC-PSK also provides a significant improvement over EAP-PSK <xref target="RFC4764"/>, which lacks support for identity protection, cryptographic agility, and ephemeral key exchange, now considered essential for meeting current security requirements. Without perfect forward secrecy, compromise of the PSK enables a passive attacker to decrypt both past and future sessions. Note that PSK authentication is not allowed in EAP-TLS <xref target="RFC9190"/>.</t>
    </section>
    <section anchor="edhoc-psk-and-oscore">
      <name>EDHOC-PSK and OSCORE</name>
      <t>Before sending message_3 the Initiator can derive PRK_out and create an OSCORE-protected request. The request payload <bcp14>MAY</bcp14> convey both an EDHOC message_3 and OSCORE-protected data combined together, as described in <xref section="3" sectionFormat="of" target="RFC9668"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The EDHOC-PSK authentication method introduces deviations from the initial specification of EDHOC <xref target="RFC9528"/>. This section analyzes the security implications of these changes and discusses the security properties of EDHOC authenticated with PSK.</t>
      <section anchor="identity-protection">
        <name>Identity Protection</name>
        <t>In EDHOC-PSK, the identifier ID_CRED_PSK in message_3 is transported inside an AEAD-protected ciphertext derived from the ephemeral shared secret G_XY. This provides identity protection of both the Initiator and Responder against passive attackers.  This contrasts with the asymmetric authentication methods in <xref section="9.1" sectionFormat="of" target="RFC9528"/>, which protect the Initiator’s identity against active attackers and the Responder’s identity against passive ones.</t>
        <t>However, EDHOC-PSK does not satisfy the stronger identity protection notion defined by Cottier and Pointcheval <xref target="Cottier-Pointcheval"/>, which requires security against an active Man-in-the-Middle (MitM) attacker. Under this stronger notion, an active attacker must not only be prevented from learning the identity but also from forcing a specific identity to be used in a way that allows them to later distinguish between the legitimate owner of a secret (the PSK) and any other user. Because message_3 is protected using AEAD, any modification by an attacker causes authentication failure and the protocol run aborts. Therefore, the attacker cannot learn the identity by observing successful decryptions of modified ciphertexts. However, if an implementation exposes different externally observable behavior depending on the reason for aborting (e.g., distinguishing between AEAD failure and unknown credential referenced), an active attacker may be able to test candidate credential identifiers by observing which error is returned.</t>
        <t>To prevent such leakage, implementations of EDHOC-PSK:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> treat all failures related to message_3 processing (including AEAD verification failure, unknown credential identifiers, or malformed inputs) as indistinguishable from the perspective of an external observer;</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> ensure that processing of message_3 is performed in a manner that does not introduce secret-dependent timing differences.</t>
          </li>
        </ul>
        <t>When these requirements are met, an active attacker observing aborted sessions learns no information about the identity associated with a given PSK.</t>
      </section>
      <section anchor="mutual-authentication">
        <name>Mutual Authentication</name>
        <t>EDHOC-PSK provides mutual authentication and explicit key confirmation through an additional message that demonstrates possession of the PSK. This may be message_4 or an application message (e.g., an OSCORE message) protected with a key derived from EDHOC.</t>
        <t>To mitigate reflection or Selfie attacks, the identities in CRED_I and CRED_R <bcp14>MUST</bcp14> be distinct.</t>
        <t>EDHOC-PSK does not provide Key Compromise Impersonation (KCI) protection. Compromise of the long-term PSK enables an attacker to impersonate either the Initiator or the Responder to the other party. While compromise of the ephemeral Diffie-Hellman secret only affects the specific session in which it is used, compromise of the PSK allows full active impersonation in all future sessions that rely on the compromised key.</t>
      </section>
      <section anchor="protection-of-external-authorization-data-ead">
        <name>Protection of External Authorization Data (EAD)</name>
        <t>As in <xref target="RFC9528"/>, EDHOC-PSK ensures the confidentiality and integrity of External Authorization Data (EAD). The security guarantees for EAD fields remain unchanged from the original EDHOC specification.</t>
      </section>
      <section anchor="cryptographic-strength">
        <name>Cryptographic strength</name>
        <t>EDHOC-PSK provides a minimum of 64-bit security against online brute force attacks and, provided the PSK has sufficient entropy, a minimum of 128-bit security against offline brute force attacks. If the PSK entropy is lower, the effective offline security is limited by the entropy of the PSK. To break 64-bit security against online brute force, an attacker would on average have to send 4.3 billion messages per second for 68 years, which is infeasible in constrained IoT radio technologies. A successful forgery of the AEAD authentication tag in EDHOC-PSK breaks the security of all future application data derived from the session, while a forgery in the subsequent application protocol (e.g., OSCORE <xref target="RFC8613"/>) typically only breaks the security of the forged packet.</t>
      </section>
      <section anchor="downgrade-protection">
        <name>Downgrade Protection</name>
        <t>Following <xref target="RFC9528"/>, EDHOC-PSK must support cryptographic agility, including modularity and negotiation of preferred cryptographic primitives. In message 1, the Initiator sends an ordered list of supported cipher suites (SUITES_I). The Responder verifies that the suite selected by the Initiator is the most preferred option in SUITES_I that is mutually supported. If this condition is not met, the Responder <bcp14>MUST</bcp14> abort the session.</t>
      </section>
      <section anchor="post-quantum-considerations">
        <name>Post Quantum Considerations</name>
        <t>Advances in quantum computing suggest that a Cryptographically Relevant Quantum Computer (CRQC) may eventually be realized. Such a machine would render many asymmetric algorithms, including Elliptic Curve Diffie-Hellman (ECDH), insecure.</t>
        <t>EDHOC-PSK derives authentication and session keys primarily from a symmetric PSK, which provides quantum resistance even when combined with ECDHE. However, if a CRQC is realized, the ECDHE contribution degenerates to providing only randomness. In that case, EDHOC-PSK with ECDHE offers neither identity protection nor Perfect Forward Secrecy (PFS) against quantum adversaries. Moreover, if the PSK is compromised, a passive quantum attacker could decrypt both past and future sessions.</t>
        <t>By contrast, combining EDHOC-PSK with a quantum-resistant Key Encapsulation Mechanism (KEM), such as ML-KEM, ensures both identity protection and PFS even against quantum-capable attackers. Future EDHOC cipher suites incorporating ML-KEM are expected to be registered; see <xref target="I-D.spm-lake-pqsuites"/>.</t>
      </section>
      <section anchor="confidentiality">
        <name>Confidentiality</name>
        <t>The primary security goal of EDHOC-PSK is to establish a shared secret known only to the authenticated Initiator and Responder. The protocol ensures key indistinguishability by relying on the security of the PSK and the ephemeral key shares, making it computationally infeasible for an adversary to distinguish the true session secret from a random value.</t>
      </section>
      <section anchor="independence-of-session-keys">
        <name>Independence of Session Keys</name>
        <t>NIST requires that an ephemeral private key be used in only one key-establishment transaction (<xref target="SP-800-56A"/>, Section 5.6.3.3). This requirement preserves session key independence and forward secrecy, and EDHOC-PSK complies with it. By deriving the final shared secret from a fresh, session-specific ephemeral secret (G_XY), the protocol ensures that even if the PSK is compromised, an attacker is unable to decrypt the past sessions. Similarly, if a session secret were to be compromised, future session secrets remain protected by fresh ephemeral keys.</t>
        <t>In other protocols, reuse of ephemeral keys, especially when combined with missing public key validation, has led to severe vulnerabilities, enabling attackers to recover “ephemeral” private keys and compromise both past and future sessions between two legitimate parties. Assuming breach and minimizing the impact of compromise are fundamental principles of zero-trust security.</t>
      </section>
      <section anchor="unified-approach-and-recommendations">
        <name>Unified Approach and Recommendations</name>
        <t>For use cases where application data is transmitted, it can be sent together with message_3, maintaining efficiency. In applications such as EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, where no application data is exchanged between Initiator and Responder, message_4 is mandatory. In such cases, EDHOC-PSK does not increase the total number of messages. Other implementations may replace message_4 with an OSCORE-protected message. In this case, the following requirement applies: The Initiator <bcp14>SHALL NOT</bcp14> persistently store PRK_out or derived application keys until successfully verifying message_4 or a message protected with an exported application key (e.g., an OSCORE message). This ensures that key material is stored only after its authenticity is confirmed, thereby strengthening privacy by preventing premature storage of potentially compromised keys. Finally, the order of authentication (i.e., whether the Initiator or the Responder authenticates first) is not relevant in EDHOC-PSK. While this ordering affects privacy properties in the asymmetric methods of <xref target="RFC9528"/>, it has no significant impact in EDHOC-PSK.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requires the following IANA actions.</t>
      <section anchor="edhoc-method-type-registry">
        <name>EDHOC Method Type Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC Method Type" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)".</t>
        <table anchor="tab-method-psk">
          <name>Addition to the EDHOC Method Type Registry.</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Initiator Authentication Key</th>
              <th align="left">Responder Authentication Key</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD4</td>
              <td align="left">PSK</td>
              <td align="left">PSK</td>
            </tr>
          </tbody>
        </table>
        <t>NOTE: Suggested value: TBD4 = 4.
RFC Editor: Remove this note.</t>
      </section>
      <section anchor="edhoc-exporter-label-registry">
        <name>EDHOC Exporter Label Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC Exporter Label" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)".</t>
        <table anchor="tab-exporter-psk">
          <name>Additions to the EDHOC Exporter Label Registry.</name>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">Resumption PSK</td>
              <td align="left">IETF</td>
              <td align="left">Section 7</td>
            </tr>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">Resumption kid</td>
              <td align="left">IETF</td>
              <td align="left">Section 7</td>
            </tr>
          </tbody>
        </table>
        <t>NOTE: Suggested values: TBD2 = 2, TBD3 = 3.
RFC Editor: Remove this note.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <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="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <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 Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including 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="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </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="I-D.ietf-emu-eap-edhoc">
          <front>
            <title>Using the Extensible Authentication Protocol (EAP) with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
            <author fullname="Dan Garcia-Carrillo" initials="D." surname="Garcia-Carrillo">
              <organization>University of Oviedo</organization>
            </author>
            <author fullname="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Francisco Lopez-Gomez" initials="F." surname="Lopez-Gomez">
              <organization>University of Murcia</organization>
            </author>
            <date day="29" month="January" year="2026"/>
            <abstract>
              <t>   The Extensible Authentication Protocol (EAP), defined in RFC 3748,
   provides a standard mechanism for support of multiple authentication
   methods.  This document specifies the EAP authentication method EAP-
   EDHOC, based on Ephemeral Diffie-Hellman Over COSE (EDHOC).  EDHOC is
   a lightweight security handshake protocol, enabling authentication
   and establishment of shared secret keys suitable in constrained
   settings.  This document also provides guidance on authentication and
   authorization for EAP-EDHOC.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-07"/>
        </reference>
        <reference anchor="I-D.spm-lake-pqsuites">
          <front>
            <title>Quantum-Resistant Cipher Suites for EDHOC</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   The Lightweight Authenticated Key Exchange (LAKE) protocol, Ephemeral
   Diffie-Hellman over COSE (EDHOC), achieves post-quantum security by
   adding new cipher suites with quantum-resistant algorithms, such as
   ML-DSA for digital signatures and ML-KEM for key exchange.  This
   document specifies how EDHOC operates in a post-quantum setting using
   both signature-based and PSK-based authentication methods, and
   defines corresponding cipher suites.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-spm-lake-pqsuites-01"/>
        </reference>
        <reference anchor="SP-800-56A" target="https://doi.org/10.6028/NIST.SP.800-56Ar3">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
            <author initials="E." surname="Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-56A Revision 3"/>
        </reference>
        <reference anchor="Cottier-Pointcheval" target="https://doi.org/10.1007/978-3-031-30122-3_1">
          <front>
            <title>Security Analysis of Improved EDHOC Protocol</title>
            <author initials="B." surname="Cottier">
              <organization/>
            </author>
            <author initials="D." surname="Pointcheval">
              <organization/>
            </author>
            <date year="2022" month="December"/>
          </front>
          <seriesInfo name="FPS" value="International Symposium on Foundations and Practice of Security"/>
        </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="RFC4764">
          <front>
            <title>The EAP-PSK Protocol: A Pre-Shared Key Extensible Authentication Protocol (EAP) Method</title>
            <author fullname="F. Bersani" initials="F." surname="Bersani"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document specifies EAP-PSK, an Extensible Authentication Protocol (EAP) method for mutual authentication and session key derivation using a Pre-Shared Key (PSK). EAP-PSK provides a protected communication channel when mutual authentication is successful for both parties to communicate over. This document describes the use of this channel only for protected exchange of result indications, but future EAP-PSK extensions may use the channel for other purposes. EAP-PSK is designed for authentication over insecure networks such as IEEE 802.11. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4764"/>
          <seriesInfo name="DOI" value="10.17487/RFC4764"/>
        </reference>
        <reference anchor="RFC9190">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
      </references>
    </references>
    <?line 533?>

<section anchor="CDDL">
      <name>CDDL Definitions</name>
      <t>This section compiles the CDDL definitions for convenience, incorporating errata filed against <xref target="RFC9528"/>.</t>
      <sourcecode type="CDDL"><![CDATA[
suites = [ 2* int ] / int

ead = (
  ead_label : int,
  ? ead_value : bstr,
)

EAD_1 = (1* ead)
EAD_2 = (1* ead)
EAD_3 = (1* ead)
EAD_4 = (1* ead)

message_1 = (
  METHOD : int,
  SUITES_I : suites,
  G_X : bstr,
  C_I : bstr / -24..23,
  ? EAD_1,
)

message_2 = (
  G_Y_CIPHERTEXT_2 : bstr,
)

PLAINTEXT_2A = (
  C_R : bstr / -24..23,
  ? EAD_2,
)

message_3 = (
  CIPHERTEXT_3 : bstr,
)

PLAINTEXT_3A = (
  ID_CRED_PSK : header_map / bstr / -24..23,
  CIPHERTEXT_3B : bstr,
)

PLAINTEXT_3B = (
  ? EAD_3,
)

message_4 = (
  CIPHERTEXT_4 : bstr,
)

PLAINTEXT_4 = (
  ? EAD_4,
)

error = (
  ERR_CODE : int,
  ERR_INFO : any,
)

info = (
  info_label : int,
  context : bstr,
  length : uint,
)
]]></sourcecode>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <section anchor="message1">
        <name>message_1</name>
        <t>Both endpoints are authenticated with Pre-Shared Keys (METHOD = 4)</t>
        <t>NOTE: Assuming TBD4 = 4, to be confirmed by IANA.
RFC Editor: Remove this note.</t>
        <artwork><![CDATA[
METHOD (CBOR Data Item) (1 byte)
04
]]></artwork>
        <t>The initiator selects cipher suite 02. A single cipher suite is encoded as an int:</t>
        <artwork><![CDATA[
SUITES_I (CBOR Data Item) (1 byte)
02
]]></artwork>
        <t>The Initiator creates an ephemeral key pair for use with the EDHOC key exchange algorithm:</t>
        <artwork><![CDATA[
Initiator's ephemeral private key
X (Raw Value) (32 bytes)
09 97 2D FE F1 EA AB 92 6E C9 6E 80 05 FE D2 9F
70 FF BF 4E 36 1C 3A 06 1A 7A CD B5 17 0C 10 E5
]]></artwork>
        <artwork><![CDATA[
Initiator's ephemeral public key
G_X (Raw Value) (32 bytes)
7E C6 81 02 94 06 02 AA B5 48 53 9B F4 2A 35 99
2D 95 72 49 EB 7F 18 88 40 6D 17 8A 04 C9 12 DB
]]></artwork>
        <t>The Initiator selects its connection identifier C_I to be the byte string 0xA, which is encoded as 0xA since it is represented by the 1-byte CBOR int 10:</t>
        <artwork><![CDATA[
Connection identifier chosen by the Initiator
C_I (CBOR Data Item) (1 byte)
0A
]]></artwork>
        <t>No external authorization data</t>
        <artwork><![CDATA[
EAD_1 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Initiator constructs message_1:</t>
        <artwork><![CDATA[
message_1 (CBOR Sequence) (37 bytes)
04 02 58 20 7E C6 81 02 94 06 02 AA B5 48 53 9B
F4 2A 35 99 2D 95 72 49 EB 7F 18 88 40 6D 17 8A
04 C9 12 DB 0A
]]></artwork>
      </section>
      <section anchor="message2">
        <name>message_2</name>
        <t>The Responder supports the most preferred and selected cipher suite 02, so SUITES_I is acceptable.</t>
        <t>The Responder creates an ephemeral key pair for use with the EDHOC key exchange algorithm:</t>
        <artwork><![CDATA[
Responder's ephemeral private key
Y (Raw Value) (32 bytes)
1E 1C 8F 2D F1 AA 71 10 B3 9F 33 BA 5E A8 DC CF
31 41 1E B3 3D 4F 9A 09 4C F6 51 92 D3 35 A7 A3
]]></artwork>
        <artwork><![CDATA[
Responder's ephemeral public key
G_Y (Raw Value) (32 bytes)
ED 15 6A 62 43 E0 AF EC 9E FB AA BC E8 42 9D 5A
D5 E4 E1 C4 32 F7 6A 6E DE 8F 79 24 7B B9 7D 83
]]></artwork>
        <t>The Responder selects its connection identifier C_R to be the byte string 0x05, which is encoded as 0x05 since it is represented by the 1-byte CBOR int 05:</t>
        <artwork><![CDATA[
Connection identifier chosen by the Responder
C_R (CBOR Data Item) (1 byte)
05
]]></artwork>
        <t>The transcript hash TH_2 is calculated using the EDHOC hash algorithm:
TH_2 = H( G_Y, H(message_1) ), where H(message_1) is:</t>
        <artwork><![CDATA[
H(message_1) (Raw Value) (32 bytes)
19 CC 2D 2A 95 7E DD 80 10 90 42 FD E6 CC 20 C2
4B 6A 34 BC 21 C6 D4 9F EA 89 5D 4C 75 92 34 0E
]]></artwork>
        <artwork><![CDATA[
H(message_1) (CBOR Data Item) (34 bytes)
58 20 19 CC 2D 2A 95 7E DD 80 10 90 42 FD E6 CC 20
C2 4B 6A 34 BC 21 C6 D4 9F EA 89 5D 4C 75 92 34 0E
]]></artwork>
        <artwork><![CDATA[
TH_2 (Raw Value) (32 bytes)
5B 48 34 AE 63 0A 8A 0E D0 B0 C6 F3 66 42 60 4D
01 64 78 C4 BC 81 87 BB 76 4D D4 0F 2B EE 3D DE
]]></artwork>
        <artwork><![CDATA[
TH_2 (CBOR Data Item) (34 bytes)
58 20 5B 48 34 AE 63 0A 8A 0E D0 B0 C6 F3 66 42 60
4D 01 64 78 C4 BC 81 87 BB 76 4D D4 0F 2B EE 3D DE
]]></artwork>
        <t>PRK_2e is specified in <xref section="4.1.2" sectionFormat="of" target="RFC9528"/>.
To compute it, the Elliptic Curve Diffie-Hellman (ECDH) shared secret G_XY is needed.
It is computed from G_X and Y or G_Y and X:</t>
        <artwork><![CDATA[
G_XY (Raw Value) (ECDH shared secret) (32 bytes)
2F 4A 79 9A 5A B0 C5 67 22 0C B6 72 08 E6 CF 8F
4C A5 FE 38 5D 1B 11 FD 9A 57 3D 41 60 F3 B0 B2
]]></artwork>
        <t>Then, PRK_2e is calculated as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9528"/></t>
        <artwork><![CDATA[
PRK_2e (Raw Value) (32 bytes)
D0 39 D6 C3 CF 35 EC A0 CD F8 19 E3 25 79 C7 7E
1F 30 3E FC C4 36 20 50 99 48 A9 FD 47 FB D9 29
]]></artwork>
        <t>Since the Responder authenticates using PSK, PRK_3e2m = PRK_2e.</t>
        <artwork><![CDATA[
PRK_3e2m (Raw Value) (32 bytes)
D0 39 D6 C3 CF 35 EC A0 CD F8 19 E3 25 79 C7 7E
1F 30 3E FC C4 36 20 50 99 48 A9 FD 47 FB D9 29
]]></artwork>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_2 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder constructs PLAINTEXT_2A:</t>
        <artwork><![CDATA[
PLAINTEXT_2A (CBOR Sequence) (1 byte)
05
]]></artwork>
        <t>The Responder computes KEYSTREAM_2 as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9528"/></t>
        <artwork><![CDATA[
KEYSTREAM_2A (Raw Value) (1 byte)
EC
]]></artwork>
        <t>The Responder calculates CIPHERTEXT_2B as XOR between PLAINTEXT_2A and KEYSTREAM_2:</t>
        <artwork><![CDATA[
CIPHERTEXT_2B (CBOR Sequence) (1 byte)
E9
]]></artwork>
        <t>The Responder constructs message_2 as defined in <xref section="5.3.1" sectionFormat="of" target="RFC9528"/>:</t>
        <artwork><![CDATA[
message_2 (CBOR Sequence) (35 bytes)
58 21 ED 15 6A 62 43 E0 AF EC 9E FB AA BC E8 42
9D 5A D5 E4 E1 C4 32 F7 6A 6E DE 8F 79 24 7B B9
7D 83 E9
]]></artwork>
      </section>
      <section anchor="message3">
        <name>message_3</name>
        <t>The Initiator computes PRK_4e3m, as described in Section 4, using SALT_4e3m and PSK:</t>
        <artwork><![CDATA[
SALT_4e3m (Raw Value) (32 bytes)
ED E0 76 12 14 83 19 EB 72 59 52 71 2A 54 2C 20
97 61 0A 13 9C 4A 14 1C 8E C5 7A 5F 62 E5 E9 DD
]]></artwork>
        <artwork><![CDATA[
PSK (Raw Value) (16 bytes)
50 93 0F F4 62 A7 7A 35 40 CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
PRK_4e3m (Raw Value) (32 bytes)
C6 2C C0 4F 55 D0 08 CF EB 8A 68 1E 84 63 FD DD
A2 FF 6C A8 4B 9E D6 11 6C 86 5C D8 1E 06 24 60
]]></artwork>
        <t>The transcript hash TH_3 is calculated using the EDHOC hash algorithm:</t>
        <t>TH_3 = H( TH_2, PLAINTEXT_2A )</t>
        <artwork><![CDATA[
TH_3 (Raw Value) (32 bytes)
38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D 32
74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <artwork><![CDATA[
TH_3 (CBOR Data Item) (34 bytes)
58 20 38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D
32 74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_3 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Initiator constructs firstly PLAINTEXT_3B as defined in Section 5.3.1.:</t>
        <artwork><![CDATA[
PLAINTEXT_3B (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>It then computes CIPHERTEXT_3B as defined in Section 5.3.2. It uses ID_CRED_PSK, CRED_I, CRED_R and TH_3 as external_aad:</t>
        <artwork><![CDATA[
ID_CRED_PSK (CBOR Data Item) (1 byte)
10
]]></artwork>
        <artwork><![CDATA[
CRED_I (Raw Value) (38 bytes)
A2 02 69 69 6E 69 74 69 61 74 6F 72 08 A1 01 A3
01 04 02 41 10 20 50 50 93 0F F4 62 A7 7A 35 40
CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
CRED_R (Raw Value) (38 bytes)
A2 02 69 72 65 73 70 6F 6E 64 65 72 08 A1 01 A3
01 04 02 41 10 20 50 50 93 0F F4 62 A7 7A 35 40
CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
TH_3 (Raw Value) (32 bytes)
38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D 32
74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <t>The Initiator computes K_3 and IV_3</t>
        <artwork><![CDATA[
K_3 (Raw Value) (16 bytes)
96 6A 57 9C EA 26 CA 3C EB 44 2A C7 27 EA B2 32
]]></artwork>
        <artwork><![CDATA[
IV_3 (Raw Value) (13 bytes)
5B F1 AD 0E 4F FB 96 76 D7 8D F2 3F 6E
]]></artwork>
        <t>It then computes CIPHERTEXT_3B:</t>
        <artwork><![CDATA[
CIPHERTEXT_3B (CBOR Sequence) (9 bytes)
48 7F 34 49 6F 3F 69 C2 88
]]></artwork>
        <t>The Initiator computes KEYSTREAM_3A as defined in Section 4:</t>
        <artwork><![CDATA[
KEYSTREAM_3A (Raw Value) (10 bytes)
03 E5 D1 57 1B BC 93 32 47 1B
]]></artwork>
        <t>It then calculates PLAINTEXT_3A as stated in Section 5.3.2.:</t>
        <artwork><![CDATA[
PLAINTEXT_3A (CBOR Sequence) (10 bytes)
10 48 7F 34 49 6F 3F 69 C2 88
]]></artwork>
        <t>It then uses KEYSTREAM_3A to derive CIPHERTEXT_3A:</t>
        <artwork><![CDATA[
CIPHERTEXT_3A (CBOR Sequence) (10 bytes)
13 AD AE 63 52 D3 AC 5B 85 93
]]></artwork>
        <t>The Initiator computes message_3 as defined in Section 5.3.2.:</t>
        <artwork><![CDATA[
message_3 (CBOR Sequence) (11 bytes)
4A 13 AD AE 63 52 D3 AC 5B 85 93
]]></artwork>
        <t>The transcript hash TH_4 is calculated using the EDHOC hash algorithm:
TH_4 = H( TH_3, ID_CRED_PSK, ? EAD_3, CRED_I, CRED_R )</t>
        <artwork><![CDATA[
TH_4 (Raw Value) (32 bytes)
11 48 1B 9A FE F9 5C 67 9A 52 03 82 17 EE DD 0E
0C E0 8F AA 86 5B DC 82 55 11 CA 6D C3 91 94 13
]]></artwork>
        <artwork><![CDATA[
TH_4 (CBOR Data Item) (34 bytes)
58 20 11 48 1B 9A FE F9 5C 67 9A 52 03 82 17 EE DD
0E 0C E0 8F AA 86 5B DC 82 55 11 CA 6D C3 91 94 13
]]></artwork>
      </section>
      <section anchor="message4">
        <name>message_4</name>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_4 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder constructs PLAINTEXT_4:</t>
        <artwork><![CDATA[
PLAINTEXT_4 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder computes K_4 and IV_4:</t>
        <artwork><![CDATA[
K_4 (Raw Value) (16 bytes)
BC AB 1D F0 13 8D C0 5C 88 5F D3 71 E9 50 C6 7F
]]></artwork>
        <artwork><![CDATA[
IV_4 (Raw Value) (13 bytes)
41 11 34 D0 E0 C5 08 D9 5D A7 C3 AC DC
]]></artwork>
        <t>The Responder computes message_4:</t>
        <artwork><![CDATA[
message_4 (CBOR Sequence) (9 bytes)
48 8A DD 93 DB 40 48 59 F9
]]></artwork>
      </section>
      <section anchor="prkout-and-prkexporter">
        <name>PRK_out and PRK_exporter</name>
        <t>After the exchange, the following PRK_out and PRK_exporter are derived by both entities:</t>
        <artwork><![CDATA[
PRK_out (Raw Value) (32 bytes)
BB A6 DE D3 B0 38 D2 32 37 74 D8 92 14 A5 13 A2
49 16 F0 42 29 6C 7C 72 9C D1 A6 7B 43 6F B4 14
]]></artwork>
        <artwork><![CDATA[
PRK_exporter (Raw Value) (32 bytes)
2F CD 08 C0 C0 10 77 C6 D6 48 6B 9F 9B 67 70 20
E8 D6 8F 04 BC DC CE 71 5D D2 77 ED 25 93 1B EF
]]></artwork>
      </section>
      <section anchor="rpsk-and-rkid">
        <name>rPSK and rKID</name>
        <t>Both peers generate a resumption key for use in the next resumption attempt, as explained in <xref target="psk-resumption"/>:</t>
        <artwork><![CDATA[
rPSK (Raw Value) (16 bytes)
5B 0B C7 63 F6 EA D1 7E 0E EA ED FD D3 36 A5 EE
]]></artwork>
        <artwork><![CDATA[
rKID (Raw Value) (1 byte)
55
]]></artwork>
      </section>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t>RFC Editor: Please remove this appendix.</t>
      <ul spacing="normal">
        <li>
          <t>From -06 to -07  </t>
          <ul spacing="normal">
            <li>
              <t>Fixed test vectors</t>
            </li>
            <li>
              <t>Updated security considerations after formal analysis</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -05 to -06  </t>
          <ul spacing="normal">
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -04 to -05  </t>
          <ul spacing="normal">
            <li>
              <t>Fixed misbinding attacks and resumption</t>
            </li>
            <li>
              <t>Updated privacy considerations</t>
            </li>
            <li>
              <t>Added EDHOC-PSK and EAP section</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
            <li>
              <t>Fixed test vectors</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -03 to -04  </t>
          <ul spacing="normal">
            <li>
              <t>Test Vectors</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -02 to -03  </t>
          <ul spacing="normal">
            <li>
              <t>Updated abstract and Introduction</t>
            </li>
            <li>
              <t>Changed message_3 to hide the identity length from passive attackers</t>
            </li>
            <li>
              <t>CDDL Definitions</t>
            </li>
            <li>
              <t>Security considerations of independence of Session Keys</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -01 to -02  </t>
          <ul spacing="normal">
            <li>
              <t>Changes to message_3 formatting and processing</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -00 to -01  </t>
          <ul spacing="normal">
            <li>
              <t>Editorial changes and corrections</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors want to thank
<contact fullname="Christian Amsüss"/>,
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Charlie Jacomme"/>,
and
<contact fullname="Marco Tiloca"/>
for reviewing and commenting on intermediate versions of the draft.</t>
      <t>This work has been partly funded by PID2023-148104OB-C43 funded by MICIU/AEI/10.13039/501100011033 (ONOFRE4), FEDER/UE EU HE CASTOR under Grant Agreement No 101167904 and EU CERTIFY under Grant Agreement No 101069471.</t>
      <t>This work was supported partially by Vinnova - the Swedish Agency for Innovation Systems - through the EUREKA CELTIC-NEXT project CYPRESS.</t>
      <t>This work has been partially supported by the French National Research Agency under the France 2030 label (NF-HiSec ANR-22-PEFT-0009)</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+V9W3PjyLHmO35FrfphpDHB5k2iKLtt8zqt061uWVLPJU6c
kEESlGCRAA2AUmt6esN/YR83Yjd2f8U+7dP6n/iXbF7qCgKUembW50Rsxzke
igSqsrKyMr/Mysryfd/Lo3wZnoi98ej1+6Hob/LbMM6jWZCHc/EQ5bfiPA3/
8bf/cnkbpPDNm/AxE/vnl28O9rxgOk3D+xNBb/rwnTdPZnGwgtbmabDI/SjM
F/4yuAv9cH6bzPx1duc3uh62fZOkjyciy+eed9/+uFq20sXsxBMii5ZhPAvx
oy8mySaei8tvv2FCHqI5/G+SitswurnNRbYOZ9EiCqGNbDNdRVkWJXH+uIb+
T8dXEyFeiGCZJTC2KJ6H6xD+J873amIvnEd5kkbBEv847Q/gP9Dq3unF1WTP
myVxFsbZJjsReboJPRhg24OxByfiMpxt0ih/9B6S9O4mTTbrE/G2/2YsvoO/
o/hGfIPf4fh4aPdhvKGhWM/CX0yi+44QqyBangjk1h+Rb/UkvYFvg3R2eyJu
83ydnbx8ic/gN9F9WFcPvcQvXk7T5CELX+LrL7FD4Ndmys35DzcvgfPw7RIY
n+WmOflrnZ+uRwk+9/LFTVKvnL/6bb5ael4AYpKkMDQfmhWCJ328zALxNlmH
P/rnYRr+SD8BhUEc/RjkMDcwLzGwnb4PebwhvFNf0jtrfOePET5RX6Ru09/8
/X+lQQwTsAxgFtOSlsdpNMuyJLYbByEL4nomX/pjKB+pz5KV2/y/JLex+Akl
ffP3/yHOgjzXTT3dy1/g5fpKvrOjk4tgEYRLaD2NYp/YVNLBhxjmNs1AyESy
EGebdObyC+Yl+ONmVQ8zt/EJjHQWZbNETsA3yepntb9Q7fCk3Mi+vDhJYYjw
7okHj19MhsftXutEfjxqNtTHbkd/2+v05Mde47BlPrbVx8PWsfp4dHRsGqMH
Tv0RibgfrjZ+GKxZBNUv2XrFgrn+a7aJQKrxh8tz/7jR8A+P+ic0pDxIb0JL
3OdJRAum2agfNVrHL9+dXl7VL8/r8qW0zW+xPrwIYQJXoDOIcWIBCuI8iFL/
uygLUQv64ywPpssou4WHcnE5uw1XYSY+ZLimR8DBNMxDmIwbmO78diWG6eM6
T27SYH37SP1kICkhPL1ImFoh9pCgPVBXl6jYgqU430AHMyZAEgl03Ueo50R7
j17TK5H++fK/QkQxKLBxXQyC9E4umK2f39bFELR9+Y/9urhIbuDj3WPlA98G
GSrs+/IHLupiFAC19C3wEbjaX6fRUrQazWP4cpjkeRSm/nkSxTnw7z5YPjlx
zUaj+7LXPfbbfqPd9NuNZqvlt6+b9tQpNS36cbB8zKIMRf10tU6Te7BgbOfO
0yRPZsmyYiom55cwD6dxHqYx8R9m4/JxtU6yaLMSwH0yTfRLJkC7QHvBDKxm
iF2p/p8xQYO64kL576O6sLhjMXIUzsLVNEyBl62W5yHthQXa6R511PJq9mCB
er7vi2Ca5Uiq513dAmPAYG9IfpUthdGgGvSNuWdrT8OQwAClbxXCqOa0LOB7
MV6j+KfApVG0gGb81+FyuQKN/R60jRi+vxyLfWL8gbiDJsOPs9sgvgnFWk5D
XVxBK9CRajiM4YEZkAOrcL3J1RyE0PgsAoTwKB5uQfKwgftojmtutck38IRL
Z02EmjK745qIEAygkCAJ4Ywfxpn86yaIc5jkFCQCljgQURenuQBmrYMU2t2A
BV4+ClI7zIDsMcvDVQYUgQUTcTIHsjPkH/IShsQ0wsPJJveThT/FbvbDjyRc
S8HsjXHMoFDgXTVImJWQMA3SslmtifGEhOCpImdAttPbMJgjFTHNCXaNVKve
F2myAorWgNmiZJPJhaC62Lf6QIpwRmwBmYc5GIhMt6wEYJk81Ii1YGGjexYO
5nFWg4eyLIBpZuHMYZpqSM8M+8TPOOpMrVYEXkBoyquqzvK6iubzZeh5LwA6
5Gky39BMFaV3Hi6i+N9LdsWnT9Kaff68JcfTYMlyjD3hjC3Dj9L4goUgGYSO
5yBpaTTdmBmuEvu6+I7kPnsE4wTvzJj39vvAmFWS6t6gZxhLYF4I1kB5ABoF
JggpLXAnWSwAIABkDUHRpNXrD38gPucJDY4HnKGQL2Ey5qDAdnImRYEC7Vmx
bi2Cq5YwSk/JMhahssxAxPTRIcLzWOrZsdke/DSMQZTyTGzAys8CWBxyVecP
SXFll0naM5Z6XYw/BjgzGXBottzMQ2Kf63hhi2dBDGuH5LuPmB+Ht4Gu9/tv
zvoHyN5VMmVZYP0j5fk8hGnDfq0m4Sd4fgx0wBoDJWP/RiteyfL+uH9+oFos
0cqsobAb5gZMPuB2XN/V0wS0g8oBFQ1ewQIGAcYzfQjSORrKNJwh7yaXSuGg
65VSF0EuQvCgRLSw1RmKHSgyQGFz0CVBluM3q00sR5KBXAGSjVmtwDzdoJDl
Aq3zPfyZ58EM8BCIPtuPxYZ4WmgDZ1gKFEyGamONaMdupC76c3AlaWksH2so
bACGgAU3OFpFNOqZaQLyVpA1nCJXcdashaREKVMGyVcGKXfVEDZTaJnYRnYA
xFh68ePh6PUY5L8fAykgIBGAmZRaU6KOOqlkSURsTXjdaJ0HM7FtnOQUAjPA
GdWGZkmqPWZekg1lufnrJprdwY9pqBesmjVnOoBAZCc052e83u4wCKHNWYQm
mGmpQWNgIhT3tU2EiUsAUeuQxjYDLfXoDB8A9KMkYJs3NckVOWDFECIPBjgN
gZwFsOdW9ZtFNzGgrBmwHQYOL20pWE2yrV7X5Af4SHWRulOcHVwWMIEsPq4d
1wgAKUNZXqBSx+dCx3+Bua+EBlPFAfr6evwRJSdMcbY3GXdqaziE0/dojNEe
L5P4xoffVra546VXQiysUvmexUsQ2kup2dtmVYBNQ17dR+EDEl8CS2hiTa+w
WlUzHWWkpFlmuIKcLgIZaxIcW6ZaOtS4aBvqUP9FtKNePIIXwUeMppKGDb0s
VyBqDHtVqZe6GujwK/SCjr6xiL2/HL6/GNeNE+TCKlJtqmuy0arxY5fAnsuj
0/67/jZCewHeS3yP/FV+0AgJJJWYIUgLiaMPSQrAYO/sA7i3Nf6vePeePl+M
//Th9GI8ws+Xr/tv3+oPnnzi8vX7D29H5pN5c/j+7Gz8bsQvw7fC+crbO+v/
sMeD2nt/fnX6/l3/7R6rMxs7IkN4sUbo7q3Rb0eF4DlcGgzP/8//bHZACv4T
iEGr2ex9/iz/OG52O/AH6lvuLYmXj/JPYN2jB4ArDMgAg6KAlbqOchBHhDgA
JpKHWCDCAG5+/a/ImX87Eb+bztbNzu/lFzhg50vFM+dL4tn2N1svMxNLvirp
RnPT+b7AaZfe/g/O34rv1pe/+wNKlfCbx3/4ved5F6DsEG/iNIQf12wleD4W
wSpaRsA5EmyUQlQkLGcgirNwDdrCmSXWW9ZKrYnh4P0Ff4MBKf3NZfjXTUjA
nH/rdlr0G6L9yzzdENRSrr1awrLlxqF5tr+8SSjAk+kf2/Tjd1f08nB4KXto
9+gt/BKHAgtnhqGkUZAH1qoRb0EXbVAX7A9Ho7cH8uWjZgNfBsU5u0WVTnYd
uAQcS9EXpDHNsalME0/rU8c5dvj7MahQachKHaX9LAyBDq2E6y3UO5rHB2jl
wlSqyUC6iC46Vi1pZaXgnvyBDDssh2QF0w6OBzEfp50ZNo/YKYEpZvQCP6Oo
MApgE1RKu4NCWHkaQUE0VMA6GThsyFqEZ+UIX0KQaZg/hNLRPsWpI4ytJvcC
yEsw5gwIMVMISlFkkeFKKizp61OWGvx4QWuiMCzLnuEaQBcKBZPdoMUjfVax
IBm23CZRk1dTjARYuwTf8jUgknv8ehMvozs00UmmCSc2A0UR2WfoCV0P5kYl
kYqwCBs9HV3TwICPSpQdZqFUkxVOEYkBIdqqK75aOK6aLyj3YJjMF2yIKljA
TM7A2LL82oGb/TAiaQOs4QAcbKMAXQ5YSd1GN7fgwuRpsn5kF2YVhjkviUWC
MBFnKAXlE6Xk2mUnoAN98R5NxhOyJG4DdD5mqIyU0w091+H1K+c5gJdbLFTi
VbPkqyZhnTUvxLsX9jeeZ/3Bc0+K75b0tlgFa1sO5bcAmgKQGlyyxASkSIko
40wLytfRHwQGk1MM7PjP1j+n81fiU0eciNuvGouvxOffAox7Jb66i+Zfua/Q
bK836TphgFSgHzi3CGZgWABzh4pPiLwXMkYDmgx8VGSGjLXYDSDoAruRzBXA
S0PUwDA0lsM1YD8QFOmeOOs7yrUeW2DwGKcf/UbWD8AleEAvF1pjTowHUNct
QXeM5kiXoLgKGC1ztNIy0dy8M4w4AvsHfaPvBAbiFhxpaISoMSRofpBkSR+o
jntIaDxRDIP7JAKVFqym0c0G0SZPd7JZzpWUS5w/i9YU0kTBTcEgbJZ5BPNN
zpJyxg0l2BS5cpKKNMrucIaMOoFOlkvyathKZ5s1uiVgQ3BeKUBqsDcFMjLy
6dchO6DBEnwxgyzsJcn4+83pSFAcYcvL5TWypa4974s1eNEvVUuaFjQ46vwG
tfWRrSzJr1RLsrtEfrqoF6M6uFop+ILWBlYX8pX0TJpsbri3bEP6ZLFZKn9C
6VzohzwhmiIKsGM8EMiWGCbBdYCbWpL904wgVU6Gln8wIRTpHaFu/o7jErx+
HL0KDZPnT9x2VhWQtc1b1kUIfL4Lp+IquYN29wF3HRBHAH8Nl0EEuOwyzOH7
4eWBC8RkXA9G+9UsBoUyw6dVSE7JfryIlCmVSAWV3/Ub1Fr9WCmtSvoY3k9D
0PtFxfZJfNm/lzAC3NlvgQbc67T8w4bfbvqTiT+e+O2u32757R54O8W3YF7w
rWN46/k9vgSGvKTNpuYXvPdSseal2sPCtztbNJW9epebt1pKxz/15kvQ/fzW
Zw///3PBDvx6/G61/WbTPzz2+31/0Pa7E7/Z2Ga2+P+c3/2l3C69V2EQVqXb
SwPcRHTw0ItBIxvGW3gKV08Iayt5xDhvSQvoGE95/WZgSh21St6RRN3kV4F+
YQfHRKUXBnPU7ACb3Q4ox1t0aL6vHzZ6YoaWY0EBetRjp/jqSqmojCni6DVb
wXJrgFs1oGRyhwIMsbHmQbXIKAGNpdzdiELlREQpalp/xpptP6zf1GvV6oBj
H6XCi9sQSCv3xyS5YyeDQTBAQSKM3Rp8YEWx0cciwwkmaim9RPx+FWXTiIED
x8w56OG47J8+9deYmhV9FKOCYykN7diGW8amCwAc85AiVAz5DL42v+BmF1o8
RssOcAM5mC/xD6W8P9LXNhgGTG2hAmOJsVFkDEX1oW1rptVfF7h/KU510xH7
6D6RgCINYE/GXdDuzhEsr0BWEfxYdGYmyY2ZJZ3wTHTqrXqTusRPrbrkHAc5
6mJU3qDaXaFIXpYbGXPmU6I6iochYAqmCJdh6sFNwpcDWmAgs3ES+y7pZI/v
A8AJwLJtHtihaHuLjFiXBnFGoWVqGzD5JrT5JBUGMgXEMYzuJWqCduALX40R
Z03/QZ4H0YvCCBoJtz15a4Rju5bzHCG6UkseYOgtk0D7auRmMAKjqBGPzALU
ai4VrtbeTimGpkAJMtkgZ6kH7TalX4UwBzWT7UrPUJWsNllOOjBA6EOAzGgf
phhDRUSSjgSwk+eX9oYigUGYJXkGuCPArWh3TuxH9RA0zieBjhj8Jj4f1PTW
dgA6QjM+AVW+kmlnbsjDxJEO68VYktbrvMTojTUoO5DEj7mAsS9BLvfVJJ2/
7Z++uxp/f3Xd7h8ojG93LLUyRizdNm0X1nJWeZuUQ0zIfeg0s4AioOQlebw6
yIYMlq7DvODHYgIr80k6rEKufRIv+mqfVsv0MUfXB0XxwHqr1XRfaXxsHso3
kB03YXqA83iVgGTn0Q06s2X6Vm+Q22EhxUCYYDAnXyFHp3+BaTmQKFjNgkTD
xDJSdls2jYMtZ3LzY4LbLvaeBGtmvTdS/FnqbEbbhqlVETLykYo79ipe53jL
meMuS2cZv+dJKk3+MdbPT8NlYLktSvBkIB98Alh4uP/OP1+361tREukbQRvS
1TFbSyYVR8ZAMtwGz0UyxdWOUSjLP+O+MPtAu1CoUQuZKs5+pgwP18Q319/T
TH1z/QPvcqAJ1Jv0FlNMVNqlCBr4gUIm8MvotfsjWfJiiscpu48F6shmz/Vq
gfU8YxUfiDfjM9If8RaxwMBgnW2WOrDBYf8I6E9xXbqhy6dGoBg/ZYVM3XJU
uzSblLCHG1SzxE5tielQHU1SHRpbRDe+NH7gY4poudxgup16o7gO9L66X7Lv
zv5m3XVjRBBk9zee6frL/+kheT9t/3g2vnr9flQTlx9Or8aXGC4EDgL+xk/j
/ui6WXzhJ+83/i/+9/ufymix/qmFttV9gZbdrTzvX2UrIJk1BKP7wI4LZkdL
HFS38rtfzpjfPJMvrZ83oi/6V94K8cMJ7PeBMfvEnTZwp8iff668tH/GiL70
3+5WDDc6lbIiW/knykvniRG5kZMT8cJWbJxm/WrvvZV+UQkA6uCEpjmel/Ep
4vpqbxaiW7H3We5IqmxEk9lRltJXmYJlsqsq9nfq0vM3Q+cEsUyovemamG4o
Yh6H4VxuYlrKvrAJQ94KB1XLUxfNPjS5GTrASehTJZhJz52TNQ7I4MUJujEE
UDdrmdojA70muYcAWSZDogEMfpPC0JVd0SwsJ4xyjD9yGJgsqhPflLu8si2/
8/nzAe0g49bnyKTEfHoBb4LTl36WGy1ZuJnjOZs5QJo7Ph128SY7cIIwTxg5
mZSSapdOZxpRrnoZ1ChE96BLIV65r+2LLFjCy6dvzsRBIVTFmP7P+MCfOY80
Xm/yYqRb7P8ZXv7zgaSPQSmFbVBgaesKWTA3u/dK9BUNgs+dUfDAZNGRcxmo
zAEAIkuOkktuMcjhDHMFU3TqUr0Jbn8hSoI+APpImPcYoMNH+Zg4wxn4u/PN
ErcN0ySj1LxdW/0ym4sCasWJNfsROMHXLSAN/9sOWytGX/hXJ2yvDhjmMZhl
DuH5u4+mAQoEhJQmxvzU4QjM68f5ZxeslFIVXKhxmiP6/4CVcXMtAcnHVYRu
2qOKRUnHLZ7JBLs0WeptDhJXlRDEHPitGxiME3HWH3J2ihJoo9s8TzArCPHz
jLOz5korjQmPZYBzJ2Xulbh6fd0ixsnvUdLga0SsNSWglPOCYZFZGq1zlht8
D557vc+A5PW+BkdobaOs3NnedrUxra7/9oqmzIbI5JuomaWJhR7bVrYStDuJ
bhDOH2GD7qrE2ebJQy1g4jpmACFzc5XMOazlxLhoq6SIpGGagIdLCk7IabOS
9OQWMwdN1barvVy2hl3UHDxS/PdKzqf3ZvzD5dXFuH923eprvfJmNNkXSvaF
aNTkHJoIxfUyjG/y2+tWABpHrQfZckE3ad5zEv6B1WW7pEteZs1WTc7GVpdt
7PKNjXi22uDe2qoJYKN8Gd48/dZ6teLNjnozujcv7oQKOFMSLRTMyHMxAq0D
PLsknCmxU6DkLqQJBuHvxjlv1WnLwi+dJencytFg+mV1KzYJ7SdIgN/35Q4i
YohYD9oOE1AU5fT89fiC3xkcFIIKFXS3d9Ld7hda8WnWWGWwwDqDPJCr1rVi
FZqnw6dLzNKVARyaIfpdddMu5PtYBA5MMorcGDlAoKExpJtBa9LvJGLM5No2
KWxIrNo0mfFeyZPpuIXcXpPQ6ygL8S7JZUA1AsAVP9otgMFaiwVm/8oYhosU
KYiWhRTdVttPaQrWRdE2BQjL+yElCvvIIcTEN9zUbB0unVLc3I3GNT1Pf8R5
k7wI5zYrihq4YDVKdmR0+y3en7Hmy/IEWqbzVqHzHd21t8ENdmGYOkzoEKYS
U6s3ayWxgpgFSzysp5MrAjGN4iB9FAEd2riniGMYrCTeqtmROvnLTRhjtnMR
la6Bf2ZGzL6TXqmwHL52V9krIcMGf1CBA3jCJfmV+8b37y8cnQcjNGGHoBgl
3WHn0ZHAYHaKh2XcRHazRqFlADoSkYhL0MKUhHmdpNf0vXZR7JCwUY6czJnI
GgxKPa3TaIUMN2uT7TNhTNUFdQh9+BzJrUjjrAoJYxC73P0id4McKrOlEdsh
Qjux0EqDkckrUsBKUli2LJFDm/KOlOgat9TKI3Yl98OaMl5wS4u8D8XVWiHM
qFZshmjX0b1f07rY5KFLW1G3WLR9jSeIyWi5QshrQC4UEEEw9rTjUxBm96Vt
Ud0SOVs+2wXVpmWQnHCQsVUwB7G4x2IXeFZN7t5aDjQlZqH27cgzpPA5A92N
n49IVLO7aL0uKsT2LoXVNgqr/XyF1SlXWGbSKhRW23PXPwMKPgtkbRrs1FhK
rZXpq+ljUVvJzS/JzHKlBXjjaxdKoN6yMctLgQfI4T9+q1Ovt8DKOwgGLTlj
yK9xM6BiN1MmDxc2F5WoFVI+1VYj/f3ZsrRbW44cTcJRFr3msq3GuqF0IvdG
1Sm4IuLCvZUwnKtjZRoc4xY2hg2y6EftqOtshm9Keitbp+2+dhht3cFPOwLy
yp0ad9W1+0WJGig1/JXZNfmKsh0wb2jMmLUhEtr5q8QhCAHsc0GHW8tXZy7K
CkJgoazghsSSOsbhBjdYzmVuhlK76DW8QQBp5e+oneR7aAVmi9yVfYBkKhMB
H3V7lhvT1u5uIe+kCuRYzpWDWssMvmmc5hCmllaRb9mNV+L2q6/oOxUKvA4C
/Pp3v3MRMoPmAjL+/e/pVXTsKDsFx12p1ulRh2Rcvn9QwfhiHrzUNhkD9x3G
At/j3bs4oSgpBUkQF7QpgViZ8hqu7BlPxFeZmG6iZe5HMe9X02E0xcKNPm4q
zX7h4J0JBsu01e1T6q5x3AKK5da2XWltpbiZBsjahvOsaGlHnBT7vBmpExAM
0iwsbHEDTVbPfBhCZ2BQbJdVui/Xi9lP1m3Uvkw9qIzXXep9S5tv+6hKqUQx
mBqaad/QxrqEBv2NNEWuptO6gkKMMvrrohxKCvTKAUp7G6Bwk04ndIJkhqdD
ncFSox8yN58fnnVSdXYla1O2vzxWweG/r5kB8xJKB0ypVAekzlBUfqkiKNMr
BY1LENtWswDHFvwQsMRkemnPNULVNZc724Ht4cJHAGArriwQ5M4m9gOe9ApW
WLWL3SPa/oeVSlg6VLFk61hKYnKrZVsWtk0Q2GahLjBSU2mHS5M2IQORGK7P
5Il++JXLskTrIOfTT9L1kIVlPG8SyeP5RXKeq/3eJSW6zmwY1dSZN2JxHmD+
IdgF0HkqRdDVf1rEOCuHJ8Bkr2QhQVMXuXbEpxdmZ8Yg1c7P9esPi+ikTwfD
jR8EjCVpebSVZIcK5QWyhEBh90m7do4OldLKUBW3w2SGn43maadCpSTFcldM
tVv0giI6NrGhyI2SI/uMlIlkY+QSkwP3i3tdB9IOwdtg0HgwnNyK6YLy1ANN
Cx+occ2mTilbYyE1SqLEekA51lxRXSKX3AFiIl4eLXGBII3bjMZJYiYUGatP
v1kt3rqOb1g8d+h5w/Kz6zUJYZwe0OmiU8va7m5tD+IeKVZTLEmEsfZaEUlX
bD4W+2Q7koYL5NsqwGpaSfrIh1bpoJUM3wHy5KDChUkQ//QCS0majPHPlaHB
2+TBCgeomO3ClIyw8871wVDatHKrHdQqEXJnCz9aoWEtTE6tAws3pioMgQeO
iodE6MdiVF5RtC+uBqNWDc1AzWr8GlhjwvN0jGlnC23ZAnhYaO0Kr5c5Y9Tm
5/LIvzVIGfi3pu1cD/s5IX90gMqHBdMQbJa5PgVpdjKUD+kGx0v8Czv7qmhA
pQkpdVmMP8PSY/bpXNYKMqr3yR2BGRxKCX/tcbQoDxQTi/ugWEJpcLdUBRd1
Yl3vxoJRBm6CdE5H3ySV5bvtJJuwAoB2mSNpjYeyQjl0plhfY5WnggvuWQ1k
psotjtFlKtQqU3vam5RONOypjrjm3l7NlEyiAbs90xkqPthHfLzSOc5kV5FP
qiCTBpUubTXOwnBIViTgNvVGnUXDpXYdKVPuNiKF0U0IxDMs8xDnQgIOWTul
wBtqdz/ym+CPRgshj7XVZCGWJ+xtuy76OTNmjWUAixAmwMNldDAlUIdIXWNJ
ZsI5MawmoozMqG4Gatk7M1DFpF20b5uXwiCKBr1qFFbOzRJcofmjY9zL5I3m
WzL8N82D+hPT9pzRgNmKFmUgxwnL/gogx8jGvyO78FgrK7tLUnYXxVOxRpm7
BzmLp7cKic6FwkIqVZnWVZOtbaEB0jgESdSxD9d1dHQy9SJrY+SkwmT/BFdl
lNR5g9mrwA641AmQk5pahAbB4y5sqy5KT3tZSTcrmGpyTGVdCMoQKlY3QscF
3fs0uolidldcqlC9AZtnEn1ah5KRjDZ5WGUn5ahmn9nn2jHUhzC4swZadIpo
WGn4F5U4A2xJdOUnpThZUM4xWDN7xEImdn2hHVLi0p1JrVpInEcoiutH4qet
hD/2/zZELRUlXgo6osTmIldNpCEfLrwIrWPNJDlOTBqrSM2AFWK+4X0G3PJW
u1i0W5tJS0mH7tEuLxPegckY8s8LK4rOBReqzXE/U7leQz5XVJYNwHMf0Uk6
oFvXUwOElFkLQEtpgnEJO5VChZJkUSM57V+WUsn5kMjEquJ5LAC6wtQTEvC1
jdxx4p1DORqPy4oNmfTH6OCGu9ltH8GvaHQquRMqj6yoN7A+39La2CNOZA4E
omMiHLajk5fyaJc85Eh7AcyxdEu2XAknX8ZKfYQJfm4FxqfqVBIupFKDy5JK
fpmNvJ7bJVD7Pg5NNcBoCwlxWFJyyS6yaXYA+ucKZMJHX5VjKq/ljZ7SNmRl
fu3YC1bqE+20yTENdLFcuWgiOsKK5fIV8rFGsgrRAEUZYX2k9OrtJRiitnSU
m70G7ptbEmbXoog3VHgZ6E3pfoI8jdYcHQzMYSYzfEpzTM2JP6zShMMDRZLc
bdYyGraiGw2muhAFPMeHc7FyijzCjCdWAezehfqgjWwbEd46zxzIrkdMh2E0
4FUl3FzuytCRXjpTHliidvGTdCv+7lSo4xCJXA3FYsWGFWip1jIPU/kMqFNl
BvZW2RJUuyENEFUm8C5VNWjU3nBdvI9tTuDYbGdYsgZL8NJ7GMBQJFT1KuuN
puyKcK44dc9ARfa0CsB43qp6SarWCRfT2pow3KFKw0XRDKrC0gtEy9CmU7Il
IX6+C8lLFn0G8afWUdX9d/3T7KCg3wD5LbUHq9U+nz7Fc8YsVHxw+VaeaDRk
cojbkGcdaGSJgi7FH7kPtGlZsAgZorG9lfs/djIu23Ln9CEJ/DKK79DVhNfS
f/ztvzp+EwYz4aMZmlryBXqxnK8SLlaxOL+mRKRdbxPVJBaA52qXOIP4Kr5E
ax6rpZsKa0s8O6k8TxLVihODuqY/1uK5oVPSDFCqiuHGyYO9BjFQy4WyFpQY
FjIolD6aNvR2dZq6+E4eel7LcroLWU4343K6NatGrl3QRRXvDbZMPgeqeA+D
HWvM2yBAwuVxpQLJ7Hy4slKxPOWkBmWutNSttl7dtorsC3negIOBmDPneMEl
HpCMq6l4qyz1SdEJ5Vv5xjFD/oV4RI89DfoDBvm4TII5eYQzLGP5KMv0Ktxh
+jdEWo1SuT1g9ZQPbSY3FE0pq3BgypfKOOHRkUwVqQJRrFCfOjYRyZLoIfZ4
Hyn8pVxUpYZkNNTsnG6VSZQ2U4VPA7w34ccwc9Emb8XKTliuMlM8lcv0ZbON
3sTRL1pVl3TnrvFRMIeB5alaa+d6rVFGkYVyjXajWlCOD2ElvxKIscoKRMRj
nGHatzNzaTIkXNeVIod6KW+fLZWM23l2Ccas9W1lEbrqEtPcg8qmstyAyprF
OmnOEb5eIVNJ6TpJqUseaWQ9mCo/YLtGXfl7alRJTAFOXWXQyLc2FxmMIJN7
sdotL+MqPBxZlQWmj+oiDU4aNpdmAAtKLhox45e6NTPyqoerHbmzIPaj2Aei
/DO6kEDsn0X52YFmBRZFm5PXElnhBKaxZjWkNS7VbtDbLtNQuRdK8JZhkMYq
nKbHrzdh6Bn0Fjn6ola4eZIrqCp8HIiHQNZmMxh1hQ8tqcg/V4C52WAJbruy
5TK8AYHA41AieYgZ9AZK/velYeHdNMyNZs8NLXpdDEJZdsNei2bBMRTCVVij
VzmnXJ3pfySWGe+ZCkMWhBy3r1X6qL3jSzFdyofm+vW8wyRrhFoOOTKfuFxg
MQxjihiPMrzL0kJJi+kceKM5Mqt+JiWLk8Y0QSMJhTKrvo9KBFiqTinfcRre
BveIufnwGKWwxBLQB1nCVT1phPiTPEpoTaEdh6KtDZtVm/guxlM8Vo1OXdZk
flAuq8Ej55jLXEw0nsDAeYRX0ZQX+8xcPvJK4+x3Phy2SWMV0VeONQVHYUbu
OB5aCLjZUQ46bUD+PubIkEyrMWLjnPOdJ5bsWTkN+6bQUnlOBKXWlLDJGh3F
FVfBEjFtKA8PAhQPOJFCTwRxTNsR3C6WBQtoHVlnQ5lTYfpbPTC7lMvaSWVy
FxTfvaBW+SqgrBw+EKVUqkYJcuH6+i48gZVSrIJTM1Ogj427UxWRTm1R4Ydt
ETFTLU8iaMjIa4wyx2wfAB7b5O7KKxZDDMRNhCf8NC44441lN4ohIyW+ddHO
zzv/qqpu4Oj0rQ467s8sDVcwIlnQQWasWMlosnIjnpDhFWPOHJPBd7YDVMNy
+W7tCBxs7StsVxBRVYztGjBWCS7aO1+CwJpqMBbDZVGx6tJqqixY3WaxlioV
WsRzXUPjb5xiQhDoKHlS9M3w9MCy2nX7Uck1c0OA46TEjncS6WZDdSjahVMy
mmAQlQxeWMkdqpzrtncUVt0ApCqzoI0OFguqOE3IRNlbHVmJzf6Drr9S7oZJ
A0yerFxGkcM0WSe+4HqxBKbWMQbrJhSZp/LihQWZSWMqBdOnS8hUEi3VHN8H
5Xfgef3iYVUblpnLWGQxTKkLVSqTSWx6TmcqfrK1x0IGjQwV19mRV7hsYnYu
LCyuAwEytmZ7Nqrus+2TYxIlbrWXagnQl+AirTaUpHzU8adRvg0CYe6xXP00
xaxtjs/L1SQor97avub55S17fYWXLAZdc3trto4rulssqvrTUT+eGa4xDcJG
14jIazhIRtnAcDvGe4MHQdvnJl1aNeFoL4CNYFLvvoAdNWetPlDpX1S2dA9O
yEWrsa52SKXq2mIaLZeWAiQbhv0kvP8hjo7FI5iMzKp2D4YDgA+FsCM6WII6
mGD/aXIl0mAeISqZ3cbJMrmJ8IhO34Zu0CqgcT1QzvZwTQNm7TkHh4gLBT8W
jbZZmLYyp1DAluOoEzO4unGgCVEJJrpmrtOYBrJOkQh9EUAbK+7nj2tZrpn9
h3JqeSs+xRW0xunJeYmMANjAApmHjoM90VntFcqAXBYVE6sIfRlsBQAZb8pT
miIOb5I80hGItb4ywG0IT4zRSZeMjq0pI9ksboJnVFQBd9VSDqTh6XBsWGeL
OJugmdhXFY2kFjKGQibfWVmpvG+q03+mxcrscmdklaBrqweS6Bwy1RW3GCk4
QpcGqlwWXsvs2DPY0Iefwrx0V5aAlS1XUuEjFX+SdxYWg0j9+X2gTsSqew05
75W9m5sbxPLsF7qak8i9ABbcY+zUtE85s6nYH178aXhAOIfAOw9vyvHn6Ecc
4CXnMq6wWApojAdZEzzmqvHxoxO/0Ldo2CI0BkWxpqKSGwDHRdu8jzdaYVJN
zNsWLkyhtbjlM/Imh3VLE59QjIB2VZJN02Ttphav4rLuhrTu2tKhQOu+Ldcj
FMg1doCYSzzR9ChHeNQdfvNQZVtlZh+XHUEsbUFFObAAu7wAikrsY42YwmVA
3LK80S+WwKk8mpLuvp1NGwDFgmCO9wgHKanbM/CwEzVMZaKKl7WZuLNuQ7vj
JBzPC0F73uBRh8Nqkus6R8GMPSi5OA3B6tgpLHemdwL334zPQJxUis7ZW5+q
xCkIxIncZfvoGG6aXLIgFLjkQ1fkBFrxvAmPhwGMq6RA9JMUFASnhjAFZRfj
pOEN5h2D1vntk1XsXtAdTTZyk3V75NlcJ5nALc7IlyWYy9mKBQvZQyaJVEc0
nahuZUWmKztcoxhMJU5d75mrztLe2fLRCoMUbZx9ktfdeOF7ZWqgcOiu9Sh3
r1ujyxc0tlhIL01KNo3Kjoxh83glvDA5jMQHqTpkqRxK7pCBbH3tvLoYmN8D
MQTljLc9m+gjK+HYLtBIp6G43IkVyyN+JzF977uXuFGoO2Cx3P/0ydyHjYbc
5P4f4RlcdQGP5eLrojzOVXZUvEePQmapuPtNlNmgxYZSVCOZhAAspyv0SCHr
9ECC8K4wSSbSdXk11b+vHS0rCC+jjxh+V2f8irL0rMsjbdhKdXJVgEvpIWoa
1ZDZ/rrklAI8TRLZ2RCSqIdQXybmdOXqMPm09nOMoz99ZAa4UkzVxlVZWjXW
rGbyT9ynQWdlfIG4vIasYJkovQkP9+gCoLy9La80RP9lyaqGMkxCcb9ZxqoI
dISriZx0U2VW3kqhzlz942//TRP0j7/9d1uO1d1d2i/eqepNKPohsUPR8g5J
vFsp21AAC/Evqm2qOR5j+V8dOuczwnjdrukVVap1BQtSGM8iupIVHvwxTBMf
1nlm3B9ezh9iDvn2Vck6Vmv2PfEZ4uh06/bYLV9B7UsB2M1lNXCZ15nxJSm8
mSgnzBwUVBmHVMvbuhT4NHbryykr9rwsHHVxdSmdau/a3HlVeZmUiXdRDEwd
6UDqiCBiSem2D/AfY9uy4lWCk2LSbEzlhfe5vLrUCQ0jCpVlZS0SVDLu1r6t
zkrevjuz9IomVe79pJAXre/Xe+IgkPILKw4EPXXkim+bskr8PTfZuDKyWHbT
Lr6gy95FOrdRRr7oQEOeFY6uZSqAKoFsGk4fdcQljPkAISeJTh9VmF9e5bri
Q3TYjbz4cp3kDFHkKQcrtIWoyT7ER04fueMuvJfVye1zDTsihO5BJqrhe2DS
R6Xn49R7kwFEEhqigXSgjAuqoVq73dLPtxwdfUn2QhTvhkK9C0uwkLKCyqtQ
c+4FX8a5nTBg3+9n4QpbrOlNRggyi5O1wxknFFw9rpFDiC5TwIn0tMQIgDTY
KCjwWWgZo0k6srG31eqefA+e2cid0lDcpMlmLWLMW9p7/i3se0D4T+JbyqHV
JUutiS5kOSLm/8ma9rKfob2rwciqivqTsE9ebVdIfeJnOg4FyMzn+fbX2Z06
DqVujFaQuZr/dTwMBeplfAK+NHnqMAGELk+Y2leiU/dAiMQYmkzSE3hzlaiT
iyDFoT3D+mDS22AaLn/FSXYb/tXnmck1jB+FXJIMWejMyJCrnw/RMwSCoTGc
dVV3SE5xy37DzSC2ZWl8NSlOuLmDVzbVrmgKb0V4flNKUKQWT8tEJXNlpWIm
q8UlO+GhvxJYPhApfyXaT0qO7/tUoYxu+R2N3tpX+4pPL/Cr4rFLVNuRuh+e
3plb78hCn2AEELSEtYK7G6YpIo5FhOBT+dGVJV+peU/6za/Ev4rW17gbIf5N
vMT/el5IR+v3PSHg0/WSWHWCP9Xgqz/Ql5yGf0IVbWoe5lxThXN4q/k1PnDg
cbGtwhft4hcd+wvP1Crn7rmkuulbRwdPpNuPX2L1e0WIwHLr8i+r0A6RTRQS
rab0N3fzzfUP13ZVJntcxUpk1MXFji5aThdt9Y5V3qC8+bZq3k7IOpEXbVzj
zRlb9YMK7Q4qGh7IhmUxE4e+zjZ9nfJmOk4rHfqVsxL4+/HFxfXw/WhsZgu/
OX03eQ/fBPEjvYDb2PJ5/FiULXlviDWd8rTnidjQI07NTFxdVxiE/ZYK22Sk
sbUIed4AHSTwLugoWFa8T1Cnzjk31WZiXwodWIgDpRS0s6RsR017qhLEIUpD
a/CkanBO/squ+GYS2uw7zcPVAawIOtF64DU6JfdzRlYof0n4yTm01GjRHg7X
iXJ+4bs11KUolB2fF49N6yW2g6hWCVFWiinlkmZuQAYx8jqIUtJk6OIVKh85
t3DokPbWjaaqk6+y8mCP973YvwgeGOEAyW15NBiI7oleV7RGYjIWkybIsOgP
RK8ljsZi2MP/PW6IxiH+Ctq+N/G6DTGZiMFEdMaifSSaQwELtAEf+qILAHIk
Boei2RWNoWg2xPhw1/V5FVTrEIKHGqyC7C6QdySOmzCrotdBAuBDv4+9d47F
YVv0BmLSEaCb2oei1/NggL1D0W2JTk+MB6I7Ec1jcXwsOg1xNEKCj2EUHRxy
syVGg50TqaQLvRcQ9FhaKit3FJUtLwScSesyHtH42Lc2IZ2rePom053vNOGj
m2a3qOlTS+q6HmBwUQ6GpdTM8MbleGvPyRvuluZ+gQnvEqvwvLMdj259gRI2
e/vOvejQeEPN386FQpuxG2Sx1lrFkRqLuNVHu6tlu4NScXgsWg3xDIHxLIER
zxAYzxIYscUuS+e2ihe/6ItlS/b8eD+prExAA6BWlhhjH2XqKAqeWin28f9Q
3ehOKtXND1XrtjlGlXE8IY3TxAnoNlFTDGACJqLdFoO+OByL/rEYDcVw4rWb
ogMPjPGB9kh0JqIHC7UnOkMxORKHTVRVAD5hzvpd0W/vUjcVVNvqppLsMUz5
oTjqiyMQiLYYN0R/IsZD0QOlOSAxAuMGwgGyNRKHfW90KMYdMW6KYUdAK5Mu
vQs6dIxj74J4dUR3IAY90R2J4yLZBWF5hrq5qFQ3jcMqfQNa/QsVTuPw5ygc
czkQ0rlD4RSNxdVtRaV6txCvqfdXdhPCibezuL0KVDrfRllxnM7PVaLdE8Mh
yjXoEFQdMNsjtJ4g3b0GisZkJMZH9ExDDFteZ4BC0e6g7LSaqJ0AQ8EiABN8
3BOHI5Tx7iEKODzTGO8SbZe8LQ7D+5JG1oVfQqk3BIn/9Silyahg4OEAVTE0
0R+LozZoVDLKQByohwb2OmmLoyOk7wioHHmNpjiCZXSMiwwoA91+3BUD0NXw
zAhJbICaGYjxGDXH6BlkPcm4L6HQAxp+GYXmHoiKkltlNxFcJaoKGaxrmQvw
jJyHijvOuBpZXV7/rkvJ0saaul3tBwyD0hVr8Mf3xZVDLTkTjv253TlS0AJo
2UcVCYr+sE98Bc0LELWFoHJwhDa5cUzyOQFl6oHs9Qmfto9RFJsD0WyiAOPr
XbIZTZQXmBloalAC0eOadeOGpVeqazMVuV5y/QO0ViHlICvtnhgB+W0cAVgu
sCP9BkLnyTEuzXFbtA6RAcMuLE2vCc/AK2BohmRNjkgQG4hRQBb7PRxrp4tm
aARmpVcY3yVp+F1BalafXE9f3Vuh7qyovNjiP8TYdgPSoiBy3OVLEKlTZlAh
UjvuUezCiYls9bTTzpXUELSqX/98WXRqdzuzpsgZD3eToxZE5hToHtAd1njT
qNzAc8aOmsDqeQs1OA1VMmpcnPDKSTGBq+qSw8VrAKo8ihIZATm2zAA4yc9F
gx6hQfFsNOgRGhRbA7d8iXZlxV1zqUrxtKiWFlUc2VzSQ5lGdPrF6dE8UA2I
Ydhgx8D7aXaQ6Cb7SeBvASRoIawHQTgEj4pQRA/G3ESD2QSgP0QND2+hJzBG
9d6FJyfIzTFwChTIaJetxvifK8lHenpAdbTRqIInB62BS9Alfw6cNlBHQMwR
6R/gex/J3tmLummnggFg7GFkwwa6JIeHiADAKEEnwAPABEfH6LMcU4egw2BA
0OEEhjhE1wbwFIgKqEmwVPDNMTgyQzGiV8AvBWEA9LAt+SVQuP2FUNjbfWvL
NihqVw0fjC3IMIg3eBGwhoGpMO0AAAHKwBxihOgQ3WyASiDS7ZbX7aD/DEwA
zAheG8gLKHgYe4NWTYtQJ6yIxkAM+6I1eQKrtZ+B1b6EQg8G9sso/HJb1P7l
0RHaX14+FiqKOxrQ0X/1aoPVLtHDFeScUhZTbBSPG2uv7r9FtSno3KVbH9qt
SqyuB8OW7KrGW0FPaz+g2qtsFpeS85c8qeQK+bEaNwhDAya9R/83xv8FIcHP
TfowkVC030Sg32+jQ8Ihpw7FNBjLVOsk70t1kmTQU9QCVUegU9ui20AikfIO
ffPPpfY/jvqoMJh2ufUibCqSbmxM7whJB9cCzBhQ0zrCLttDVPwdih8CtG11
8adBC0nfwSG+ccDppm05wxgfG6F7CSYGcAV0DPZ21BXHgKahaZzZL1qaO2BY
2fLvKVKA1d0JzkWnh/KEHQOAb4nj42fyuXAvRYl66BRpc95xWaTVUqONwjJq
4mSA2wegC0QXZKyDf1ZxxsBZZ4sRD1jlQV6mtHYozTKUr8mDT8/mnCKPlGOx
8LysS+LUrN81l7upaqNQcfzikGKn/SHGNY5hwZXFIUvm06phskPXV+HrErvX
bGpRI4D4RQRW3Sj3ZRHC6kvm1O5wyf1yDjHUSFVosImiADLa69M+Ww8B31GX
YhSglNviuIVbCmMKxDXGHqg1QNfgG4AvgehwgNFweAaAJjQF+uZohC52r4lK
srkz6s1kPR0S/AIKPVBJv4xCy5/p/Bzs1Pk1/fgt3WPv7f/cfrSJ6SgTs63i
ivJibAyosv5ANEHPN3A9gMIHRwMm5PgY/SRYEuBdgZ90SDHH7k60jD1X2Rg0
/E1UT+C9jCnOBvhgRBFdMPxDWnmjJ8IDRaWwNUyTUbHTwoDTBLIPCnw0QHcN
9+R6IIbbgmOXZ8LPKstJXTdABzZ0bSw316zqXeey6Kms2aROtG+Jh7oCoHyt
Dwaif4QAaUQRR0A6I8QBot1F0AheXo885v4habqWB6YBJn5CEKbVQ1DTHSJU
A3gBpg2a6g4wyADmY9B5hs+qh1RBXmuC0Tj0VRv4f2AYul2K6B8RpBpgXL83
wKXfRUzojY/xJ1joDQph467cGMUPZATGBe+ORwjfYOJAeYyLogjz5RSjl8kn
XGR7d/HvDVV4owksFhmWtdxq7CHQzUoq3lOo4b8V5Ul3RQ8GBCC75LQfIYKD
CeiOEYHBZxgnevJtjFLC5I137idQOfvScNthMfr3QmUZvk1uPCdL5nxJ6eup
lSwTyJvA6J6YCUbh/cYRYgS/0eXSt5PoI6ZbYvrPvUz/wa8/rOcBl9CQx5xm
TqqvzMdecPFbqtWVRfwmU4Mp3LIsl9X1IXd95D35ZIefPLSJXEXZNOJaNNbx
d2uiHcpVLrRLOD3Sn+OmZqEqav9c5RBWEFfBLUNzm2nuyJLfdkbVU8Nt8att
zxlCgNlbmH1NJkGWUNEUDuWRCKtEXSJusR6GU9JEZn7RFsxWaS9uqJBZSV9e
Vkx8snAPYxWPlD010iaPtOVZY8jcQjmV9+VazTS4mWaFJMkzPnR5D6emvxD9
GR4WXIbzG6ol43064eMd4fzV3iJYZuHeZ7ZWjCky8RDQMRg8nBDfeZ8+fRre
pngUD0u3rbK//+8s+/z5cw1/uJwleS4my81tivf18JcwtnQZheJfAjqdQ1/j
Vevw01mQzhJxFS2TWQDfewsqZXofhQ9q0HygJ5cHDrHGBWbHYWUaPJ+RWfXv
xDyFxQgLnPNgqVIn5vFPMcqOx5TwYDHmQZOlOj8dtRqttt/sHDcbnfcDfwi2
wvx8djo8/fCyPz592WzUm+1Gu/fysNFsNhr4P22A4u/fvZ9cjDsHNUB9o/HF
yw+g6z6I12OAcJdXYK054fobLKoh+jdpyKdXALE1oYWjbq/B+AbeGYL7cTr5
YecbjaNep9us20N7CKzrGPgYFp/7fhTfRnGc3AfCJ7ZcPgC/ALf3b/B4EpmI
U/qdTMLlYwY2IaNnueYOwf0PF+M34JGP316dDv13AOlQ+qgS+fCH84vx5WW9
ks2Re7peZTNMMPf7VryTpz0RCoUw+5ouk6E+Sekwd6vRbgjO59x/N/FfR7AS
Rf/dhd9q+efjyRXIfqN34P1fmb4LMTe5AAA=

-->

</rfc>
