<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-edhoc-04" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <?v3xml2rfc silence="Found SVG with width or height specified"?>
  <front>
    <title abbrev="EAP-EDHOC">Using the Extensible Authentication Protocol (EAP) with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-04"/>
    <author initials="D." surname="Garcia-Carrillo" fullname="Dan Garcia-Carrillo">
      <organization>University of Oviedo</organization>
      <address>
        <postal>
          <street>Gijon, Asturias  33203</street>
          <country>Spain</country>
        </postal>
        <email>garciadan@uniovi.es</email>
      </address>
    </author>
    <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
      <organization>University of Murcia</organization>
      <address>
        <postal>
          <street>Murcia  30100</street>
          <country>Spain</country>
        </postal>
        <email>rafa@um.es</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="F." surname="Lopez-Gomez" fullname="Francisco Lopez-Gomez">
      <organization>University of Murcia</organization>
      <address>
        <postal>
          <street>Murcia  30100</street>
          <country>Spain</country>
        </postal>
        <email>francisco.lopezg@um.es</email>
      </address>
    </author>
    <date year="2025" month="June" day="04"/>
    <area/>
    <workgroup>EAP Method Update</workgroup>
    <abstract>
      <?line 96?>

<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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-emu-eap-edhoc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EAP Method Update  mailing list (<eref target="mailto:emu@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/emu"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/emu/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dangarciacarrillo/i-d-eap-edhoc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 100?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Extensible Authentication Protocol (EAP), defined in <xref target="RFC3748"/>, provides a standard mechanism for support of multiple authentication methods. This document specifies the EAP authentication method EAP-EDHOC, which is based on the lightweight security handshake protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) <xref target="RFC9528"/>.</t>
      <t>EAP-EDHOC is similar to EAP-TLS 1.3 <xref target="RFC9190"/>, since EDHOC is based on a similar security protocol design as the TLS 1.3 handshake <xref target="RFC8446"/>. However, EDHOC has been optimized for highly constrained settings, for example involving wirelessly connected battery powered 'things' with embedded microcontrollers, sensors, and actuators. An overview of EDHOC is given in <xref target="edhoc-overview"/>.</t>
      <t>The EAP-EDHOC method enables the integration of EDHOC into different applications and use cases using the EAP framework.</t>
      <section anchor="edhoc-overview">
        <name>EDHOC Overview</name>
        <t>Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight authenticated ephemeral key exchange, including mutual authentication and establishment of shared secret keying material, see <xref target="RFC9528"/>.</t>
        <t>EDHOC provides state-of-the-art security design at very low message overhead, targeting low complexity implementations and allowing extensibility. The security of EDHOC has been thoroughly analyzed, some references are provided in <xref section="9.1" sectionFormat="of" target="RFC9528"/>.</t>
        <t>The main features of EDHOC are:</t>
        <ul spacing="normal">
          <li>
            <t>Support for different authentication methods and credentials. The authentication methods includes (mixed) signatures and static Diffie-Hellman keys <xref target="RFC9528"/>, and pre-shared keys <xref target="I-D.ietf-lake-edhoc-psk"/>. A large and extensible variety of authentication credentials is supported, including public key certificates such as X.509 and C509 <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, CBOR Web Tokens and CWT Claims Sets <xref target="RFC8392"/>.</t>
          </li>
          <li>
            <t>A standardized and extensible format for identification of credentials, using COSE header parameters <xref target="RFC9052"/>, supporting credential transport by value or by reference, enabling very compact representations.</t>
          </li>
          <li>
            <t>Crypto agility and secure cipher suite negotiation, with predefined compactly represented cipher suites and support for extensibility using the COSE algorithms registry <xref target="RFC9053"/>.</t>
          </li>
          <li>
            <t>Selection of connection identifiers identifying a connection for which keys are agreed.</t>
          </li>
          <li>
            <t>Support for integration of external security applications into EDHOC by transporting External Authorization Data (EAD) included in and protected as EDHOC messages.</t>
          </li>
        </ul>
        <t>A necessary condition for a successful completion of an EDHOC session is that both peers support a common application profile including method, cipher suite,  etc. More details are provided in  <xref target="I-D.ietf-lake-app-profiles"/>.</t>
        <t>EDHOC messages makes use of lightweight primitives, specifically CBOR <xref target="RFC8949"/> and COSE <xref target="RFC9052"/> <xref target="RFC9053"/> for efficient encoding and security services in constrained devices. EDHOC is optimized for use with CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> to secure resource access in constrained IoT use cases, but it is not bound to a particular transport or communication security protocol.</t>
      </section>
    </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 EAP <xref target="RFC3748"/> and EDHOC <xref target="RFC9528"/>.</t>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <section anchor="overview-of-the-eap-edhoc-conversation">
        <name>Overview of the EAP-EDHOC Conversation</name>
        <t>The EAP exchange involves three key entities: the EAP peer, the EAP authenticator, and the EAP server. The EAP authenticator is a network device that enforces access control and initiates the EAP authentication process. The EAP peer is the device seeking network access and communicates directly with the EAP authenticator. The EAP server is responsible for selecting and implementing the authentication methods and for authenticating the EAP peer. When the EAP server is not located on a separate backend authentication server, it is integrated into the EAP authenticator. For simplicity, the operational flow diagrams in this document depict only the EAP peer and the EAP server.</t>
        <t>The EDHOC protocol running between an Initiator and a Responder consists of three mandatory messages (message_1, message_2, message_3), an optional message_4, and an error message. In an EDHOC session, EAP-EDHOC uses all messages including message_4, which is mandatory and acts as a protected success indication.</t>
        <t>After receiving an EAP-Request packet with EAP-Type=EAP-EDHOC as described in this document, the conversation will continue with the EDHOC messages transported in the data fields of EAP-Response and EAP-Request packets. When EAP-EDHOC is used, the formatting and processing of EDHOC messages <bcp14>SHALL</bcp14> be done as specified in <xref target="RFC9528"/>. This document only lists additional and different requirements, restrictions, and processing compared to <xref target="RFC9528"/>.</t>
        <t>The message processing in <xref section="5" sectionFormat="of" target="RFC9528"/> states that certain data (EAD items, connection identifiers, application algorithms, etc.) is made available to the application. Since EAP-EDHOC is now acting as the application of EDHOC, it may need to handle this data to complete the protocol execution. See also <xref target="I-D.ietf-lake-edhoc-impl-cons"/>.</t>
        <t>Resumption of EAP-EDHOC may be defined using the EDHOC-PSK authentication method <xref target="I-D.ietf-lake-edhoc-psk"/>.</t>
        <section anchor="successful-eap-edhoc-message-flow-without-fragmentation">
          <name>Successful EAP-EDHOC Message Flow without Fragmentation</name>
          <t>EDHOC allows EAP-EDHOC to support authentication credentials of any type defined by COSE, which can be either transported or referenced during the protocol.</t>
          <t>The optimization combining the execution of EDHOC with the first subsequent OSCORE transaction specified in <xref target="RFC9668"/> is not supported in this EAP method.</t>
          <t><xref target="message-flow"/> shows an example message flow for a successful execution of EAP-EDHOC.</t>
          <figure anchor="message-flow">
            <name>EAP-EDHOC Message Flow</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="528" viewBox="0 0 528 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,592" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,592" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 472,480" fill="none" stroke="black"/>
                  <path d="M 56,528 L 472,528" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,528 468,522.4 468,533.6" fill="black" transform="rotate(0,472,528)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="468">(EDHOC</text>
                    <text x="420" y="468">message_4)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="564">EAP-Success</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Success   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t>If the EAP-EDHOC peer authenticates successfully, the EAP-EDHOC server <bcp14>MUST</bcp14> send an EAP-Request packet with EAP-Type=EAP-EDHOC containing message_4 as a protected success indication.</t>
          <t>If the EAP-EDHOC server authenticates successfully, and the EAP-EDHOC peer achieves key confirmation by successfully verifying EDHOC message_4, then the EAP-EDHOC peer <bcp14>MUST</bcp14> send an EAP-Response message with EAP-Type=EAP-EDHOC containing no data. Finally, the EAP-EDHOC server sends an EAP-Success.</t>
          <t>Note that the Identity request is optional <xref target="RFC3748"/> and might not be used in systems like 3GPP 5G <xref target="Sec5G"/> where the identity is transferred encrypted by other means before the EAP exchange. And while the EAP-Response/EAP-Type=EAP-EDHOC and EAP-Success are mandatory <xref target="RFC3748"/>} they do not contain any information and might be encoded into other system specific messages <xref target="Sec5G"/>.</t>
        </section>
        <section anchor="transport-and-message-correlation">
          <name>Transport and Message Correlation</name>
          <t>EDHOC is not bound to a particular transport layer and can even be used in environments without IP. Nonetheless, <xref target="RFC9528"/> provides a set of requirements for a transport protocol to use with EDHOC. These include: handling the loss, reordering, duplication, correlation, and fragmentation of messages; demultiplexing EDHOC messages from other types of messages; and denial-of-service protection. All these requirements are fulfilled by the EAP protocol, EAP method, or EAP lower layer, as specified in <xref target="RFC3748"/>.</t>
          <t>For message loss, this can be either fulfilled by the EAP layer, or the EAP lower layer, or both.</t>
          <t>For reordering, EAP relies on the EAP lower layer ordering guarantees, for correct operation.</t>
          <t>For duplication and message correlation, EAP has the Identifier field, which allows both the EAP peer and EAP authenticator to detect duplicates and match a request with a response.</t>
          <t>Fragmentation is defined by this EAP method, see <xref target="fragmentation"/>. The EAP framework <xref target="RFC3748"/>, specifies that EAP methods need to provide fragmentation and reassembly if EAP packets can exceed the minimum MTU of 1020 octets.</t>
          <t>To demultiplex EDHOC messages from other types of messages, EAP provides the Type field.</t>
          <t>This method does not provide other mitigation against denial-of-service than EAP <xref target="RFC3748"/>.</t>
        </section>
        <section anchor="termination">
          <name>Termination</name>
          <t><xref target="message1-reject"/>, <xref target="message2-reject"/>, <xref target="message3-reject"/>, and <xref target="message4-reject"/> illustrate message flows in several cases where the EAP-EDHOC peer or EAP-EDHOC server sends an EDHOC error message.</t>
          <t><xref target="message1-reject"/> shows an example message flow where the EAP-EDHOC server rejects message_1 with an EDHOC error message.</t>
          <figure anchor="message1-reject">
            <name>EAP-EDHOC Server Rejection of message_1</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="528" viewBox="0 0 528 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,464" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,464" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,400 L 472,400" fill="none" stroke="black"/>
                  <path d="M 56,448 L 472,448" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,400 468,394.4 468,405.6" fill="black" transform="rotate(0,472,400)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,448 52,442.4 52,453.6" fill="black" transform="rotate(180,56,448)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="340">(EDHOC</text>
                    <text x="436" y="340">error)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="436">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC error)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message2-reject"/> shows an example message flow where the EAP-EDHOC server authentication is unsuccessful and the EAP-EDHOC peer sends an EDHOC error message.</t>
          <figure anchor="message2-reject">
            <name>EAP-EDHOC Peer Rejection of message_2</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="528" viewBox="0 0 528 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,480" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,480" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,464 L 472,464" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,464 52,458.4 52,469.6" fill="black" transform="rotate(180,56,464)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="148" y="404">error)</text>
                    <text x="416" y="452">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC error)                                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message3-reject"/> shows an example message flow where the EAP-EDHOC server authenticates to the EAP-EDHOC peer successfully, but the EAP-EDHOC peer fails to authenticate to the EAP-EDHOC server, and the server sends an EDHOC error message.</t>
          <t>Note that the EDHOC error message may not be omitted. For example with EDHOC ERR_CODE 3 "Unknown credential referenced" it is indicated that the EDHOC peer should, for the next EDHOC session, try another credential identifier supported according to the application profile.</t>
          <figure anchor="message3-reject">
            <name>EAP-EDHOC Server Rejection of message_3</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="528" viewBox="0 0 528 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,592" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,592" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 472,480" fill="none" stroke="black"/>
                  <path d="M 56,528 L 472,528" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,528 468,522.4 468,533.6" fill="black" transform="rotate(0,472,528)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="468">(EDHOC</text>
                    <text x="436" y="468">error)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="564">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC error)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message4-reject"/> shows an example message flow where the EAP-EDHOC server sends the EDHOC message_4 to the EAP peer, but the protected success indication fails, and the peer sends an EDHOC error message.</t>
          <figure anchor="message4-reject">
            <name>EAP-EDHOC Peer Rejection of message_4</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="528" viewBox="0 0 528 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,608" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,608" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 464,480" fill="none" stroke="black"/>
                  <path d="M 56,544 L 472,544" fill="none" stroke="black"/>
                  <path d="M 56,592 L 472,592" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,544 468,538.4 468,549.6" fill="black" transform="rotate(0,472,544)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,592 52,586.4 52,597.6" fill="black" transform="rotate(180,56,592)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="468">(EDHOC</text>
                    <text x="420" y="468">message_4)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="532">(EDHOC</text>
                    <text x="148" y="532">error)</text>
                    <text x="416" y="580">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------  |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC error)                                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="identity">
          <name>Identity</name>
          <t>It is <bcp14>RECOMMENDED</bcp14> to use anonymous NAIs <xref target="RFC7542"/> in the Identity Response, as such identities are routable and privacy-friendly.</t>
          <t>While opaque blobs are allowed by <xref target="RFC3748"/>, such identities are <bcp14>NOT RECOMMENDED</bcp14> as they are not routable and should only be considered in local deployments where the EAP-EDHOC peer, EAP authenticator, and EAP-EDHOC server all belong to the same network.</t>
          <t>Many client certificates contain an identity such as an email address, which is already in NAI format. When the certificate contains an NAI as subject name or alternative subject name, an anonymous NAI <bcp14>SHOULD</bcp14> be derived from the NAI in the certificate; See <xref target="privacy"/>.</t>
        </section>
        <section anchor="privacy">
          <name>Privacy</name>
          <t>EAP-EDHOC peer and server implementations supporting EAP-EDHOC <bcp14>MUST</bcp14> support anonymous Network Access Identifiers (NAIs) (Section 2.4 of <xref target="RFC7542"/>).
