<?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.29 (Ruby 3.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-lake-exporter-output-length-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="EDHOC_Exporter Output Lengths">In-band Agreement of Output Lengths for the EDHOC_Exporter Interface of Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-lake-exporter-output-length-00"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>164 40</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>164 40</code>
          <country>Sweden</country>
        </postal>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="E." surname="Lopez-Perez" fullname="Elsa Lopez-Perez">
      <organization>Inria</organization>
      <address>
        <email>elsa.lopez-perez@inria.fr</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>SEC</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 61?>

<t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) allows two peers to compute a shared secret session key. Once the session key is available, the two peers can use the EDHOC_Exporter interface, e.g., to derive keying material for an application protocol. This document defines an in-band approach that can be used by the two peers to agree about the lengths of the outputs produced with the EDHOC_Exporter interface. The defined approach relies on an EDHOC External Authorization Data (EAD) item that can be exchanged in the first two EDHOC messages of an EDHOC session.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Lightweight Authenticated Key Exchange Working Group mailing list (lake@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lake/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-lake-exporter-output-length"/>.</t>
    </note>
  </front>
  <middle>
    <?line 65?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Ephemeral Diffie-Hellman Over COSE (EDHOC) <xref target="RFC9528"/> is a lightweight authenticated key exchange protocol, especially intended for use in constrained scenarios.</t>
      <t>Two peers participate in the EDHOC protocol, i.e., a peer acts as EDHOC Initiator and starts an EDHOC session with another peer acting as EDHOC Responder. The main output of a successfully completed EDHOC session is the shared secret session key PRK_out (see <xref section="4.1.3" sectionFormat="of" target="RFC9528"/>).</t>
      <t>After having established PRK_out, the two peers can use the EDHOC_Exporter interface defined in <xref section="4.2.1" sectionFormat="of" target="RFC9528"/>, e.g., to derive keying material for an application protocol. Among its inputs, the EDHOC_Exporter interface includes "exporter_label" as a registered numeric identifier of the intended output and "length" as the length in bytes of the intended output.</t>
      <t>At the time of writing, notable uses of the EDHOC_Exporter interface include the derivation of:</t>
      <ul spacing="normal">
        <li>
          <t>The Master Secret and Master Salt to use for establishing a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>. These derivations are specified in <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
        </li>
        <li>
          <t>A symmetric Pre-Shared Key rPSK to use for session resumption in EDHOC and the corresponding credential identifier rID_CRED_PSK <xref target="I-D.ietf-lake-edhoc-psk"/>. These derivations are specified in <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc-psk"/>.</t>
        </li>
      </ul>
      <t>When using the EDHOC_Exporter interface, it is crucial that the two peers agree about the length in bytes of each intended output, in order to ensure the correctness of their operations. To this end, the two peers can rely on pre-defined default lengths, or agree out-of-band on alternative lengths. However, the two peers might need or prefer to explicitly agree about specific output lengths to use on a per-session basis.</t>
      <t>This document defines an in-band approach that the two peers can use to agree about the lengths of the outputs produced with the EDHOC_Exporter interface. The defined approach relies on an EDHOC External Authorization Data (EAD) item (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>), which the two peers can exchange in the first two EDHOC messages of an EDHOC session.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Readers are expected to be familiar with the terms and concepts related to EDHOC <xref target="RFC9528"/>, Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, and Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the numeric parameter names and values.</t>
      </section>
    </section>
    <section anchor="ead-item">
      <name>EAD Item "EDHOC_Exporter Output Lengths"</name>
      <t>This section defines the EDHOC EAD item "EDHOC_Exporter Output Lengths", which is registered in <xref target="iana-edhoc-ead-registry"/> of this document.</t>
      <t>The EAD item <bcp14>MAY</bcp14> be included:</t>
      <ul spacing="normal">
        <li>
          <t>In the EAD_1 field of EDHOC message_1, in order to specify the output lengths that the Initiator wishes to use with the EDHOC_Exporter interface in the present EDHOC session.</t>
        </li>
        <li>
          <t>In the EAD_2 field of EDHOC message_2, in order to specify the output lengths that the Responder wishes to use with the EDHOC_Exporter interface in the present EDHOC session.</t>
        </li>
      </ul>
      <t>Within an EAD_1 field or EAD_2 field, the EAD item <bcp14>MUST NOT</bcp14> occur more than once. The EAD item <bcp14>MUST NOT</bcp14> be included in the EAD fields of EDHOC message_3 or message_4.</t>
      <t>When the EAD item is present, its ead_label TBD_EAD_LABEL <bcp14>MUST</bcp14> be used only with negative sign, i.e., the use of the EAD item is always critical (see Section 3.8 of <xref target="RFC9528"/>).</t>
      <t>The EAD item <bcp14>MUST</bcp14> specify an ead_value, as a CBOR byte string with value the binary representation of a CBOR sequence <xref target="RFC8742"/>, namely EXP_LEN_SEQ. As specified below, the CBOR sequence is composed of pairs of items, with the order of pairs having no meaning.</t>
      <t>Each pair (X, Y) of the CBOR sequence <bcp14>MUST</bcp14> be as follows.</t>
      <ul spacing="normal">
        <li>
          <t>The first element X is a CBOR unsigned integer, specifying the value to use as first argument "exporter_label" when invoking the EDHOC_Exporter interface (see Section 4.2.1 of <xref target="RFC9528"/>).  </t>
          <t>
The unsigned integer value is taken from the 'Label' column of the "EDHOC Exporter Labels" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group <xref target="EDHOC.Exporter.Labels"/>.</t>
        </li>
        <li>
          <t>The second element Y is a CBOR unsigned integer, specifying the value to use as third argument "length" when invoking the EDHOC_Exporter interface using the value specified by X as first argument "exporter_label" (see Section 4.2.1 of <xref target="RFC9528"/>).  </t>
          <t>
The value specified by Y <bcp14>MUST</bcp14> be a valid value to use as "length" when using the value specified by X as "exporter_label". For example, when X specifies 0 as the "exporter_label" to derive an OSCORE Master Secret <xref target="RFC8613"/>, Y is required to be not less than the "length" default value defined in <xref section="A.1" sectionFormat="of" target="RFC9528"/>, i.e., the key length (in bytes) of the application AEAD Algorithm of the selected cipher suite for the EDHOC session.</t>
        </li>
      </ul>
      <t>In the EAD item, ead_value <bcp14>MUST NOT</bcp14> specify multiple pairs that encode the same unsigned integer value in their first element X.</t>
      <t>The CDDL grammar <xref target="RFC8610"/> describing the ead_value for the EAD item "EDHOC_Exporter Output Lengths" is provided in <xref target="fig-cddl-ead-value"/>.</t>
      <figure anchor="fig-cddl-ead-value">
        <name>CDDL Definition of ead_value for the EAD Item "EDHOC_Exporter Output Lengths"</name>
        <artwork type="CDDL" align="left"><![CDATA[
ead_value = << EXP_LEN_SEQ >>

; This defines an array, the elements of which
; are to be used in the CBOR Sequence EXP_LEN_SEQ:
EXP_LEN_SEQ = [* pair]

pair = (
  exporter_label: uint,
  length: uint
)
]]></artwork>
      </figure>
      <t>An example of ead_value in CBOR diagnostic notation is provided in <xref target="fig-cbordiag-ead-value"/>. In the example, ead_value indicates the wish to use the EDHOC_Exporter interface to derive an OSCORE Master Secret and an OSCORE Master Salt <xref target="RFC8613"/> as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>, such that:</t>
      <ul spacing="normal">
        <li>
          <t>the OSCORE Master Secret (exporter_label: 0) has a length of 32 bytes; and</t>
        </li>
        <li>
          <t>the OSCORE Master Salt (exporter_label: 1) has a length of 16 bytes.</t>
        </li>
      </ul>
      <figure anchor="fig-cbordiag-ead-value">
        <name>Example of ead_value for the EAD Item "EDHOC_Exporter Output Lengths" in CBOR Diagnostic Notation</name>
        <artwork align="left"><![CDATA[
<< 0, 32, 1, 16 >>
]]></artwork>
      </figure>
      <t>That is, assuming the second argument "context" of the EDHOC_Exporter interface to be the empty CBOR byte string (i.e., h'' in CBOR diagnostic notation), the example above is consistent with performing the following two invocations of the EDHOC_Exporter interface:</t>
      <artwork><![CDATA[
EDHOC_Exporter(0, h'', 32)
EDHOC_Exporter(1, h'', 16)
]]></artwork>
    </section>
    <section anchor="processing-at-the-recipient-side">
      <name>Processing at the Recipient Side</name>
      <t>In case the recipient peer supports the EAD item, the recipient peer <bcp14>MUST</bcp14> silently ignore the EAD item "EDHOC_Exporter Output Lengths" if this is specified in the EAD_3 field of EDHOC message_3 or in the EAD_4 field of EDHOC message_4.</t>
      <t>Upon receiving an EDHOC message_1 or EDHOC message_2 whose EAD field includes the EAD item "EDHOC_Exporter Output Lengths", the recipient peer <bcp14>MUST</bcp14> abort the EDHOC session and <bcp14>MUST</bcp14> reply with an EDHOC error message with error code (ERR_CODE) 1, if any of the following occurs:</t>
      <ul spacing="normal">
        <li>
          <t>the EAD field includes multiple occurrences of the EAD item "EDHOC_Exporter Output Lengths";</t>
        </li>
        <li>
          <t>ead_value is malformed or does not conform with what is defined in <xref target="ead-item"/>;</t>
        </li>
        <li>
          <t>the recipient peer does not recognize the value encoded by the first element X of a pair (X, Y) as a valid "exporter_label" to be used when invoking the EDHOC_Exporter interface;</t>
        </li>
        <li>
          <t>in a pair (X, Y), the value encoded by the second element Y is not valid to be used as "length" when invoking the EDHOC_Exporter interface using the value encoded by the first element X as "exporter_label"; or</t>
        </li>
        <li>
          <t>for a pair (X, Y), the recipient peer is not going to be able to invoke the EDHOC_Exporter interface using the values encoded by X and Y as the first argument "exporter_label" and the third argument "length", respectively.</t>
        </li>
      </ul>
      <t>If the Responder has received an EDHOC message_1 including the EAD item "EDHOC_Exporter Output Lengths" and the Responder includes the EAD item "EDHOC_Exporter Output Lengths" in EDHOC message_2, then the following applies. Within ead_value of the EAD item included in EDHOC message_2, the Responder <bcp14>MUST NOT</bcp14> specify any pair (X, Y) such that the unsigned integer value encoded by X was encoded by the first element of a pair of the EAD item included in the received EDHOC message_1.</t>
      <t>If the Initiator receives an EDHOC message_2 including the EAD item "EDHOC_Exporter Output Lengths" after having sent an EDHOC message_1 including the EAD item "EDHOC_Exporter Output Lengths", then the following applies. The Initiator <bcp14>MUST</bcp14> abort the EDHOC session and <bcp14>MUST</bcp14> reply with an EDHOC error message with error code (ERR_CODE) 1, if ead_value of the EAD item included in EDHOC message_2 specifies any pair (X, Y) such that the unsigned integer value encoded by X was encoded by the first element of a pair of the EAD item included in the sent EDHOC message_1.</t>
      <t>In an EDHOC session during which the EAD item "EDHOC_Exporter Output Lengths" has been included in EDHOC message_1 and/or message_2, the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>The Initiator (Responder) considers the successful verification of EDHOC message_2 (message_3) as a confirmed agreement with the other peer about how to invoke the EDHOC_Exporter interface, once the session key PRK_out for the present EDHOC session is available.  </t>
          <t>
That is, for each pair (X, Y) specified by the exchanged EAD items, the two peers <bcp14>MUST</bcp14> use the unsigned integer values encoded by X and Y as the first argument "exporter_label" and the third argument "length", respectively.</t>
        </li>
        <li>
          <t>If a particular "exporter_label" value is not specified by the exchanged EAD items, then a possible invocation of the EDHOC_Exporter interface using that value as its first argument takes as value for its third argument "length" a pre-defined default value, or an alternative value agreed out-of-band.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations for EDHOC from <xref target="RFC9528"/> hold for this document. Furthermore, the following considerations apply.</t>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-edhoc-ead-registry">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to register the following entry in the "EDHOC External Authorization Data" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: EDHOC_Exporter Output Lengths</t>
          </li>
          <li>
            <t>Label: TBD_EAD_LABEL (range 0-23)</t>
          </li>
          <li>
            <t>Description: Set of output lengths to use with the EDHOC_Exporter interface</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="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="EDHOC.Exporter.Labels" target="https://www.iana.org/assignments/edhoc/edhoc.xhtml#edhoc-exporter-labels">
          <front>
            <title>EDHOC Exporter Labels</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </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="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>EDHOC Authenticated with Pre-Shared Keys (PSK)</title>
            <author fullname="Elsa Lopez-Perez" initials="" surname="Lopez-Perez">
              <organization>Inria</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="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies a Pre-Shared Key (PSK) authentication method
   for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange
   protocol.  The PSK method enhances computational efficiency while
   providing mutual authentication, ephemeral key exchange, identity
   protection, and quantum resistance.  It is particularly suited for
   systems where nodes share a PSK provided out-of-band (external PSK)
   and enables efficient session resumption with less computational
   overhead when the PSK is provided from a previous EDHOC session
   (resumption PSK).  This document details the PSK method flow, key
   derivation changes, message formatting, processing, and security
   considerations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-04"/>
        </reference>
      </references>
    </references>
    <?line 222?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Göran Selander"/> for his comments and feedback.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9Vb63IaRxb+P0/Ri6rWkguwkLWOjeMkGHCssiwUkBO7kpSq
mWmgo2GGdM8IY5X2WfYp8gCbF9tzTnfPDdDFSWV39UOCmb6c63cu3Wo0Gt5l
mz32vEQmoWizo6gx5lHAOlMlxFxECYsnbJAmizRhxyKaJjPNJrFiyUywfu/1
oHve/7iIVSIUTIXfE+4LnNJfzGC64iHryclEisZrEYZzHrHBJQztDkZ9tkvz
9zw+HisBRFSWK2/qBbEf8TlQGCg+SRqJDGOfN0J+IRrCTmnENKUR0hR4lwid
eJ5cqDZLVKqTg/39Z/sHHleCt9mo3/WW0zY77rzpsx9idSGjKftWxenCu1i2
DTeRSBo93M/zedJmOgk8nY7nUmsZR8lqgQLrn73yPD8OYHqbpcmk8dTzeJrM
YtX2GP007F/GZKTb7G2TnRH12WPD2Fuu/Lj6Klaw6vAIxNV5mT3UCSgH6DnS
fPJLrAI95QmI9uAgG+HLZNVmb6RO8qWARoFsN1pPDtnhfuF5GiUKho+WIhBR
9lzMuQzbbI5kNY28v1GyqcVmtoZN9vr336ZhGgUVxobygqtg/e1/nzdFlDVn
MRF2E3f9JjuOF+JT41Qo8anCYD/UfONr4vAoUpJXdxYwpRnSlAVO+UbiqOZE
eV4UqzlP5KVA+xm+6j590tpvMz8IQvv9i8MD+D6OVUOLX+2zZ4fPzDPz/dk/
Dp7CJsEs9uEBeVbTeVbzmI9he2OdZUs19HZOOvQ9AAdqswkPrVAsRNBqLPNT
s5oZwNUUdTdLkoVuP3q0XC6bkke8Ces+4uA00wghRT8iwszv5sdZMg936HPu
yaFZ1JPRZF0aj9ss1n6skKqjRq8pBXidQQJaZaEvLO/40fNgSzQZGD3qH79q
s9qPsE7jPfz8XPO8RqPB+BjMjvsAFmeAa6GczpKlwN8kH5wP/i8CdiFWTHz0
ZzyaCrZQcRL7cXgPrGM8DOOlZskyZgshFHyKwUbngFqCcaZnAE0B08JXIoE/
BDO4aZMNIsBVBN3CUyY145dgTnwcijq9zRf2Yf9Ui01ALR1Q15loTpt1JCIQ
CmSMqyIMgsThOzCEUA8L8cUiRBHgxo5tQLEZEAC4nFKcCMRERkLjcGmDCExT
MfdnQARPiKKxQKICNl5VyAUSOIYcUAWgOL0MbbiBaIJfDbhr3D9IfVhjKZPZ
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
Nb3/AFp2wcdwNQAA

-->

</rfc>
