<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-edhoc-psk-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-08"/>
    <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="June" day="16"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <abstract>
      <?line 84?>

<t>This document specifies a Pre-Shared Key (PSK) authentication method for the Ephemeral Diffie-Hellman Over COSE (EDHOC) Lightweight Authenticated Key Exchange (LAKE) protocol. The PSK method provides mutual authentication, ephemeral key exchange, identity protection, and quantum resistance while incurring lower computational costs than the public-key authentication methods specified for EDHOC. It is 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 message 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 88?>

<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) Lightweight Authenticated Key Exchange (LAKE) protocol <xref target="RFC9528"/>. The PSK method trades the complexity of symmetric-key distribution for improved computational efficiency. Although symmetric-key distribution is more complex than public-key credential distribution, PSK authentication requires less computation than the authentication methods defined in <xref target="RFC9528"/>. The PSK method retains mutual authentication, ephemeral asymmetric key exchange, and identity protection properties of <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 may serve as a long-term credential, while the resumption PSK is a short-lived credential derived from a previous EDHOC session.</t>
      <t><xref target="protocol"/> provides an overview of the PSK method, including its message flow and associated credentials. <xref target="key-der"/> outlines the changes to key derivation compared to <xref target="RFC9528"/>. <xref target="mes-for-pro"/> details message formatting and processing, and <xref target="psk-resumption"/> describes the usage of PSK for resumption. <xref target="EAP"/> discusses the use of EDHOC-PSK with EAP-EDHOC and <xref target="OSCORE"/> defines the use of EDHOC-PSK with Object Security for Constrained RESTful Environments (OSCORE, <xref target="RFC8613"/>). Security considerations are described in <xref target="sec-con"/>, and <xref target="IANA-con"/> 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 PSK shared by 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, EDHOC-PSK uses a single authentication credential identifier, ID_CRED_PSK, which the Responder uses to retrieve the PSK and the associated authentication credentials.</t>
      <t>The PSK method uses a “by reference” approach for credential representation. ID_CRED_PSK can be kept minimal, enabling a very compact on-the-wire encoding. In contrast, <xref target="RFC9528"/> defines that ID_CRED_I and ID_CRED_R may convey arbitrary identity and application-specific context. This separation allows EDHOC-PSK to minimize overhead for PSK identification while preserving flexibility in both identity and contextual information, as well as the security properties associated with their use.</t>
      <t>Like the Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"/>, EDHOC-PSK encrypts the PSK identifier ID_CRED_PSK, providing identity protection against passive attackers. In contrast, (D)TLS 1.3 <xref target="RFC8446"/> <xref target="RFC9147"/> transmits the PSK identifier in cleartext and therefore does not provide identity protection for PSK-based authentication.</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. Following the compact encoding rules defined in Section 3.5.3.2 of <xref target="RFC9528"/>, an ID_CRED_PSK containing only a single 'kid' parameter can be encoded directly as the value of that parameter. For example, the identifier</t>
          <artwork><![CDATA[
ID_CRED_PSK = { 4 : h'0010' }; 4 = 'kid'
]]></artwork>
          <t>is encoded as the CBOR byte string h'0010' rather than as the full CBOR map, reducing message size.</t>
          <t>The purpose of ID_CRED_PSK is to facilitate retrieval of the correct PSK. While ID_CRED_PSK uses encoding and representation patterns from <xref target="RFC9528"/>, it differs fundamentally in that it identifies a symmetric key rather than a public authentication key. The same PSK can be identified by different ID_CRED_PSK values in different sessions, in particular when initiated by the other party.</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 (see <xref target="psk-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 successful possession and use of the PSK in the derivation and verification of protected cryptographic material.</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'0010',                             /kid/
    }
  }
}
]]></artwork>
          <artwork><![CDATA[
{                                               /CCS/
  2 : "23-11-58-AA-B3-7F-10",                   /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'0010',                             /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 apply 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 prevent misbinding attacks, identity information such as a 'sub' (subject) claim <bcp14>MUST</bcp14> be included in both CRED_I and CRED_R.</t>
            </li>
            <li>
              <t>Claims such as 'iss' (issuer), 'aud' (audience), 'scope', 'exp' (expiration time), 'nbf' (not before), and 'cti' (CWT ID) <bcp14>MAY</bcp14> be used to convey context information for a pre-shared key (PSK), including aspects of its provenance, intended use, and validity period. This aligns with the notion of “context” in <xref target="RFC9258"/>.</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 of the selected 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="mes-for-pro">
      <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 Section 5.3.1 of <xref target="RFC9528"/>, except that CIPHERTEXT_2 is replaced by CIPHERTEXT_2A.</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="for-mes3">
          <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="icom-mes3">
          <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 Sections <xref target="RFC9528" section="5.2" sectionFormat="bare"/> and <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 provide 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, CRED_I, and CRED_R.</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 ciphertext 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'', hash_length )
rKID         = EDHOC_Exporter( TBD3, h'', kid_length )
rID_CRED_PSK = { 4 : rKID }
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>hash_length is the output size of the EDHOC hash algorithm associated with the PSK.</t>
        </li>
        <li>
          <t>kid_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>MAY</bcp14> generate a resumption key. Whether resumption keys are generated is determined by the application profile, see <xref section="3.9" sectionFormat="of" target="RFC9528"/>. Support for resumption <bcp14>MAY</bcp14> be indicated using means defined in <xref target="I-D.ietf-lake-app-profiles"/>.</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>
      <t>When resumption PSKs are in use, implementations <bcp14>MAY</bcp14> retain the credentials used for the original non-resumption authentication (e.g., the external PSK, static DH keys, or certificates) alongside the current resumption PSK to allow fallback if resumption fails. If fallback authentication uses an external PSK, the Initiator selects which PSK to present via ID_CRED_PSK. How long the original authentication credentials are retained is determined by the application profile or by the expiration time of the credential (e.g., the exp claim in a CWT). Key lifetime and retention policy are determined by the application profile.</t>
      <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>
          <li>
            <t>The optional external PSK and the resumption PSKs form a key ratchet. If previous PSKs have been securely erased, compromise of the current resumption PSK does not enable recovery of earlier PSKs. This property holds regardless of whether ECDHE or a post-quantum key exchange is used. Handling of external and resumption PSKs can be specified in the application profile.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="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 EAP 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="OSCORE">
      <name>EDHOC-PSK and OSCORE</name>
      <t><xref target="RFC9668"/> describes an optimized use of EDHOC with OSCORE by combining EDHOC message_3 with the first OSCORE request. This procedure omits message_4, but key confirmation of the Responder can instead be provided by a subsequent OSCORE response to the Initiator.</t>
      <t>In EDHOC-PSK, authentication of the Responder is provided by message_4. Nonetheless, the combined delivery, described in <xref section="3" sectionFormat="of" target="RFC9668"/>, can still be applied to EDHOC-PSK. Note that, in this case, the Responder is not authenticated until the Initiator has verified a matching OSCORE response. However, only the party with the correct PSK can decrypt the OSCORE request.</t>
    </section>
    <section anchor="sec-con">
      <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 encrypted with a keystream 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. EDHOC-PSK does not protect the PSK identifier against active attackers as an attacker impersonating the Responder can decrypt ID_CRED_PSK. The time to lookup or process an authentication credential based on ID_CRED_PSK may leak information about the identity.</t>
      </section>
      <section anchor="protection-of-pre-shared-keys">
        <name>Protection of Pre-Shared Keys</name>
        <t>The security of EDHOC-PSK depends on the confidentiality of the PSK. Unlike an asymmetric private key, which can be generated and remain within a Hardware Security Module (HSM), secure element, or other protected cryptographic boundary, a PSK must be provisioned to and stored by multiple parties. This generally increases the attack surface and the risk of key compromise.</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. If identical credentials are used by both parties, an endpoint may incorrectly accept messages that originate from itself.</t>
        <t>EDHOC-PSK is not resistant to Key Compromise Impersonation (KCI) attacks. Compromise of the 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>Each external PSK <bcp14>MUST</bcp14> be derived from at least 128 bits of entropy, and <bcp14>MUST</bcp14> be at least 128 bits long. Deriving a shared secret from a password or other low-entropy sources is not secure. The cryptographic strength of EDHOC-PSK depends on the selected cipher suite.</t>
        <t>For the currently defined cipher suites (0–6 and 24–25), EDHOC-PSK provides at least 128-bit security against offline brute-force attacks and at least 64-bit security against online forgery attacks. In practical terms, mounting a successful online forgery attack at this security level would require an adversary, on average, to transmit 4.3 billion messages per second for 68 years, which is infeasible in constrained IoT radio environments. A successful forgery 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>
        <t>Similar to TLS 1.3 <xref target="RFC8446"/>, EDHOC-PSK takes a conservative approach to PSK usage by binding each PSK to a specific KDF through an associated hash algorithm. A PSK <bcp14>MUST</bcp14> only be used with cipher suites that employ the same hash algorithm. For externally provisioned PSKs, the hash algorithm <bcp14>MUST</bcp14> be provisioned together with the PSK. For resumption PSKs, the hash algorithm is the EDHOC hash algorithm of the cipher suite selected in the EDHOC session in which the resumption PSK was established, see <xref section="3.6" sectionFormat="of" target="RFC9528"/>. If a PSK is combined with a different hash algorithm, the Responder <bcp14>MUST</bcp14> reject the ongoing EDHOC session.</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>Quantum resistance of EDHOC-PSK partly depends on the selected EDHOC cipher suite. 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="message-4-and-mutual-authentication-requirements">
        <name>Message 4 and Mutual Authentication Requirements</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 compared to the methods defined in <xref target="RFC9528"/>. Other implementations may replace message_4 with a protected application message. In this case, the following requirement applies: The Initiator <bcp14>SHALL NOT</bcp14> persistently store PRK_out or derived application keys until it has successfully verified 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. 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 anchor="post-compromise-security">
        <name>Post-Compromise Security</name>
        <t>When EDHOC-PSK is used for session resumption, the protocol provides Post-Compromise Security (PCS) for the resumption key chain. PCS means that even if a resumption PSK rPSK_i is compromised, security is restored in subsequent sessions provided the attacker cannot compromise the ephemeral keys of every such session.</t>
        <t>Specifically, rPSK_(i+1) is derived via EDHOC_Exporter from PRK_out, which incorporates fresh ephemeral keying material (G_XY). An attacker who has obtained rPSK_i cannot derive rPSK_(i+1) without also compromising the ephemeral keys. A passive attacker therefore loses any advantage once the next session completes with uncompromised ephemerals.</t>
        <t>This property applies only when resumption is used and new resumption keys are derived for each session. It does not apply when a long-lived external PSK is reused directly across sessions without key rotation. In that case, as noted in Section 9.2, compromise of the PSK enables an attacker to compromise the confidentiality and authentication of future sessions until the PSK is replaced.</t>
      </section>
    </section>
    <section anchor="IANA-con">
      <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 6</td>
            </tr>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">Resumption kid</td>
              <td align="left">IETF</td>
              <td align="left">Section 6</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="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="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="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="11" month="June" 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-11"/>
        </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="19" month="April" year="2026"/>
            <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-02"/>
        </reference>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  In order
   to ensure the applicability of such parameters and information beyond
   transport- or setup-specific scenarios, this document defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Furthermore, in
   order to facilitate interoperability between EDHOC implementations
   and support EDHOC extensibility for additional integrations, this
   document defines a number of means to coordinate the use of EDHOC
   application profiles.  Finally, this document defines a set of well-
   known EDHOC application profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-04"/>
        </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="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>
        <reference anchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9258">
          <front>
            <title>Importing External Pre-Shared Keys (PSKs) for TLS 1.3</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes an interface for importing external Pre-Shared Keys (PSKs) into TLS 1.3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9258"/>
          <seriesInfo name="DOI" value="10.17487/RFC9258"/>
        </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_2A as defined in <xref target="key-der"/></t>
        <artwork><![CDATA[
KEYSTREAM_2A (Raw Value) (1 byte)
EC
]]></artwork>
        <t>The Responder calculates CIPHERTEXT_2A as XOR between PLAINTEXT_2A and KEYSTREAM_2A:</t>
        <artwork><![CDATA[
CIPHERTEXT_2A (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 <xref target="key-der"/>, 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 <xref target="for-mes3"/>:</t>
        <artwork><![CDATA[
PLAINTEXT_3B (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>It then computes CIPHERTEXT_3B as defined in <xref target="icom-mes3"/>. It uses ID_CRED_PSK, CRED_I, CRED_R and TH_3 as external_aad:</t>
        <artwork><![CDATA[
ID_CRED_PSK (CBOR Data Item) (2 bytes)
00 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 42 00 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 42 00 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 B1 74 ED BA A0 64 73 82
]]></artwork>
        <t>The Initiator computes KEYSTREAM_3A as defined in <xref target="key-der"/>:</t>
        <artwork><![CDATA[
KEYSTREAM_3A (Raw Value) (12 bytes)
51 FC 8A 4B 90 9F 37 03 C2 DB 83 B7
]]></artwork>
        <t>It then calculates PLAINTEXT_3A as stated in <xref target="icom-mes3"/>:</t>
        <artwork><![CDATA[
PLAINTEXT_3A (CBOR Sequence) (12 bytes)
42 00 10 48 B1 74 ED BA A0 64 73 82
]]></artwork>
        <t>It then uses KEYSTREAM_3A to derive CIPHERTEXT_3A:</t>
        <artwork><![CDATA[
CIPHERTEXT_3A (CBOR Sequence) (12 bytes)
13 FC 9A 03 21 EB DA B9 62 BF F0 35
]]></artwork>
        <t>The Initiator computes message_3 as defined in <xref target="icom-mes3"/>:</t>
        <artwork><![CDATA[
message_3 (CBOR Sequence) (13 bytes)
4C 13 FC 9A 03 21 EB DA B9 62 BF F0 35
]]></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)
BF 44 29 C1 9B C6 09 7C 40 6B 35 70 5A 28 5A 16
D0 33 C0 FC B3 ED A6 55 2A 26 76 BB 52 13 C9 65
]]></artwork>
        <artwork><![CDATA[
TH_4 (CBOR Data Item) (34 bytes)
58 20 BF 44 29 C1 9B C6 09 7C 40 6B 35 70 5A 28 5A
16 D0 33 C0 FC B3 ED A6 55 2A 26 76 BB 52 13 C9 65
]]></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)
21 8F 21 28 79 11 FB 2D 18 7F B1 AB DD BE 85 15
]]></artwork>
        <artwork><![CDATA[
IV_4 (Raw Value) (13 bytes)
EA E7 BE 0A 14 72 29 1A 5A E3 40 6F 74
]]></artwork>
        <t>The Responder computes message_4:</t>
        <artwork><![CDATA[
message_4 (CBOR Sequence) (9 bytes)
48 80 F1 4E B9 A9 0F 74 FF
]]></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)
60 8F 6B C1 88 AF EF 95 EB 63 4C 8B 32 3A C2 3A
36 1C BD A8 17 D1 C1 A6 89 C7 23 CD A3 B5 92 B9
]]></artwork>
        <artwork><![CDATA[
PRK_exporter (Raw Value) (32 bytes)
4E FF 8F 02 C2 4F 1E 42 BC 15 FF 1D C6 DC 4F 27
A8 8E 7D 17 9E 51 6B D8 13 F8 EC 4F C6 91 47 1D
]]></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>
        <t>NOTE: Assuming TBD2 = 2 and TBD3 = 3, to be confirmed by IANA.
RFC Editor: Remove this note.</t>
        <artwork><![CDATA[
rPSK (Raw Value) (16 bytes)
42 7C 23 92 EA C9 55 F5 D8 56 2A 1B 34 18 E5 75
]]></artwork>
        <artwork><![CDATA[
rKID (Raw Value) (2 bytes)
88 D8
]]></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 -07 to -08  </t>
          <ul spacing="normal">
            <li>
              <t>Added clarification after formal analysis.</t>
            </li>
            <li>
              <t>Added comparisons of identity protection with other protocols</t>
            </li>
            <li>
              <t>Added requirements (single KDF) and considerations (context) based on TLS 1.3</t>
            </li>
            <li>
              <t>Updated considerations regarding OSCORE and RFC 9668</t>
            </li>
            <li>
              <t>Added considerations for protection of pre-shared keys</t>
            </li>
            <li>
              <t>Added considerations for key chains / key ratchets</t>
            </li>
            <li>
              <t>Added text on explaining the "by reference" benefits of ID_CRED_PSK</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <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="Erik Anderlind"/>,
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Jonathan Hoyland"/>,
<contact fullname="Charlie Jacomme"/>,
<contact fullname="Brian Sipos"/>,
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:
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
uMoAAA==

-->

</rfc>