A node supporting EAP-EDHOC <bcp14>MUST NOT</bcp14> send its username (or any other permanent identifiers) in cleartext in the Identity Response (or any message used instead of the Identity Response). Following <xref target="RFC7542"/>, it is <bcp14>RECOMMENDED</bcp14> to omit the username (i.e., the NAI is @realm), but other constructions such as a fixed username (e.g., anonymous@realm) or an encrypted username (e.g., xCZINCPTK5+7y81CrSYbPg+RKPE3OTrYLn4AQc4AC2U=@realm) are allowed. Note that the NAI <bcp14>MUST</bcp14> be a UTF-8 string as defined by the grammar in Section 2.2 of <xref target="RFC7542"/>.</t>
        </section>
        <section anchor="fragmentation">
          <name>Fragmentation</name>
          <t>EDHOC is designed to perform well in constrained networks where message sizes are restricted for performance reasons. When credentials are passed by reference, EAP-EDHOC messages are typically so small that fragmentation is not needed. However as EAP-EDHOC also supports large X.509 certificate chains, EAP-EDHOC implementations <bcp14>MUST</bcp14> provide support for fragmentation and reassembly. Since EAP is a lock-step protocol, fragmentation support can be easily added.</t>
          <t>To do so, the EAP-Response and EAP-Request packets of EAP-EDHOC have a set of information fields that allow for the specification of the fragmentation process (See <xref target="detailed-description"/> for the detailed description). As a summary, EAP-EDHOC fragmentation support is provided through the addition of flag bits (M and L) within the EAP-Response and EAP-Request packets, as well as a (conditional) EAP-EDHOC Message Length field that can be zero to four octets.</t>
          <t>If the L bits are set, this indicates that the message is fragmented, and that the total message length is specified in the EAP-EDHOC Message Length field.</t>
          <t>Implementations <bcp14>MUST NOT</bcp14> set the L bit in unfragmented messages. However, they <bcp14>MUST</bcp14> accept unfragmented messages regardless of whether the L bit is set. Some EAP implementations and access networks impose limits on the number of EAP packet exchanges that can be processed. To minimize fragmentation, it is <bcp14>RECOMMENDED</bcp14> to use compact EAP-EDHOC peer, EAP-EDHOC server, and trust anchor authentication credentials, as well as to limit the length of certificate chains. Additionally, mechanisms that reduce the size of Certificate messages are <bcp14>RECOMMENDED</bcp14>.</t>
          <t>To be more specific, the L field indicates the length of the EDHOC Message Length field, which <bcp14>MUST</bcp14> be present for the first fragment of a fragmented EDHOC message. The M flag bit is set on all but the last fragment. The S flag bit is set only within the EAP-EDHOC start message sent by the EAP server to the peer (and is also used in unfragmented exchanges). The EDHOC Message Length field provides the total length of the EDHOC message that is being fragmented; this simplifies buffer allocation.</t>
          <t>When an EAP-EDHOC peer receives an EAP-Request packet with the M bit set, it <bcp14>MUST</bcp14> respond with an EAP-Response with EAP-Type=EAP-EDHOC and no data. This serves as a fragment ACK. The EAP server <bcp14>MUST</bcp14> wait until it receives the EAP-Response before sending another fragment. To prevent errors in the processing of fragments, the EAP server <bcp14>MUST</bcp14> increment the Identifier field for each fragment contained within an EAP-Request, and the peer <bcp14>MUST</bcp14> include this Identifier value in the fragment ACK contained within the EAP-Response. Retransmitted fragments will contain the same Identifier value.</t>
          <t>Similarly, when the EAP-EDHOC server receives an EAP-Response with the M bit set, it <bcp14>MUST</bcp14> respond with an EAP-Request with EAP-Type=EAP-EDHOC and no data. This serves as a fragment ACK. The EAP peer <bcp14>MUST</bcp14> wait until it receives the EAP-Request before sending another fragment. To prevent errors in the processing of fragments, the EAP server <bcp14>MUST</bcp14> increment the Identifier value for each fragment ACK contained within an EAP-Request, and the peer <bcp14>MUST</bcp14> include this Identifier value in the subsequent fragment contained within an EAP-Response.</t>
          <t>In the case where the EAP-EDHOC mutual authentication is successful, and fragmentation is required, the conversation, illustrated in <xref target="fragmentation-flow"/> will appear as follows:</t>
          <figure anchor="fragmentation-flow">
            <name>EAP-EDHOC Fragmentation Example</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1056" width="528" viewBox="0 0 528 1056" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,1040" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,1040" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,400 L 472,400" fill="none" stroke="black"/>
                  <path d="M 56,464 L 472,464" fill="none" stroke="black"/>
                  <path d="M 56,512 L 472,512" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <path d="M 56,640 L 472,640" fill="none" stroke="black"/>
                  <path d="M 56,688 L 472,688" fill="none" stroke="black"/>
                  <path d="M 56,752 L 472,752" fill="none" stroke="black"/>
                  <path d="M 56,800 L 472,800" fill="none" stroke="black"/>
                  <path d="M 56,864 L 472,864" fill="none" stroke="black"/>
                  <path d="M 56,928 L 472,928" fill="none" stroke="black"/>
                  <path d="M 56,976 L 472,976" fill="none" stroke="black"/>
                  <path d="M 56,1024 L 472,1024" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,976 468,970.4 468,981.6" fill="black" transform="rotate(0,472,976)"/>
                  <polygon class="arrowhead" points="480,864 468,858.4 468,869.6" fill="black" transform="rotate(0,472,864)"/>
                  <polygon class="arrowhead" points="480,752 468,746.4 468,757.6" fill="black" transform="rotate(0,472,752)"/>
                  <polygon class="arrowhead" points="480,640 468,634.4 468,645.6" fill="black" transform="rotate(0,472,640)"/>
                  <polygon class="arrowhead" points="480,512 468,506.4 468,517.6" fill="black" transform="rotate(0,472,512)"/>
                  <polygon class="arrowhead" points="480,400 468,394.4 468,405.6" fill="black" transform="rotate(0,472,400)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,1024 52,1018.4 52,1029.6" fill="black" transform="rotate(180,56,1024)"/>
                  <polygon class="arrowhead" points="64,928 52,922.4 52,933.6" fill="black" transform="rotate(180,56,928)"/>
                  <polygon class="arrowhead" points="64,800 52,794.4 52,805.6" fill="black" transform="rotate(180,56,800)"/>
                  <polygon class="arrowhead" points="64,688 52,682.4 52,693.6" fill="black" transform="rotate(180,56,688)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,464 52,458.4 52,469.6" fill="black" transform="rotate(180,56,464)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="292" y="212">(EDHOC</text>
                    <text x="348" y="212">Start,</text>
                    <text x="384" y="212">S</text>
                    <text x="408" y="212">bit</text>
                    <text x="444" y="212">set)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="108" y="340">(EDHOC</text>
                    <text x="180" y="340">message_2,</text>
                    <text x="260" y="340">Fragment</text>
                    <text x="308" y="340">1,</text>
                    <text x="328" y="340">L</text>
                    <text x="352" y="340">and</text>
                    <text x="376" y="340">M</text>
                    <text x="404" y="340">bits</text>
                    <text x="444" y="340">set)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="340" y="436">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="164" y="452">(EDHOC</text>
                    <text x="236" y="452">message_2,</text>
                    <text x="316" y="452">Fragment</text>
                    <text x="364" y="452">2,</text>
                    <text x="384" y="452">M</text>
                    <text x="408" y="452">bit</text>
                    <text x="444" y="452">set)</text>
                    <text x="192" y="500">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="340" y="548">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="252" y="564">(EDHOC</text>
                    <text x="324" y="564">message_2,</text>
                    <text x="404" y="564">Fragment</text>
                    <text x="452" y="564">3)</text>
                    <text x="192" y="612">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="628">(EDHOC</text>
                    <text x="164" y="628">message_3,</text>
                    <text x="244" y="628">Fragment</text>
                    <text x="292" y="628">1,</text>
                    <text x="312" y="628">L</text>
                    <text x="336" y="628">and</text>
                    <text x="360" y="628">M</text>
                    <text x="388" y="628">bits</text>
                    <text x="428" y="628">set)</text>
                    <text x="340" y="676">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="192" y="724">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="740">(EDHOC</text>
                    <text x="164" y="740">message_3,</text>
                    <text x="244" y="740">Fragment</text>
                    <text x="292" y="740">2,</text>
                    <text x="312" y="740">M</text>
                    <text x="336" y="740">bit</text>
                    <text x="372" y="740">set)</text>
                    <text x="340" y="788">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="192" y="836">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="852">(EDHOC</text>
                    <text x="164" y="852">message_3,</text>
                    <text x="244" y="852">Fragment</text>
                    <text x="292" y="852">3)</text>
                    <text x="340" y="900">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="916">(EDHOC</text>
                    <text x="420" y="916">message_4)</text>
                    <text x="192" y="964">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="1012">EAP-Success</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                            (EDHOC Start, S bit set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |     (EDHOC message_2, Fragment 1, L and M bits set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |            (EDHOC message_2, Fragment 2, M bit set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                       (EDHOC message_2, Fragment 3)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 1, L and M bits set)     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 2, M bit set)            |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 3)                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Success   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="identity-verification">
        <name>Identity Verification</name>
        <t>The EAP peer identity provided in the EAP-Response/Identity is not authenticated by EAP-EDHOC. Unauthenticated information <bcp14>MUST NOT</bcp14> be used for accounting purposes or to give authorization. The EAP authenticator and the EAP server <bcp14>MAY</bcp14> examine the identity presented in EAP-Response/Identity for purposes such as routing and EAP method selection. EAP-EDHOC servers <bcp14>MAY</bcp14> reject conversations if the identity does not match their policy.</t>
        <t>The EAP server identity in the EDHOC server certificate is typically a fully qualified domain name (FQDN) in the SubjectAltName (SAN) extension. Since EAP-EDHOC deployments may use more than one EAP server, each with a different certificate, EAP peer implementations <bcp14>SHOULD</bcp14> allow for the configuration of one or more trusted root certificates (CA certificate) to authenticate the server certificate and one or more server names to match against the SubjectAltName (SAN) extension in the server certificate. If any of the configured names match any of the names in the SAN extension, then the name check passes. To simplify name matching, an EAP-EDHOC deployment can assign a designated name to represent an authorized EAP server. This name can then be included in the SANs list of each certificate used by this EAP-EDHOC server. If server name matching is not used, the EAP peer has reduced assurance that the EAP server it is interacting with is authoritative for the given network. If name matching is not used with a public root CA, then effectively any server can obtain a certificate that will be trusted for EAP authentication by the peer.</t>
        <t>The process of configuring a root CA certificate and a server name is non-trivial; therefore, automated methods of provisioning are <bcp14>RECOMMENDED</bcp14>. For example, the eduroam federation <xref target="RFC7593"/> provides a Configuration Assistant Tool (CAT) to automate the configuration process. In the absence of a trusted root CA certificate (user-configured or system-wide), EAP peers <bcp14>MAY</bcp14> implement a Trust On First Use (TOFU) mechanism where the peer trusts and stores the server certificate during the first connection attempt. The EAP peer ensures that the server presents the same stored certificate on subsequent interactions. The use of a TOFU mechanism does not allow for the server certificate to change without out-of-band validation of the certificate and is therefore not suitable for many deployments including ones where multiple EAP servers are deployed for high availability. TOFU mechanisms increase the susceptibility to traffic interception attacks and should only be used if there are adequate controls in place to mitigate this risk.</t>
      </section>
      <section anchor="Key_Hierarchy">
        <name>Key Hierarchy</name>
        <t>The key derivation for EDHOC is described in Section 4 of <xref target="RFC9528"/>. The key material and Method-Id <bcp14>SHALL</bcp14> be derived from the PRK_exporter using the EDHOC_Exporter interface, see Section 4.2.1 of <xref target="RFC9528"/>.</t>
        <t>Type is the value of the EAP Type field defined in Section 2 of <xref target="RFC3748"/>. For EAP-EDHOC, Type has the value TBD1. The &lt;&lt; &gt;&gt; notation defined in Section G.3 of <xref target="RFC8610"/> means that the integer Type value is embedded in a CBOR byte string. The use of Type as context enables the reuse of exporter labels across other future EAP methods based on EDHOC.</t>
        <artwork><![CDATA[
Type        =  TBD1
MSK         =  EDHOC_Exporter(TBD2, << Type >>, 64)
EMSK        =  EDHOC_Exporter(TBD3, << Type >>, 64)
Method-Id   =  EDHOC_Exporter(TBD4, << Type >>, 64)
Session-Id  =  Type || Method-Id
Peer-Id     =  ID_CRED_I
Server-Id   =  ID_CRED_R
]]></artwork>
        <t>EAP-EDHOC exports the MSK and the EMSK and does not specify how it is used by lower layers.</t>
      </section>
      <section anchor="parameter-negotiation-and-compliance-requirements">
        <name>Parameter Negotiation and Compliance Requirements</name>
        <t>The EAP-EDHOC peers and EAP-EDHOC servers <bcp14>MUST</bcp14> comply with the requirements defined in Section 8 of <xref target="RFC9528"/>, including mandatory-to-implement cipher suites, signature algorithms, key exchange algorithms, and extensions.</t>
      </section>
      <section anchor="eap-state-machines">
        <name>EAP State Machines</name>
        <t>The EAP-EDHOC server sends message_4 in an EAP-Request as a protected success result indication.</t>
        <t>EDHOC error messages <bcp14>SHOULD</bcp14> be considered failure result indication, as defined in <xref target="RFC3748"/>. After sending or receiving an EDHOC error message, the EAP-EDHOC server may only send an EAP-Failure. EDHOC error messages are unprotected.</t>
        <t>The keying material can be derived after the EDHOC message_2 has been sent or received. Implementations following <xref target="RFC4137"/> can then set the eapKeyData and aaaEapKeyData variables.</t>
        <t>The keying material can be made available to lower layers and the EAP authenticator after the protected success indication (message_4) has been sent or received. Implementations following <xref target="RFC4137"/> can set the eapKeyAvailable and aaaEapKeyAvailable variables.</t>
      </section>
      <section anchor="Channel_Binding">
        <name>EAP Channel Binding</name>
        <t>EAP-EDHOC allows the secure exchange of information between the endpoints of the authentication process (i.e., the EAP peer and the EAP server) using protected data fields. These fields can be used to exchange EAP channel binding information, as defined in <xref target="RFC6677"/>.</t>
        <t>Section 6 in <xref target="RFC6677"/> outlines requirements for components implementing channel binding information, all of which are satisfied by EAP-EDHOC, including confidentiality and integrity protection. Additionally, EAP-EDHOC supports fragmentation, allowing the inclusion of additional information at the method level without issues.</t>
        <t>While EAP_1 and EAP_2 are integrity protected through the transcript hash, the channel binding protocol defined in <xref target="RFC6677"/> must be transported after keying material has been derived between the endpoints in the EAP communication and before the peer is exposed to potential adverse effects from joining an adversarial network. Therefore, compliance with <xref target="RFC6677"/> requires use of the EAD_3 and EAD_4 fields, transmitted in EDHOC message_3 and EDHOC message_4, respectively.</t>
        <t>If the server detects a consistency error in the channel binding information contained in EAD_3, it will send a protected indication of failed consistency in EAD_4. Subsequently, the EAP peer will respond with the standard empty EAP-EDHOC message, and the EAP server will conclude the exchange with an EAP-Failure message.</t>
        <t>Accordingly, a new EAD item is defined to incorporate EAP channel binding information into the EAD fields of the EAP-EDHOC messages:</t>
        <ul spacing="normal">
          <li>
            <t>ead_label = TBD5</t>
          </li>
          <li>
            <t>ead_value is a CBOR byte string.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="detailed-description">
      <name>Detailed Description of the EAP-EDHOC Request and Response Protocol</name>
      <t>The EAP-EDHOC packet format for Requests and Responses is summarized in <xref target="packet"/>. Fields are transmitted from left to right. following a structure inspired by the EAP-TLS packet format <xref target="RFC5216"/>. As specified in Section 4.1 of <xref target="RFC3748"/>, EAP Request and Response packets consist of Code, Identifier, Length, Type, and Type-Data fields. The functions of the Code, Identifier, Length, and Type fields are reiterated here for convenience. The EAP Type-Data field consists of the R, S, M, L, EDHOC Message Length, and EDHOC Data fields.</t>
      <figure anchor="packet">
        <name>EAP-EDHOC Request and Response Packet Format</name>
        <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |   Identifier  |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  R  |S|M|  L  |      EDHOC Message Length     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          EDHOC Data                           ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <section anchor="eap-edhoc-request-packet">
        <name>EAP-EDHOC Request Packet</name>
        <dl>
          <dt>Code:</dt>
          <dd>
            <t>1 (Request)</t>
          </dd>
          <dt>Identifier:</dt>
          <dd>
            <t>The Identifier field is one octet and aids in matching responses with requests. The Identifier field <bcp14>MUST</bcp14> be changed on each new (non-retransmission) Request packet, and <bcp14>MUST</bcp14> be the same if a Request packet is retransmitted due to a timeout while waiting for a Response.</t>
          </dd>
          <dt>Length:</dt>
          <dd>
            <t>The Length field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and Data fields. Octets outside the range of the Length field should be treated as Data Link Layer padding and <bcp14>MUST</bcp14> be ignored on reception.</t>
          </dd>
          <dt>Type:</dt>
          <dd>
            <t>TBD1 (EAP-EDHOC)</t>
          </dd>
          <dt>R:</dt>
          <dd>
            <t>Implementations of this specification <bcp14>MUST</bcp14> set the R bits (reserved) to zero and <bcp14>MUST</bcp14> ignore them on reception.</t>
          </dd>
          <dt>S:</dt>
          <dd>
            <t>The S bit (EAP-EDHOC start) is set in an EAP-EDHOC Start message. This differentiates the EAP-EDHOC Start message from a fragment acknowledgement.</t>
          </dd>
          <dt>M:</dt>
          <dd>
            <t>The M bit (more fragments) is set on all but the last fragment. I.e., when there is no fragmentation, it is set to zero.</t>
          </dd>
          <dt>L:</dt>
          <dd>
            <t>The L field is the binary encoding of the size of the EDHOC Message Length, in the range 0 byte to 4 bytes. All three bits set to 0 indicates that the EDHOC Message Length field is not present. If the first two bits of the L field are set to 0, and the final bit is set to 1, then the size of the EDHOC Message Length field is 1 byte, and so on.</t>
          </dd>
          <dt>EDHOC Message Length:</dt>
          <dd>
            <t>The EDHOC Message Length field can have a size of one to four octets and is present only if the L field represent a value greater than 0. This field provides the total length of the EDHOC message that is being fragmented. When there is no fragmentation it is not present.</t>
          </dd>
          <dt>EDHOC Data:</dt>
          <dd>
            <t>The EDHOC data consists of the whole or a fragment of transported EDHOC message.</t>
          </dd>
        </dl>
      </section>
      <section anchor="eap-edhoc-response-packet">
        <name>EAP-EDHOC Response Packet</name>
        <dl>
          <dt>Code:</dt>
          <dd>
            <t>2 (Response)</t>
          </dd>
          <dt>Identifier:</dt>
          <dd>
            <t>The Identifier field is one octet and <bcp14>MUST</bcp14> match the Identifier field from the corresponding request.</t>
          </dd>
          <dt>Length:</dt>
          <dd>
            <t>The Length field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and Data fields. Octets outside the range of the Length field should be treated as Data Link Layer padding and <bcp14>MUST</bcp14> be ignored on reception.</t>
          </dd>
          <dt>Type:</dt>
          <dd>
            <t>TBD1 (EAP-EDHOC)</t>
          </dd>
          <dt>R:</dt>
          <dd>
            <t>Implementations of this specification <bcp14>MUST</bcp14> set the R bits (reserved) to zero and <bcp14>MUST</bcp14> ignore them on reception.</t>
          </dd>
          <dt>S:</dt>
          <dd>
            <t>The S bit (EAP-EDHOC start) is set to zero.</t>
          </dd>
          <dt>M:</dt>
          <dd>
            <t>The M bit (more fragments) is set on all but the last fragment. I.e., when there is no fragmentation, it is set to zero.</t>
          </dd>
          <dt>L:</dt>
          <dd>
            <t>The L field is the binary encoding of the size of the EDHOC Message Length, in the range 0 byte to 4 bytes. All three bits set to 0 indicates that the EDHOC Message Length field is not present. If the first two bits of the L field are set to 0, and the final bit is set to 1, then the size of the EDHOC Message Length field is 1 byte, and so on.</t>
          </dd>
          <dt>EDHOC Message Length:</dt>
          <dd>
            <t>The EDHOC Message Length field can have a size of one to four octets and is  present only if the L bits represent a value greater than 0.  This field provides the total length of the EDHOC message that is being fragmented. When there is no fragmentation it is not present.</t>
          </dd>
          <dt>EDHOC Data:</dt>
          <dd>
            <t>The EDHOC data consists of the whole or a fragment of transported EDHOC message.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="eap-type">
        <name>EAP Type</name>
        <t>IANA has registered the following new type in the "Method Types" registry under the group name "Extensible Authentication Protocol (EAP) Registry":</t>
        <artwork><![CDATA[
Value: TBD1
Description: EAP-EDHOC
]]></artwork>
      </section>
      <section anchor="edhoc-exporter-label-registry">
        <name>EDHOC Exporter Label Registry</name>
        <t>IANA has registered the following new labels in the "EDHOC Exporter Label" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)":</t>
        <artwork><![CDATA[
Label: TBD2
Description: MSK of EAP method EAP-EDHOC
]]></artwork>
        <artwork><![CDATA[
Label: TBD3
Description: EMSK of EAP method EAP-EDHOC
]]></artwork>
        <artwork><![CDATA[
Label: TBD4
Description: Method-Id of EAP method EAP-EDHOC
]]></artwork>
        <t>The allocations have been updated to reference this document.</t>
      </section>
      <section anchor="edhoc-external-authorization-data-registry">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA has registered the following new label in the "EDHOC External Authorization Data" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)":</t>
        <artwork><![CDATA[
Label: TBD5
Description: EAP channel binding information
]]></artwork>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of EAP <xref target="RFC3748"/> and EDHOC <xref target="RFC9528"/> apply to this document. Since the design of EAP-EDHOC closely follows EAP-TLS 1.3 <xref target="RFC9190"/>, many of its security considerations are also relevant.</t>
      <section anchor="security-claims">
        <name>Security Claims</name>
        <section anchor="eap-security-claims">
          <name>EAP Security Claims</name>
          <t>EAP security claims are defined in Section 7.2.1 of <xref target="RFC3748"/>.
EAP-EDHOC security claims are described next and summarized in <xref target="sec-claims"/>.</t>
          <table anchor="sec-claims">
            <name>EAP-EDHOC security claims</name>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left"> </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Auth. principle:</td>
                <td align="left">Certificates, CWTs and all credential types for which COSE header parameters are defined (1)</td>
              </tr>
              <tr>
                <td align="left">Ciphersuite negotiation:</td>
                <td align="left">Yes (2)</td>
              </tr>
              <tr>
                <td align="left">Mutual authentication:</td>
                <td align="left">Yes (3)</td>
              </tr>
              <tr>
                <td align="left">Integrity protection:</td>
                <td align="left">Yes (4)</td>
              </tr>
              <tr>
                <td align="left">Replay protection:</td>
                <td align="left">Yes (5)</td>
              </tr>
              <tr>
                <td align="left">Confidentiality:</td>
                <td align="left">Yes (6)</td>
              </tr>
              <tr>
                <td align="left">Key derivation:</td>
                <td align="left">Yes (7)</td>
              </tr>
              <tr>
                <td align="left">Key strength:</td>
                <td align="left">The specified cipher suites provide key strength of at least 128 bits.</td>
              </tr>
              <tr>
                <td align="left">Dictionary attack prot.:</td>
                <td align="left">Yes (8)</td>
              </tr>
              <tr>
                <td align="left">Fast reconnect:</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Crypt. binding:</td>
                <td align="left">N/A</td>
              </tr>
              <tr>
                <td align="left">Session independence:</td>
                <td align="left">Yes (9)</td>
              </tr>
              <tr>
                <td align="left">Fragmentation:</td>
                <td align="left">Yes (<xref target="fragmentation"/>)</td>
              </tr>
              <tr>
                <td align="left">Channel binding:</td>
                <td align="left">Yes (<xref target="Channel_Binding"/>: EAD_3 and EAD_4 can be used to convey integrity-protected channel properties, such as network SSID or peer MAC address.)</td>
              </tr>
            </tbody>
          </table>
          <ul spacing="normal">
            <li>
              <t>(1) Authentication principle:
EAP-EDHOC establishes a shared secret based on an authenticated ECDH key exchange. The key exchange is authenticated using different kinds of credentials. EAP-EDHOC supports EDHOC credential types. EDHOC supports all credential types for which COSE header parameters are defined. This include X.509 certificates <xref target="RFC9360"/>, C509 certificates, CWTs (<xref target="RFC9528"/> Section 3.5.3.1) and CCSs (<xref target="RFC8392"/> Section 3.5.3.1).</t>
            </li>
            <li>
              <t>(2) Cipher suite negotiation:
The Initiator's list of supported cipher suites and order of preference is fixed, and the selected cipher suite is the cipher suite that is most preferred by the Initiator and that is supported by both the Initiator and the Responder. EDHOC supports all signature algorithms defined by COSE.</t>
            </li>
            <li>
              <t>(3) Mutual authentication:
The initiator and responder authenticate each other through the EDHOC exchange.</t>
            </li>
            <li>
              <t>(4) Integrity protection:
EDHOC integrity protects all message content using transcript hashes for key derivation and as additional authenticated data, including, e.g., method type, cipher suites, and external authorization data.</t>
            </li>
            <li>
              <t>(5) Replay protection. EDHOC broadens the message authentication coverage to include  algorithms, external authorization data, and prior plaintext messages, as well as adding an explicit method type. By doing this, an attacker cannot replay or inject messages from a different EDHOC session.</t>
            </li>
            <li>
              <t>(6) Confidentiality. EDHOC message_2 provides confidentiality against passive attackers and message_3 and message_4 provide confidentiality against active attackers.</t>
            </li>
            <li>
              <t>(7) Key derivation. Except for MSK and EMSK, derived keys are not exported. Key derivation is discussed in <xref target="Key_Hierarchy"/>.</t>
            </li>
            <li>
              <t>(8) Dictionary attack protection. EAP-EDHOC provides Dictionary attack protection.</t>
            </li>
            <li>
              <t>(9) Session independence. EDHOC generates computationally independent keys derived from the ECDH shared secret.</t>
            </li>
          </ul>
        </section>
        <section anchor="additional-security-claims">
          <name>Additional Security Claims</name>
          <ul spacing="normal">
            <li>
              <t>(10) Cryptographic strength and Forward secrecy:
Only ephemeral key exchange methods are supported by EDHOC, which ensures that the compromise of a session key does not also compromise earlier sessions' keys.</t>
            </li>
            <li>
              <t>(11) Identity protection:
EDHOC secures the Responder's credential identifier against passive attacks and the Initiator's credential identifier against active attacks. An active attacker can get the credential identifier of the Responder by eavesdropping on the destination address used for transporting message_1 and then sending their own message_1.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="peer-and-server-identities">
        <name>Peer and Server Identities</name>
        <t>The Peer-Id represents the identity to be used for access control and accounting purposes. The Server-Id represents the identity of the EAP server. The Peer-Id and Server-Id are determined from the information provided in the credentials used.</t>
        <t>ID_CRED_I and ID_CRED_R are used to identify the credentials of the initiator (EAP peer) and Responder (EAP server). Therefore, for Server-Id the ID_CRED_R is used, and for Peer-Id the ID_CRED_I is used.</t>
      </section>
      <section anchor="certificate-validation">
        <name>Certificate Validation</name>
        <t>Same considerations as EAP-TLS 1.3 Section 5.3 <xref target="RFC9190"/> apply here in relation to the use of certificates.</t>
        <t>When other types of credentials are used such as CWT/CCS, the application needs to have a clear trust-establishment mechanism and identify the pertinent trust anchors <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="certificate-revocation">
        <name>Certificate Revocation</name>
        <t>Same considerations as EAP-TLS 1.3 Section 5.4 <xref target="RFC9190"/> apply here in relation to certificates.</t>
        <t>When other types of credentials are used such as CWT/CCS, the endpoints are in charge of handling revocation and confirming the validity and integrity of CWT/CCS <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="packet-modification-attacks">
        <name>Packet Modification Attacks</name>
        <t>EAP-EDHOC relies on EDHOC, which is designed to encrypt and integrity protect as much information as possible. Any change in any message is detected by means of the transcript hashes integrity verification.</t>
      </section>
      <section anchor="authorization">
        <name>Authorization</name>
        <t>Following the considerations of EDHOC in appendix D.5 Unauthenticated Operation <xref target="RFC9528"/>, EDHOC can be used without authentication by allowing the Initiator or Responder to communicate with any identity except its own.</t>
        <t>When peer authentication is not used, EAP-EDHOC server implementations <bcp14>MUST</bcp14> take care to limit network access appropriately for authenticated peers. Authorization and accounting <bcp14>MUST</bcp14> be based on authenticated information such as information in the certificate. The requirements for Network Access Identifiers (NAIs) specified in Section 4 of <xref target="RFC7542"/> apply and <bcp14>MUST</bcp14> be followed.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Considerations in Section 9.6 of <xref target="RFC9528"/> against tracking of users and eavesdropping on Identity Responses or certificates apply here. Also, the considerations of Section 5.8 of <xref target="RFC9190"/> regarding anonymous NAIs also applies.</t>
      </section>
      <section anchor="pervasive-monitoring">
        <name>Pervasive Monitoring</name>
        <t>Considerations in  Section 9.1 of <xref target="RFC9528"/> about pervasive monitoring apply here.</t>
      </section>
      <section anchor="cross-protocol-attacks">
        <name>Cross-Protocol Attacks</name>
        <t>This applies in the context of TLS 1.3 resumption. Does not apply here.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC3748">
          <front>
            <title>Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="L. Blunk" initials="L." surname="Blunk"/>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="J. Carlson" initials="J." surname="Carlson"/>
            <author fullname="H. Levkowetz" initials="H." role="editor" surname="Levkowetz"/>
            <date month="June" year="2004"/>
            <abstract>
              <t>This document defines the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication methods. EAP typically runs directly over data link layers such as Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP provides its own support for duplicate elimination and retransmission, but is reliant on lower layer ordering guarantees. Fragmentation is not supported within EAP itself; however, individual EAP methods may support this. This document obsoletes RFC 2284. A summary of the changes between this document and RFC 2284 is available in Appendix A. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3748"/>
          <seriesInfo name="DOI" value="10.17487/RFC3748"/>
        </reference>
        <reference anchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </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>
        <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="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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4137">
          <front>
            <title>State Machines for Extensible Authentication Protocol (EAP) Peer and Authenticator</title>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="N. Petroni" initials="N." surname="Petroni"/>
            <author fullname="Y. Ohba" initials="Y." surname="Ohba"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes a set of state machines for Extensible Authentication Protocol (EAP) peer, EAP stand-alone authenticator (non-pass-through), EAP backend authenticator (for use on Authentication, Authorization, and Accounting (AAA) servers), and EAP full authenticator (for both local and pass-through). This set of state machines shows how EAP can be implemented to support deployment in either a peer/authenticator or peer/authenticator/AAA Server environment. The peer and stand-alone authenticator machines are illustrative of how the EAP protocol defined in RFC 3748 may be implemented. The backend and full/pass-through authenticators illustrate how EAP/AAA protocol support defined in RFC 3579 may be implemented. Where there are differences, RFC 3748 and RFC 3579 are authoritative.</t>
              <t>The state machines are based on the EAP "Switch" model. This model includes events and actions for the interaction between the EAP Switch and EAP methods. A brief description of the EAP "Switch" model is given in the Introduction section.</t>
              <t>The state machine and associated model are informative only. Implementations may achieve the same results using different methods. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4137"/>
          <seriesInfo name="DOI" value="10.17487/RFC4137"/>
        </reference>
        <reference anchor="RFC5216">
          <front>
            <title>The EAP-TLS Authentication Protocol</title>
            <author fullname="D. Simon" initials="D." surname="Simon"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="R. Hurst" initials="R." surname="Hurst"/>
            <date month="March" year="2008"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides support for multiple authentication methods. Transport Layer Security (TLS) provides for mutual authentication, integrity-protected ciphersuite negotiation, and key exchange between two endpoints. This document defines EAP-TLS, which includes support for certificate-based mutual authentication and key derivation.</t>
              <t>This document obsoletes RFC 2716. A summary of the changes between this document and RFC 2716 is available in Appendix A. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5216"/>
          <seriesInfo name="DOI" value="10.17487/RFC5216"/>
        </reference>
        <reference anchor="RFC6677">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7593">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </reference>
        <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="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="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="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="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="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>EDHOC Authenticated with Pre-Shred 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="1" month="March" 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-03"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50% while also significantly reducing memory and code size
   compared to ASN.1.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The TLSA selectors
   registry defined in RFC 6698 is extended to include CBOR
   certificates.  The document also specifies C509 Certificate Signing
   Requests, C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-13"/>
        </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="3" month="March" year="2025"/>
            <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 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.  Also, it defines a canonical, CBOR-based
   representation that can be used to describe, distribute, and store
   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-01"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-impl-cons">
          <front>
            <title>Implementation Considerations for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document provides considerations for guiding the implementation
   of the authenticated key exchange protocol Ephemeral Diffie-Hellman
   Over COSE (EDHOC).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-impl-cons-03"/>
        </reference>
        <reference anchor="Sec5G" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3169">
          <front>
            <title>Security architecture and procedures for 5G System</title>
            <author initials="" surname="3GPP TS 33 501">
              <organization/>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 776?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank Eduardo Ingles-Sanchez for his contribution in the initial phase of this work. We also want to thank Marco Tiloca for his review.</t>
      <t>This work was supported partially by grant PID2020-112675RB-C44 funded by MCIN/AEI/10.13039/5011000011033 (ONOFRE3-UMU).</t>
      <t>This work was supported partially by Vinnova - the Swedish Agency for Innovation Systems - through the EUREKA CELTIC-NEXT project CYPRESS.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
c4NGcCTswkSz0rFByBDutVsQMwYGZ/Iue0NwIl+ZtQ+55iB18PRB+Kf4UPYG
cqt0ycUiaUZaaX1UwKcxZ5VHwnTbDKm20U117PLR4wfhlRcK+JnQykH4k0jF
g/+jcYo3vIlTrVv+mfDKyxR1Dxy2AZqnotNHuNcttpL2XPKJnwigLaaYcj9S
hG/cTIzX9eIBJVg3aG3SURGKS9rVCKOlKWz18OFS8ecyaZrWD5eK9vM5Lh38
m8QuiD1CSH+jl0z/RJeK9WvDrrUaqUEXZHRKSsEq6G9mv3/dOyafOzYOvp/9
tk7ob2LHvM8dmzf8bexY8+L+05Tlt7Dfv9Edq5OURuuHHftxM//Zdmyto8yv
f8c+/XnIk/g/smMtH1zJryFPYlNbb3q4hPenJ+y5fIdvi+fZov6GWQGNreH9
I+M80bvxfv/oanZwXQvT2K9D1MhtZ4eQG86wtN5k5YwBffU6C5/6l3r2ysak
h6NUblOqEcyFzQq8HSkVp8/C2oVhvc51pUCaFR/U2dF35PmN9VaCJICuHleS
rVkmXSSbuZi7fPSnMaUATmy6LFOcA+dWtw+WNAlxZvJNOSWmzQomZbNUcXIw
eJbAFPI0ma76bsuME4jdjsyzo8tD/6IF8x3am+tIcfLIf19GKd+8xTnV42M/
g2d/PX65ZXocs8fLUVq9pIfjI3gmBcra8vL7vkMYjYlXTXNOoYj1LjJ/+l02
70nWM1fkwJt410PQ2p2aONuEV8KULPN66YqS4YjoUE9TwEssWG2R5zVPo83R
kf/DVjOC1QWp+mDlOkduBHkF4Uj3X5LgTdKKfRqe1hjZGKqvTjnZvtyYmIWi
YwSNJkO5N/hns41HL90oXm5Q2vHpTE/fshdESbZduWFZ8WPqmXLyBbcqbqfp
RhJaU71K8eegE0/NAQy29B25TMkx1rGHCmLL5ulEGU9wYvM1xt46SqqRQQXn
EHv87ViWYWa84AwSBL0NsusytMyV+7A4h4kA+fYRa2GVy4K8SVz8r3cSbbmb
QmpSEFrjDRqvt2IPMoOoXI3VOMHh1NbOyRwQKfZI2Ds6kk3UcGim2DOV51xZ
zMHDNmHvuQBENHcyDE/cgZDax3UrtdwQUn0gJj3GnYLLChICcv1AmVTjcEQB
xGlRWa8qkpskSvE6Dw48XjV0ceh8HvGtOycfhDGIFSHG0iC1210/sJu3DUuC
59FcXelYEj8av6SDYZhMdBSQiaMS6/lEgJ6XOZZtHh1dGgpAc2qhLLY2lNj/
o0mpqdL0FSUk9ehMDSib6M/V805vbtK19m5hcluO4DHPsFQP+r2kS/jzTD2j
++XX6Ad3ef7s9ZZXNtrdQRAC01RMZdO8kLueFkrm1d/g22uvmAtWKJ4vqtqF
EtCSZeE7gUivctRLd6lGI8fBcOQvYy9c7LEhH61LdrljWOL6vOVZ7ljzBGou
CKu6cCUyk2kW/o8pHScIjBvgfHHgN1THXK7zxegpxUCkFjkOOsez5vO6xJZb
An5gfdRM0W5HKNhLgVt6laRN9RtTkjdYdck3ZXjFxDdVJfqqmPqgeGtfRFiX
keFIz3jXounbss3pl+/zr3iB7B0Yw1YYh9giT4lxLNJoSoCUFJlyg1YkpZRt
/kav1NcJbF0xna1A0IS/39i/P7rKh+QN65VZ91z/XDUo41Ho/E1dmSTuxtRV
lmTFSCZ6p7FXcKnudPvq4ps3+h1lVCjq5XbenJgHBLWrCJ3+MIOqnUd/h0sX
14onYXpRKQInFWZt4m8v96hf9d36StreJIEokTDLp7rc3CSf5c4vvzoeMAT+
9Cf15ZeIiQzIlv6f94d2hKf7g22geZzF2h5RKscGS6aB5PqzdEXGiVtQYdDJ
qtLiBxocSGoYsWs2Ouj6BcILLS9ZkANCa/SxnBY5Mg2+RF5isWVPbvZKuLPi
sPZ+kmEvny8UwaZzNv5Geb+Fe7sJr+x0EXTU9Msvu2p/d6tz4jVqbTNstnH4
tqbNbrPNmDN/UCOcLz778MGhbgdvWLlLeuH0+M3o4uT4zWmHb1LtaObBxVrQ
eNe2DH7eE1yoVYnMH5aIsk/USs2AlLIAYyQoL89yyWf9lSnErF66esdcNBaL
ZyUkGV14WamtsuJ54ZStIQLiwUdFuLwKiUGK6xZ0f1o7nEEJd5NcvVflPcdD
g7rLXVf7OyhL5peFDx54Za25RDRWrgc8HmNxNHWGWfuB9tfXHcQSuwjihufC
uiIDwE6BjYS1BlpihUsv+sAL6riSaJ9GL13fv7uW8FtxnT/j/5HXS/41R1+T
/x81QGI6fr0BCUDqt/XD7HGZWTD0LRfhbRUOID6QhuJHNN+GJ9mbHVfGntQP
uxL0mqy7kV6FsQG7g+EToKBWGzHOpTpaAJ+j2tQk4UbRifsFy7kTRbx73s2C
d/6BC4wYNfOGXeidgeabnvHxs0AgXPyRnXkAAfezDwY5JCM4T5lO1VcJI9X7
R/LLG/nlo0/DJMM6y3ZU5tmeyJp7uCnZSbPL4kWeZKY0Z6MgqvUGd3EcVpxt
Go62RGRwkPbqSpqCAuKdLvtK5BN2004We5vKyieycm/2rYdwf//JExI1DKHb
rz1CSRarB5chieTU9/NFnrFE6leHvXsOoA2SXzPltkczBjwoyTDkW/R8+koK
jHj9UqV3KqiLtV5NcWxbsiBw7fUohIl8qDksRwYFWV6BAUuR0r2imEExDOOC
Tka4VIMqbEX+BHR2QkKOsoPR3wwMCwLigGttzLrmtk/egxQMgCdpJt5YNXDa
whPtewmKAHnVBfUP+SjXCYQ9rYa0teO3s83WCpTj4ryiJaZkMcoEgpsLWCUn
HotiZL5abAiSaP/vOVd4QUsNPY9oXtZScel09qlj/MS0/RULZtqa9Dzb4zdD
Af8xsEA+O13lO2gmWY2ED73y1V51G/SdNIYPF68gbIerLSA7lVq9oJuvhNGY
ILz1B8Jz+yO78DFebSViNWFG5uGKR3XR45HjR/xhpY/dPtr+ROP1CubwFlHf
gT8oLadCMaYAqQPUb+8kOq7bYu42jq3G59Ejnb6jqQkDdqlGjkzKOapMBDt+
q0xxV7/yBKAQHMu8ADRGsecTFM4v+3zs1eSteUkK9z/sdH4PPCZ+Q5oDSL4g
V+/JT1ZdaVFRsJb5sQneOXbBO82RrLAFgLNOurYM+vtHrRFCDVGWfcZ5kUR3
pdsy6LdkP0+MGyJzJxEFbkvKHwODosoCF2U4ham+qshyilV++h5jjhQHFy6J
dJUL9BD1XPl7ly/GtenRqdzbGeyTYFeLt3HK7qCmnLIhqhVctsQHYznFY+Qx
YKPzre1KAADrtIyn+K13XGOhoA9mEiope7W+K9OJQSMO+kvQdoSAI2MGM8Hs
RmcJGuSczao2eq2KN6guXTXuqjMYrdsaytD16JC/iPXaqtpuuRgctPy20/Lb
EJsP4NFQ7ao9EAGegL5z8EN+6/yh9xP/1+HbT9wQudWE/3v+0+HtqER8hLeg
n2sOTvOHvy/g3/GHM/j2ws6hNfoEP//x2ebQ+vEQYv3nc8zhrvtkOfCNO+R2
YscvPyPqcPeFcrMnbtzpIE4cdg4B8zbl0RYwYYsa+OiyLU4ES7vhfRnGGbLy
kMQkzdiLj8IST+JWUhpJiEWjPxOBxQyOjEh0K4TMaxPvGgoT/kGWmC0Vhv3w
oTadWIN1gpbnWoAQeeT7dDpeaq6EViVzjcIml4PDEAsKW6LaZF6kAOOkgUwQ
H4XmxNtcoi9Flr4jLs1FBjqB/G7K6YhwQH/PeUCYPJoL2OhidKyqPkmxIZMU
q4nggqhK3b1IsrfqBdXkWqCQLlfjBqyAV2T/h71B1XMhNgycE0Hjq+MBlpEX
VAM8usCf67opTcmFi049PwKjnF5ISC1eQIAoFNMlDsW32unwXPDteX0+Y7M1
7GC+6akqnMJKguySWnTZ2A+tk3tMe5ed2D1c04DZvRe5Axub5bcggVzT6jE/
hpkYO8Ft0k2zDa3Zul/A4ClpvCaAqZC7uPZoUYInQw7x1qKsh63wJwh7UbHi
8oMS70MHSCI0nTGmzkdFAmdM22Y5DobbpW+lKXJXaG39M/Hxdlvc8R0xh4mp
9UW3UXTD6i638LRR5wbRpZEEOtN4Tri+whqXfpwlPB54l+ifWrKb0YDWyD2X
cOCdLS9sYUB+R29ocTBB8zI+UtYwktvcZJnrd7LFJeGavct5uRK4pvNdsMvG
tqD0Z43kdNlY2jFRENHfQAMopDgheMgqUxfnbmd5yulbgjhcXwEPw3AbDC9g
l47j7SDHk3wiP47lESGy3j0tsZTm+orqEpJKyIyR+NEDJ/nFc5J7sxJHZB9o
/AON/4k0fg2RJxB8msb/0xB5dXr08ggdgOiGTEjC+0dJlEVW6SEqB8Qd32QX
sGu05hVSy9RZY1DNqMghgLFkg692qX25Ie3gAC2zWK5trot8uWBvqI0TvkvE
C5Oj8KLCGqSQdKDSwv1srI/d7fwNt5VpYMezgB06nrb+7hhXTXCyPhEvyP5m
xr0vKOS+3wCjrc9PA2UBFJUKmh6DEJ3o3tc6TeeApOdo3Bydj0/EwX7rLmjQ
WASNnRAaeAcu2VXkxuAe8Pn0KMMazH+mYXZri7E+CT90LDxYLmtGyVSG7h2W
i5iLnOQuGxbzyzifLkUl8RCGkuOlhMDWOZuZ+Y/CngbyrO3/fxyT9hrn6i7D
9x2nDa2uS7pyapChUp6Iydn8aW/0nQhzEhYj9qyTfgF1rBrDLmLBDorbNkKM
3XXDZFzTNC/RoVQyBljD8qA/lN4HB9toIp6LvzHz8Pa5cvK5EtEp1TcR4Q8i
kANCGiXzkrPGkTtF/QFfbpje6Ufxomv4hDwJnLZMnWbfL6GtG+OFRkV7iG/X
jPbQrMct6GL2A0+t1db34b/+80PnA6JrH9N9ZlN0ADz0X/CTF5VdNfr2UhJE
4b2NKwvEta7RjMQXs4SwMx3FJByLM04IiM3BloLBR+TlQk4usCTrrHNIg3+H
7u47W/DaWVtqikOZI702xNdOW651D5X/2i6+dqEXadTyjnttD18bhRfHIWDo
tX187ZvAa9B/y7z2xLwGFIDlqdo+kPDgLjsC1x+bL++t1wHdMVcg6qBUPdh5
SqJTH0Y5TmhBKAmzUyWtsn9o5/IU5/IMm4EawH6z4cJe5rQvmNKxb4hF7Y3H
R2gv/yAuYygI64WGf+CcBntyQGP5clQbdBpl4An2IbU6bGlV98n4eNi4ta25
OtBly8pdo/fc1aihjvDLAlGeXK4khkbuk9V4fHqsKFsjReqMTD7XPkwYTdvu
5DXN27XDTBl+e3QIjup+H+Ycdvx0JaBNR5M0KWfkE17OIuRL0GkB4r/1SZSI
BRfGdDI6/jrwEXMOqvaiVdz+XSP2JHEhLm+TjO9BveRpQdiQ8Y4QglwjC8Z3
yr72k2mHWHlMqpxGIkrJgnww3CfCP6o/Fjq26TMfQ5SH/b3+sA/bQt6Co7F5
7enwYKfltT7t4s6WGnlHNiBkHcWmlizBX/Lidy4mxFVQCw88ReoUMefWWzjJ
hpSedy5ZoZYwrloHRiEOfjOKzzwvK+nTu421s3NpEJPSmx+8Nsnlor/+rhb7
U4xhKy1b3ea46Cdrxf1mMA63VDudFxgmwciFGTWMfqIrFXbf9V1jjLupHAMa
b3dLtTKMjrkqa/jb8IqMMkmOxVllvLVD5xvB6ZpLOfHO0ncPCs8eqo6e71JX
cSJdkZUrMmjVHEONp2dhenOiJ2XeoqXuoWJWY3pmtyZFDoctK8U1iddWz5uY
gxxKCnRuz13gb3rHDLomnTiSTqB+7I1t3CjC3KDGjoZOQGkyTSp/6X31FcYc
suEvKTmpNTE5jiKi/OG8SnKeoQhG66wplxeOrhnCTEyMwbS/pWpMvx9q5W92
nMWh4VcmoXMYnEYxoDI1PtChj5DzrTXcfV1vETkOuc54ok+2VCh2wDzfUVZQ
RDrjPI2qXdd6ZwEqljbPuvi9Ay0N+yHvmaScLsvSCJRhpMRHnsDTLdUuajTD
Si3A7mxAvR5sqTahwmzCtc7If6Ikd64lywsUJurernidjfgKYoUB3+xLkn3n
9dcU55FFbwNSoDSUXxfRAliUE8IQxs/y4hbdnqjP6QqJxzkatbTV6AJua+II
yLLn01dxW2Qe2IhXwvXCShITaiRYy+TFxRmVuf+mjoqUKnXyy+XvCDQM6QGw
uFMvjLpB+9iVtQwJPDCv9mKg7bjvvIN99nd3DwG+o/U1qx8Bkuquxfrd3pnx
k7EsAgCsoxtdxiDeLTjyyWiUVZIJbWZpzsV4W9sceT2alFdmTZn1Oa8o7hmL
stqXJA7BOOtKhbBTWwuBNGYTUWEtngxtGyhd5fWQc5yeRD2ZPL31KHTJt2pj
MtZ17l2ruLBWNyc3a/qLhC+g8HPi2vZQ+c5z9Vh8P3M5rgE9H03MCHVvA0XY
j15kdNnFVaMPmbATAjaNR+KW5zSCm73p+UUHTqAIRbcowks7BwkokQSH8KKB
hP/aqXlN7AJ+at+/2TC9zphCg2umhdA0YQTJvdBMIUYQNkPjTU3KwBW/RHFQ
9YVZk0VWRB4SpkNZ3YHXKDQg/j4G2Zb9Ov1ivZgEnoLBxZJP1Q04MLNnNRAy
XbswRzLp+5tG+hMVS/AzMZe12LQ6+C70jVj4fhj4du8Jvs8KM+fczG7ZqD4W
fIMIUIlTvgM1CyIQEX/H88O3lhTU2fRGR/dEHqgFXOINdZbH7irwiOmkZzaC
RWO6YROi5hUb8asXSNGGdmd4XO+cirf4vuulAgJDVwBIlVcmZJV8TFx1CxpH
lOrJSoL65Ow2RWQ3tJ/vg6lnYEbtuGoYzA8bNkaR2CmJKNDld+q4v9fI63G+
CKKtTTCWaK6etcB45TfDzAOnf6cMkWOtoUBkazCu7taXeeWor2Zhja78bm0m
aA7uaKRfdQH/jaCl1gILVfQWMxMU2qU1NyYM4SEAI2CEBXr8pJw4JAQTxb/1
a4bsGsMxF93O+rA2g4o5Q6GvNW+knzYCGVAjTOTTBWDavYRrpT6ENPhX9Gwy
tsRcUpnWDN2dmt3bG+Kgv18L63PpMwo4lXILjVH0LAk1RJBG2RdKIhOYMhxF
w5toU7Siif+OInqxhkwUuSSAZEf2i0WRwEj0n2giiyzFTUQi3FkOuJ2jy3oL
CDwY1OOOVTTBg7OwHc1tR/5imAFgsG3P3iAaYkbmHZmXRRSJ4sXAXmECGCc4
Z0cGdWyFYH8ITI40gS7xIuPIOqtxyOf7Q6lgoOMvNrJ8Q64xWH/FzO2geBR4
PPDa+a06iZcAxBxO/HWqy94YuZr+XoLiRSpLJksft1lUSdViFpnAEniTQ1O+
lYuGW0zlQNwdBzkDHStXlwledtmugZEk+paC9KQ5tPKtM4uowHEwXn6FdW+g
x1enxzvbO9u9wWBn/8nexVe90e4uuq/HTJXPRqcvHx+dnD4ebPcHw+3hweO9
7cFgGz7w73CoNs9fnj+7OBn2Xp+93rrvyH9LQAO/iVSPFj+GgwXCgjq6psgS
XMwpPScIjSmNREnvekaa1xcn3xyp0cmLy9NR7+XJv1GxGFLjR9+9ujgZj2VP
r9Ll1VXn/wOpKBUYc8YAAA==

-->

</rfc>
