<?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-ace-edhoc-oscore-profile-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="EDHOC and OSCORE profile of ACE">Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-08"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE</organization>
      <address>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE</organization>
      <address>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 98?>

<t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.
It utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving mutual authentication between an ACE-OAuth client and resource server, and it binds an authentication credential of the client to an ACE-OAuth access token.
EDHOC also establishes an Object Security for Constrained RESTful Environments (OSCORE) Security Context, which is used to secure communications between the client and resource server when accessing protected resources according to the authorization information indicated in the access token.
This profile can be used to delegate management of authorization information from a resource-constrained server to a trusted host with less severe limitations regarding processing power and memory.</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-ace-edhoc-oscore-profile/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments (ace) Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/ace-edhoc-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 105?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE-OAuth framework <xref target="RFC9200"/>. This profile addresses a "zero-touch" constrained setting where authenticated and authorized operations can be performed with low overhead without endpoint specific configurations.</t>
      <t>Like in the "coap_oscore" profile <xref target="RFC9203"/>, also in this profile a client (C) and a resource server (RS) use the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> to communicate, and Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> to protect their communications. However, this profile uses the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="RFC9528"/> to establish the OSCORE Security Context. The processing of requests for specific protected resources is identical to what is defined in the "coap_oscore" profile.</t>
      <t>When using this profile, C accesses protected resources hosted at RS according to the authorization information specified in an access token, which is issued by a trusted authorization server (AS) and is bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a secret that is generated by AS and is used to derive the OSCORE Security Context.</t>
      <t>Whereas <xref target="RFC9200"/> recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens, this profile requires it (see <xref target="access-token"/>). Furthermore, this profile requires that, for messages exchanged between C and AS to request and provide an access token, the payload is encoded in CBOR <xref target="RFC8949"/> (see <xref target="c-as"/> and <xref target="as-c"/>), which ACE requires if CoAP is used (see <xref section="5" sectionFormat="of" target="RFC9200"/>) and recommends otherwise (see <xref section="3" sectionFormat="of" target="RFC9200"/>).</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS) <xref target="RFC8392"/>; or a public key certificate, e.g., an X.509 certificate <xref target="RFC5280"/> or a CBOR-encoded C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE framework establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t" <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials specified in the ID_CRED_x message fields can be transported by value or referred to (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when it requests an access token and to determine what access rights it can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for an access token that C makes to AS.</t>
      <t>The establishment of an association between RS and AS in an ACE ecosystem is out of scope, but one solution is to build on the same primitives as used in this document, i.e., EDHOC for authentication and OSCORE for communication security, using for example <xref target="I-D.ietf-lake-authz"/> for onboarding RS with AS and <xref target="I-D.ietf-ace-coap-est-oscore"/> for establishing a trust anchor in RS. A similar procedure can also be applied between C and AS for registering a client and for the establishment of a trust anchor.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/>, and EDHOC <xref target="RFC9528"/>.</t>
        <t>Readers are also expected to be familiar with the terms and concepts of the ACE framework described in <xref target="RFC9200"/> and in <xref target="RFC9201"/>.</t>
        <t>Terminology for entities in the architecture is defined in OAuth 2.0 <xref target="RFC6749"/>, such as the client (C), the resource server (RS), and the authorization server (AS).  It is assumed in this document that a given resource on a specific RS is associated with a unique AS.</t>
        <t>Note that the term "endpoint" is used here, as in <xref target="RFC9200"/>, following its OAuth definition, which is to denote resources such as /token and /introspect at AS, and /authz-info at RS. The CoAP <xref target="RFC7252"/> definition, which is "An entity participating in the CoAP protocol", is not used in this document.</t>
        <t>The authorization information (authz-info) resource refers to the authorization information endpoint as specified in <xref target="RFC9200"/>. The term "claim" is used in this document with the same semantics as in <xref target="RFC9200"/>, i.e., it denotes information carried in the access token or returned from introspection.</t>
        <t>Concise Binary Object Representation (CBOR) <xref target="RFC8949"/><xref target="RFC8742"/> and Concise Data Definition Language (CDDL) <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the numeric parameter names and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'session_id' : h'01', e'cipher_suites': 3} stands for {0 : h'01', 2 : 3}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>This section gives an overview of how to use the ACE framework <xref target="RFC9200"/> together with the lightweight authenticated key exchange protocol EDHOC <xref target="RFC9528"/>. By doing so, the client (C) and the resource server (RS) generate an OSCORE Security Context <xref target="RFC8613"/> associated with authorization information, and use that Security Context to protect their communications. The parameters needed by C to negotiate the use of this profile with the authorization server (AS), as well as the OSCORE setup process, are described in detail in the following sections.</t>
      <t>RS maintains a collection of authentication credentials. These are associated with OSCORE Security Contexts and with authorization information for all clients that RS is communicating with. The authorization information is used to enforce policies for processing requests from those clients.</t>
      <t>The ACE framework describes how integrity protected authorization information propagates from AS to RS. This profile describes how C requests from AS an access token specifying authorization information for the resources that C wants to access at RS, by sending an access token request to the /token endpoint at AS (see <xref section="5.8" sectionFormat="of" target="RFC9200"/>).</t>
      <t>If the request is granted, then AS can provide C with an access token when sending a response to C, or instead upload the access token directly to RS as per the alternative workflow defined in <xref target="I-D.ietf-ace-workflow-and-params"/>. The latter option is not detailed further in this document.</t>
      <t>After that, C and RS run the EDHOC protocol, with C using the authentication credential of RS obtained from AS. If C has obtained an access token from AS, then C specifies the access token within an External Authorization Data (EAD) field of an EDHOC message sent during the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). RS uses the authentication credential of C bound to and specified in the access token. How C and RS run EDHOC is detailed in <xref target="edhoc-exec"/>.</t>
      <t>If C and RS successfully complete the EDHOC execution and the validation of each other's authentication credential, they are mutually authenticated and derive the OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
      <t><xref target="protocol-overview"/> outlines an example of the message flow. A more detailed description of the message flow is shown in <xref target="example-without-optimization"/>.</t>
      <t>From then on and as long as there is a valid access token, C effectively gains authorized and secure access to protected resources at RS using the established OSCORE Security Context. When RS receives a request from C protected with an OSCORE Security Context derived from an EDHOC session implementing this profile, then that OSCORE Security Context is used to retrieve the uniquely associated access token determining the access rights of C.</t>
      <t>The OSCORE Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new OSCORE Security Context for C.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Outline using the EDHOC Forward Message Flow.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="480" viewBox="0 0 480 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,48 L 32,256" fill="none" stroke="black"/>
              <path d="M 32,304 L 32,480" fill="none" stroke="black"/>
              <path d="M 264,160 L 264,368" fill="none" stroke="black"/>
              <path d="M 264,416 L 264,480" fill="none" stroke="black"/>
              <path d="M 472,48 L 472,480" fill="none" stroke="black"/>
              <path d="M 48,62 L 80,62" fill="none" stroke="black"/>
              <path d="M 48,66 L 80,66" fill="none" stroke="black"/>
              <path d="M 424,62 L 456,62" fill="none" stroke="black"/>
              <path d="M 424,66 L 456,66" fill="none" stroke="black"/>
              <path d="M 32,96 L 96,96" fill="none" stroke="black"/>
              <path d="M 216,96 L 464,96" fill="none" stroke="black"/>
              <path d="M 40,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 424,128 L 472,128" fill="none" stroke="black"/>
              <path d="M 32,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 208,176 L 256,176" fill="none" stroke="black"/>
              <path d="M 40,224 L 88,224" fill="none" stroke="black"/>
              <path d="M 208,224 L 264,224" fill="none" stroke="black"/>
              <path d="M 32,320 L 88,320" fill="none" stroke="black"/>
              <path d="M 208,320 L 256,320" fill="none" stroke="black"/>
              <path d="M 32,432 L 72,432" fill="none" stroke="black"/>
              <path d="M 208,432 L 256,432" fill="none" stroke="black"/>
              <path d="M 40,464 L 72,464" fill="none" stroke="black"/>
              <path d="M 216,464 L 256,464" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,96 460,90.4 460,101.6" fill="black" transform="rotate(0,464,96)"/>
              <polygon class="arrowhead" points="464,64 452,58.4 452,69.6" fill="black" transform="rotate(0,456,64)"/>
              <polygon class="arrowhead" points="264,432 252,426.4 252,437.6" fill="black" transform="rotate(0,256,432)"/>
              <polygon class="arrowhead" points="264,320 252,314.4 252,325.6" fill="black" transform="rotate(0,256,320)"/>
              <polygon class="arrowhead" points="264,176 252,170.4 252,181.6" fill="black" transform="rotate(0,256,176)"/>
              <polygon class="arrowhead" points="56,64 44,58.4 44,69.6" fill="black" transform="rotate(180,48,64)"/>
              <polygon class="arrowhead" points="48,464 36,458.4 36,469.6" fill="black" transform="rotate(180,40,464)"/>
              <polygon class="arrowhead" points="48,224 36,218.4 36,229.6" fill="black" transform="rotate(180,40,224)"/>
              <polygon class="arrowhead" points="48,128 36,122.4 36,133.6" fill="black" transform="rotate(180,40,128)"/>
              <g class="text">
                <text x="32" y="36">C</text>
                <text x="268" y="36">RS</text>
                <text x="468" y="36">AS</text>
                <text x="264" y="52">|</text>
                <text x="116" y="68">Mutual</text>
                <text x="204" y="68">authentication</text>
                <text x="280" y="68">and</text>
                <text x="324" y="68">secure</text>
                <text x="384" y="68">channel</text>
                <text x="264" y="84">|</text>
                <text x="124" y="100">POST</text>
                <text x="172" y="100">/token</text>
                <text x="264" y="116">|</text>
                <text x="340" y="132">Access</text>
                <text x="392" y="132">Token</text>
                <text x="288" y="148">+</text>
                <text x="324" y="148">Access</text>
                <text x="400" y="148">Information</text>
                <text x="116" y="180">POST</text>
                <text x="164" y="180">/edhoc</text>
                <text x="100" y="196">(EDHOC</text>
                <text x="172" y="196">message_1)</text>
                <text x="116" y="228">2.04</text>
                <text x="168" y="228">Changed</text>
                <text x="100" y="244">(EDHOC</text>
                <text x="172" y="244">message_2)</text>
                <text x="8" y="276">/</text>
                <text x="60" y="276">Derivation</text>
                <text x="116" y="276">of</text>
                <text x="156" y="276">OSCORE</text>
                <text x="36" y="292">Security</text>
                <text x="104" y="292">Context</text>
                <text x="144" y="292">/</text>
                <text x="116" y="324">POST</text>
                <text x="164" y="324">/edhoc</text>
                <text x="84" y="340">(EDHOC</text>
                <text x="152" y="340">message_3</text>
                <text x="212" y="340">with</text>
                <text x="108" y="356">access_token</text>
                <text x="172" y="356">in</text>
                <text x="212" y="356">EAD_3)</text>
                <text x="168" y="388">/</text>
                <text x="220" y="388">Derivation</text>
                <text x="276" y="388">of</text>
                <text x="316" y="388">OSCORE</text>
                <text x="212" y="404">Security</text>
                <text x="280" y="404">Context</text>
                <text x="320" y="404">/</text>
                <text x="108" y="436">OSCORE</text>
                <text x="168" y="436">Request</text>
                <text x="108" y="468">OSCORE</text>
                <text x="172" y="468">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <==== Mutual authentication and secure channel ====> |
   |                            |                         |
   +-------- POST /token  ------------------------------->|
   |                            |                         |
   |<--------------------------------- Access Token ------+
   |                               + Access Information   |
   |                            |                         |
   +------- POST /edhoc  ------>|                         |
   |     (EDHOC message_1)      |                         |
   |                            |                         |
   |<------ 2.04 Changed -------+                         |
   |     (EDHOC message_2)      |                         |
   |                            |                         |
/ Derivation of OSCORE          |                         |
Security Context /              |                         |
   |                            |                         |
   +------- POST /edhoc  ------>|                         |
   |   (EDHOC message_3 with    |                         |
   |   access_token in EAD_3)   |                         |
   |                            |                         |
   |                / Derivation of OSCORE                |
   |                  Security Context /                  |
   |                            |                         |
   +----- OSCORE Request ------>|                         |
   |                            |                         |
   |<---- OSCORE Response ------|                         |
   |                            |                         |
]]></artwork>
        </artset>
      </figure>
      <t>As long as the OSCORE Security Context and the access token are valid, C can contact AS to request an update of its access rights, by sending a similar request as described above to the /token endpoint. This request also includes a "session identifier" (see <xref target="edhoc-parameters-object"/>) provided by AS in the response to the initial access token request, which allows AS to retrieve the data that it previously shared with C. The session identifier is assigned by AS and used to identify a series of access tokens, called a "token series" (see <xref target="token-series"/>).</t>
      <t>If C has obtained an access token from AS for updating its access rights belonging to the same token series, then C transfers the access token to RS using the /authz-info endpoint as specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>, where the exchanged CoAP messages are protected by the previously established OSCORE Security Context (see <xref target="update-access-rights-c-rs"/>). If the access token is valid, RS replies to the request with a 2.01 (Created) response.</t>
      <t>Upon successful update of access rights, the new issued access token effectively becomes the latest in its token series also for RS, but the session identifier remains the same. When the latest access token of a token series becomes invalid (e.g., when it expires or gets revoked), that token series ends.</t>
      <t><xref target="update-overview"/> outlines the message flow for updating access rights.</t>
      <figure anchor="update-overview">
        <name>Protocol Outline for Updating Access Rights.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="456" viewBox="0 0 456 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,368" fill="none" stroke="black"/>
              <path d="M 240,160 L 240,224" fill="none" stroke="black"/>
              <path d="M 240,256 L 240,368" fill="none" stroke="black"/>
              <path d="M 448,48 L 448,368" fill="none" stroke="black"/>
              <path d="M 24,62 L 56,62" fill="none" stroke="black"/>
              <path d="M 24,66 L 56,66" fill="none" stroke="black"/>
              <path d="M 400,62 L 432,62" fill="none" stroke="black"/>
              <path d="M 400,66 L 432,66" fill="none" stroke="black"/>
              <path d="M 8,96 L 72,96" fill="none" stroke="black"/>
              <path d="M 192,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 16,128 L 280,128" fill="none" stroke="black"/>
              <path d="M 400,128 L 448,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 32,176" fill="none" stroke="black"/>
              <path d="M 192,176 L 232,176" fill="none" stroke="black"/>
              <path d="M 16,272 L 64,272" fill="none" stroke="black"/>
              <path d="M 184,272 L 240,272" fill="none" stroke="black"/>
              <path d="M 8,320 L 48,320" fill="none" stroke="black"/>
              <path d="M 184,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 16,352 L 48,352" fill="none" stroke="black"/>
              <path d="M 192,352 L 232,352" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,96 436,90.4 436,101.6" fill="black" transform="rotate(0,440,96)"/>
              <polygon class="arrowhead" points="440,64 428,58.4 428,69.6" fill="black" transform="rotate(0,432,64)"/>
              <polygon class="arrowhead" points="240,320 228,314.4 228,325.6" fill="black" transform="rotate(0,232,320)"/>
              <polygon class="arrowhead" points="240,176 228,170.4 228,181.6" fill="black" transform="rotate(0,232,176)"/>
              <polygon class="arrowhead" points="32,64 20,58.4 20,69.6" fill="black" transform="rotate(180,24,64)"/>
              <polygon class="arrowhead" points="24,352 12,346.4 12,357.6" fill="black" transform="rotate(180,16,352)"/>
              <polygon class="arrowhead" points="24,272 12,266.4 12,277.6" fill="black" transform="rotate(180,16,272)"/>
              <polygon class="arrowhead" points="24,128 12,122.4 12,133.6" fill="black" transform="rotate(180,16,128)"/>
              <g class="text">
                <text x="8" y="36">C</text>
                <text x="244" y="36">RS</text>
                <text x="444" y="36">AS</text>
                <text x="240" y="52">|</text>
                <text x="164" y="68">Existing</text>
                <text x="236" y="68">security</text>
                <text x="304" y="68">context</text>
                <text x="240" y="84">|</text>
                <text x="100" y="100">POST</text>
                <text x="148" y="100">/token</text>
                <text x="240" y="116">|</text>
                <text x="316" y="132">Access</text>
                <text x="368" y="132">Token</text>
                <text x="264" y="148">+</text>
                <text x="300" y="148">Access</text>
                <text x="376" y="148">Information</text>
                <text x="60" y="180">POST</text>
                <text x="128" y="180">/authz-info</text>
                <text x="56" y="196">(OSCORE</text>
                <text x="128" y="196">protected</text>
                <text x="188" y="196">with</text>
                <text x="84" y="212">access_token</text>
                <text x="148" y="212">in</text>
                <text x="196" y="212">payload)</text>
                <text x="136" y="244">/</text>
                <text x="176" y="244">Updated</text>
                <text x="236" y="244">access</text>
                <text x="292" y="244">rights</text>
                <text x="328" y="244">/</text>
                <text x="92" y="276">2.04</text>
                <text x="144" y="276">Changed</text>
                <text x="84" y="324">OSCORE</text>
                <text x="144" y="324">Request</text>
                <text x="84" y="356">OSCORE</text>
                <text x="148" y="356">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <====         Existing security context        ====> |
   |                            |                         |
   +-------- POST /token  ------------------------------->|
   |                            |                         |
   |<--------------------------------- Access Token ------+
   |                               + Access Information   |
   |                            |                         |
   +--- POST /authz-info  ----->|                         |
   |  (OSCORE protected with    |                         |
   |   access_token in payload) |                         |
   |                            |                         |
   |               / Updated access rights /              |
   |                            |                         |
   |<------ 2.04 Changed -------+                         |
   |                            |                         |
   |                            |                         |
   +----- OSCORE Request ------>|                         |
   |                            |                         |
   |<---- OSCORE Response ------|                         |
   |                            |                         |
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="c-as-comm">
      <name>Client-AS Communication</name>
      <t>The following subsections describe the details of the POST request and response to the /token endpoint between C and AS.</t>
      <t>In this exchange, C provides AS with its own authentication credential AUTH_CRED_C. Then, AS issues the access token as securely bound to AUTH_CRED_C, by including it or uniquely referring to it in the access token. Together with the access token, AS provides C with a set of parameters that enable C to run EDHOC with RS. In particular, these parameters include information about the authentication credential AUTH_CRED_RS of RS, which is transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include EDHOC_Information, which is a CBOR map object containing information related to an EDHOC implementation (see <xref target="edhoc-parameters-object"/>). This object is transported in the "edhoc_info" parameter registered in <xref target="iana-oauth-params"/> and <xref target="iana-oauth-cbor-mappings"/>.</t>
      <section anchor="c-as">
        <name>C-to-AS: POST to /token endpoint</name>
        <t>The client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.</t>
        <t>The client <bcp14>MUST</bcp14> send this POST request to the /token endpoint over a secure channel that guarantees authentication, message integrity, and confidentiality (see <xref target="secure-comm-as"/>).</t>
        <t>When using this profile, the payload of the POST request <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the request has media-type "application/ace+cbor". In order to reduce the number of libraries that C has to support, it is <bcp14>RECOMMENDED</bcp14> that C and AS use CoAP as message transfer protocol, OSCORE as security protocol, and EDHOC to establish an OSCORE Security Context.</t>
        <t>AUTH_CRED_C is specified in the "req_cnf" parameter <xref target="RFC9201"/> of the POST request, either transported by value or uniquely referred to. AS could explicitly ask C to provide its authentication credential AUTH_CRED_C by value in the Access Token Request, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>For AUTH_CRED_C, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by EDHOC, e.g., CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/>, and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Consequently, the "req_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C, e.g., "x5chain" or "x5t" when AUTH_CRED_C is an X.509 certificate transported by value or referred to, respectively.</t>
        <t>Note that EDHOC does not admit the use of "naked" COSE_Keys as authentication credentials. The closest admitted authentication credential type is a CCS containing a COSE_Key in a "cnf" claim and possibly other claims, which can be transported by value using the confirmation method "kccs". Therefore, the "req_cnf" parameter <bcp14>MUST NOT</bcp14> specify the confirmation method "COSE_Key" (CBOR abbreviation: 1).</t>
        <t>When receiving an Access Token request including the "req_cnf" parameter, AS checks whether it is already storing the authentication credential of C, namely AUTH_CRED_C, specified in "req_cnf" by value or reference.</t>
        <t>If this is not the case, AS retrieves AUTH_CRED_C, either using the "req_cnf" parameter or some other trusted source. After that, AS validates the actual AUTH_CRED_C.</t>
        <t>In either case, the AS also needs to verify that C is in possession of the private key corresponding to the public key associated with AUTH_CRED_C. This may already have been accomplished, for example, by C authenticating to AS using AUTH_CRED_C as authentication credential, or by some other trusted party vouching for C to the AS. Alternatively, it is possible to use an approach for achieving proof-of-possession similar to that in <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-group-oscore-profile"/>.</t>
        <t>In case of successful validations, AS stores AUTH_CRED_C as a valid authentication credential. Otherwise, the Client-to-AS request <bcp14>MUST</bcp14> be declined.</t>
        <t>An example of client-to-AS request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter.</t>
        <figure anchor="token-request">
          <name>Example of C-to-AS POST /token request for an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: application/ace+cbor
   Payload:
   {
     / audience / 5 : "tempSensor4711",
     / scope /    9 : "read",
     / req_cnf /  4 : {
       e'x5t' : [-15, h'79F2A41B510C1F9B']
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it <bcp14>MUST</bcp14> specify an EDHOC_Information object in the "edhoc_info" parameter of its POST request to the /token endpoint. The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field. This POST request <bcp14>MUST NOT</bcp14> include the "req_cnf" parameter. An example of such a request is shown in <xref target="token-request-update"/>.</t>
        <t>The identifier "session_id" is assigned by AS as discussed in <xref target="token-series"/>, and identifies an ongoing token series associated with the pair (AUTH_CRED_C, AUTH_CRED_RS). That is, previous access tokens in that series were issued by AS to C, as bound to AUTH_CRED_C and intended for RS as identified by AUTH_CRED_RS.</t>
        <t>Note that the same "session_id" value might identify multiple ongoing token series, e.g., if those are associated with the same client but different resource servers. In this case, AS can use the "session_id" value together with other information such as the targeted audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) and the authenticated identity of C, in order to determine the exact token series to which the new requested access token has to be added.</t>
        <!--
Editor's note: When retrieving the access token it is required to consider the pair (session id, AUTH_CRED_C). Here it is stated that the session id identifies the pair (AUTH_CRED_C, AUTH_CRED_RS). Why then isn't the session id sufficient for retrieving the access token, considering it identifies AUTH_CRED_C?

MT: Retrieving an access token based on the pair (session id, AUTH_CRED_C) happens at RS, when using the session id specified in the EDHOC EAD item.

Here on the AS, a series might be ongoing for (C, RS1) and another series might also be ongoing for (C, RS2). If C uses an authentication credential with RS1 and a different one with RS2, then both series can be legitimately identified by the same series id value, which thus might not sufficient to identify precisely one of C's authentication credentials. In practice, this is not an issue, since AS can rely on additional information such as audience.

The text above has been revisited, also based on the revised safer criterion for assigning new sender IDs at the AS in the next subsection.
-->

<t>If the identifier specified in the "session_id" parameter of the POST request identifies multiple, ongoing token series of which C has an access token, then C <bcp14>MUST</bcp14> specify the "audience" parameter in the POST request. In particular, the value of the "audience" parameter <bcp14>MUST</bcp14> be the same value of the "audience" parameter in the POST request that C previously sent to AS, for requesting the first access token in the token series to which the new requested access token has to be added.</t>
        <t>AS <bcp14>MUST</bcp14> verify that the received "session_id" identifies a token series to which a still valid access token issued for C and RS belongs. If that is not the case, the Client-to-AS request <bcp14>MUST</bcp14> be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <figure anchor="token-request-update">
          <name>Example of C-to-AS POST /token request for updating access rights to an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: application/ace+cbor
   Payload:
   {
     / audience /      5 : "tempSensor4711",
     / scope /         9 : "write",
     e'edhoc_info_param' : {
        e'session_id' : h'01'
     }
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="token-series">
        <name>Token Series</name>
        <t>This document refers to "token series" as a series of access tokens that are sorted in chronological order of release and are characterized by the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>Issued by the same AS.</t>
          </li>
          <li>
            <t>Issued to the same C, and associated with the same authentication credential of C.</t>
          </li>
          <li>
            <t>Issued for the same RS as identified by the same authentication credential.</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights (see <xref target="update-access-rights-c-as"/>), the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>In this profile, a token series comprises access tokens that are used between a given pair (C, RS), are bound to the same authentication credential AUTH_CRED_C of C, and specify the same value in the "session_id" field of the EDHOC_Information object (see <xref target="edhoc-parameters-object"/>) in their "edhoc_info" claim.</t>
        <t>AS assigns the value of "session_id" when issuing the first access token of a new series. That "session_id" value remains fixed throughout the series lifetime.</t>
        <t>When assigning the "session_id" value, AS <bcp14>MUST</bcp14> ensure that it was not used in a previous series whose access tokens share both the following properties with the access tokens of the new series, irrespective of the used ACE profile:</t>
        <ul spacing="normal">
          <li>
            <t>issued to the same client C; and</t>
          </li>
          <li>
            <t>issued for the same RS.</t>
          </li>
        </ul>
        <t>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), what is defined above applies, with the difference that the token series is associated with all the RSs in the group-audience, as indicated by their respective AUTH_CRED_RS.</t>
      </section>
      <section anchor="as-c">
        <name>AS-to-C: Response</name>
        <t>After verifying the POST request to the /token endpoint and that C is authorized to access protected resources at RS, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below.</t>
        <t>When using this profile, consistent with what is specified in <xref target="c-as"/>, the payload of the response from AS <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the response has media-type "application/ace+cbor".</t>
        <t>If the request from C was invalid or not authorized, AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>AS can signal that the use of EDHOC and OSCORE as per this profile is <bcp14>REQUIRED</bcp14> for a specific access token, by including the "ace_profile" parameter with the value "coap_edhoc_oscore" in the access token response. This means that C <bcp14>MUST</bcp14> use EDHOC with RS and derive an OSCORE Security Context, as specified in <xref target="edhoc-exec"/>. After that, C <bcp14>MUST</bcp14> use the established OSCORE Security Context to protect communications with RS, when accessing protected resources at RS according to the authorization information indicated in the access token. Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</t>
        <t>According to this document, the AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response. An alternative workflow where the access token is uploaded by AS directly to RS is described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>When issuing the first access token of a token series, AS <bcp14>MUST</bcp14> include the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "edhoc_info" parameter conveying an EDHOC_Information object (see <xref target="edhoc-parameters-object"/>). The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series which the issued access token belongs to.  </t>
            <t>
The EDHOC_Information object <bcp14>MAY</bcp14> include additional fields (see <xref target="edhoc-parameters-object"/>) to convey information about RS. This information is based on knowledge that AS has about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as EDHOC peer.  </t>
            <t>
In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), the information specified in the EDHOC_Information object refers to the group-audience as a whole. Therefore, it is appropriate for AS to define group-audiences comprising RSs that are all aligned in terms of supported EDHOC features and configurations.</t>
          </li>
          <li>
            <t>A unique identification of the authentication credential of RS, AUTH_CRED_RS. This is specified in the "rs_cnf" parameter defined in <xref target="RFC9201"/>. AUTH_CRED_RS can be transported by value or referred to by means of an appropriate identifier. C could explicitly ask AS to provide AUTH_CRED_RS by value in the Access Token Response, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.  </t>
            <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is expected that the response to C includes AUTH_CRED_RS by value.  </t>
            <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_RS, it is expected that the response to C includes AUTH_CRED_RS by reference.  </t>
            <t>
For AUTH_CRED_RS, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by EDHOC. Consequently, the "rs_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_RS. That is, the same considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/> hold for AUTH_CRED_RS and the "rs_cnf" parameter.</t>
          </li>
        </ul>
        <t>When issuing an access token for dynamically updating access rights (i.e., the access token is not the first in its token series), the response from AS <bcp14>MUST NOT</bcp14> include the "edhoc_info" and "rs_cnf" parameters (see <xref target="update-access-rights-c-as"/>).</t>
        <t><xref target="fig-token-response"/> shows an example of an AS response. The "rs_cnf" parameter specifies the authentication credential of RS, as an X.509 certificate transported by value in the "x5chain" field. The access token and the authentication credential of RS have been truncated for readability.</t>
        <figure anchor="fig-token-response">
          <name>Example of AS-to-C Access Token response with EDHOC and OSCORE profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Format: application/ace+cbor
      Payload:
      {
        / access_token / 1 : h'8343a1010aa2044c53...0f6a'
          / remainder of access token (CWT) omitted for brevity /,
        / ace_profile / 38 : e'coap_edhoc_oscore',
        / expires_in /   2 : 3600,
        / rs_cnf /      41 : {
          e'x5chain' : h'3081ee3081a1a00302...77bc'
            / remainder of the credential omitted for brevity /
        }
        e'edhoc_info_param' : {
          e'session_id'    : h'01',
          e'methods'       : [0, 1, 2, 3],
          e'cipher_suites' : 0
        }
      }
]]></artwork>
        </figure>
        <section anchor="access-token">
          <name>Access Token</name>
          <t>To avoid the complexity of different encodings, an access token of this profile <bcp14>SHALL</bcp14> be a CBOR Web Token (CWT) <xref target="RFC8392"/>.</t>
          <t>When issuing any access token of a token series, AS <bcp14>MUST</bcp14> include the following claims in the access token:</t>
          <ul spacing="normal">
            <li>
              <t>The "edhoc_info" claim defined in <xref target="iana-token-cwt-claims"/> and conveying an EDHOC_Information object (see <xref target="edhoc-parameters-object"/>).  </t>
              <t>
The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series which the issued access token belongs to. The "session_id" value is the same one included in the EDHOC_Information object of the response to C from the /token endpoint (see <xref target="as-c"/>), when providing C with the first access token in the series.</t>
            </li>
            <li>
              <t>The "cnf" claim, specifying the authentication credential AUTH_CRED_C that C specified in its POST request to the /token endpoint, when requesting the first access token in the series which the issued access token belongs to (see <xref target="c-as"/>).  </t>
              <t>
In the access token, AUTH_CRED_C can be transported by value or uniquely referred to by means of an appropriate identifier. Yet, consistent with the considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/>, the "cnf" claim of the access token <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C.  </t>
              <t>
When issuing the first access token of a token series, the confirmation method used in the "cnf" claim <bcp14>MUST</bcp14> be the same one used in the "req_cnf" parameter of the corresponding POST request from C to the /token endpoint.  </t>
              <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is expected that AUTH_CRED_C is included by value in the "cnf" claim of the access token.  </t>
              <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_C, it is expected that AUTH_CRED_C is identified by reference in the "cnf" claim of the access token.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS <bcp14>MAY</bcp14> include additional fields in the EDHOC_Information object (see <xref target="edhoc-parameters-object"/>) specified in the "edhoc_info" claim of the access token.</t>
          <t>The access token needs to be protected for various reasons. To prevent manipulation of the content, it needs to be integrity protected. Also, RS has to be able to verify that the access token is issued by a trusted AS, by achieving source authentication. Depending on the use case and deployment, the access token may need to be confidentiality protected, for example due to privacy reasons.</t>
          <t>AS protects the access token using a COSE method <xref target="RFC9052"/> as specified in <xref target="RFC8392"/>. Depending on the audience, there can be different ways to most appropriately ensure the confidentiality of an access token. For an audience comprising a single RS, the CWT Claims Set may be wrapped in COSE_Encrypt / COSE_Encrypt0. Instead, if the access token needs to be read by multiple RSs, then the CWT Claims Set may be wrapped in COSE_Sign / COSE_Sign1 and confidentiality protection is applied during transport, by including the access token in the EAD_3 field of EDHOC message_3 sent by C to RS, when using the EDHOC forward message flow (see <xref target="edhoc-exec"/>).</t>
          <t><xref target="fig-token"/> shows an example of CWT Claims Set, including the relevant EDHOC parameters in the "edhoc_info" claim. The "cnf" claim specifies the authentication credential of C, as an X.509 certificate transported by value in the "x5chain" field. The authentication credential of C has been truncated for readability.</t>
          <figure anchor="fig-token">
            <name>Example of CWT Claims Set with EDHOC parameters.</name>
            <artwork><![CDATA[
   {
    / aud /   3 : "tempSensorInLivingRoom",
    / iat /   6 : 1563451500,
    / exp /   4 : 1563453000,
    / scope / 9 :  "temperature_g firmware_p",
    / cnf /   8 : {
      e'x5chain' : h'3081ee3081a1a00302...77bc'
        / remainder of the credential omitted for brevity /
    }
    e'edhoc_info_claim' : {
      e'session_id'    : h'01',
      e'methods'       : [0, 1, 2, 3],
      e'cipher_suites' : 0
    }
  }
]]></artwork>
          </figure>
        </section>
        <section anchor="processing-at-c">
          <name>Processing at C</name>
          <t>When receiving an access token response including the "rs_cnf" parameter, C checks whether it is already storing the authentication credential of RS, namely AUTH_CRED_RS, specified in "rs_cnf" by value or reference.</t>
          <t>If this is not the case, C retrieves AUTH_CRED_RS, either using the "rs_cnf" parameter or some other trusted source. After that, C validates the actual AUTH_CRED_RS. In case of successful validation, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C <bcp14>MUST</bcp14> delete the access token.</t>
        </section>
        <section anchor="update-access-rights-c-as">
          <name>Update of Access Rights</name>
          <t>If C has a valid OSCORE Security Context associated with a valid access token, then C can send a request to AS for updating its access rights while preserving the same OSCORE Security Context.</t>
          <t>If the request is granted, then AS generates a new access token, where the EDHOC_Information object specified in the "edhoc_info" claim <bcp14>MUST</bcp14> include only the "session_id" field. The access token is provisioned to RS either via C as specified in this document, or directly as described in <xref target="I-D.ietf-ace-workflow-and-params"/>. In either case, the access token response from AS to C <bcp14>MUST NOT</bcp14> include the "edhoc_info" and "rs_cnf" parameters.</t>
          <t>As defined in <xref target="access-token"/>, the "session_id" field is included in the EDHOC_Information object specified in the "edhoc_info" claim of the new access token. This allows RS to identify the old access token to supersede, as well as the OSCORE Security Context already shared between C and RS and to be associated with the new access token.</t>
        </section>
      </section>
      <section anchor="edhoc-parameters-object">
        <name>EDHOC_Information</name>
        <t>EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications.</t>
        <t>In the "coap_edhoc_oscore" profile of the ACE-OAuth framework, which is specified in this document, the EDHOC_Information object <bcp14>MUST</bcp14> be encoded as CBOR. However, for easy applicability to other contexts, we define also the JSON encoding.</t>
        <t>The EDHOC_Information can be encoded either as a JSON object or as a CBOR map. The set of common fields that can appear in an EDHOC_Information can be found in the IANA "EDHOC Information" registry defined in <xref target="iana-edhoc-parameters"/> for extensibility.</t>
        <t>All EDHOC_Information parameters are optional. The initial set of parameters defined in this document is summarized in <xref target="_table-cbor-key-edhoc-params"/> and is specified below.</t>
        <t>EDHOC_Information parameters are also categorized, i.e., each has one of two possible types, namely prescriptive or non-prescriptive:</t>
        <ul spacing="normal">
          <li>
            <t>A prescriptive parameter is used to provide an authoritative statement about how an execution of EDHOC has to be performed. An example is the "message_4" parameter indicating whether the use of EDHOC message_4 in an EDHOC session is mandatory or not.</t>
          </li>
          <li>
            <t>A non-prescriptive parameter is used to provide convenient information to consider when executing EDHOC, e.g., in terms of features supported by other peers. Such information is not necessarily exhaustive. An example is the "methods" parameter indicating a set of supported EDHOC methods.</t>
          </li>
        </ul>
        <t>This categorization helps coordinate the use of EDHOC application profiles <xref section="3.9" sectionFormat="of" target="RFC9528"/> in a robust way, e.g., by using the means defined in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
        <table align="center" anchor="_table-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters. Types: P (Prescriptive), NP (Non-Prescriptive)</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">CBOR label</th>
              <th align="left">CBOR type</th>
              <th align="left">Registry</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">session_id</td>
              <td align="left">0</td>
              <td align="left">bstr</td>
              <td align="left"> </td>
              <td align="left">Identifier of a session</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">methods</td>
              <td align="left">1</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Method Type registry</td>
              <td align="left">Set of supported EDHOC methods</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">cipher_suites</td>
              <td align="left">2</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Cipher Suites registry</td>
              <td align="left">Set of supported EDHOC cipher suites</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">message_4</td>
              <td align="left">3</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Mandatory use of EDHOC message_4</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">comb_req</td>
              <td align="left">4</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC + OSCORE combined request</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">uri_path</td>
              <td align="left">5</td>
              <td align="left">tstr</td>
              <td align="left"> </td>
              <td align="left">URI-path of the EDHOC resource</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">cred_types</td>
              <td align="left">6</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Authentication Credential Types registry</td>
              <td align="left">Set of supported types of authentication credentials for EDHOC</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">id_cred_types</td>
              <td align="left">7</td>
              <td align="left">int or tstr or array</td>
              <td align="left">COSE Header Parameters registry</td>
              <td align="left">Set of supported types of authentication credential identifiers for EDHOC</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">eads</td>
              <td align="left">8</td>
              <td align="left">uint or array</td>
              <td align="left">EDHOC External Authorization Data registry</td>
              <td align="left">Set of supported EDHOC External Authorization Data (EAD) items</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">initiator</td>
              <td align="left">9</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Initiator role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">responder</td>
              <td align="left">10</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Responder role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">max_msgsize</td>
              <td align="left">11</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Maximum size of EDHOC messages in bytes</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">coap_ct</td>
              <td align="left">12</td>
              <td align="left">True of False</td>
              <td align="left"> </td>
              <td align="left">Mandatory use of the CoAP Content-Format Option in CoAP messages whose payload includes exclusively an EDHOC message, possibly prepended by an EDHOC connection identifier</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">ep_id_types</td>
              <td align="left">13</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Endpoint Identity Types registry</td>
              <td align="left">Set of supported types of endpoint identities for EDHOC</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">transports</td>
              <td align="left">14</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Transports registry</td>
              <td align="left">Set of supported means for transporting EDHOC messages</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">trust_anchors</td>
              <td align="left">15</td>
              <td align="left">map</td>
              <td align="left">EDHOC Trust Anchor Purposes registry and EDHOC Trust Anchor Types registry</td>
              <td align="left">Set of supported trust anchors</td>
              <td align="left">NP</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>session_id: This parameter identifies a 'session' which the EDHOC information is associated with, but does not necessarily identify a specific EDHOC session. In this document, "session_id" identifies a token series. In JSON, the "session_id" value is a Base64 encoded byte string. In CBOR, the "session_id" type is a byte string, and has label 0.</t>
          </li>
          <li>
            <t>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single EDHOC method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC method. In JSON, the "methods" value is an integer or an array of integers. In CBOR, the "methods" is an integer or an array of integers, and has label 1.</t>
          </li>
          <li>
            <t>cipher_suites: This parameter specifies a set of supported EDHOC cipher suites (see <xref section="3.6" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single EDHOC cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC cipher suite. In JSON, the "cipher_suites" value is an integer or an array of integers. In CBOR, the "cipher_suites" is an integer or an array of integers, and has label 2.</t>
          </li>
          <li>
            <t>message_4: This parameter indicates whether the EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="RFC9528"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 4.</t>
          </li>
          <li>
            <t>comb_req: This parameter indicates whether the combined EDHOC + OSCORE request defined in <xref target="RFC9668"/>) is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 5.</t>
          </li>
          <li>
            <t>uri_path: This parameter specifies the path component of the URI of the EDHOC resource where EDHOC messages have to be sent as requests. In JSON, the "uri_path" value is a string. In CBOR, "uri_path" is a text string, and has label 6.</t>
          </li>
          <li>
            <t>cred_types: This parameter specifies a set of supported types of authentication credentials for EDHOC (see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one type of authentication credential. In JSON, the "cred_types" value is an integer or an array of integers. In CBOR, "cred_types" is an integer or an array of integers, and has label 6. The integer values are taken from the "EDHOC Authentication Credential Types" registry defined in <xref target="RFC9668"/>.</t>
          </li>
          <li>
            <t>id_cred_types: This parameter specifies a set of supported types of authentication credential identifiers for EDHOC (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential identifier, this is encoded as an integer or a text string. Otherwise, the set is encoded as an array, where each array element encodes one type of authentication credential identifier, as an integer or a text string. In JSON, the "id_cred_types" value is an integer, or a text string, or an array of integers and text strings. In CBOR, "id_cred_types" is an integer or a text string, or an array of integers and text strings, and has label 7. The integer or text string values are taken from the 'Label' column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>.</t>
          </li>
          <li>
            <t>eads: This parameter specifies a set of supported EDHOC External Authorization Data (EAD) items, identified by their ead_label (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single ead_label, this is encoded as an unsigned integer. Otherwise, the set is encoded as an array of unsigned integers, where each array element encodes one ead_label. In JSON, the "eads" value is an unsigned integer or an array of unsigned integers. In CBOR, "eads" is an unsigned integer or an array of unsigned integers, and has label 8. The unsigned integer values are taken from the 'Label' column of the "EDHOC External Authorization Data" registry defined in <xref target="RFC9528"/>.</t>
          </li>
          <li>
            <t>initiator: This parameter specifies whether the EDHOC Initiator role is supported. In JSON, the "initiator" value is a boolean. In CBOR, "initiator" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 9.</t>
          </li>
          <li>
            <t>responder: This parameter specifies whether the EDHOC Responder role is supported. In JSON, the "responder" value is a boolean. In CBOR, "responder" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 10.</t>
          </li>
          <li>
            <t>max_msgsize: This parameter specifies the admitted maximum size of EDHOC messages in bytes. In JSON, the "max_msgsize" value is an unsigned integer. In CBOR, "max_msgsize" is an unsigned integer and has label 11.</t>
          </li>
          <li>
            <t>coap_cf: This parameter specifies whether it is required that CoAP messages include the CoAP Content-Format Option with value 64 (application/edhoc+cbor-seq) or 65 (application/cid-edhoc+cbor-seq) as appropriate, when the message payload includes exclusively an EDHOC message possibly prepended by an EDHOC connection identifier (see Sections <xref target="RFC9528" section="3.4.1" sectionFormat="bare"/> and <xref target="RFC9528" section="A.2" sectionFormat="bare"/> of <xref target="RFC9528"/>). In JSON, the "coap_cf" value is a boolean. In CBOR, "coap_cf" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 12.</t>
          </li>
          <li>
            <t>ep_id_types: This parameter specifies a set of supported types of endpoint identities for EDHOC. If the set is composed of a single type of endpoint identity, this is encoded as an integer. Otherwise, the set is encoded as an array, where each array element encodes one type of endpoint identity as an integer. In JSON, the "ep_id_types" value is an integer or an array of integers. In CBOR, "ep_id_types" is an integer or an array of integers, and has label 13. The integer values are taken from the 'CBOR Label' column of the "EDHOC Endpoint Identity Types" registry defined in <xref target="iana-edhoc-endpoint-identity-types"/> of this document.</t>
          </li>
          <li>
            <t>transports: This parameter specifies a set of supported means for transporting EDHOC messages. If the set is composed of a single means for transporting EDHOC messages, this is encoded as an integer. Otherwise, the set is encoded as an array, where each array element encodes one means for transporting EDHOC messages as an integer. In JSON, the "transports" value is an integer or an array of integers. In CBOR, "transports" is an integer or an array of integers, and has label 14. The integer values are taken from the 'Transport ID' column of the "EDHOC Transports" Registry defined in <xref target="iana-edhoc-transports"/> of this document.</t>
          </li>
          <li>
            <t>trust_anchors: This parameter specifies a collection of supported trust anchors for performing authentication. According to what is specified within the collection, these trust anchors are used for different purposes, e.g., for verifying authentication credentials of other EDHOC peers in EDHOC sessions.  </t>
            <t>
More in detail, the collection of trust anchors is composed of one or more sets. Each set includes one or more trust anchors to use for one specific purpose associated with that set.  </t>
            <t>
In particular, each set is composed of pairs, each of which specifies a trust anchor type and an identifier of a trust anchor of that type. If the set is composed of a single pair, this pair is specified as a single item. If the set is composed of multiple pairs, these pairs are specified as elements of an array.  </t>
            <t>
Trust anchor purposes are selected from the "EDHOC Trust Anchor Purposes" registry defined in <xref target="iana-edhoc-ta-purposes"/> of this document. Trust anchor types are selected from the "EDHOC Trust Anchor Types" registry defined in <xref target="iana-edhoc-ta-types"/> of this document.  </t>
            <t>
In JSON, the "trust_anchors" value is an object with one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose taken from the 'Name' column' of the "EDHOC Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is an object or an array of at least two objects. Each object includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE taken from the 'Name' column of the "EDHOC Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value is the identifier of TA, whose encoding depends on TYPE. Such an encoding is what results from applying the conversion in <xref section="6.1" sectionFormat="of" target="RFC8949"/> to the CBOR encoding of the identifier of TA when "trust_anchors" is encoded in CBOR (see below).</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>
In CBOR, the "trust_anchors" value is a map and has label 15. The map includes one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "EDHOC Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is a map or an array of at least two maps. Each map includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "EDHOC Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value specifies the identifier of TA, whose encoding depends on TYPE and is specified by the 'Value type' column of the "EDHOC Trust Anchor Types" registry, for the registry entry that has TYPE as value of the 'Name' column.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>An example of JSON EDHOC_Information is given in <xref target="fig-edhoc-info-json"/>.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON EDHOC_Information</name>
          <artwork><![CDATA[
   "edhoc_info" : {
       "session_id"    : b64'AQ==',
       "methods"       : 1,
       "cipher_suites" : 0,
       "trust_anchors" : {
         "edhoc_cred" : [
           { "c5u" : "coap://certs.c509.example" },
           { "x5u" : "coap://certs.x509.example" }
         ]
       }
   }
]]></artwork>
        </figure>
        <t>An example of CBOR EDHOC_Information is given in <xref target="fig-edhoc-info-cbor"/>.</t>
        <figure anchor="fig-edhoc-info-cbor">
          <name>Example of CBOR EDHOC_Information</name>
          <artwork><![CDATA[
   e'edhoc_info_param'  : {
     e'session_id'    : h'01',
     e'methods'       : 1,
     e'cipher_suites' : 0,
     e'trust_anchors' : {
       e'edhoc_cred' : [
         { e'c5t_ta_type' : [-15, h'81DC2F32CB87E163'] },
         { e'c5u_ta_type' : "coap://certs.c509.example" },
         { e'x5t_ta_type' : [-15, h'79F2A41B510C1F9B'] },
         { e'x5u_ta_type' : "coap://certs.x509.example" }
       ]
     }
   }
]]></artwork>
        </figure>
        <t>The CDDL grammar describing the CBOR EDHOC_Information is:</t>
        <artwork><![CDATA[
EDHOC_Information = {
  ?  0 => bstr,                   ; id
  ?  1 => int / array,            ; methods
  ?  2 => int / array,            ; cipher_suites
  ?  3 => true / false,           ; message_4
  ?  4 => true / false,           ; comb_req
  ?  5 => tstr,                   ; uri_path
  ?  6 => int / array,            ; cred_types
  ?  7 => int / tstr / array,     ; id_cred_types
  ?  8 => uint / array,           ; eads
  ?  9 => true / false,           ; initiator
  ? 10 => true / false,           ; responder
  ? 11 => uint,                   ; max_msgsize
  ? 12 => true / false,           ; coap_ct
  ? 13 => int / array,            ; ep_id_types
  ? 14 => int / array,            ; transports
  ? 15 => map,                    ; trust_anchors
  * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the exchange between C and RS, including the execution of the EDHOC protocol and the uploading of the access token from C to RS. The alternative workflow, where AS uploads the access token directly to RS, is described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
      <t>C and RS run the EDHOC protocol (see <xref target="edhoc-exec"/>), and C uploads the access token in an EAD field (see <xref target="AT-in-EAD"/>) of an EDHOC message. Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context (see <xref target="oscore-security-context"/>). After that, OSCORE is used for protecting communications when C accesses resources at RS, as per the access rights specified in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>Detailed examples are given in <xref target="examples"/>.</t>
      <section anchor="AT-in-EAD">
        <name>EAD items for Access Token and Session Identifier</name>
        <t>This document defines EAD items (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>) for transporting an access token or a session identifier in EDHOC.</t>
        <ul spacing="normal">
          <li>
            <t>EAD_ACCESS_TOKEN  = (ead_label, ead_value), where:  </t>
            <ul spacing="normal">
              <li>
                <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/>.</t>
              </li>
              <li>
                <t>ead_value is a CBOR byte string equal to the value of the "access_token" field of the access token response from AS (see <xref target="as-c"/>).</t>
              </li>
            </ul>
            <t>
This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol using the received access token, or else abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A client or resource server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.  </t>
            <t>
EAD_ACCESS_TOKEN is used only when uploading the first access token of a token series, but not for the update of access rights (see <xref target="update-access-rights-c-rs"/>).  </t>
            <t>
Editor's note: Add example.</t>
          </li>
          <li>
            <t>EAD_SESSION_ID  = (ead_label, ead_value), where:  </t>
            <ul spacing="normal">
              <li>
                <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/>.</t>
              </li>
              <li>
                <t>ead_value is a CBOR byte string equal to the value of the "session_id" field within the EDHOC_Information object specified by AS in the "edhoc_info" parameter of the response from the /token endpoint, when issuing the first access token of a token series (see <xref target="as-c"/>).</t>
              </li>
            </ul>
            <t>
This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol using the access token associated with the identifier specified in "ead_value" and with the AUTH_CRED_C used in the EDHOC session, or else abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A client or resource server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.  </t>
            <t>
EAD_SESSION_ID is used only if the access token has been provisioned to RS and is valid, but there is a need to establish a (new) OSCORE Security Context between C and RS through EDHOC.  </t>
            <t>
Editor's note: Add example.</t>
          </li>
        </ul>
      </section>
      <section anchor="edhoc-exec">
        <name>EDHOC Session</name>
        <t>In order to mutually authenticate and establish secure communication for authorized access according to the profile described in this document, C and RS run the EDHOC protocol augmented with an access token. During the EDHOC session, C specifies the access token to RS by value as conveyed in EAD item EAD_ACCESS_TOKEN, or by reference through a session identifier SESSION_ID conveyed in the EAD item EAD_SESSION_ID (see <xref target="AT-in-EAD"/>).</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="RFC9528"/>, EDHOC can be transferred over CoAP using either the forward or the reverse message flow, thus manifesting the two possible mappings between the ACE roles (client and resource server) and the EDHOC roles (Initiator and Responder), whereas the CoAP roles (client and server) remain the same. The choice of message flow and corresponding mapping depends on the deployment setting and in particular on which identity to protect the most, since EDHOC protects the identity of the Initiator against active attackers.</t>
        <t>In case the EDHOC forward message flow is used (see <xref target="forward"/>), C acts as EDHOC Initiator, and the access token <bcp14>MUST</bcp14> be specified by value or by reference in the EAD_3 field of EDHOC message_3. In case the EDHOC reverse message flow is used (see <xref target="reverse"/>), C acts as EDHOC Responder, and the access token <bcp14>MUST</bcp14> be specified by value or by reference either in the EAD_2 field of EDHOC message_2 or in the EAD_4 field of EDHOC message_4. By doing so, the access token or the associated session identifier gets at least the same confidentiality protection by EDHOC as provided to the authentication credential used by C in the EDHOC session (see <xref section="9.1" sectionFormat="of" target="RFC9528"/>).</t>
        <t>When RS processes the EAD item EAD_ACCESS_TOKEN or EAD_SESSION_ID, RS <bcp14>MUST</bcp14> verify that the authentication credential AUTH_CRED_C that C specifies in the ID_CRED_X field during the EDHOC session is the same authentication credential correlated with the EAD item. If such a verification fails, RS <bcp14>MUST</bcp14> abort the EDHOC session. Note that:</t>
        <ul spacing="normal">
          <li>
            <t>The ID_CRED_X field in question is the ID_CRED_I or ID_CRED_R field, when using the EDHOC forward or reverse message flow, respectively.</t>
          </li>
          <li>
            <t>If the processed EAD item is EAD_ACCESS_TOKEN, then the authentication credential correlated with the EAD item is specified in the 'cnf' claim of the access token conveyed in the EAD item.</t>
          </li>
          <li>
            <t>If the processed EAD item is EAD_SESSION_ID, then the authentication credential correlated with the EAD item is specified in the 'cnf' claim of an access token stored at the RS, which is associated with the authentication credential specified by ID_CRED_X and with the SESSION_ID conveyed in the EAD item.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> have successfully validated the access token before completing the EDHOC session. If completed successfully, then the EDHOC session is associated with both the access token and the pair (SESSION_ID, AUTH_CRED_C). If the EAD item used in the EDHOC session is EAD_ACCESS_TOKEN, then SESSION_ID is specified by the "session_id" field, within the EDHOC_Information object specified by the "cnf" claim of the access token.</t>
        <t>Any previous EDHOC session associated with the same access token and with the same pair (SESSION_ID, AUTH_CRED_C) <bcp14>MUST</bcp14> be deleted. The OSCORE Security Context derived from that EDHOC session <bcp14>MUST</bcp14> also be deleted.</t>
        <t>Depending on the message flow used, the EDHOC messages will be carried either in CoAP POST requests or in CoAP 2.04 (Changed) responses, as detailed in <xref section="A.2" sectionFormat="of" target="RFC9528"/>.</t>
        <t>C <bcp14>MUST</bcp14> target the EDHOC resource at RS with the URI path specified in the "uri_path" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>). If the "uri_path" field is not present in that EDHOC_Information object, C assumes the target resource at RS to be the well-known EDHOC resource at the path /.well-known/edhoc.</t>
        <t>RS has to ensure that no requests can be performed on an EDHOC resource other than for running the EDHOC protocol. Specifically, it <bcp14>SHOULD NOT</bcp14> be possible to perform any other operation than POST on an EDHOC resource.</t>
      </section>
      <section anchor="forward">
        <name>Forward Message Flow</name>
        <t>This section details the case where the EDHOC forward message flow is used (see <xref section="A.2.1" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Initiator I and RS acts as the Responder R.</t>
        <t>Consistently with the EDHOC forward message flow, C sends EDHOC message_1 and EDHOC message_3 to an EDHOC resource at RS, as CoAP POST requests. RS sends EDHOC message_2 and (optionally) EDHOC message_4 as CoAP 2.04 (Changed) responses.</t>
        <section anchor="edhoc-message1">
          <name>EDHOC message_1</name>
          <t>The processing of EDHOC message_1 is specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The EDHOC method <bcp14>MUST</bcp14> be one of the EDHOC methods specified in the "methods" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>)</t>
            </li>
            <li>
              <t>The selected cipher suite <bcp14>MUST</bcp14> be an EDHOC cipher suite specified in the "cipher_suites" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>)</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message2">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message3">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>Exactly one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MUST</bcp14> be included in the EAD_3 field. If this is not the case, RS <bcp14>MUST</bcp14> abort the EDHOC session.</t>
            </li>
            <li>
              <t>If the EAD_3 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_3 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.  </t>
              <t>
The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.  </t>
              <t>
Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied" defined in draft-ietf-lake-authz</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="reverse">
        <name>Reverse Message Flow</name>
        <t>This section details the case where the EDHOC reverse message flow is used (see <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Responder R and RS acts as the Initiator I.</t>
        <t>Consistently with the EDHOC reverse message flow, C sends a trigger message, EDHOC message_2, and (optionally) EDHOC message_4 to RS as CoAP POST requests. RS sends EDHOC message_1 and EDHOC message_3 as CoAP 2.04 (Changed) responses.</t>
        <t>In this profile of ACE, if RS implements the EDHOC reverse message flow, then RS <bcp14>MUST</bcp14> implement EDHOC message_4.</t>
        <t>Exactly one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MUST</bcp14> be included in either the EAD_2 field of EDHOC message_2 or the EAD_4 field of EDHOC message_4. If this is not the case, RS <bcp14>MUST</bcp14> abort the EDHOC session.</t>
        <t>Specific instructions for the different messages are provided in the following subsections.</t>
        <section anchor="trigger-message">
          <name>Trigger Message</name>
          <t>As specified in <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>, the trigger message is an empty POST request that C sends to the EDHOC resource at RS, as intended to trigger a response conveying EDHOC message_1.</t>
          <t>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), then C can perform an EDHOC "roll call", by sending the trigger message as a group request over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/>. For the sake of efficiency, it is expected that the group-audience is appropriately associated with a CoAP group and/or application group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>), so that only the RSs belonging to the group-audience receive the trigger message. After that, C can receive a different EDHOC message_1 from each of the targeted RSs and separately progresses the corresponding EDHOC sessions, by sending a different EDHOC message_2 to each RS that has replied with an EDHOC message_1.</t>
        </section>
        <section anchor="edhoc-message1-1">
          <name>EDHOC message_1</name>
          <t>The processing of EDHOC message_1 is specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="edhoc-message2-1">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>If the EAD_2 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_2 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.</t>
            </li>
          </ul>
          <t>Note that in this case C uploads the Access Token or session ID before RS is authenticated, since C will not learn about the identity of RS until having verified message_3. In particular, in the case of a group-audience, when there may be multiple legitimate RS, C does not yet know which member of the group-audience it communicates with (if any).</t>
          <t>The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.</t>
          <t>Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
        </section>
        <section anchor="edhoc-message3-1">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message4">
          <name>EDHOC message_4</name>
          <t>The processing of EDHOC message_4 is specified in <xref section="5.5" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>If the EAD_4 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_4 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.  </t>
              <t>
The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.  </t>
              <t>
Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="oscore-security-context">
        <name>OSCORE Security Context</name>
        <t>Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context as defined in <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
        <t>In addition, RS associates the latest EDHOC session and the derived OSCORE Security Context with the stored access token, which is bound to the authentication credential AUTH_CRED_C used in the EDHOC session. The access token is also associated with the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs.</t>
        <t>If supported by C, C <bcp14>MAY</bcp14> use the EDHOC + OSCORE combined request defined in <xref target="RFC9668"/>, unless the EDHOC_Information object specified by the "edhoc_info" parameter of the access token response included the "comb_req" field encoding the CBOR simple value <tt>false</tt> (0xf4).</t>
        <t>In the combined request, both EDHOC message_3 and the first OSCORE-protected application request are combined together in a single OSCORE-protected CoAP request, thus saving one round trip. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received EDHOC message_2 and before sending EDHOC message_3. An example is provided in <xref target="example-with-optimization"/>.</t>
      </section>
      <section anchor="update-access-rights-c-rs">
        <name>Update of Access Rights</name>
        <t>If C has a valid OSCORE Security Context associated with a valid access token at RS, then C can request from AS an update of the access rights as described in <xref target="c-as"/>.</t>
        <t>If the request is granted, then AS generates a new access token containing updated access rights for C (see <xref target="update-access-rights-c-as"/>), in the same token series of the current access token (see <xref target="token-series"/>).</t>
        <t>According to this document, AS provides the new access token to C (see <xref target="as-c"/>) for further uploading to RS. Alternatively, the new access token can be uploaded by AS directly to RS, as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>If all validations are successful, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
        <t>The rest of this section describes the message exchange for the uploading of the new access token from C to RS.</t>
        <section anchor="c-rs">
          <name>C-to-RS: POST to /authz-info endpoint</name>
          <t>C can update its access rights by uploading the updated access token to RS using CoAP <xref target="RFC7252"/> and the Authorization Information endpoint as described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>.</t>
          <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload containing the access token without any CBOR wrapping. As per <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, the Content-Format of the POST request <bcp14>MUST</bcp14> be "application/cwt" to reflect the format of the transported access token.</t>
          <t>C <bcp14>MUST</bcp14> protect the POST request using the current OSCORE Security Context shared with RS.</t>
          <t>Upon receiving an access token from C, RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS <bcp14>MUST</bcp14> verify the validity of the access token. RS <bcp14>MAY</bcp14> make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token at AS.</t>
          <t>RS <bcp14>MUST</bcp14> check the following conditions:</t>
          <ul spacing="normal">
            <li>
              <t>RS checks whether it stores an access token T_OLD, such that the "session_id" field of the EDHOC_Information object specified by the "cnf" claim matches the "session_id" field of the EDHOC_Information object specified by the "cnf" claim of the new access token T_NEW.</t>
            </li>
            <li>
              <t>RS checks whether the OSCORE Security Context CTX used to protect the request matches the OSCORE Security Context associated with the stored access token T_OLD.</t>
            </li>
          </ul>
          <t>If both the conditions above hold, RS <bcp14>MUST</bcp14> supersede the old access token T_OLD by replacing the corresponding authorization information with the one specified in the new access token T_NEW, and <bcp14>MUST</bcp14> associate T_NEW with the OSCORE Security Context CTX.</t>
          <t>Note that C and RS do not execute the EDHOC protocol, they do not establish a new OSCORE Security Context, and AUTH_CRED_C remains the same.</t>
        </section>
        <section anchor="rs-c">
          <name>RS-to-C: 2.01 (Created)</name>
          <t>If all validations are successful, RS stores the new access token in such a way that it is possible to retrieve it based on the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs. Note that SESSION_ID is specified in the "session_id" field of the EDHOC_Information object, within the "cnf" claim of the access token.</t>
          <t>Then, RS <bcp14>MUST</bcp14> reply to the POST request by sending a 2.01 (Created) response with no payload. The response is protected with the same OSCORE Security Context used to protect the corresponding request. After that, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
          <t>Instead, if any validation fails, RS <bcp14>MUST</bcp14> respond with a 4.01 (Unauthorized) error response. RS <bcp14>MAY</bcp14> provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
          <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving a valid access token with updated authorization information from C (see <xref target="c-rs"/>), it is recommended that RS overwrites the previous access token. That is, only the latest authorization information in the access token received by RS is valid. This simplifies the process needed by RS to keep track of authorization information for a given client.</t>
        </section>
      </section>
      <section anchor="discard-context">
        <name>Discarding the OSCORE Security Context</name>
        <t>There are a number of cases where C or RS have to discard the OSCORE Security Context that they share, and may establish a new one (see <xref target="establish-new-context"/>).</t>
        <t>C <bcp14>MUST</bcp14> discard the current OSCORE Security Context shared with RS when any of the following occurs.</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of C is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example, due to expiration or revocation.</t>
          </li>
          <li>
            <t>C receives a number of unprotected 4.01 (Unauthorized) responses to OSCORE-protected requests, which are sent to RS and protected using the same OSCORE Security Context. The exact number of such received responses needs to be specified by the application. This can happen, for example, due to lack of storage at RS, which then sends the "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid, e.g., due to expiration or revocation, and it was used as AUTH_CRED_C (AUTH_CRED_RS) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of RS is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example, due to expiration or revocation.</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as AUTH_CRED_C (AUTH_CRED_RS) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>After a new access token is successfully uploaded to RS and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
        <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
      </section>
      <section anchor="establish-new-context">
        <name>Establishing a New OSCORE Security Context</name>
        <t>The procedure of provisioning a new access token to RS specified in this section applies to various cases when an OSCORE Security Context shared between C and RS has been deleted, for example as described in <xref target="discard-context"/>.</t>
        <t>Another exceptional case is when there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. In this case, C and RS <bcp14>MAY</bcp14> alternatively attempt to run a key update protocol that they both support. One lightweight example is KUDOS <xref target="I-D.ietf-core-oscore-key-update"/>, which is independent of ACE and EDHOC and does not require the uploading of an access token. If C and RS does not support a common key update protocol to use for updating their still valid OSCORE Security Context, then C and RS fall back to EDHOC as outlined above.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS <bcp14>MUST</bcp14> associate the new OSCORE Security Context with the current (potentially re-uploaded) access token. Furthermore, the SESSION_ID identifying the token series to which the access token belongs to remains unchanged, even if C and RS have established a new EDHOC session. Unless C and RS re-run the EDHOC protocol, they preserve their OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>.</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS <bcp14>MUST</bcp14> verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
      <section anchor="access-token-invalidity">
        <name>Access Token Invalidity</name>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), RS <bcp14>MUST</bcp14> delete the access token and the associated OSCORE Security Context, and <bcp14>MUST</bcp14> notify C with an error response with code 4.01 (Unauthorized) for any long running request, as specified in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
      </section>
      <section anchor="auth-cred-validity">
        <name>Authentication Credential Invalidity</name>
        <t>If an authentication credential AUTH_CRED_C of C is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>RS <bcp14>MUST</bcp14> delete all the stored access tokens that specify AUTH_CRED_C in the "cnf" claim.</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that C obtained the first access token of the same series through the response to an access token request specifying AUTH_CRED_C, e.g., in the "req_cnf" parameter (see <xref target="c-as"/>).</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the EDHOC sessions that used AUTH_CRED_C and successfully completed, as well as the OSCORE Security Context derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
        <t>If an authentication credential AUTH_CRED_RS of RS is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that C obtained the first access token of the same series through an access token response specifying AUTH_CRED_RS, e.g., in the 'rs_cnf' parameter (see <xref target="as-c"/>).</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token that C specified (by value or be reference) during an EDHOC session that used AUTH_CRED_RS and successfully completed.</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the EDHOC sessions that used AUTH_CRED_RS and successfully completed, as well as the OSCORE Security Context derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="session-validity">
        <name>EDHOC Session Invalidity</name>
        <t>If an EDHOC session is aborted and purged for other reasons than those in <xref target="auth-cred-validity"/>, then RS and C that established the session <bcp14>MUST</bcp14> delete the OSCORE Security Context derived from that session (see <xref target="discard-context"/>).</t>
      </section>
      <section anchor="as-creation-hints">
        <name>Using AS Request Creation Hints</name>
        <t>When replying to an unauthorized resource request message from a client, RS can send an unprotected AS Request Creation Hints message as a 4.01 (Unauthorized) error response (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
        <t>The message payload can specify a number of parameters that help the sender client acquire a valid access token from AS. These parameters include "audience" and "scope".</t>
        <t>When using this profile and running EDHOC per its reverse message flow (see <xref target="reverse"/>), RS acts as EDHOC Initiator. A compelling reason to do so is the wish to protect the identity of RS against active attackers, consistently with the EDHOC security properties.</t>
        <t>However, the identity protection achieved through EDHOC can be defeated if RS exposes information such as audience and scope, when specifying the corresponding parameters in an unprotected AS Request Creation Hints message.</t>
        <t>Therefore, if RS supports the EDHOC reverse message flow and sends an AS Request Creation Hints, the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>The message payload <bcp14>MUST NOT</bcp14> include the "audience" parameter.</t>
          </li>
          <li>
            <t>The message payload <bcp14>SHOULD NOT</bcp14> include the "scope" parameter, unless its value cannot contribute to expose the identity of RS.</t>
          </li>
        </ul>
        <t>AS Request Creation Hints may also be requested and retrieved through a new EAD item defined here, see <xref target="fig-ead-rch"/>.</t>
        <figure anchor="fig-ead-rch">
          <name>EAD item AS Request Creation Hints.</name>
          <sourcecode type="CDDL"><![CDATA[
ead_label = TBD
? ead_value = bstr .cbor AS_request_creation_hints

AS_request_creation_hints : map
]]></sourcecode>
        </figure>
        <t>The AS_request_creation_hints is a CBOR map with keys defined in the IANA registry
"ACE Authorization Server Request Creation Hints".</t>
        <t>This EAD item is intended to be used in EAD fields of EDHOC messages exchanged between C and RS: in the forward message flow in EAD_1 and EAD_2, and in the reverse message flow in EAD_2 and EAD_3. In the first EDHOC message from C to RS, an EAD item with ead_label = TBD with no ead_value asks the RS to include in the next EDHOC message the same EAD item with ead_value encoding the AS_request_creation_hints map. This EAD item is non-critical, i.e., it can be ignored by the receiving peer. It is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Since C has not made an actual request targeting a specific application resource, the RS may not know what resource C is interested in accessing. Moreover, such information needs to be matched against the privacy policy of the application. Since EDHOC message_2 is only protected against passive attackers, the AS_request_creation_hints map <bcp14>SHOULD NOT</bcp14> include "audience" and "scope" when present in the EAD item conveyed in the EAD_2 field.</t>
      </section>
      <section anchor="auth-cred-by-value">
        <name>Requesting Authentication Credential By Value</name>
        <t>EDHOC peers need access to each other's authentication credentials to complete the protocol. However, to reduce unnecessary overhead, the EDHOC protocol enables credential references to be sent instead of authentication credentials. The ACE protocol includes the initial transport of authentication credentials of C and RS and thus matches the use of credential references in EDHOC.</t>
        <t>However, if one of the parties has deleted the other party's authentication credential from its local storage, then there should be a way to restore it without requesting a new access token.</t>
        <t>Consider first the EDHOC forward message flow. If the ACE Client / EDHOC Initiator sends a credential by reference in message_3, then Responder may return error code 3, Unknown credential referenced. This enables the Initiator to restart the protocol using some other ID_CRED, typically the authentication credential by value thereby resolving the issue. However, in case the ACE Resource Server / EDHOC Responder sends a credential by reference in message_2, then returning a code 3 EDHOC error message does not automatically solve the problem. Having aborted the protocol, the Responder has no reliable way to act differently in a following EDHOC session since it never authenticated the Initiator.</t>
        <t>In order to remediate this situation, this section specifies a new EAD item for requesting the peer's authentication credential by value, see <xref target="fig-ead-req-authcred"/>.</t>
        <figure anchor="fig-ead-req-authcred">
          <name>EAD item Requesting Authentication Credential By Value.</name>
          <sourcecode type="CDDL"><![CDATA[
ead_label = TBD
]]></sourcecode>
        </figure>
        <t>This EAD item has no ead_value. When present in EAD_1, it requests the Responder's authentication credential by value in ID_CRED_R of message_2. When present in EAD_2, it requests the the Initiator's authentication credential by value in ID_CRED_I of message_3. The EAD item is non-critical, i.e., it can be ignored by the receiving peer. It is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Also in the EDHOC reverse message flow this EAD item can be applied for better control of the use of credential by value.</t>
        <t>Note that in the reverse flow both C and RS may recover from error code 3, but at the cost of more round trips which can be avoided by the use of the EAD item.</t>
        <ul spacing="normal">
          <li>
            <t>In case the ACE Client / EDHOC Responder sends a credential by reference in message_2 and receives a code 3 error message, then it can trigger a new EDHOC session and send credential by value this time.</t>
          </li>
          <li>
            <t>In case the ACE Resource Server / EDHOC Initiator sends a credential by reference in message_3 and receives a code 3 error message, then since the RS has authenticated C, it can store the authentication credential of C, and in the next session with C, the RS can send its credential by value.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="RFC9200" section="5.8" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9" sectionFormat="bare"/> of <xref target="RFC9200"/>), the requesting entity (RS and/or C) and AS communicates via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is <bcp14>RECOMMENDED</bcp14>. Other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> (such as HTTP and DTLS <xref target="RFC9147"/> or TLS <xref target="RFC8446"/>) <bcp14>MAY</bcp14> be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have an OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the EDHOC protocol, as shown between C and AS by the examples in <xref target="example-without-optimization"/> and <xref target="example-with-optimization"/>. This also applies for communication between RS and AS, for example to protect the upload of access tokens from AS directly to RS as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
    </section>
    <section anchor="cwt-confirmation-methods">
      <name>CWT Confirmation Methods</name>
      <t>This document defines a number of new CWT confirmation methods, which are registered in <xref target="iana-cwt-confirmation-methods"/>. The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-cwt-conf-x5chain">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5chain" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5chain" is like that of the "x5chain" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5bag">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5bag" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5bag" is like that of the "x5bag" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "c5c" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5b" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5t">
        <name>Hash of a C509 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "c5t" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of a COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "c5u" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kcwt" is like that of the "kcwt" COSE Header Parameter specified in <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kccs" is like that of the "kccs" COSE Header Parameter specified in <xref target="RFC9528"/>.</t>
      </section>
    </section>
    <section anchor="jwt-confirmation-methods">
      <name>JWT Confirmation Methods</name>
      <t>This document defines a number of new JWT confirmation methods, which are registered in <xref target="iana-jwt-confirmation-methods"/>. The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-jwt-conf-x5c">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5c" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5c" is like that of the "x5c" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5b">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5b" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of the "x5b" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "x5b" are like for the "x5bag" COSE Header Parameter defined in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following difference. Each string in the JSON array is a base64-encoded (<xref section="4" sectionFormat="of" target="RFC4648"/> - not base64url-encoded) C509 certificate.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-c5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "c5b" is like for the "c5b" COSE Header Parameter defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5t">
        <name>Hash of a C09 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "x5t" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5t"/>, with the following differences. First, the base64url-encoded SHA-1 thumbprint is computed over the C509 certificate. Second, the public key contained in the C509 certificate does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "x5u" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5u"/>, with the following differences. First, the URI refers to a resource for the C509 certificate chain. Second, the public key contained in one of the C509 certificates and acting as proof-of-possession key does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
      <section anchor="ssec-jwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
    </section>
    <section anchor="sec-edhoc-endpoint-identity-types">
      <name>EDHOC Endpoint Identity Types</name>
      <t>This document defines the following identifier of type of endpoint identity for EDHOC.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <table align="center" anchor="_table-edhoc-endpoint-identity-types">
        <name>EDHOC Endpoint Identity Types</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">EUI-64</td>
            <td align="left">0</td>
            <td align="left">An EUI-64 identity</td>
            <td align="left">[RFC-XXXX]<xref target="RFC4291"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-edhoc-transports">
      <name>EDHOC Transports</name>
      <t>This document defines the following identifiers of means for transporting EDHOC messages.</t>
      <table align="center" anchor="_table-edhoc-transports">
        <name>EDHOC Transports</name>
        <thead>
          <tr>
            <th align="left">Transport ID</th>
            <th align="left">Name</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">CoAP over UDP</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over UDP</td>
            <td align="left">
              <xref target="RFC7252"/>, <xref section="A.2" sectionFormat="of" target="RFC9528"/></td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">CoAP over TCP</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over TCP</td>
            <td align="left">
              <xref target="RFC7252"/><xref target="RFC8323"/></td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">CoAP over WebSockets</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over WebSockets</td>
            <td align="left">
              <xref target="RFC7252"/><xref target="RFC8323"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-edhoc-ta-purposes">
      <name>EDHOC Trust Anchor Purposes</name>
      <t>This document defines the following EDHOC trust anchor purpose.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <table align="center" anchor="_table-edhoc-ta-purposes">
        <name>EDHOC Trust Anchor Purposes</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">edhoc_cred</td>
            <td align="left">0</td>
            <td align="left">Verifying authentication credentials of other EDHOC peers in EDHOC sessions</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9528"/></td>
          </tr>
        </tbody>
      </table>
      <t>Trust anchors with purpose "edhoc_cred" are used for verifying authentication credentials of other EDHOC peers in an EDHOC session, and they typically are authentication credentials of Certificate Authorities (CAs).</t>
    </section>
    <section anchor="sec-edhoc-ta-types">
      <name>EDHOC Trust Anchor Types</name>
      <t>This document defines the following EDHOC trust anchor types.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <table align="center" anchor="_table-edhoc-ta-types">
        <name>EDHOC Trust Anchor Types</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Value type</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">uuid</td>
            <td align="left">0</td>
            <td align="left">#6.37(bstr)</td>
            <td align="left">Binary CBOR-encoded UUID</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9562"/></td>
          </tr>
          <tr>
            <td align="left">kid</td>
            <td align="left">4</td>
            <td align="left">bstr</td>
            <td align="left">Key identifier</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9052"/></td>
          </tr>
          <tr>
            <td align="left">c5t</td>
            <td align="left">22</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of a C509 certificate</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">c5u</td>
            <td align="left">23</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to a COSE_C509 containing a ordered chain of certificates</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">x5t</td>
            <td align="left">34</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
          <tr>
            <td align="left">x5u</td>
            <td align="left">35</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="RFC9528"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>As previously stated, once completed the EDHOC session, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also, once completed the EDHOC session, C and RS have established a long-term secret key PRK_out enjoying forward secrecy. This is in turn used by C and RS to establish an OSCORE Security Context.</t>
      <t>Furthermore, RS achieves confirmation that C has PRK_out (proof-of-possession) when completing the EDHOC session. Instead, C achieves confirmation that RS has PRK_out (proof-of-possession) either when receiving the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>When using this profile, it is <bcp14>RECOMMENDED</bcp14> that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers <bcp14>SHOULD</bcp14> avoid using multiple access tokens for a same client. Furthermore, RS <bcp14>MUST NOT</bcp14> store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
      <t>This profile defines the confirmation methods "kcwt" and "kccs" corresponding to the use of CBOR Web Tokens (CWTs) and CWT Claims Set (CCSs), respectively. Security considerations of CWTs and CCSs, and of COSE header parameters "kcwt" and "kccs" are given in <xref section="9.8" sectionFormat="of" target="RFC9528"/>, and apply also to confirmation methods. In particular, the contents of the CWT or CCS must be processed as untrusted input. The application needs to define a trust-establishment mechanism and identify the relevant trust anchors.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="RFC9528"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response (see also <xref target="as-creation-hints"/>). When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>The (encrypted) access token is never sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, even if C uses the same single access token from multiple locations, the access token's value does not contribute to the risk of C being tracked.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC session. When using the EDHOC forward (reverse) message flow:</t>
      <ul spacing="normal">
        <li>
          <t>The EDHOC Connection Identifier C_I (C_R) of C is going to be the OSCORE Recipient ID of C, i.e., the OSCORE Sender ID of RS.</t>
        </li>
        <li>
          <t>The EDHOC Connection Identifier C_R (C_I) of RS is going to be the OSCORE Recipient ID of RS, i.e., the OSCORE Sender ID of C.</t>
        </li>
      </ul>
      <t>These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-id-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE Profiles Registry</name>
        <t>IANA is asked to add the following entry to the "ACE Profiles" registry, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: coap_edhoc_oscore</t>
          </li>
          <li>
            <t>Description: Profile for delegating client authentication and authorization in a constrained environment by establishing an OSCORE Security Context <xref target="RFC8613"/> between resource-constrained nodes, through the execution of the lightweight authenticated key exchange protocol EDHOC <xref target="RFC9528"/>.</t>
          </li>
          <li>
            <t>CBOR Value:  TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Reference:  [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entry to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: edhoc_info</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request and token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entry to the "OAuth Parameters CBOR Mappings" registry, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: edhoc_info</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "JSON Web Token Claims" registry, following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: edhoc_info</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token (CWT) Claims" registry, following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: edhoc_info</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>JWT Claim Name: edhoc_info</t>
          </li>
          <li>
            <t>Claim Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Claim Value Type: map</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-jwt-confirmation-methods">
        <name>JWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "JWT Confirmation Methods" registry, following the procedure specified in <xref target="RFC7800"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-cwt-confirmation-methods">
        <name>CWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "CWT Confirmation Methods" registry, following the procedure specified in <xref target="RFC8747"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5chain</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5c</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5chain"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5bag</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5b</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5bag"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_Messages</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: map / #6(map)</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entries to the "EDHOC External Authorization Data" registry defined in <xref section="10.5" sectionFormat="of" target="RFC9528"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: ACE-OAuth Access Token</t>
          </li>
          <li>
            <t>Label: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Description: An Access Token as used in the ACE-OAuth framework <xref target="RFC9200"/></t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Session ID</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: The identifier of an EDHOC session</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>IANA is requested to create a new "EDHOC Information" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>, or "Expert Review" per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, review and approval by the designated expert are also required, in order for the WG chairs to determine that the conditions for early allocation are met (see step 2 in <xref section="3.1" sectionFormat="of" target="RFC7120"/>).</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. Because a core goal of this document is for the resulting representations to be compact, it is <bcp14>RECOMMENDED</bcp14> that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value <bcp14>MUST</bcp14> be unique. The value can be a positive integer, a negative integer, or a string. Integer values between -256 and 255 and strings of length 1 are designated as "Standards Action with Expert Review". Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are designated as "Specification Required". Integer values greater than 65535 and strings of length greater than 2 are designated as "Expert Review". Integer values less than -65536 are marked as "Private Use".</t>
          </li>
          <li>
            <t>CBOR type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</t>
          </li>
          <li>
            <t>Registry: The registry that values of the item may come from, if one exists.</t>
          </li>
          <li>
            <t>Description: A brief description of the item.</t>
          </li>
          <li>
            <t>Type: The category of the item, i.e., P if prescriptive or NP if Non-Prescriptive.</t>
          </li>
          <li>
            <t>Specification: A pointer to the public specification for the item, if one exists.</t>
          </li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="_table-cbor-key-edhoc-params"/>. In the "Specification" column, the value for all of these entries will be [RFC-XXXX] and <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="iana-edhoc-endpoint-identity-types">
        <name>EDHOC Endpoint Identity Types Registry</name>
        <t>IANA is requested to create a new "EDHOC Endpoint Identity Types" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the name of the EDHOC endpoint identity type.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used to identify this EDHOC endpoint identity type. These values <bcp14>MUST</bcp14> be unique. The value can be a positive integer or a negative integer. Different ranges of values use different registration policies <xref target="RFC8126"/>. Integer values from -24 to 23 are designated as "Standards Action with Expert Review". Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required". Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the EDHOC endpoint identity type.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the EDHOC endpoint identity type.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-endpoint-identity-types"/>.</t>
      </section>
      <section anchor="iana-edhoc-transports">
        <name>EDHOC Transports Registry</name>
        <t>IANA is requested to create a new "EDHOC Transports" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Transport ID: The value to be used to identify this means for transporting EDHOC messages. These values <bcp14>MUST</bcp14> be unique. The value can be a positive integer or a negative integer. Different ranges of values use different registration policies <xref target="RFC8126"/>. Integer values from -24 to 23 are designated as "Standards Action with Expert Review". Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required". Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
          </li>
          <li>
            <t>Name: This field contains the name of the means for transporting EDHOC messages.</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the means used for transporting EDHOC messages.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the means used for transporting EDHOC messages.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-transports"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-purposes">
        <name>EDHOC Trust Anchor Purposes Registry</name>
        <t>IANA is requested to create a new "EDHOC Trust Anchor Purposes" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the trust anchor purpose, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the trust anchor purpose. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Description: This field contains a short description of the trust anchor purpose.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the trust anchor purpose.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="sec-edhoc-ta-purposes"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-types">
        <name>EDHOC Trust Anchor Types Registry</name>
        <t>IANA is requested to create a new "EDHOC Trust Anchor Types" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the type of trust anchor, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the type of trust anchor. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Value type: This field contains the CBOR type for the value portion of the label.</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the type of trust anchor.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the type of trust anchor.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-ta-types"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>"Standards Action with Expert Review", "Specification Required", and "Expert Review" are three of the registration policies defined for the IANA registries established in this document. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>
            <t>Clarity and correctness of registrations. Experts are expected to check the clarity of purpose and use of the requested entries. Experts need to make sure that the object of registration is clearly defined in the corresponding specification. Entries that do not meet these objective of clarity and completeness must not be registered.</t>
          </li>
          <li>
            <t>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments. The zones tagged as "Private Use" are intended for testing purposes and closed environments. Code points in other ranges should not be assigned for testing.</t>
          </li>
          <li>
            <t>Specifications are required for the "Standards Action with Expert Review" range of point assignment. Specifications should exist for "Specification Required" ranges, but early assignment before a specification is available is considered to be permissible. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</t>
          </li>
          <li>
            <t>Experts should take into account the expected usage of fields when approving point assignment. Documents published via Standards Action can also register points outside the Standards Action range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7120">
          <front>
            <title>Early IANA Allocation of Standards Track Code Points</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="100"/>
          <seriesInfo name="RFC" value="7120"/>
          <seriesInfo name="DOI" value="10.17487/RFC7120"/>
        </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="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </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="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <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="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </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="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </reference>
        <reference anchor="I-D.ietf-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="23" month="June" 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 1.0, 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 C509
   certificates.  The document also specifies C509 Certificate 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-14"/>
        </reference>
        <reference anchor="COSE.Header.Parameters" target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) is a web transfer
   protocol for constrained devices and constrained networks.  In a
   number of use cases, constrained devices often naturally operate in
   groups (e.g., in a building automation scenario, all lights in a
   given room may need to be switched on/off as a group).  This document
   specifies the use of CoAP for group communication, including the use
   of UDP/IP multicast as the default underlying data transport.  Both
   unsecured and secured CoAP group communication are specified.
   Security is achieved by use of the Group Object Security for
   Constrained RESTful Environments (Group OSCORE) protocol.  The target
   application area of this specification is any group communication use
   cases that involve resource-constrained devices or networks that
   support CoAP.  This document replaces and obsoletes RFC 7390, while
   it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-14"/>
        </reference>
        <reference anchor="I-D.ietf-ace-workflow-and-params">
          <front>
            <title>Short Distribution Chain (SDC) Workflow and New OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments Framework (ACE, RFC 9200) as follows. (1) It
   defines the Short Distribution Chain (SDC) workflow that the
   authorization server can use for uploading an access token to a
   resource server on behalf of the client. (2) For the OAuth 2.0 token
   endpoint, it defines new parameters and encodings, and extends the
   semantics of the "ace_profile" parameter. (3) It defines how the
   client and the authorization server can coordinate on the exchange of
   the client's and resource server's public authentication credentials,
   when those can be transported by value or identified by reference;
   this extends the semantics of the "rs_cnf" parameter for the OAuth
   2.0 token endpoint, thus updating RFC 9201. (4) It amends two of the
   requirements on profiles of the framework. (5) It deprecates the
   original payload format of error responses conveying an error code,
   when CBOR is used to encode message payloads.  For those responses,
   it defines a new payload format aligned with RFC 9290, thus updating
   in this respect also the profiles defined in RFC 9202, RFC 9203, and
   RFC 9431.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-04"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-10"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-id-update">
          <front>
            <title>Identifier Update for OSCORE</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   Two peers that communicate with the CoAP protocol can use the Object
   Security for Constrained RESTful Environments (OSCORE) protocol to
   protect their message exchanges end-to-end.  To this end, the two
   peers share an OSCORE Security Context and a number of related
   identifiers.  In particular, each of the two peers stores a Sender ID
   that identifies its own Sender Context within the Security Context,
   and a Recipient ID that identifies the Recipient Context associated
   with the other peer within the same Security Context.  These
   identifiers are sent in plaintext within OSCORE-protected messages.
   Hence, they can be used to correlate messages exchanged between peers
   and track those peers, with consequent privacy implications.  This
   document defines an OSCORE ID update procedure that two peers can use
   to update their OSCORE identifiers.  This procedure can be run stand-
   alone or seamlessly integrated in an execution of the Key Update for
   OSCORE (KUDOS) procedure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-id-update-02"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Geovane Fedrecheski" initials="G." surname="Fedrecheski">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight
   authenticated key exchange protocol intended for use in constrained
   scenarios.  This document specifies Lightweight Authorization using
   EDHOC (ELA).  The procedure allows authorizing enrollment of new
   devices using the extension point defined in EDHOC.  ELA is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-04"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-est-oscore">
          <front>
            <title>Protecting EST Payloads with OSCORE</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Timothy Claeys" initials="T." surname="Claeys">
         </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Enrollment over Secure Transport (EST) is a certificate provisioning
   protocol over HTTPS [RFC7030] or CoAPs [RFC9148].  This document
   specifies how to carry EST over the Constrained Application Protocol
   (CoAP) protected with Object Security for Constrained RESTful
   Environments (OSCORE).  The specification builds on the EST-coaps
   [RFC9148] specification, but uses OSCORE and Ephemeral Diffie-Hellman
   over COSE (EDHOC) instead of DTLS.  The specification also leverages
   the certificate structures defined in
   [I-D.ietf-cose-cbor-encoded-cert], which can be optionally used
   alongside X.509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-oscore-07"/>
        </reference>
        <reference anchor="I-D.serafin-lake-ta-hint">
          <front>
            <title>Trust Anchor Hints in Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marek Serafin" initials="M." surname="Serafin">
              <organization>ASSA ABLOY</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document defines a format for transport of hints about Trust
   Anchors of trusted third parties when using the lightweight
   authenticated key exchange protocol Ephemeral Diffie-Hellman Over
   COSE (EDHOC).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-serafin-lake-ta-hint-00"/>
        </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-ace-group-oscore-profile">
          <front>
            <title>The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</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>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  The
   profile uses Group Object Security for Constrained RESTful
   Environments (Group OSCORE) to provide communication security between
   a client and one or multiple resource servers that are members of an
   OSCORE group.  The profile securely binds an OAuth 2.0 access token
   to the public key of the client associated with the private key used
   by that client in the OSCORE group.  The profile uses Group OSCORE to
   achieve server authentication, as well as proof-of-possession for the
   client's public key.  Also, it provides proof of the client's
   membership to the OSCORE group by binding the access token to
   information from the Group OSCORE Security Context, thus allowing the
   resource server(s) to verify the client's membership upon receiving a
   message protected with Group OSCORE from the client.  Effectively,
   the profile enables fine-grained access control paired with secure
   group communication, in accordance with the Zero Trust principles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-group-oscore-profile-04"/>
        </reference>
      </references>
    </references>
    <?line 1516?>

<section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides examples where this profile of ACE is used. In particular:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="example-without-optimization"/> does not make use of use of any optimization.</t>
        </li>
        <li>
          <t><xref target="example-with-optimization"/> makes use of the optimizations defined in <xref target="RFC9668"/>, hence reducing the roundtrips of the interactions between C and RS.</t>
        </li>
      </ul>
      <t>All these examples build on the following assumptions, as relying on expected early procedures performed at AS. These include the registration of resource servers by the respective resource owners as well as the registrations of clients authorized to request access tokens for those resource servers.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of C.</t>
        </li>
        <li>
          <t>C knows the authentication credential AUTH_CRED_AS of AS.</t>
        </li>
        <li>
          <t>AS knows the authentication credential AUTH_CRED_RS of RS.</t>
        </li>
        <li>
          <t>RS knows the authentication credential AUTH_CRED_AS of AS.  </t>
          <t>
This is relevant in case AS and RS actually require a secure association (e.g., for RS to perform token introspection at AS, or for AS to upload an access token to RS on behalf of C as described in <xref target="I-D.ietf-ace-workflow-and-params"/>).</t>
        </li>
      </ul>
      <t>As a result of the assumptions above, it is possible to limit the transport of AUTH_CRED_C and AUTH_CRED_RS by value only to the following two cases, and only when C requests an access token for RS for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the access token response from AS to C, where AUTH_CRED_RS is specified by the "rs_cnf" parameter.</t>
        </li>
        <li>
          <t>In the access token, where AUTH_CRED_C is specified by the "cnf" claim.</t>
        </li>
      </ul>
      <t>Note that, even under the circumstances mentioned above, AUTH_CRED_C might rather be identified by reference. This is possible if RS can effectively use such a reference from the access token to retrieve AUTH_CRED_C (e.g., from a trusted repository of authentication credentials reachable through a non-constrained link), and if AS is in turn aware of that.</t>
      <t>In any other case, it is otherwise possible to identify both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when C and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below shows a simple interaction between C and RS: C and RS run EDHOC wherein C uploads the access token to RS, and then accesses a protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="3040" width="576" viewBox="0 0 576 3040" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,832" fill="none" stroke="black"/>
              <path d="M 40,928 L 40,1264" fill="none" stroke="black"/>
              <path d="M 40,1360 L 40,1520" fill="none" stroke="black"/>
              <path d="M 40,1712 L 40,1728" fill="none" stroke="black"/>
              <path d="M 40,1792 L 40,1808" fill="none" stroke="black"/>
              <path d="M 40,1952 L 40,3024" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,832" fill="none" stroke="black"/>
              <path d="M 320,928 L 320,984" fill="none" stroke="black"/>
              <path d="M 320,1000 L 320,1048" fill="none" stroke="black"/>
              <path d="M 320,1064 L 320,1176" fill="none" stroke="black"/>
              <path d="M 320,1192 L 320,1264" fill="none" stroke="black"/>
              <path d="M 320,1360 L 320,1432" fill="none" stroke="black"/>
              <path d="M 320,1448 L 320,1496" fill="none" stroke="black"/>
              <path d="M 320,1712 L 320,1728" fill="none" stroke="black"/>
              <path d="M 320,1792 L 320,1808" fill="none" stroke="black"/>
              <path d="M 320,1952 L 320,2552" fill="none" stroke="black"/>
              <path d="M 320,2568 L 320,2632" fill="none" stroke="black"/>
              <path d="M 320,2648 L 320,2760" fill="none" stroke="black"/>
              <path d="M 320,2776 L 320,2920" fill="none" stroke="black"/>
              <path d="M 320,2936 L 320,3000" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,832" fill="none" stroke="black"/>
              <path d="M 568,928 L 568,1264" fill="none" stroke="black"/>
              <path d="M 568,1360 L 568,1520" fill="none" stroke="black"/>
              <path d="M 568,1712 L 568,1728" fill="none" stroke="black"/>
              <path d="M 568,1792 L 568,1808" fill="none" stroke="black"/>
              <path d="M 568,1952 L 568,3024" fill="none" stroke="black"/>
              <path d="M 40,80 L 312,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 320,144" fill="none" stroke="black"/>
              <path d="M 40,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 40,384 L 312,384" fill="none" stroke="black"/>
              <path d="M 48,496 L 320,496" fill="none" stroke="black"/>
              <path d="M 40,992 L 560,992" fill="none" stroke="black"/>
              <path d="M 48,1056 L 568,1056" fill="none" stroke="black"/>
              <path d="M 40,1184 L 560,1184" fill="none" stroke="black"/>
              <path d="M 40,1440 L 560,1440" fill="none" stroke="black"/>
              <path d="M 48,1504 L 568,1504" fill="none" stroke="black"/>
              <path d="M 40,2016 L 312,2016" fill="none" stroke="black"/>
              <path d="M 48,2144 L 320,2144" fill="none" stroke="black"/>
              <path d="M 40,2560 L 560,2560" fill="none" stroke="black"/>
              <path d="M 48,2640 L 568,2640" fill="none" stroke="black"/>
              <path d="M 40,2768 L 560,2768" fill="none" stroke="black"/>
              <path d="M 40,2928 L 560,2928" fill="none" stroke="black"/>
              <path d="M 48,3008 L 568,3008" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,2928 556,2922.4 556,2933.6" fill="black" transform="rotate(0,560,2928)"/>
              <polygon class="arrowhead" points="568,2768 556,2762.4 556,2773.6" fill="black" transform="rotate(0,560,2768)"/>
              <polygon class="arrowhead" points="568,2560 556,2554.4 556,2565.6" fill="black" transform="rotate(0,560,2560)"/>
              <polygon class="arrowhead" points="568,1440 556,1434.4 556,1445.6" fill="black" transform="rotate(0,560,1440)"/>
              <polygon class="arrowhead" points="568,1184 556,1178.4 556,1189.6" fill="black" transform="rotate(0,560,1184)"/>
              <polygon class="arrowhead" points="568,992 556,986.4 556,997.6" fill="black" transform="rotate(0,560,992)"/>
              <polygon class="arrowhead" points="320,2016 308,2010.4 308,2021.6" fill="black" transform="rotate(0,312,2016)"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(0,312,384)"/>
              <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(0,312,256)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(0,312,80)"/>
              <polygon class="arrowhead" points="56,3008 44,3002.4 44,3013.6" fill="black" transform="rotate(180,48,3008)"/>
              <polygon class="arrowhead" points="56,2640 44,2634.4 44,2645.6" fill="black" transform="rotate(180,48,2640)"/>
              <polygon class="arrowhead" points="56,2144 44,2138.4 44,2149.6" fill="black" transform="rotate(180,48,2144)"/>
              <polygon class="arrowhead" points="56,1504 44,1498.4 44,1509.6" fill="black" transform="rotate(180,48,1504)"/>
              <polygon class="arrowhead" points="56,1056 44,1050.4 44,1061.6" fill="black" transform="rotate(180,48,1056)"/>
              <polygon class="arrowhead" points="56,496 44,490.4 44,501.6" fill="black" transform="rotate(180,48,496)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="316" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="68">EDHOC</text>
                <text x="144" y="68">message_1</text>
                <text x="196" y="68">to</text>
                <text x="236" y="68">/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="80" y="132">EDHOC</text>
                <text x="144" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="92" y="196">by</text>
                <text x="144" y="196">reference</text>
                <text x="80" y="244">EDHOC</text>
                <text x="144" y="244">message_3</text>
                <text x="196" y="244">to</text>
                <text x="236" y="244">/edhoc</text>
                <text x="16" y="260">M03</text>
                <text x="96" y="276">ID_CRED_I</text>
                <text x="180" y="276">identifies</text>
                <text x="108" y="292">CRED_I</text>
                <text x="144" y="292">=</text>
                <text x="200" y="292">AUTH_CRED_C</text>
                <text x="92" y="308">by</text>
                <text x="144" y="308">reference</text>
                <text x="80" y="356">Token</text>
                <text x="136" y="356">request</text>
                <text x="180" y="356">to</text>
                <text x="220" y="356">/token</text>
                <text x="128" y="372">(OSCORE-protected</text>
                <text x="236" y="372">message)</text>
                <text x="16" y="388">M04</text>
                <text x="96" y="404">"req_cnf"</text>
                <text x="180" y="404">identifies</text>
                <text x="128" y="420">AUTH_CRED_C</text>
                <text x="188" y="420">by</text>
                <text x="240" y="420">reference</text>
                <text x="80" y="468">Token</text>
                <text x="140" y="468">response</text>
                <text x="128" y="484">(OSCORE-protected</text>
                <text x="236" y="484">message)</text>
                <text x="16" y="500">M05</text>
                <text x="92" y="516">"rs_cnf"</text>
                <text x="168" y="516">specifies</text>
                <text x="132" y="532">AUTH_CRED_RS</text>
                <text x="196" y="532">by</text>
                <text x="232" y="532">value</text>
                <text x="112" y="564">"ace_profile"</text>
                <text x="208" y="564">specifies</text>
                <text x="264" y="564">the</text>
                <text x="72" y="580">ACE</text>
                <text x="120" y="580">profile</text>
                <text x="232" y="580">"coap_edhoc_oscore"</text>
                <text x="108" y="612">"edhoc_info"</text>
                <text x="204" y="612">specifies:</text>
                <text x="88" y="628">{</text>
                <text x="152" y="644">e'session_id'</text>
                <text x="216" y="644">:</text>
                <text x="252" y="644">h'01',</text>
                <text x="164" y="660">e'cipher_suites'</text>
                <text x="240" y="660">:</text>
                <text x="260" y="660">2,</text>
                <text x="140" y="676">e'methods'</text>
                <text x="192" y="676">:</text>
                <text x="212" y="676">3,</text>
                <text x="144" y="692">e'uri_path'</text>
                <text x="200" y="692">:</text>
                <text x="244" y="692">"/edhoc"</text>
                <text x="88" y="708">}</text>
                <text x="68" y="740">In</text>
                <text x="96" y="740">the</text>
                <text x="140" y="740">access</text>
                <text x="196" y="740">token:</text>
                <text x="64" y="756">-</text>
                <text x="88" y="756">the</text>
                <text x="128" y="756">"cnf"</text>
                <text x="176" y="756">claim</text>
                <text x="240" y="756">specifies</text>
                <text x="120" y="772">AUTH_CRED_C</text>
                <text x="180" y="772">by</text>
                <text x="216" y="772">value</text>
                <text x="64" y="788">-</text>
                <text x="88" y="788">the</text>
                <text x="156" y="788">"edhoc_info"</text>
                <text x="232" y="788">claim</text>
                <text x="112" y="804">specifies</text>
                <text x="168" y="804">the</text>
                <text x="204" y="804">same</text>
                <text x="236" y="804">as</text>
                <text x="124" y="820">"edhoc_info"</text>
                <text x="200" y="820">above</text>
                <text x="76" y="868">Possibly</text>
                <text x="136" y="868">after</text>
                <text x="184" y="868">chain</text>
                <text x="264" y="868">verification,</text>
                <text x="328" y="868">C</text>
                <text x="356" y="868">adds</text>
                <text x="428" y="868">AUTH_CRED_RS</text>
                <text x="52" y="884">to</text>
                <text x="80" y="884">the</text>
                <text x="112" y="884">set</text>
                <text x="140" y="884">of</text>
                <text x="168" y="884">its</text>
                <text x="216" y="884">trusted</text>
                <text x="268" y="884">peer</text>
                <text x="348" y="884">authentication</text>
                <text x="460" y="884">credentials,</text>
                <text x="72" y="900">relying</text>
                <text x="116" y="900">on</text>
                <text x="140" y="900">AS</text>
                <text x="164" y="900">as</text>
                <text x="208" y="900">trusted</text>
                <text x="276" y="900">provider</text>
                <text x="80" y="964">EDHOC</text>
                <text x="144" y="964">message_1</text>
                <text x="196" y="964">to</text>
                <text x="236" y="964">/edhoc</text>
                <text x="72" y="980">(no</text>
                <text x="116" y="980">access</text>
                <text x="176" y="980">control</text>
                <text x="220" y="980">is</text>
                <text x="272" y="980">enforced)</text>
                <text x="16" y="996">M06</text>
                <text x="80" y="1044">EDHOC</text>
                <text x="144" y="1044">message_2</text>
                <text x="16" y="1060">M07</text>
                <text x="96" y="1076">ID_CRED_R</text>
                <text x="180" y="1076">identifies</text>
                <text x="108" y="1092">CRED_R</text>
                <text x="144" y="1092">=</text>
                <text x="204" y="1092">AUTH_CRED_RS</text>
                <text x="92" y="1108">by</text>
                <text x="144" y="1108">reference</text>
                <text x="80" y="1156">EDHOC</text>
                <text x="144" y="1156">message_3</text>
                <text x="196" y="1156">to</text>
                <text x="236" y="1156">/edhoc</text>
                <text x="72" y="1172">(no</text>
                <text x="116" y="1172">access</text>
                <text x="176" y="1172">control</text>
                <text x="220" y="1172">is</text>
                <text x="272" y="1172">enforced)</text>
                <text x="16" y="1188">M08</text>
                <text x="112" y="1204">EAD_3</text>
                <text x="172" y="1204">contains</text>
                <text x="236" y="1204">access</text>
                <text x="288" y="1204">token</text>
                <text x="96" y="1220">ID_CRED_I</text>
                <text x="180" y="1220">identifies</text>
                <text x="108" y="1236">CRED_I</text>
                <text x="144" y="1236">=</text>
                <text x="200" y="1236">AUTH_CRED_C</text>
                <text x="92" y="1252">by</text>
                <text x="144" y="1252">reference</text>
                <text x="76" y="1300">Possibly</text>
                <text x="136" y="1300">after</text>
                <text x="184" y="1300">chain</text>
                <text x="264" y="1300">verification,</text>
                <text x="332" y="1300">RS</text>
                <text x="364" y="1300">adds</text>
                <text x="432" y="1300">AUTH_CRED_C</text>
                <text x="52" y="1316">to</text>
                <text x="80" y="1316">the</text>
                <text x="112" y="1316">set</text>
                <text x="140" y="1316">of</text>
                <text x="168" y="1316">its</text>
                <text x="216" y="1316">trusted</text>
                <text x="268" y="1316">peer</text>
                <text x="348" y="1316">authentication</text>
                <text x="460" y="1316">credentials,</text>
                <text x="72" y="1332">relying</text>
                <text x="116" y="1332">on</text>
                <text x="140" y="1332">AS</text>
                <text x="164" y="1332">as</text>
                <text x="208" y="1332">trusted</text>
                <text x="276" y="1332">provider</text>
                <text x="84" y="1396">Access</text>
                <text x="124" y="1396">to</text>
                <text x="176" y="1396">protected</text>
                <text x="252" y="1396">resource</text>
                <text x="128" y="1412">(OSCORE-protected</text>
                <text x="236" y="1412">message)</text>
                <text x="88" y="1428">(access</text>
                <text x="152" y="1428">control</text>
                <text x="196" y="1428">is</text>
                <text x="248" y="1428">enforced)</text>
                <text x="16" y="1444">M08</text>
                <text x="92" y="1476">Response</text>
                <text x="128" y="1492">(OSCORE-protected</text>
                <text x="236" y="1492">message)</text>
                <text x="16" y="1508">M10</text>
                <text x="320" y="1524">|</text>
                <text x="64" y="1556">Later</text>
                <text x="104" y="1556">on,</text>
                <text x="136" y="1556">the</text>
                <text x="180" y="1556">access</text>
                <text x="232" y="1556">token</text>
                <text x="288" y="1556">expires</text>
                <text x="336" y="1556">...</text>
                <text x="56" y="1588">-</text>
                <text x="72" y="1588">C</text>
                <text x="96" y="1588">and</text>
                <text x="124" y="1588">RS</text>
                <text x="164" y="1588">delete</text>
                <text x="216" y="1588">their</text>
                <text x="268" y="1588">OSCORE</text>
                <text x="332" y="1588">Security</text>
                <text x="400" y="1588">Context</text>
                <text x="448" y="1588">and</text>
                <text x="488" y="1588">purge</text>
                <text x="80" y="1604">the</text>
                <text x="120" y="1604">EDHOC</text>
                <text x="176" y="1604">session</text>
                <text x="228" y="1604">used</text>
                <text x="260" y="1604">to</text>
                <text x="300" y="1604">derive</text>
                <text x="340" y="1604">it</text>
                <text x="384" y="1604">(unless</text>
                <text x="432" y="1604">the</text>
                <text x="468" y="1604">same</text>
                <text x="96" y="1620">session</text>
                <text x="140" y="1620">is</text>
                <text x="172" y="1620">also</text>
                <text x="212" y="1620">used</text>
                <text x="248" y="1620">for</text>
                <text x="288" y="1620">other</text>
                <text x="352" y="1620">reasons).</text>
                <text x="56" y="1636">-</text>
                <text x="76" y="1636">RS</text>
                <text x="120" y="1636">retains</text>
                <text x="200" y="1636">AUTH_CRED_C</text>
                <text x="260" y="1636">as</text>
                <text x="296" y="1636">still</text>
                <text x="348" y="1636">valid,</text>
                <text x="80" y="1652">and</text>
                <text x="108" y="1652">AS</text>
                <text x="144" y="1652">knows</text>
                <text x="192" y="1652">about</text>
                <text x="232" y="1652">it.</text>
                <text x="56" y="1668">-</text>
                <text x="80" y="1668">The</text>
                <text x="124" y="1668">Client</text>
                <text x="184" y="1668">retains</text>
                <text x="268" y="1668">AUTH_CRED_RS</text>
                <text x="332" y="1668">as</text>
                <text x="368" y="1668">still</text>
                <text x="420" y="1668">valid,</text>
                <text x="80" y="1684">and</text>
                <text x="108" y="1684">AS</text>
                <text x="144" y="1684">knows</text>
                <text x="192" y="1684">about</text>
                <text x="232" y="1684">it.</text>
                <text x="60" y="1764">Time</text>
                <text x="108" y="1764">passes</text>
                <text x="152" y="1764">...</text>
                <text x="48" y="1844">C</text>
                <text x="76" y="1844">asks</text>
                <text x="112" y="1844">for</text>
                <text x="136" y="1844">a</text>
                <text x="160" y="1844">new</text>
                <text x="204" y="1844">access</text>
                <text x="260" y="1844">token;</text>
                <text x="304" y="1844">now</text>
                <text x="336" y="1844">all</text>
                <text x="368" y="1844">the</text>
                <text x="100" y="1860">authentication</text>
                <text x="208" y="1860">credentials</text>
                <text x="272" y="1860">can</text>
                <text x="300" y="1860">be</text>
                <text x="356" y="1860">identifies</text>
                <text x="412" y="1860">by</text>
                <text x="464" y="1860">reference</text>
                <text x="56" y="1892">The</text>
                <text x="96" y="1892">price</text>
                <text x="132" y="1892">to</text>
                <text x="160" y="1892">pay</text>
                <text x="188" y="1892">is</text>
                <text x="212" y="1892">on</text>
                <text x="240" y="1892">AS,</text>
                <text x="280" y="1892">about</text>
                <text x="352" y="1892">remembering</text>
                <text x="420" y="1892">that</text>
                <text x="452" y="1892">at</text>
                <text x="488" y="1892">least</text>
                <text x="56" y="1908">one</text>
                <text x="100" y="1908">access</text>
                <text x="152" y="1908">token</text>
                <text x="192" y="1908">has</text>
                <text x="228" y="1908">been</text>
                <text x="276" y="1908">issued</text>
                <text x="320" y="1908">for</text>
                <text x="352" y="1908">the</text>
                <text x="388" y="1908">pair</text>
                <text x="444" y="1908">(Client,</text>
                <text x="496" y="1908">RS)</text>
                <text x="56" y="1924">and</text>
                <text x="120" y="1924">considering</text>
                <text x="184" y="1924">the</text>
                <text x="220" y="1924">pair</text>
                <text x="296" y="1924">(AUTH_CRED_C,</text>
                <text x="408" y="1924">AUTH_CRED_RS)</text>
                <text x="80" y="1988">Token</text>
                <text x="136" y="1988">request</text>
                <text x="180" y="1988">to</text>
                <text x="220" y="1988">/token</text>
                <text x="128" y="2004">(OSCORE-protected</text>
                <text x="236" y="2004">message)</text>
                <text x="16" y="2020">M11</text>
                <text x="96" y="2036">"req_cnf"</text>
                <text x="180" y="2036">identifies</text>
                <text x="108" y="2052">CRED_I</text>
                <text x="144" y="2052">=</text>
                <text x="200" y="2052">AUTH_CRED_C</text>
                <text x="92" y="2068">by</text>
                <text x="144" y="2068">reference</text>
                <text x="80" y="2116">Token</text>
                <text x="140" y="2116">response</text>
                <text x="128" y="2132">(OSCORE-protected</text>
                <text x="236" y="2132">message)</text>
                <text x="16" y="2148">M12</text>
                <text x="92" y="2164">"rs_cnf"</text>
                <text x="172" y="2164">identifies</text>
                <text x="132" y="2180">AUTH_CRED_RS</text>
                <text x="196" y="2180">by</text>
                <text x="248" y="2180">reference</text>
                <text x="112" y="2212">"ace_profile"</text>
                <text x="208" y="2212">specifies</text>
                <text x="264" y="2212">the</text>
                <text x="72" y="2228">ACE</text>
                <text x="120" y="2228">profile</text>
                <text x="232" y="2228">"coap_edhoc_oscore"</text>
                <text x="108" y="2260">"edhoc_info"</text>
                <text x="204" y="2260">specifies:</text>
                <text x="88" y="2276">{</text>
                <text x="152" y="2292">e'session_id'</text>
                <text x="216" y="2292">:</text>
                <text x="252" y="2292">h'05',</text>
                <text x="164" y="2308">e'cipher_suites'</text>
                <text x="240" y="2308">:</text>
                <text x="260" y="2308">2,</text>
                <text x="140" y="2324">e'methods'</text>
                <text x="192" y="2324">:</text>
                <text x="212" y="2324">3,</text>
                <text x="144" y="2340">e'uri_path'</text>
                <text x="200" y="2340">:</text>
                <text x="244" y="2340">"/edhoc"</text>
                <text x="88" y="2356">}</text>
                <text x="68" y="2388">In</text>
                <text x="96" y="2388">the</text>
                <text x="140" y="2388">access</text>
                <text x="196" y="2388">token:</text>
                <text x="64" y="2404">-</text>
                <text x="88" y="2404">the</text>
                <text x="128" y="2404">"cnf"</text>
                <text x="176" y="2404">claim</text>
                <text x="244" y="2404">identifies</text>
                <text x="120" y="2420">AUTH_CRED_C</text>
                <text x="180" y="2420">by</text>
                <text x="232" y="2420">reference</text>
                <text x="64" y="2436">-</text>
                <text x="88" y="2436">the</text>
                <text x="156" y="2436">"edhoc_info"</text>
                <text x="232" y="2436">claim</text>
                <text x="112" y="2452">specifies</text>
                <text x="168" y="2452">the</text>
                <text x="204" y="2452">same</text>
                <text x="236" y="2452">as</text>
                <text x="124" y="2468">"edhoc_info"</text>
                <text x="200" y="2468">above</text>
                <text x="80" y="2532">EDHOC</text>
                <text x="144" y="2532">message_1</text>
                <text x="196" y="2532">to</text>
                <text x="236" y="2532">/edhoc</text>
                <text x="72" y="2548">(no</text>
                <text x="116" y="2548">access</text>
                <text x="176" y="2548">control</text>
                <text x="220" y="2548">is</text>
                <text x="272" y="2548">enforced)</text>
                <text x="16" y="2564">M13</text>
                <text x="80" y="2612">EDHOC</text>
                <text x="144" y="2612">message_2</text>
                <text x="72" y="2628">(no</text>
                <text x="116" y="2628">access</text>
                <text x="176" y="2628">control</text>
                <text x="220" y="2628">is</text>
                <text x="272" y="2628">enforced)</text>
                <text x="16" y="2644">M14</text>
                <text x="96" y="2660">ID_CRED_R</text>
                <text x="180" y="2660">identifies</text>
                <text x="108" y="2676">CRED_R</text>
                <text x="144" y="2676">=</text>
                <text x="204" y="2676">AUTH_CRED_RS</text>
                <text x="92" y="2692">by</text>
                <text x="144" y="2692">reference</text>
                <text x="80" y="2740">EDHOC</text>
                <text x="144" y="2740">message_3</text>
                <text x="196" y="2740">to</text>
                <text x="236" y="2740">/edhoc</text>
                <text x="72" y="2756">(no</text>
                <text x="116" y="2756">access</text>
                <text x="176" y="2756">control</text>
                <text x="220" y="2756">is</text>
                <text x="272" y="2756">enforced)</text>
                <text x="16" y="2772">M15</text>
                <text x="112" y="2788">EAD_3</text>
                <text x="172" y="2788">contains</text>
                <text x="236" y="2788">access</text>
                <text x="288" y="2788">token</text>
                <text x="96" y="2804">ID_CRED_I</text>
                <text x="180" y="2804">identifies</text>
                <text x="108" y="2820">CRED_I</text>
                <text x="144" y="2820">=</text>
                <text x="200" y="2820">AUTH_CRED_C</text>
                <text x="92" y="2836">by</text>
                <text x="144" y="2836">reference</text>
                <text x="84" y="2884">Access</text>
                <text x="124" y="2884">to</text>
                <text x="176" y="2884">protected</text>
                <text x="252" y="2884">resource</text>
                <text x="300" y="2884">/r</text>
                <text x="128" y="2900">(OSCORE-protected</text>
                <text x="236" y="2900">message)</text>
                <text x="88" y="2916">(access</text>
                <text x="152" y="2916">control</text>
                <text x="196" y="2916">is</text>
                <text x="248" y="2916">enforced)</text>
                <text x="16" y="2932">M16</text>
                <text x="92" y="2980">Response</text>
                <text x="128" y="2996">(OSCORE-protected</text>
                <text x="236" y="2996">message)</text>
                <text x="16" y="3012">M17</text>
                <text x="320" y="3028">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 +--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------+                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
M03 +--------------------------------->|                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M04 +--------------------------------->|                              |
    |  "req_cnf" identifies            |                              |
    |     AUTH_CRED_C by reference     |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M05 |<---------------------------------+                              |
    |  "rs_cnf" specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  "ace_profile" specifies the     |                              |
    |  ACE profile "coap_edhoc_oscore" |                              |
    |                                  |                              |
    |  "edhoc_info" specifies:         |                              |
    |     {                            |                              |
    |       e'session_id' : h'01',     |                              |
    |       e'cipher_suites' : 2,      |                              |
    |       e'methods' : 3,            |                              |
    |       e'uri_path' : "/edhoc"     |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |  - the "cnf" claim specifies     |                              |
    |    AUTH_CRED_C by value          |                              |
    |  - the "edhoc_info" claim        |                              |
    |    specifies the same as         |                              |
    |    "edhoc_info" above            |                              |
    |                                  |                              |

     Possibly after chain verification, C adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M06 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M07 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M08 +---------------------------------------------------------------->|
    |      EAD_3 contains access token |                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |

     Possibly after chain verification, RS adds AUTH_CRED_C
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource    |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M08 +---------------------------------------------------------------->|
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M10 |<----------------------------------------------------------------+
    |                                  |                              |

     Later on, the access token expires ...

      - C and RS delete their OSCORE Security Context and purge
        the EDHOC session used to derive it (unless the same
        session is also used for other reasons).
      - RS retains AUTH_CRED_C as still valid,
        and AS knows about it.
      - The Client retains AUTH_CRED_RS as still valid,
        and AS knows about it.

    |                                  |                              |
    |                                  |                              |

     Time passes ...

    |                                  |                              |
    |                                  |                              |

     C asks for a new access token; now all the
     authentication credentials can be identifies by reference

     The price to pay is on AS, about remembering that at least
     one access token has been issued for the pair (Client, RS)
     and considering the pair (AUTH_CRED_C, AUTH_CRED_RS)

    |                                  |                              |
    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M11 +--------------------------------->|                              |
    |  "req_cnf" identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M12 |<---------------------------------+                              |
    |  "rs_cnf" identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  "ace_profile" specifies the     |                              |
    |  ACE profile "coap_edhoc_oscore" |                              |
    |                                  |                              |
    |  "edhoc_info" specifies:         |                              |
    |     {                            |                              |
    |       e'session_id' : h'05',     |                              |
    |       e'cipher_suites' : 2,      |                              |
    |       e'methods' : 3,            |                              |
    |       e'uri_path' : "/edhoc"     |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |  - the "cnf" claim identifies    |                              |
    |    AUTH_CRED_C by reference      |                              |
    |  - the "edhoc_info" claim        |                              |
    |    specifies the same as         |                              |
    |    "edhoc_info" above            |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M13 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M14 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M15 +---------------------------------------------------------------->|
    |      EAD_3 contains access token |                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M16 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M17 |<----------------------------------------------------------------+
    |                                  |                              |
]]></artwork>
        </artset>
      </section>
      <section anchor="example-with-optimization">
        <name>Workflow with Optimizations</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, while additionally using the EDHOC + OSCORE request defined in <xref target="RFC9668"/> when running EDHOC both with AS and with RS.</t>
        <t>This interaction between C and RS consists of only two roundtrips to upload the access token, run EDHOC, and access the protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1568" width="576" viewBox="0 0 576 1568" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,816" fill="none" stroke="black"/>
              <path d="M 40,912 L 40,976" fill="none" stroke="black"/>
              <path d="M 40,1072 L 40,1376" fill="none" stroke="black"/>
              <path d="M 40,1472 L 40,1552" fill="none" stroke="black"/>
              <path d="M 336,48 L 336,816" fill="none" stroke="black"/>
              <path d="M 336,912 L 336,952" fill="none" stroke="black"/>
              <path d="M 336,1072 L 336,1112" fill="none" stroke="black"/>
              <path d="M 336,1128 L 336,1224" fill="none" stroke="black"/>
              <path d="M 336,1240 L 336,1376" fill="none" stroke="black"/>
              <path d="M 336,1472 L 336,1528" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,816" fill="none" stroke="black"/>
              <path d="M 568,912 L 568,976" fill="none" stroke="black"/>
              <path d="M 568,1072 L 568,1376" fill="none" stroke="black"/>
              <path d="M 568,1472 L 568,1552" fill="none" stroke="black"/>
              <path d="M 40,80 L 328,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 336,144" fill="none" stroke="black"/>
              <path d="M 40,256 L 328,256" fill="none" stroke="black"/>
              <path d="M 64,336 L 80,336" fill="none" stroke="black"/>
              <path d="M 96,336 L 112,336" fill="none" stroke="black"/>
              <path d="M 128,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 48,480 L 336,480" fill="none" stroke="black"/>
              <path d="M 40,960 L 560,960" fill="none" stroke="black"/>
              <path d="M 48,1120 L 568,1120" fill="none" stroke="black"/>
              <path d="M 40,1232 L 560,1232" fill="none" stroke="black"/>
              <path d="M 64,1328 L 80,1328" fill="none" stroke="black"/>
              <path d="M 96,1328 L 112,1328" fill="none" stroke="black"/>
              <path d="M 128,1328 L 144,1328" fill="none" stroke="black"/>
              <path d="M 48,1536 L 568,1536" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1232 556,1226.4 556,1237.6" fill="black" transform="rotate(0,560,1232)"/>
              <polygon class="arrowhead" points="568,960 556,954.4 556,965.6" fill="black" transform="rotate(0,560,960)"/>
              <polygon class="arrowhead" points="336,256 324,250.4 324,261.6" fill="black" transform="rotate(0,328,256)"/>
              <polygon class="arrowhead" points="336,80 324,74.4 324,85.6" fill="black" transform="rotate(0,328,80)"/>
              <polygon class="arrowhead" points="56,1536 44,1530.4 44,1541.6" fill="black" transform="rotate(180,48,1536)"/>
              <polygon class="arrowhead" points="56,1120 44,1114.4 44,1125.6" fill="black" transform="rotate(180,48,1120)"/>
              <polygon class="arrowhead" points="56,480 44,474.4 44,485.6" fill="black" transform="rotate(180,48,480)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="332" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="68">EDHOC</text>
                <text x="144" y="68">message_1</text>
                <text x="196" y="68">to</text>
                <text x="236" y="68">/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="80" y="132">EDHOC</text>
                <text x="144" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="92" y="196">by</text>
                <text x="144" y="196">reference</text>
                <text x="80" y="244">EDHOC</text>
                <text x="112" y="244">+</text>
                <text x="148" y="244">OSCORE</text>
                <text x="208" y="244">request</text>
                <text x="252" y="244">to</text>
                <text x="292" y="244">/token</text>
                <text x="16" y="260">M03</text>
                <text x="64" y="276">-</text>
                <text x="96" y="276">EDHOC</text>
                <text x="160" y="276">message_3</text>
                <text x="128" y="292">ID_CRED_I</text>
                <text x="212" y="292">identifies</text>
                <text x="140" y="308">CRED_I</text>
                <text x="176" y="308">=</text>
                <text x="232" y="308">AUTH_CRED_C</text>
                <text x="124" y="324">by</text>
                <text x="176" y="324">reference</text>
                <text x="64" y="356">-</text>
                <text x="140" y="356">OSCORE-protected</text>
                <text x="228" y="356">part</text>
                <text x="112" y="372">Token</text>
                <text x="168" y="372">request</text>
                <text x="152" y="388">"req_cnf"</text>
                <text x="236" y="388">identifies</text>
                <text x="160" y="404">AUTH_CRED_C</text>
                <text x="220" y="404">by</text>
                <text x="272" y="404">reference</text>
                <text x="80" y="452">Token</text>
                <text x="140" y="452">response</text>
                <text x="128" y="468">(OSCORE-protected</text>
                <text x="236" y="468">message)</text>
                <text x="16" y="484">M04</text>
                <text x="92" y="500">"rs_cnf"</text>
                <text x="168" y="500">specifies</text>
                <text x="132" y="516">AUTH_CRED_RS</text>
                <text x="196" y="516">by</text>
                <text x="232" y="516">value</text>
                <text x="112" y="548">"ace_profile"</text>
                <text x="208" y="548">specifies</text>
                <text x="264" y="548">the</text>
                <text x="72" y="564">ACE</text>
                <text x="120" y="564">profile</text>
                <text x="232" y="564">"coap_edhoc_oscore"</text>
                <text x="108" y="596">"edhoc_info"</text>
                <text x="204" y="596">specifies:</text>
                <text x="88" y="612">{</text>
                <text x="152" y="628">e'session_id'</text>
                <text x="216" y="628">:</text>
                <text x="252" y="628">h'01',</text>
                <text x="164" y="644">e'cipher_suites'</text>
                <text x="240" y="644">:</text>
                <text x="260" y="644">2,</text>
                <text x="140" y="660">e'methods'</text>
                <text x="192" y="660">:</text>
                <text x="212" y="660">3,</text>
                <text x="144" y="676">e'uri_path'</text>
                <text x="200" y="676">:</text>
                <text x="244" y="676">"/edhoc"</text>
                <text x="88" y="692">}</text>
                <text x="68" y="724">In</text>
                <text x="96" y="724">the</text>
                <text x="140" y="724">access</text>
                <text x="196" y="724">token:</text>
                <text x="64" y="740">-</text>
                <text x="88" y="740">the</text>
                <text x="128" y="740">"cnf"</text>
                <text x="176" y="740">claim</text>
                <text x="240" y="740">specifies</text>
                <text x="120" y="756">AUTH_CRED_C</text>
                <text x="180" y="756">by</text>
                <text x="216" y="756">value</text>
                <text x="64" y="772">-</text>
                <text x="88" y="772">the</text>
                <text x="156" y="772">"edhoc_info"</text>
                <text x="232" y="772">claim</text>
                <text x="112" y="788">specifies</text>
                <text x="168" y="788">the</text>
                <text x="204" y="788">same</text>
                <text x="236" y="788">as</text>
                <text x="124" y="804">"edhoc_info"</text>
                <text x="200" y="804">above</text>
                <text x="76" y="852">Possibly</text>
                <text x="136" y="852">after</text>
                <text x="184" y="852">chain</text>
                <text x="264" y="852">verification,</text>
                <text x="328" y="852">C</text>
                <text x="356" y="852">adds</text>
                <text x="428" y="852">AUTH_CRED_RS</text>
                <text x="52" y="868">to</text>
                <text x="80" y="868">the</text>
                <text x="112" y="868">set</text>
                <text x="140" y="868">of</text>
                <text x="168" y="868">its</text>
                <text x="216" y="868">trusted</text>
                <text x="268" y="868">peer</text>
                <text x="348" y="868">authentication</text>
                <text x="460" y="868">credentials,</text>
                <text x="72" y="884">relying</text>
                <text x="116" y="884">on</text>
                <text x="140" y="884">AS</text>
                <text x="164" y="884">as</text>
                <text x="208" y="884">trusted</text>
                <text x="276" y="884">provider</text>
                <text x="80" y="932">EDHOC</text>
                <text x="144" y="932">message_1</text>
                <text x="196" y="932">to</text>
                <text x="236" y="932">/edhoc</text>
                <text x="72" y="948">(no</text>
                <text x="116" y="948">access</text>
                <text x="176" y="948">control</text>
                <text x="220" y="948">is</text>
                <text x="272" y="948">enforced)</text>
                <text x="16" y="964">M05</text>
                <text x="336" y="980">|</text>
                <text x="76" y="1012">Possibly</text>
                <text x="136" y="1012">after</text>
                <text x="184" y="1012">chain</text>
                <text x="264" y="1012">verification,</text>
                <text x="332" y="1012">RS</text>
                <text x="364" y="1012">adds</text>
                <text x="432" y="1012">AUTH_CRED_C</text>
                <text x="52" y="1028">to</text>
                <text x="80" y="1028">the</text>
                <text x="112" y="1028">set</text>
                <text x="140" y="1028">of</text>
                <text x="168" y="1028">its</text>
                <text x="216" y="1028">trusted</text>
                <text x="268" y="1028">peer</text>
                <text x="348" y="1028">authentication</text>
                <text x="460" y="1028">credentials,</text>
                <text x="72" y="1044">relying</text>
                <text x="116" y="1044">on</text>
                <text x="140" y="1044">AS</text>
                <text x="164" y="1044">as</text>
                <text x="208" y="1044">trusted</text>
                <text x="276" y="1044">provider</text>
                <text x="80" y="1108">EDHOC</text>
                <text x="144" y="1108">message_2</text>
                <text x="16" y="1124">M06</text>
                <text x="96" y="1140">ID_CRED_R</text>
                <text x="180" y="1140">identifies</text>
                <text x="108" y="1156">CRED_R</text>
                <text x="144" y="1156">=</text>
                <text x="204" y="1156">AUTH_CRED_RS</text>
                <text x="92" y="1172">by</text>
                <text x="144" y="1172">reference</text>
                <text x="80" y="1220">EDHOC</text>
                <text x="112" y="1220">+</text>
                <text x="148" y="1220">OSCORE</text>
                <text x="208" y="1220">request</text>
                <text x="252" y="1220">to</text>
                <text x="276" y="1220">/r</text>
                <text x="16" y="1236">M07</text>
                <text x="64" y="1252">-</text>
                <text x="96" y="1252">EDHOC</text>
                <text x="160" y="1252">message_3</text>
                <text x="112" y="1268">EAD_3</text>
                <text x="172" y="1268">contains</text>
                <text x="236" y="1268">access</text>
                <text x="288" y="1268">token</text>
                <text x="128" y="1284">ID_CRED_I</text>
                <text x="212" y="1284">identifies</text>
                <text x="140" y="1300">CRED_I</text>
                <text x="176" y="1300">=</text>
                <text x="232" y="1300">AUTH_CRED_C</text>
                <text x="124" y="1316">by</text>
                <text x="176" y="1316">reference</text>
                <text x="64" y="1348">-</text>
                <text x="140" y="1348">OSCORE-protected</text>
                <text x="228" y="1348">part</text>
                <text x="136" y="1364">Application</text>
                <text x="216" y="1364">request</text>
                <text x="260" y="1364">to</text>
                <text x="284" y="1364">/r</text>
                <text x="64" y="1412">After</text>
                <text x="104" y="1412">the</text>
                <text x="144" y="1412">EDHOC</text>
                <text x="212" y="1412">processing</text>
                <text x="268" y="1412">is</text>
                <text x="324" y="1412">completed,</text>
                <text x="396" y="1412">access</text>
                <text x="456" y="1412">control</text>
                <text x="52" y="1428">is</text>
                <text x="100" y="1428">enforced</text>
                <text x="148" y="1428">on</text>
                <text x="176" y="1428">the</text>
                <text x="224" y="1428">rebuilt</text>
                <text x="324" y="1428">OSCORE-protected</text>
                <text x="428" y="1428">request,</text>
                <text x="60" y="1444">like</text>
                <text x="92" y="1444">if</text>
                <text x="116" y="1444">it</text>
                <text x="144" y="1444">had</text>
                <text x="180" y="1444">been</text>
                <text x="220" y="1444">sent</text>
                <text x="288" y="1444">stand-alone</text>
                <text x="92" y="1508">Response</text>
                <text x="128" y="1524">(OSCORE-protected</text>
                <text x="236" y="1524">message)</text>
                <text x="16" y="1540">M08</text>
                <text x="336" y="1556">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                   AS                           RS
    |                                    |                            |
    |  EDHOC message_1 to /edhoc         |                            |
M01 +----------------------------------->|                            |
    |                                    |                            |
    |                                    |                            |
    |  EDHOC message_2                   |                            |
M02 |<-----------------------------------+                            |
    |  ID_CRED_R identifies              |                            |
    |     CRED_R = AUTH_CRED_AS          |                            |
    |     by reference                   |                            |
    |                                    |                            |
    |                                    |                            |
    |  EDHOC + OSCORE request to /token  |                            |
M03 +----------------------------------->|                            |
    |  - EDHOC message_3                 |                            |
    |      ID_CRED_I identifies          |                            |
    |         CRED_I = AUTH_CRED_C       |                            |
    |         by reference               |                            |
    |  --- --- ---                       |                            |
    |  - OSCORE-protected part           |                            |
    |      Token request                 |                            |
    |         "req_cnf" identifies       |                            |
    |         AUTH_CRED_C by reference   |                            |
    |                                    |                            |
    |                                    |                            |
    |  Token response                    |                            |
    |  (OSCORE-protected message)        |                            |
M04 |<-----------------------------------+                            |
    |  "rs_cnf" specifies                |                            |
    |     AUTH_CRED_RS by value          |                            |
    |                                    |                            |
    |  "ace_profile" specifies the       |                            |
    |  ACE profile "coap_edhoc_oscore"   |                            |
    |                                    |                            |
    |  "edhoc_info" specifies:           |                            |
    |     {                              |                            |
    |       e'session_id' : h'01',       |                            |
    |       e'cipher_suites' : 2,        |                            |
    |       e'methods' : 3,              |                            |
    |       e'uri_path' : "/edhoc"       |                            |
    |     }                              |                            |
    |                                    |                            |
    |  In the access token:              |                            |
    |  - the "cnf" claim specifies       |                            |
    |    AUTH_CRED_C by value            |                            |
    |  - the "edhoc_info" claim          |                            |
    |    specifies the same as           |                            |
    |    "edhoc_info" above              |                            |
    |                                    |                            |

     Possibly after chain verification, C adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                    |                            |
    |  EDHOC message_1 to /edhoc         |                            |
    |  (no access control is enforced)   |                            |
M05 +---------------------------------------------------------------->|
    |                                    |                            |

     Possibly after chain verification, RS adds AUTH_CRED_C
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                    |                            |
    |                                    |                            |
    |  EDHOC message_2                   |                            |
M06 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies              |                            |
    |     CRED_R = AUTH_CRED_RS          |                            |
    |     by reference                   |                            |
    |                                    |                            |
    |                                    |                            |
    |  EDHOC + OSCORE request to /r      |                            |
M07 +---------------------------------------------------------------->|
    |  - EDHOC message_3                 |                            |
    |      EAD_3 contains access token   |                            |
    |      ID_CRED_I identifies          |                            |
    |         CRED_I = AUTH_CRED_C       |                            |
    |         by reference               |                            |
    |  --- --- ---                       |                            |
    |  - OSCORE-protected part           |                            |
    |      Application request to /r     |                            |
    |                                    |                            |

     After the EDHOC processing is completed, access control
     is enforced on the rebuilt OSCORE-protected request,
     like if it had been sent stand-alone

    |                                    |                            |
    |                                    |                            |
    |  Response                          |                            |
    |  (OSCORE-protected message)        |                            |
M08 |<----------------------------------------------------------------+
    |                                    |                            |
]]></artwork>
        </artset>
      </section>
    </section>
    <section anchor="sec-profile-requirements">
      <name>Profile Requirements</name>
      <t>This section lists the specifications of this profile based on the requirements of the framework, as requested in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Optionally, define new methods for the client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: Not specified</t>
        </li>
        <li>
          <t>Optionally, specify new grant types: Not specified</t>
        </li>
        <li>
          <t>Optionally, define the use of client certificates as client credential type: C can use authentication credentials of any type admitted by the EDHOC protocol, including public key certificates such as X.509 and C509 certificates.</t>
        </li>
        <li>
          <t>Specify the communication protocol the client and RS must use: CoAP</t>
        </li>
        <li>
          <t>Specify the security protocol the client and RS must use to protect their communication: OSCORE</t>
        </li>
        <li>
          <t>Specify how the client and RS mutually authenticate: Explicitly, by successfully executing the EDHOC protocol, after which a common OSCORE Security Context is exported from the EDHOC session. As per the EDHOC authentication method used during the EDHOC session, authentication is provided by digital signatures, or by Message Authentication Codes (MACs) computed from an ephemeral-static ECDH shared secret.</t>
        </li>
        <li>
          <t>Specify the proof-of-possession protocol(s) and how to select one, if several are available. Also specify which key types (e.g., symmetric/asymmetric) are supported by a specific proof-of-possession protocol: proof-of-possession is first achieved by RS when successfully processing EDHOC message_3 during the EDHOC session with C, through EDHOC algorithms and symmetric EDHOC session keys. Also, proof-of-possession is later achieved by C when receiving from RS: i) the optional EDHOC message_4 during the EDHOC session with RS, through EDHOC algorithms and symmetric EDHOC session keys; or ii) the first response protected with the OSCORE Security Context established after the EDHOC session with RS, through OSCORE algorithms and OSCORE symmetric keys derived from the completed EDHOC session.</t>
        </li>
        <li>
          <t>Specify a unique ace_profile identifier: coap_edhoc_oscore</t>
        </li>
        <li>
          <t>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected</t>
        </li>
        <li>
          <t>Optionally, define methods of token transport other than the authz-info endpoint: C can upload the access token when executing EDHOC with RS, by including the access token in the EAD_3 field of EDHOC message_3 (see <xref target="edhoc-exec"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <artwork type="CDDL" align="left"><![CDATA[
; ACE Profiles
coap_edhoc_oscore = 4

; OAuth Parameters CBOR Mappings
edhoc_info_param = 47

; CBOR Web Token (CWT) Claims
edhoc_info_claim = 41

; CWT Confirmation Methods
x5t = 6
x5u = 7
c5t = 8
c5u = 9
kcwt = 10
kccs = 11
x5chain = 24
x5bag = 25
c5c = 26
c5b = 27

; EDHOC Information
session_id = 0
methods = 1
cipher_suites = 2
message_4 = 3
comb_req = 4
uri_path = 5
cred_types = 6
id_cred_types = 7
eads = 8
initiator = 9
responder = 10
max_msgsize = 11
coap_ct = 12
ep_id_types = 13
transports = 14
trust_anchors = 15

; EDHOC Trust Anchor Purposes
edhoc_cred = 0

; EDHOC Trust Anchor Types
c5t_ta_type = 22
c5u_ta_type = 23
x5t_ta_type = 34
x5u_ta_type = 35
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-07-08">
        <name>Version -07 to -08</name>
        <ul spacing="normal">
          <li>
            <t>KUDOS is just an example of protocol to use for optional key update.</t>
          </li>
          <li>
            <t>message_4 is mandatory to support for an RS that supports the reverse message flow.</t>
          </li>
          <li>
            <t>Method in -workflow-and-params as example for coordinating the exchange of authentication credentials by value or reference.</t>
          </li>
          <li>
            <t>Revised initial set of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>Defined categorization of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>New EAD item for C to retrieve Request Creation Hints information from RS.</t>
          </li>
          <li>
            <t>New EAD item for requesting authentication credential by value.</t>
          </li>
          <li>
            <t>Means for the AS to achive proof-of-possession of C's private key.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Renamed id_ep_types as ep_id_types.</t>
          </li>
          <li>
            <t>Revised rules for the AS to assign session ID values.</t>
          </li>
          <li>
            <t>Added explicit validation of AUTH_CRED_C at AS.</t>
          </li>
          <li>
            <t>"edhoc_info" only in AS-to-C response for first token in a series.</t>
          </li>
          <li>
            <t>With a group-audience, "edhoc_info" refers to the whole audience.</t>
          </li>
          <li>
            <t>Defined parameters for the EDHOC_Information object:  </t>
            <ul spacing="normal">
              <li>
                <t>Parameters moved here from draft-ietf-lake-app-profiles.</t>
              </li>
              <li>
                <t>New parameter "trust_anchors".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Access Token Request/Response messages must be encoded in CBOR.</t>
          </li>
          <li>
            <t>Explicit statement on admitted confirmation methods.</t>
          </li>
          <li>
            <t>First token in a series: the "cnf" claim uses the same confirmation method of the "req_cnf" request to /token.</t>
          </li>
          <li>
            <t>Revised examples in CBOR diagnostic notation.</t>
          </li>
          <li>
            <t>With a group-audience, the reverse message flow can use a roll call.</t>
          </li>
          <li>
            <t>Matching authentication credentials from ID_CRED_X and EAD item.</t>
          </li>
          <li>
            <t>Handling authentication credentials and EDHOC session that become invalid.</t>
          </li>
          <li>
            <t>Limited use of ACE Request Creation Hints when supporting the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Changed CBOR abbreviations to not collide with existing codepoints.</t>
          </li>
          <li>
            <t>Updates and fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>The access token can be uploaded through EDHOC in EAD_3, EAD_2, or EAD_4.</t>
          </li>
          <li>
            <t>Ruled out the upload of the access token to the /authz-info endpoint over an unprotected channel.</t>
          </li>
          <li>
            <t>Defined an EDHOC EAD item for transporting a Session ID.</t>
          </li>
          <li>
            <t>Provided more details and added example of dynamic update of access rights.</t>
          </li>
          <li>
            <t>Defined in detail the use of the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Provided details on access token invalidity.</t>
          </li>
          <li>
            <t>Revised examples with message exchanges.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Only CWTs are supported as access tokens in this profile.</t>
          </li>
          <li>
            <t>The alternative workflow of ACE is only mentioned as an example.</t>
          </li>
          <li>
            <t>Clarified that both the EDHOC forward and reverse message flows are possible.</t>
          </li>
          <li>
            <t>Consistent with the used EDHOC message flow, the access token can be in the EAD item of any EDHOC message.</t>
          </li>
          <li>
            <t>Explicit registration policies for the new IANA registry.</t>
          </li>
          <li>
            <t>Fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>Fixed column name and prefilling of the "EDHOC Information" registry.</t>
          </li>
          <li>
            <t>Added EDHOC_Information Parameters originally in draft-tiloca-lake-app-profiles-00.</t>
          </li>
          <li>
            <t>Removed the case of transporting access token in EAD_1</t>
          </li>
          <li>
            <t>Removed redundant normative text</t>
          </li>
          <li>
            <t>Clarifications of association between access token, session_id, EDHOC session and OSCORE security context</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Restructured presentation of content.</t>
          </li>
          <li>
            <t>Simplified description of the use of EDHOC_Information.</t>
          </li>
          <li>
            <t>Merged the concepts of EDHOC "session_id" and identifier of token series.</t>
          </li>
          <li>
            <t>Enabled the transport of the access token also in EDHOC EAD_3.</t>
          </li>
          <li>
            <t>Defined semantics of the newly defined CWT/JWT Confirmation Methods.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>Removed use of EDHOC_KeyUpdate.</t>
          </li>
          <li>
            <t>The Security Context is updated either by KUDOS or a rerun of EDHOC.</t>
          </li>
          <li>
            <t>The alternative workflow (AS token posting) is specified in separate draft.</t>
          </li>
          <li>
            <t>Fixed and updated examples.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Fixed semantics of the ead_value for transporting an Access Token in the EAD_1 field.</t>
          </li>
          <li>
            <t>Error handling aligned with EDHOC.</t>
          </li>
          <li>
            <t>Precise characterization of the EDHOC execution considered for EDHOC-KeyUpdate.</t>
          </li>
          <li>
            <t>Fixed message exchange examples.</t>
          </li>
          <li>
            <t>Added appendix with profile requirements.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/> and <contact fullname="Carsten Bormann"/> for their comments and feedback.</t>
      <t>The parameter "trust_anchors" for specifying supported trust anchors builds on a proposal originally described in <xref target="I-D.serafin-lake-ta-hint"/>.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y96Xbb2JUo/F9PgSuv9VmqkLRGD0oq3SpKbispD1eSbyUr
laUGSUhCmSQYALSsuHxf5X5PcR/g6xf79nRGHIAgLbvstLm6KzIJnGGfffY8
dLvdtbcH0e7aWpmW4+QgOp5dJ5Mkj8fRUXp5mSbdZ8l4PImn0cu3SR71X54d
RxvHR89e9jejeDqKXg5+SYZldJYM53la3kaXGTyUTYsyj9NpMoqOp2/TPJtO
kmlZRBsvz/ovT483o1d5dpmOE3r6cF5ew6/pMC7TbEqD4ldZnv6Tv2ke8rB/
vLkWDwZ5AtughfG6aKZoJhNllxE8uDbKhtN4Arsc5fFl2U2T8rIbD5NuMrrO
ht2sGGZ50pV3uluP12BNyVWW3x5ERTlaK+aDSVoUsKbydgaDnByfP11be5tM
58nBWhRd5dl8dvCx+4HlbMJgkzgdH0Twj3/HRfay/ApnSMvr+YC+7t5cPahb
+dpaOssPojKfF+XO1taTrZ21OE/iA31KazdZ/kYtt38c/QT/TKdX0X/gV2tv
klv4fQT7m5ZJPk3K7hFCa21tmI3gqYNoDlB7vLYW064O1rqwsihKp8VB9B89
mGMMW05y+pKB/R//9X9zQCDnF9gQHFeeDosim9I3CW8ZwB1Pe4U8+++JPNIb
ZhN7pj/1AImS+X/9n+h5XJZ6EJ7wT9n1NPhz7ay/wBu9iTxaO+nzXnSejrNh
bM31PM6Hmf01zXF6cnZsjz/Bp3olPfXveQr7s8c97UXP/uv/Xo3n05E18mn6
Js5H7i/BwXN6sHed0XMy/No0y2FD6VvCzdOn/d0njx/Kn3s7T7bVnw/3Hsuf
+zuPt+TPh4/2nsifj7Z31LePdvZ31J/72/vmT/3s4y317OPtHTXb492dXf3n
EzXC44fbW+ZP/cCjvR3z5yP15xO9nCdbeg3wp3rtyY6eGP7cNn/qB3Yf6gdg
n/rPh3qwhw/p25PuUY/IwjArku5wkOXdZAqIn4y6wyQv8RGkgb1nSQzo2XsV
53BWcE2KAzoRdSeiSJ/WyeGLQ/r3CIjJQXQZj+F08N9CcImk8nCRGY6fiPOr
pDyIrstyVhw8eHBzc9NL42mM5OBBDJToiqnGA1ws/af37rqcjO9d03DdmRlu
LZ1eegixZ6D6eG9PndaTbX0uT7b5BCyYAJEhugEXY9IdpIXzM5ElICWX4+ym
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
R2M9JWXxROt0AhS8zTnaWVGkA7hfFGbAPxSKSTelYRrLV+jU1t8Mh8U6bQMA
KAnmDTiAmTkKD2rHVDtZ55DtiMvGcbbeQbSt2QZ70SWyybnsmoU62ZOBVZHk
N7xOhm8w85hFRKbc8ThP4tFtVJRZ3ioMB7ATY40BxA7GOuTVrKCCepjcq2Kp
OBEXEYxgFBcJrVPZdQvvTjDpNQcVgj7Wo8Ak00zINKe/cjADEGIrOgkmkugU
La2Tw9mak5UFmZeXR/T2jO1vOreVs40U4+PcYkREscepFHFyCnEenitriqxi
ZZX7oYr2oljywxxTdXaUWztIuHQPhuWQybRjJ0h2OM7TPlme+FAZfW2i0nSZ
KUYNvQ1VMKM+AOeNVWdUfmZfbQ6DtQ5NfBpSUUZAubGJivVFK/gMmCLGCrkV
n+DL7LIL/2fBVnk6aJa4dOXH3d4OAn9h3SwOdJrSEVPmqzHomgCmglAGr4mL
mJykLiE4dUDrRS9LKcXAONQPScKKW46SISrbIy7LYAUg1crPJqaIHQ3yG3Iu
o+4KItghcIvV3MGtubcd5eCiNHyOfatyHi/DhfmWDpdTF/dn7+a65lz7g3YO
LkgnesYGJvx9v9Xb2sHSlNHrPO0+y4ryAKTcoifbxFqJ6+rXV3F5fSCOGfqS
xEQA5FPSyQ6ikHSMz71iwZwK6L3nKnoPAFajlEoUPIj2Ixw2mczOQFrJ8r1H
29vrHfUc5U+zZe0JPod31fwqtAt/34NfZfQoSu4DvDCf4W/d7f1OdH3/0ZOn
O4d72z/sb2/1t58++eH+3/nRD2v0nzqgoVHHwQVl0jk26CTqm2M3bkg9JwsP
ua10DK74O6pOKVUOikwswroSZRCvkdqJIrgi1DSgcmult1nLFTdpC6WQpZP6
iWhJygRAUwr1gUlHgtpClauqG0oCzrtVpgWE0bnlnMzX5n5LNUKtF1ueH3eN
Af8mR6DNVR6U76KUynhqQM7OmF5lzDZsV5THqlihTTEhwDVuuYYdsmBQLaKO
dvm5PlU+YHhEJrrheEdVeYl9wH2iSY49TdNlylmFe45qM/vKKFtPbYlH0S+c
VnM4yZHqApKFmQlllmi38GQ+LlM6vACAlDCfKvUnlIqgZxPLBrr0TKifl2dS
GKKuZSYUbVWmTGjFbo4Ms22n8JWVect1Pkk+F0pXDY737DImJ8aN1GUQlbci
ONo1O0wBDnYRY8iDg1hULQzFduU7FaT33adikRhQBTximn/4H93uGudx3eeM
pINIJGmSLL2wTfHI0E2TwksjLv42LdKRhGAyShsXa8fGNUDmZ4SdfFtLNu9p
NNIv2ffJvSdayrURchPdtbfsvE+L6f3KcFxShzCGK0nUbq+jdyOmZWsl1vz/
trb2/PwgOjUD+UEJnIkvtoRmoMDJYFqkTtG4sW1g7j582wzrn8eHR7DUZAJH
SuCVWSmVWWEJX8WBuXsIiI0+evW3pTLglNHdeUFV5qi+tbMpWQUUhN9YHEls
4dtSgNCJzVU/7kjwxQAWoZYgeug4uUrLdMJphC5Z0vRA3kglrbOjr8Rc7QTV
JwsP7HAVTE0EiRO1Yba/9Btr/rBNH2vDpkNVQU30M7SBI+W1ygLhJnIeGy8e
ZRBjwagAUVF0RLgUx0JRFBLeXVJckAMUKeXS8NHYaEY/ohoXo9FwCDIDQEUl
YRFbwyNEEoHGYHjk5IiQTpQ1wakppRRrR1Nvrdv9o07qsThn1VDo0FNHwqiY
a61rpbhCJ8w34W0+S7aphorKodvKkYdoNQqa9lJkpfZSQh4apYtf1o+kdBCN
gYtfCUyudGE7EEuwE28vEyuulSbU4DLN/WgUGfeOmAIgAu3NVtYZuShHYeRL
TJbkU7MELBCXjseB9AslprAGLNkzHKdVSDQSl2F0bR+tFUMjNCR5TnWSQLpc
lxidC3lrvTaFHfn3ru9X+fq0L/q0VcEirYfdIP1QzyT3uQIvkq0LQun7tjYW
BbPMV1PARFhfQQ8LB0CpUqK+hobFoGiIM8bX9/ccyd6vSWwKaniRi2TXqIl3
ZARGSbbQLsfhdZ5RNRiq9cpyHtWK5SRx4pHsc0MWk3AekvA6EwmASadoTMCS
52vfRSda3tcECZ34+gc75LHfkRypGtl6QdFVM6gyzdNbIa1h8ZAqNjBuER24
IIaRXIjNEYTtogbvKvhvRPoEDU/xf6Is5xT9x5CQ9TqjYZV1JoGc6DwqrGAM
7Q/1loDmzDwtEl831PhHMbq66rtU8WG5lMS5TU431xpiC2xwXYesuZgEy1uf
NQalBMfeVW9aWBw7zaPDdtYNoRKHBzM1FoAKl727i+FoTcCbBmZLp88iFOMK
aechVVLFlF6m70jLsSqtaHl1nF4mINrqEs5GSqtRUEmJJTYHpzvPRQkHlLmJ
3RpCsbEWKLsAa9UOelDUN8vcdeQlHCKjI40MKEBtzY2jTP1O65EiptJ74Tt1
N200E4W+/3tEIfOIR2Is+3NVMS3sl2Ju7NOt080f9p64mnmnUnObRW+uSVh0
DByU/jK0y1g5NzhQAms8pudOz3TZL3d9UutKNQJg4pnmluvRt8EA/zo8Q47Y
PzDRcBhIQnWSVYo5i3EKo9qEfrCFQrlorFxYU0ugNgFW/FLksSka5aodPwoe
oaSLgWLNFbaTU6hbbCVfI228aYoUIQW+KHUxKnWsXvAMM4xgYImOaVKZBUsH
l8j77aJLKhUTJPf3JjYsBTCa9Et9GsoDOM+nnH5NAq6e2clkWSzUip6KxCce
G6wWL3alP5eupWCVt6DoFi7zKBdQV4VzFTYneI+VpWFyIcPY+pJXqCfUCCJU
HUynHYgDMIkVHxQtEXflBOnZifL1wTKdQFqHUwQgcos66LlI/2iRomEVpvG6
ksg6O636jixby7+5+0j0uphzEaPUKQ9IALWrWI+A2wyJXQCpG1B+Sle1tLBF
zGmCo2NZNn1ji0yhHEzwJp3SRVR4xTiJO1HVtDkqArAWnfz2Lp3qUGLU0GGc
FTxhqzh6aE2dFRMvus7P/sxx6AFzRg3OYX34UHmR+uYDXL9EG+u9siVp5SK3
CkL6qa0o45rgFa2zPTFGKKDcsUBWGgYAfEfOoTonE5d1FjvpR4h5d+GCss/b
M2nJ0TrM3JhRwhqFktQRHxet7vCvenGWKVCKny+WcdnW/pZievxgYV1uyCuY
pA2Eb6bZDfDPKxFa4KTJnCYvK++LtAfSsqNVE1qXpWJWrS1mVjF61biEaqBQ
8Fqhi8VT6X8C0qeT4OiU6tqUNGsYbr1Mb2ZS8UF+HidOaJNQRIzCAOULVVbq
jHnGbhsUfLyBtJ7GNbYt9QzlQ6ByV6rXCxWiJR+nigGUWuBJjGVidZFat2PQ
d9GhKrWqsHro1ENcUDjIdz6aLgCBqNDCD01whT1TAdcPVV+iyj98z/xbyrRb
oDbXtocJwaG4UT4JFThqi8+LYkOZtn2C4NAoitqQ5kT34bJVdBF35UuMc3HC
oxpaMCzwMStUNgWSjdXXIvMmxdk7UQVNa4NoOcn1NlUlLM84Yel/gX0aS5Yz
2x0s1o6wgwW7Ebs8w12F7IZDYqt3525CYvnKSriA0a3Fpam0KaL5fghAGQ66
iCYxJaeYZjxABplAOxfKDFHZmy+OVPK3YazR7TSeoEEUrm6NGXfDKFg+11Du
Ab5JAZPepqeYOYpdJfTEEWKoTnp1U62skZTGi9VClYGbpwcgYqSKXzYrnhrt
mdUXAqd/IF5htkUUPV4m8NnEoklAtQ7a8bO0qmEMwUp0JuSyzOdTVjPYqxWP
4kGK6SDtfCqSVS5uFcw03xTnQ1s3iecpMc4S9pfYWacPom3yYTze3duNt7e2
t+J4Z2tvb7i/2+v1ti4fxvf1mxyjhpY+seO71an6P51vKo2FNk6hy6D0Peg4
k2sFGP61+xgmT+5X1N379iuSUQ5ISn4bKtH7cGvLfoRRR7l19rYdhw1H0NEp
s79md+vxdpLgf+PteGtrd2sH9vro0WBo77WyW3LKWYce2ql+/4PlLmp2J/kO
JfioasTOM0wZi/vyxUH0t61OtN2JdjrR7t/dR91yx/DoVmVdzU6q6j0OuKjE
IueHn8vzJDnXdTsXp9Q9993395z+bWtr5yAVvM1SlYuHE7+TyCETWEGGKqkJ
Pq1ofY7dhptuUNcyN61EkNfKHKkS8tuP1Cg57yBkeDgIq5ScweDIXZR8xwcz
vCm7PKSk5t2Z3tlCufsNVU8GVMAHkZqSFiSoyPpa6EO+KZREKt1h0bcZq1aD
pkNfogq84l77xvxTH78gDhV97iZjpePDra1PSqx+jvLSMthV9tA6+mLJI3Mb
HDJ+RSfVa9DxdrRAdwrl1bVVov6alFXjOROZGvHRLGsZAVJkYCshKWRR+1h5
2KSct1a6AtRLtl+Z2lSkd3dSiQrKpon7cCgXR9ioo8w5KCoOgZqw7K9Lq6wk
nGqaVJFCm1HkMyib/bZbcKIejD2s9UY+wlzbaFNcSOYXGx2rlp8AQw7vqqI1
6EywgV3QCq/v2zgneyM2yuUi/BkZIZEQTeJpOpuPHUPWkIV+Oh971EDldtVl
4vTMjnaTTCo/yq3GHul0MD7kMuom4Uqizt2b0ouOkplUmhOr0bzgCDbxN83G
2a3xVTgzY9YabktW6yfQ6705uWsq4IQS6Ia3Gpbk3pNXAn4Qdf2pNajQNzbf
be1Lx+FqYyARCKt7NP7skjwewrCMaHoT39IhTLCxvMWLsI6ZCmmo7lhYl+OZ
eiqpN8pKa9lWsbTf9GqckAaM43nddhG+sKqbHCOv2Z+LSabH02F+O8NakvY/
tzBElGrNS3ZCA1ajXksMV6U6nJ6psnLtl3GWXk3VGvDv7WAVBTlRsfOr1omq
oLoSEAL+1pD4cnwItGzXhOP4xUUpKlW1wAgEqetOlVT40SlN5pAYdpV6hpEa
e4gLrNrep+JdsCuq1NGpni9ZLmNM6d+lLaW5Xr0O917RaMKKNAWBkvq/6wZ/
nkx/pDzp0yybSIDngwjuID37EJ7d3n+4u7e/va/sCWRuoF/39K+7W+ZXFT+K
caM8EUqLcJcvrpCTTQApkouZnkpZJR5bOv/y1ohVLRGs7TsWCMKF+85qmq0P
LS0PtVYHXENLa0MoDtalIpZVwdwCbU14ZZqioDIUypUPurIryfIVEygVYr2T
XHkkKFayvG3r9/Ll1SKWzpfve+ny9hyBjPmK1bV9wny/Pl/e9qwtyqOmBGST
RW05MJZOpJZYFKtFlyeoIZ681kG3Trmy6P29egu3VZ1Vrai+yYTfEzLUjaHk
ZA6KRUooWcjS0heXeAXte0yRJ5gA6Ej19QVwWnSrUa2qCgn9dNdsIjvqxexW
QrRjQaKWvDVmpIA9ng16uvc8x44IXr9N46hfEeO8cBn0wajIk2rwWJt+OKES
EGHKYnVJ6n+MC6ZHFaUdY6BjLFWmhoAhztY7FypJy6hAPn6IC10KMp+eOYln
+AJ60/y4pGIODLSAu1zXKKx6vRTJ5TLObjk/5Z5jzScQ9l9ZNEWXEkAceGB0
aZ2quLYWACBX3dGJ6Lpkn/WI1BTjGK2bjMJEcBkoSBaqVY4jZaqCV8HMrfAi
dMtNAgGqz0B8VH8XR3oTwE2zUVJ4EX8Uk+tcGkw/BpZntzDnOHtVV0eFQOoI
jRNlEajGMiqDvOk43OXutrpLmVVEr+kqNyOzH8sKW0S7PzU+QgORqJRxcas8
aSxxIuykWJD0f4PlJCrOhbaPE//p7OUL7X4QG0BgMaIWqkUI4SA+QiMoK7R8
pyoGqsLkJdupJhPMbmRTBwcksn1TNS8P2vxl6kvKdJALfXL44jBaZ/Synl2X
GoD5bcDl4F8E0GJYGafWq1pMPxyPQ6uw9BVqbzpjww1vUJV4r1actJbhNmxF
nJhPJjGHanOhAjRycJmuN8mtvV7lHnEQSQVWV6+9t1Y6a9RKrlQoMnvmqW0V
VWqXkAi8zbpqze0ML5RIeciiuQHU24Rjm6dd+7sDjmVyHrMSKU03H90Idqoi
XEsOvKTkcm5lS/Zq7LlH6qVqvaWVXGMUAqKLmyaTkdFExYeyrpThPTenc6Q7
GFqNiJzAaf2ijZMmrRtrFE1BpMkAyzjMWyK5fKA0Q4BcXVNKonDIq5WfTzq7
oahOSTk76EwHmTnhLHz5iTz3ojNMWfZCDVHgVtG9KZpz3l3HICbDymvgSRpU
DTR1uVU/Ak5e60l+nsZDXsZ1Mp5hlB2FBXtNOsXxasIDFMktnFpIOqqQep9x
Lk2eDeYF2a6smDCjL7B7JRwNNo7fgOw8m6kiShwH9mv0AsVS/fmVSdw4hluo
/kHujMh+5lRRo4///BodWT3YvvDPr9E5wuJXAJvRy/mHLfspap1dfflOV3Li
+GxjfY+/wM+v0Sv6HwCb3Br9w7b9FBV8BU6b5/Gt9TXfl+dsEaYDyFfFv1/J
UFF/mz9qm3f9gbuJcEOwOeYb+GHHfqoRbH16E+gkvbki4GrBxuuKZF1fxscC
m+F4/MOu/dR5zmabpyBHJObrO13Jc81Razjxl/OxLikItAOsSqB+2LOf+hxg
O2M00w51htrvlNaJ6yMOp4wlv+HHwjbQhC9mMfeXwB/27afKz8ASXp+edGkB
dh6zqUb1JX1sbMuT0QWJ5fzDQ/upRtp26Fod+8aWe07DtaJ2AdrGi2nsU06o
yav4nB8L29LRhQW5X6NH9lMCNkI6Db5f2bXKkazRK6NMrcIVVgKbFefzWSFo
gQ02X9g/PLb/MQ+hm8K2ph7TrSFYy0kXd7DGylqfl8fa2EaWAOBk8sMT+6nf
jiWc6GXl2fhLoXAW2CR+KVFg296ynvrtwHaql/Vlgm0Sv7uYFFdF+s+Eftje
tp6iS1p9+U5X8jx+l07mk4hW4Itt5Nkf3H4hEq8jt8Wzi2Gpf9jesZ5ibLv8
vOIuxZpgNwk3OSJ6OZOUb6/DINcGUWUQdOZU8g7+KLjjnjZcyUsdU0N+llMU
kMRJqeeG2XSq4lOMzmyBLZmBFq8lEADbrrWlRgHkWMUdn6i6mUsIHmawek6q
A5ulMCcGiPw2koderL6k2l0hctv2nvVUI9jOzZsra/IhsLH5i0idmkHbFw2O
/RYfB2zzoryIp0Pg8ii3be9bT2EzosDLCmxo+zukN6NX83yG7RkMBE3XFedB
DyND2EaPqxV9SR8NNirOVu9G0LEpFZeBkXJ7DIkDuPcbryxr9mYHJ9l4kU27
ztfrnAf9/foQbl6SYxjLd5HlwT1gh6plNLYrEKq4nftWJL50jvLckq4blH15
upGHbca2u9qqiiaOCd+UGTY+uJZFEulVdHiFPNU6hSOOfoiL5OGedpchE4wA
rdDFhiOguTg0gmkPYr3BRbrQ68HW5i1yN4ghrgJdEyC3yCLv5+fvmho/ZEk3
/WVxnJRz4TOqTnBpAjbtIU1tVctZSW3GyuQKUxa8ZgEyrvswk0Kscs5vFSpi
g9xV/GvCPcXkTXZg2Qvxj0m7LswR6VVFEpXqT+sflB6j1dv+oW3TobEZ8Gex
T65ydq4hsXKCD1c+QXvgL+Ac7eX4p+lC8aMO1R9qpbPdkQtJfPPni70qxZOK
PYXjc3TYLbxWrUa+754m+4wFH6oorsZxCNEgA8Ulnlr7dp5U+WbUpk/e+0/g
c8l/Rhtb7y73NxEG/3mJojB/s7fp736PMTubDH5GW2jLzWvTpGeyVJbKSmmK
hw8XgkCvYREErAfvAAD7BIB5nv5MVs2GW40zkd2R7uGUKmrz/Xx9elJjjOQ7
44lmlKWtYmO4f7kArsKh9LocoFR4kf0cPUFRSmEG9JBPPE9GP7M2sBwhW85q
WCFx+yuxKZVq1tD+5zekeQtXV0F1A/xV6Z87xkqE76GKfuG3aB0cclLGVChC
pZ+ut7JD10Xv6OtPeJfCoj8h7tWYXgNouPsp0NCafgFG0iHZ13QJFL0rtHRW
u2h1LgZ7xxjE4k5llE4danJgoHnQwfTKXFVsX20S/0I8ci8EKtjm6Yb7cf9H
fP0+4Mx4PtE5c+thN4R1Td6/x0d6/EjvlRXaRlcFbfirCJktbeydavXoFCMR
Ac4MjsqlebzClTHj1V2I+bRQhbhWodX+622JtlmYj9sIdxeh/Tl8DKuswUZf
Hm7FgXwUfcwoWhlnaeRciCpN5JzOn8m58kw0IGpVavb8GU1SoZ5gkVRoPXgH
UuET2p32ayy1O8/t0LQ7PcGi3VkP3sHutsUIEb/7WTkgFsi9ujnqpJ3LoKLf
WFM13y1H13HeqrlC3tZEVc/iGXCNyxYH53dYoiIWjrneTpVoMPNTfD9v7SGo
g3ZhJLLiUWmkbpH8g07o4b77yDAddf3HYqfcoWSBcgQkZ3wu5UJYzYPgcoEC
2MBejzNkDwOivKfR8SEsVujUc3eB26zPJzO0yX2clNnollhKYPRHur07fWVJ
YbCyEn9ijxfaYFxZV/FGWc0Et9tWXblP4byNbC/s0GqRf6DA11Xgo1LjherL
bhmlCQuN82g5FGzl4mmFga1G+uzY2M6F1YiZBrQro6U9xGo4udcaJ7UzMDo5
qsHKc2s5p4sQ0ay9HvcsD1wj+sFqxkL4GzxmeFqSslEtVNNzi4NXmwAgc5Ts
HzMdHSVWu3Im0v1TqFKlrmQxE1egrp2c2e0WGqxRsCdOpjCFkUlQcbxKBdW3
eZ7lVEmA2x90vOUSnJ2lereOMnHyaIKjwB0BZDvGe0DXRXFo+xl3MOk0jfvC
h7T3SzYeSCWkLqSlqvJs5+Ylel53hViKp5CfM9XqzcYFe0nMNLhZoVc8zXsw
k95h+EIrsoTrEKpD1YEcXOEWT/wgNVpsGFFX/pCdMULRP7gRlD2qkCJdmgvv
N9easzejEI3fT8ZSNsezhgXd1C04SBl31QShm+suhUWR9utoy8bKuIlvRRVS
a1ESl9pK4iC3b7UwO5sjkYHhpNesg29Vf7CPTwIhpq6mfqE0h5GUSRxST3N7
gOvmWnbWt/cLalzvKTNm8tCsFdqNuUOKZt+vEO1GNOjVrSoARI/pwHXCFmUl
JfbxI4qgOBm+QlNSEN5l+EoBP7piXOTd2fD5Ie0Gb/n5X18dK2amB8L1sRu/
5AvER1EQrKOo6z8fhPb5IXyt52gEbhNsPdTu1S/BqcXokq3zw44EX6mcWSwM
hU2/sKASw4By7TB3UT2RFszPQAcHYlNI0X5ARQ1fSgbMC4n1smvmq37E3LVG
VUUjAVWPn1V6fdJKWdvzL58ldqm2OKShUTrpprq8lo+09vJSFI4nz+wzCuAv
QYb1VV9rW1xlyGlDNS3WkeLCSsW4Qan4eEpAcG+iAvC7IgGVI/pa7v/nPIVl
aYa78GVJRyDHm2tO3P9fvBdYzQqr7uioZs3W+XBI4sLLy5OrTcjIDmHFxHin
2Bdl/YeLN3CvQqJjWBWJBQYM5+r+UmRTvykrQtTpAWjVlV432aPr+O+DaPBw
7/7h//z+e1NX2gTm8Ocg2ja/OfmAOLQpuO3TNaectSwIlQD85W92Se33MOz+
HL8mu9PBgwdYWqzoDfe3nqhGsevRh473zrvQO+/cd8wrf1d/Vrux6nJTHmAD
hafMIdlnhCF67mHSpVj2MNHKGDrMUK1wA90FlboChbq29U/V4lz6J+cwndrk
ajl4lvfds3yPY+6XF2V8wVcLfu1u73ewkvz2UX/n6e5O/4fHj463H+7e/7tz
ovzm3H6zLTK8p9JpwUkfPXm6c7i3/cP+9lZ/++mTHwKTvmuatAab/l7X1zeE
SXiqoRJmGkN8TEJS2D86+hHLMGE9C1WKSLGO8JuAWgcu5lQf+Z4O8d+iaCv6
/o+UK96Jqp/fA5nlx7bxMTTKPVCmJOcxQSx+dqf5WQfT+I1dfAMtyfAK2Y87
3uiSqspP7zU/rTJH+eF9erh2fypfkh9+uGDlOteNH39kHqcsN+et37vZcfzG
Y3xjXjPD78mpzA8+ad6j9qfR09tbzU9r/xQ/va0WEQaJlfjCz+8sgjdlfPCz
u80QtNIc+Pm95ueNIY0fp9ME6Sq0cnrcolQk0VmnA2/G09s195aurd1T7dNP
z6K+3WqQKjwNu3nRxeI6qgd2IdqDKgrG0kjybngdT6+SSrEpv1KnU3PFeCVV
GSddPJwb4VkKiNslRtfA5iY3SbDPnjL3Hp7JcIGCt26Hvc6qLfZ0ba18Pg1t
K1T3lO21/fq1SYWYwyOpUyaDHJ4DNe3C1xizyLYixzTdi15iBVxTSBB2x70h
uGh14toWO6Yw2MK2l2oJXKaqW8jPXakCRV42u/yhDKMq1JCRVirVYsMHr7El
1/tjEFC6hNdOVncaTbxSf5WabG7fFelH4JQsJNssF589Ut1khbuxScuSTdT3
dNJYCw1OhBNBqfOR3aEDAXkmRUCs4iDv75lD83vJsxWssEZdFNpSdU1U+nrk
VjESS1NQdmUywVOZ38N+//js7OeL85d/Pn4RAVvcsGNi6G8S3DflMonGawXi
KFOGoxmd/3AkCkGShxxV8QiBqUeytExi6VaGQpT8Aytmim3CUSL8tpxO//Dm
aoNujwrp6JGaQyBDLqA2dqFSJa3YFT/nFopwp6yKeVdMePTqqM27BUerlpHV
oExVXYWbN0ENC67GVU6Lvk4M6TCVhfiNxK+TiXYJTCeMB+jAqdzvFpFSh6rj
NncN5uBgLJtJUfIzhWWyLFWYDht515Yg45YNkvha2qAlYAdwz4UtVZTWPABn
blcFHzN3MGlHaaVzXcnUayDW2LAr1304jkcpSBn3KRMoOYgOR5pMmDt0Brs4
efkC1Jujr+0GBaphWr6wqthcKYLJfWqdUpiVhq9ZqJM2fhNus7Js64Ov8zK7
HdQCdTgtsu3WPTbnzdVQ9Rt2Fz+7z4jH7r9aemHfM+fwQoX4ddn0ailcsYRR
zWGmGCXJiSnX9OXndJNu+G5jmtxs1spElfqq5XWeza+uNatdQEVUdVUtOKi6
qiQnUpnQLB9xt5bJvKQO3LZHmZ2gZr0klSWudMX2Vd0wXoGq0hlcHZcjA3vp
jItk3Xh+hQ9qK7vfquForguBVwRRz2bulcK1e7XGhTT04jXqu17lLITxTisW
dUBBGcnGMnsGWq8zi/1kQDbnisQosZrL5EeldVR0m9XKSZo1ZXibKKCPiYaU
RSWqKK0VtOUV/Tsm7o51n/J6TtUk00urZ5VThhP0yBlGmmsMJiICtxQjQ4Gs
yiXH0/Zu+abW0ySjiF8wkbOEIUrrVpxPyhbTnqpTqJG5kD971IGBsHoHCm06
JCritJPgVhh2hyLZk239xpFMgxV004vMTMdq9a7GKEn2FanAKy6pifoKBzZm
BeA/nMbQRnrdSUW/JgzPAscVbIkYGbGWuCzj4RsuWm03wG5onKHoneCZPENa
JKpMdm9tPW1Hn1K1m9YgcZm4LqAf6lnU2BAEfjEF7C2UCCClvwt5JrgLjT0f
vwu5OfZmdmo3s4Ov24/u1T6614t+uAXCyG1/AkXO5X5a3D1Ab66SsrAcadem
T29dhxfVTpgUYq74OlIEvD6dRhWj7gfFAp/rP9HOYcX1pVnE6Zlq/i5EuoHy
IgB8Skm9l+jwKu2WVmvkp3u8nBypZ/4iRzaq4TROK8T6aYmyjF2pTEslGPVT
kDOeN6IZbZyOC7PJGiGrF73IqCBtXOrmltX1w8a446BZsnnoBKFr/nnK7yxo
xkMCW4hbIAlNiDqNb3uwIIlpUkc9coTpEI8tVfT3avAM1DFPovvD6eX9hr6A
dey53QYcpPwMy/eNNNTQYxQJ9nMfpZpIheaFOSTQxiJHO2gj18AlV4hLacCO
DVF1MgkQ40FymeWqA20ZvHN0YYwZ0h7Zgn7lmvqQGGQKHKEO1NzLT3ZK52rp
RCYlTJ9arZbUiOVm/KBD3XEsq0vpKdULWkuokRb2CjycUr7EW+qX5+4ghENM
8HzIuT83w1DzXW4gI+1H6lQjNijrsMC49NbIJFK6JagR0SLrNZJzhAg8NKux
gVW4Kh2PqUNenOcIRcP3SeS0u2gWwuXph53e1l600ScHxmhT2ym45cNIWYed
2ClfjicXAO2mjHPg6I4gpFoCohXbABvT8ilhv9pRRDnllElmAxRcamQzLTcd
v0kQjSxcCxtBtR1RrKEdrRAxAerDSLDpqdz0sA2GtImAFUY1sVV3rbKZlKvq
yH54zwoxQvsh0bAoQPlkDigA9sDKBQvwd+yQ0n0zzW6mgQNgIgFAf9Azz3EC
FNM+aQCguw/GaE40WCN6mm4OgAgaVyaSvlCAUNyqbT6d1nUtOVNNQYgOpmV0
9uzl6x+PqAnOILFaJmRqUnTiyQzZTBrx8lyE4KEFsZHhqcgAz+UyPcXL9P6e
UiUq/j3EewY5ifZea6NWaop1XXx5UhnieFgj/buK04myNdg/mxTGU7x3ukux
bcarXyOZGUg39MT5bat6l9FtqEduCJXEI1UlLT1cb3CGHZphQ/X3GN9uVgu1
qCHriJJ06PLXzrESM9PfraqubFeEFLsejG+XME26TSSktJQttMhq10XSnEF1
/PB+DwhIJrzqq6VzChI6At4uLqRBYrIY7V+r8PBLBn3FYAkg6U4LJN1pRNLd
VZC0XnBWmlNF8NL0guBvK1mp34EvfB93W2x1t3Gre59iqyftt3rib1Wcxu9i
CpewL7l2XLezAOhbkfpN1ywzk8gPaaB74yLVes1of47hSgckL7BaiJSvprFF
gcqlqlxhWyEkham37FqqammrlQTF/VrrNh5D/dqX9yqZ7bL3LbGaV6q4bKOP
j+Z54mN+Tt47Y1ax33dNKnky43idvnYw8FqSPMdUAEFo7oR6egqY+/LoOPo+
2valEq+gHVuEy0XIVfHmSD9ouuH2dB3TbEmS5+yfd6N1iRw5wk5NoCpavrFR
Hl+WXatlENzrf5IQdyrWG0+IU5bUZYW4NlZaW4jbaS/EWVJaSIizZLwFQlzY
YKWEOEwaSK/Qb65rEfsspdNC7BLP4HLyXI3E2EKEU0VCXfcotRSHyajAAOcC
LgKDQyD0e36LE+zk9okIt+WWamNZ1881mtU/gvYrhSpCh0s+l7oQKhzEJOya
PO48MVZ0oW2GxxbzgVwmJXmfC7rJDSQnXw0Xr94Ytlt4GCuJdslkVt46qKdN
3YR8YuGv1UQwfmSqXAEyQ2zEPrb5VRLZAYs9L5TfSxbjMSR4L46uQFKcAT0a
peRa8SmqaZi2s7VFBKI0XXyNAitLWM8BzhHqvuvURK0Qq08IRpSRQ7Nr6JCH
9OQVZ9kO0XtiRWtSgCI9j47w7iClvrRPBQ8KoKpUcOISUAW3cqtCQpJ3Mxbk
NZv1tpw6ZU+oQ66fVka3n9cKBOIBAs5qNMc/eJAjNGlcPMCS2mrCqnQ/4NOz
gnLrpleWD99br4j7IaD6varxkNTjsXVXXGqyzYqDSq8zNplkRAtiZy6G/5Tc
3pEDYUTYcd21bpa7gwT1C9ghCw1OT8EWkmeEYkGajDyZQC/68+jN4Vn+BRWf
fkXM3vmCxOwWa/ksYvbPS8rZxsnZStLWPkQdpUNE3A0pd+KTgRSpcWBl4rZB
iaNwIopGKsqhz0Z1ZMLjJM6n0kAVx7WjHWCEOfxjjF4jqkZIHtFEG94kRMCu
AaHKbUjbe5+zmHJSOQaq3KLYoaspjJMrQPUJhj4h7+ubWu23SRmhTVdMGZNk
MjABiD4hL60YKXIfwEmgrSWe3m5+02NW1mNaKTL/HSwmdcahvRZb3Wvc6v6y
W7WJ494XRKhbrOVfgVB/IyWfjJSgUaTO/fz+Xl2i0trap8uRir3uz0Yb3PZl
ReCJ6p522P4gSMuYgcEmhe8zV7EOyrdetwyD9RJn4iSN6FAT4OfTFtFjLZFe
kvE8DZI8/KEL6cQa/KyDDfREKnI08kK/jfyhCiBU/BFU50t1ffGCVVBhIiuM
XU8MQ+PwnJ8f/pUw0+ytvudpuJR4B4ShcVJYxpuW4R6N6RNhZ442xdAAVvMB
pqu6GgT+TIkhbvVKp1ilsksllY12OO6mauma2j4ihlJXIhUR5SytV4Eszq3h
y+xKypxOTVGtyjAcMKxWQnHNBcuZaMzKGYHzdNbjtA8pllpwgqjcV1xl403B
2zfOgWiBQk9KsYiyDokw0WQ4nnakBd28IlwrdbYaM2uVSUgLxwSlUw67uLQu
Gi4nUv1Y5SC+1nlNQjJPOa/p/b36lCZC+D4pyzEzkwYa5ts0+HmXxbLpybLw
qENWaXZYEVcv1EJiScKKK8m27D7kq8kg5gGxWEQeT0uJ/Jni4FfJFMMfEs7a
uKmEBqIPEyHPKxh5c6M5q78gDSxms4sVje7SGNkUwI6sFKGsU/pHl5+XnAA3
58JJrTg8U3jAxKOyLWLxbr4T7eRyntM9slLmODf60ORFS6BdAFYc1MLv6pwu
PzO6elitMqPhIGPQII3sIhXj9LVShidZkrn2Xv5vNVkleLAdK/ZVRcbBJnR6
TD3H7LFYnpNpUQzQ4Wx3JU/prHeTbehlrVdg7WSus3bQ75ZZ9/TsgE2/8MsD
Em2oZIapiKuS8T9gpNnQXCzMTnMxG47PzZz04GSn0zCsiMASA3u0s7/z4YOm
627hdZuH6XVV0cKoKdtbRuQhezCBmIpv2g4c1+TNZxuEgRAcLT6od1ShaevS
VzgmvoSmC4yeIkZ4k3OqCNwRP0snsHK+Ol5pbTlkZ/3KR7LulM++KddxZ3ly
OVbJJJfOGDqd2zsnE1hoJ6I4Mxp8V4SojqoX13GuKDqh3+tZpiy+oTRyRlaj
ZrDW4iotNcJu6PAjffaVFABRjqzkGTdnDF8AuWyCZnuuhJtnHLBuiRaVHldP
vBVs4hmoMOaAylgC3bNCoIfXyfCNp1YP0XBt9Gp4lJ5yCraTwF1UoHl+8fJH
EHBJldM6aygDd2GIT2OgMDwKSyo+0eh1dO384sXxT70wSJpkr/75X1ib8FKt
1Jnau2krrNQoPXwAzJJ0GLk5T9RvQVC8zjBeW6EAqAfodJXy+vBTYERONpqN
46GpuGj7OGKHiNqtJ/VqrYq6RrEKw5id2ayQq33zL2a4BmA7VmOj1GZkPeXi
LLbqowJVifzd6ues3FhcZc18vFQ7foRz+0zyjXBAWALywP4Busy3o40+yOEl
uszf3yMbSCspAp30fPGCwAOgSrrOTSxJR+zws0Ns8wRrR74l2/Ag5vzi315R
NblC/vDVCMIVLryTnbA45QBkpGnA8lRhS44rzztXrb4Syk4zxcHZfGCUW1sc
dLMU6lA8REvc6yjrC/k+vwQRVExnFAqCskqT0Y/2pBS0PQLx66nJ8t4U85+C
p2ajomNo2xM227LLpymcZ6lK0MAdi7QinZYO+EKMnCrR3qAIcpMD6vaagiOC
QhY5fSyBJKR20n414GuJq0jaOi41F2VOGqqg60fCJa75cDGc4CZPlfFNp9W4
koiWYbQTXqx09SsJR+OK7QCuCfvfxDrO8VtopLH6OrLZgWoT6FcA7G+SZIaS
I0gp2WUTKDh0gyoaccY1GxGO0mIY51pPqLtTqHqM+FHLgHpO9A6pMDCBufKz
oT+v0PFgMC/lVHBHSRmjcS4lGN2ysMosBP1/Ps9BlqmqaqmfuvCDXYtKy872
zMsJyYyRlHJx6YmC2RDeLHrKk6THo5i3M6QyaGJ+waApZjHnr/c5yOQ6nhec
7PRd1WQaEmjqq08AJlMSrNSzoDrFbD7qRKM5QT55N0slU4QzQDNpjIDT9xUy
Fs5JzqeGDoZoiw5nwwkqNjsVPKcszVwlflpaJTjMw4ZcNtF2Zg4JxrFZyySm
rm+TWRTelUL1MfUlWks3kxuH5P8avkbeFoLgWC4ZihgUjlRaGZtkkZIgLeSh
h2fRqXBBYnkI92egsxTr2nRQ0VV2XU2lt9hBSci0Qd73zSoacBuKBeffUQ6e
m1hiPmMvzCPacD2am2Ffl1MwpQFdLe1q1TvZX3glD5a8kkx/v6g7ufrJRxut
Tn7ztzh6lrgC1lpkebadXZsiDbVo1DTo/CzxqlqFUod7FiUGtOBO0OKSCse5
STgK1Jc1tRBQN/EEJT5SigZ+urSKgRGaAzQqnaVk5uXYGqVRNg9NzJMKGcmF
SZSQwG2KaPlmd1ThBGg0Gm7FA8EWfwPSGrsywLl+M/jwrAxsBk71KduesQR/
x4Qgi5aGrPsmZroPNHaYjNnamA2w3otS5ZiYgsRrVTyT1avl1kFJ13myzr9i
9rbofaErPJlo6RgAiJbctJh4yZ8dXawM7s/UQiNl+rXqpWH1dXdbWEYyE21h
EMQv2Nn4dpErt8de7mO1QZaMXzQA5f29sExkBZ5QwEF2acpj8ag1mOEpmpZl
XLVHIMtaTndFy4DTJje50PRK9Sx9oJIP7lDPgLnZl0w/UFo8J8jCKSUS9c+R
Zmlhx5WlihwscodhjTAgFbZMIQqIx2jjaJYBpt1G43SSUiEEtM/PCy6lA5eE
nUbphKrUxJNszn3ajWMRRo2pYpVomOlkklI3d+FPqSmd24K9Udidjgy0whhQ
DYztS4JFiTACncwgc3THYrMEcTLo2l5GPCcLmnjPseIs6EFIPW4SoiGWY/PP
r49enlUisyUwA+bo8hys/UlQQjrl+k0JQwdrUplMC/xLB/yJs7fqfamUHSPf
p7Z3yeuq4lxMoYAA2uCmTesr+kmE1TQX7GnEHe0flakv0Y41QGkShtVlfLJ5
OSYjOhkh2REvmRXewbW0vfFJsVlStEjkNag1cTATl0oIleXlrXnFeW0yWInl
1FkZ2iC5iGprAqgkv41ZVrJ0M0Zralexq03vFB1mgwM4FjG2tOnOIsvZ2dgA
yAbK+VTIO9xvqgN8aRMo4Mi2tMEH4cXBvOYQEFMsL+mG6+WJaZUSfHOOVADw
q8rJpmG8yrVyfue7/+BUsePo5IjzVLywgP9llyhCfT5UDdnI5ss6enbqHD2c
z2T0y2mtpig5BMyFqhY47Ysqg0WodHSJbaAjj+bjh9u7yhEtQHPqNZGYg2Rd
+Tz9+hI6nMSxr3R4X2wulmqFtfaXJap+Num+0+baWeG5h2jWqqmcoeuqyVul
brvbR8N3WjqoxBHkJ1PlqZOCYL6bq1kfoWKq9TqJVg6J9wdAppZsQNfofKDB
gNAjsExspGvK5K+x70/QzkHGM1A2kUboUh46GilusG8+9pR6gaar1vWNWmdA
y1cUHuyi1tdVX4sjZNo6Tk/Zm+QsCF5yHmnJ55AUm1b9pUrbK+XltE8FOViN
j030Eenw5K2m6mIQ+5M9OGY53gbdd8Zx2rpCAZmTFP2XIgel7WHg4h6eZZZJ
idWlytmGkvjUbuD5C9qRidjzSuEICLnavxVKS0aweX5lIOqmQ/FmiUW7gKQM
q2DoKiEkVrZRabYtKzOh7qKnleVXBOvN3nL4hzZ1ZV35SAz8zDhSxQnBlxqk
QO3VwYr7eXFB1d8qSGGqVLfflVfxECDo1LpMTK3LTVXzMJ76ZpogLglahpHp
rhG3cbJPjrmVMsseuZVBqsS2WpNuIHE6CgwsQrPKiWVuBQTKKEBsIUDNPxhp
hkFMYLMlS8LPxKqVZvHF9jXXvBKfddB5TVJKre2aeVKBe6Bvu9f47QeRAsgP
LHIXBqdZLNQVpSioQ2XQUK9KcUkR80czPBrSeQwjBtavyskPXuwDbWN4P7dC
/HRoWTzVXM32kuj7LUh/nYxncmyklasCx0NWU4MOTYmWJRmP2gPrISW6O1pX
SWtc8X0dlOdZsq5Ksirx0qonQDWbRVYRdYNik4pwxYdAPd5TU67BKytM9d/h
2sJdZVEoLtgMPMowQ1miHm7IHOw64r2UwbqqyJIlUlMOQuVy4MiwqTKlggrP
shtcfMedxyqaGw+vUVQfRU51dhX7CqoNhSaIwgJ8iXos24I0R4+gGiD5g0TL
8CDEbe21tXSjDpxDXRq7e+JuvWQbK61RTBeLSkRIOjZFWk7rZ+o0MN/QfSBq
hEXqFIqSLGTQVO+3VzeCVejOGYNx2wygsykQe5npwaGh8QYJWJ4OKGIpkzML
4BnaA+sBHN/qApRCnoSyK+XOYIzo+SopTKnDeDCdSOpyY8O7eNTNh9d++0Jq
ZLcGP0rXj++xxcfav2FrCene8T31oYt61Cbv8OxC1nOhKO4FUVzcTc1P0QHW
Pw934eNF6e57ahO1kOmp/nv1s5luI9jvla7pm+TWsRPgaZwcvjiMVHfQtXU0
5rlxxWfcOaLGZdqTmjZ2JqFd6kJZsVKrVVZRyai0Lfa+yfnAlP0IlTSkcVWt
F/hL6snIO+EKOvzOjn5nVwyxShB11uYEhXdUzy/aKwHVwxkdNGUwJy7eSNEd
igtR90kHEr7zZ9SCb3UmHtFJHKpHATj4XrXZyhSkg0DDFaG16dWURFzjSpJo
n1kC5CI6IW/ey1fnJy9fHP7oOGqwvIukpaOXAGnAJB4lLK5jY4ygMalQFWHc
dCSWSToKbEgIcEDJHo8tO0lfoVzO1CFV2gFFjz+HzWTEeohD2CzD9hdwIOtI
Mz22raVv4+Gt8hmoeDs7OIH369e/SAsOP7JSrWTYWQzLcpnpwhMMkeKwxMGM
zindaqFQoKq0qsQgLiy54iRn1ppBfriNuCWxYwMZ3HYJM4EqKYEGmSk587Q0
JUVJUBC/X9RrqfSo0jyUlVMKshpBAq3BozlAH+SoBCeIQT3Dk76m+LyqJRcu
DUjuSWHrw1oz07EoDDmdH1u/SI53QXKpJ3DSpLkH5tikDjQPx8YgVYmL7GjU
IMTEV8+5FEN49VbrOA0iEESsclLkEYAnr8lHZzJpWS/CX2+bDoWpIDL5cTbE
quYcaWNMAxhBdJ3NxyOqqMlhvBml66CfOC11ikdusKzq0FTFxlA4Z1psDjJE
/3W+Oh4Ed8qMHvgisU5lsbbjN9LQpTCU1qfroyHpAWljnivLJNki4bnXU65j
HDoRFQWgcI44rV6PACbOSwe9RVUosok6lpMjUs472P+bqxBre3L4lLTlgU6E
Nllk47eKVVCxKOsWpVZhKYTgqSKqwvQVKA00lgDljoCSgcfnzbALpr9rrx/s
LkMSzfvF5WsqALCcwPI591Mp+jYIhWHo5TIjgiWMUzwIhZYYpKbrF2GLKvSo
GvHatSlwPAg5mBEmTiUW92B7bjuoHNjiSBxuFDYKTJC9E46P3rTK8ERYqk5t
bgvtM2mmnRoBKiJv8g/KycdH28m+tXKqNVJFYF2KhYgQa4sncl5a0ulFP3k8
jaQ9Elh02W/nyFtBBweSu3VxavUtutgJT7hTndA5+KUnPbEn3WVe8plktEPU
p5xYsaCQ7HR5UxOz3skGNZDT0XBKal42VmymyqXU9qsVkYx4TjNSzILmgUx2
yT8mFc0c4osxH7FKIOCUUPQ6W/nmhTiU1dLfZunIwEzWaUtIXDPLo4geT1mN
EIrGqsN4hQo69E+IpRyyqRBYcV5rk0EN3UcLTzpJgrupo++rscoltmVi6iSG
yKWifY3dLC40MzkUlRwtj1QoBR4OQ9Wag7ZZouwSRst7bKZNvAbbNBBo4Gx+
xgeo1Ta6jaqZEwrCl2gXwWxrz5RZoMeR1rwfrMJoE3oxj2ywJIgFCvtc6wUW
49TEepvG9O4D3dDqgcm91Im5QtKqdsiOfROCWcZixbZc9ZJMjSFLDrDgi9Pj
/svnz49fHB0f9aKXLFYKWy6iy/kYphzrSHJlJhT/PZdTDYcwONACsIql79n5
+Sta5NH5j2dS4GN77xE8AivUXz3e23uIqaUYUWVsESTfO1EHUlW37iwE+io4
kYJMGqLnsHPdmAK8frpGg2+pgtgpzjDp4gpAulk4H75itY6kndfO6gUy47Wt
bW3BrvFrFF9de8vhmaKQut92peQFSPFe1Qt6tbkuBsvDXGtGghIvMy+QSa9F
dCCsfm+HF3oGa45CsroHi5Nb1bdwaySsWiLhXtT/6RxhDPqIWA6ec2OEul7h
tgcCyTe+P7Tfl8YKdvZFsJnw8Kbs2i925UUGJ96iSYwUkrRHUq4D0yBqq4uF
sVQ37E96iVIqkt5r7OcI7/+lt7/1JOqjzf5S6AtRPriqeiHdd/tDfF6Mj6HZ
1uWRdVuuFaEYjQF5Ht+a6Yb2dHRh93cebwX3ZwaGDY3TNyJJCBM3v/Zfnh1H
z+B+wwG80v5dLwwEicXuQx318Xqq1vdDfLUEMAbxVTMo4AEHENHAHn+53dNY
NXun31bZ+bO4uJaAzMqeg1sumzdc2tvFxV3jBE5ba+BLXSFzFTAshkJZC4Ny
xbM/PYleIZ80/tFV78a8GTZzHzY4Na1n98njh8i4Lu2rMnRnXw5Z5rVgmq8G
pgpM+i1AMtwfNoEEfl5EJvqBrVuxygXIZIMs75JBPBl18ckwSGiuIEjol1Yg
WTxxmJq0A9WgGVSDICG5Q/gMauEzuFv4aJpTAUwQLo0UZ7gkxfHhtTq46gjR
sDUhaotOLQhUOwxrpE/DdvSJtnbBYDQFfUJka0XUNOOnnkaw4kHVkcJha1LY
8qBETtQw4a38ObkNHMYb+KvpNN5QUSL7wpMr96dkIJG+GzDbpug4u09QYRsG
p2ZCvrWPuhuZOe2+pxQjxRU2VNc6+qEIQZKXFAQl/9SarZhi7FG/f7YEzIZF
M8yGhQczPBHaEGhLJcCsf/a5YYZLqoEZ/rQ8zKI/faQ68qdV1ZFfvhR15BdL
HVmginwSNaReBVmP/nT28gVd07P0ahqXaFaiMIPpML+dceDE4tN+tL+9X1M5
Wrkt0LiAi5vNB+N0SJlRgszGIMUeNJvbpbpkRXbZhf9DRBa7GY7gJG+pwhAm
VIpz6CgJSwq5jNKrtGQ/DWyXxv7TT2crKFXWkTbKQe9q5KClz1EpTo1nGb4p
LleqYuSigwNK8RRPpiOmMJrVWTpaozT0VI0NOV5sZnjZRXAjs7Xe6qFFCE6p
I1bxCRxuWiqLsVvPnHeON522riokNmuSlXq6S+uRv3wleuQdXuK7UTJ/+VdX
Mr9yWreMQP7LV6Udf0pC2IuOUUooSkqKkIOku8c7TJnAF8nDPbWHaMN4BlRL
ib2HeyAbRV2ujUCPz/OxemOzAqXltfRfvgYtfbVzGn4lDMvZueZXDbaJJVVH
3zKxkIV9dYYJ5myr3ORySQyp3MHo7Nlhdxtj2iaDWY7FgtmBOJuj95d8/Phe
5aI6CNJE/SvQuzsp9uOsL7/cqfXlX8b2QhLCSrg4XxIXEYoUvlDwuZuU9SyM
dAzEdqhnxVdWIU51kbhoQ1zUiiF3hqgtrE+/fFXWJ1OC25iewtQF80PjsUpY
UAfy03lrE9MvX5WJ6W4AIxEBx6p8+4lKyzm/nSkKBqChriddFUvSVck73RKf
+lBnc3LvpldjF94kC5GaWScE4ZVUYcwcK5ahfCf9iw6iV+MEo5mkbgqlt1JN
OQmCRoD8/Dd4ofsX+Pz893VDJ3AUYwXj8EtJPIi1xKHTNzFEBuSIqzyeXcNS
fo1eYDJGFP3K14CjJH+NjiiagPVB+fwanepQKevzK4xx/Pqk+3APntiyvsc2
I/KDhsKvgBz/z9nxj08/fCAs2dt5sg1Y8itFYWIsSNJ8KDoos+l8QfkfAwn5
fn2YYOoERmIqjDhXEes+EuhQ9uXPveB4x1g1+1UjVXqvFARvvQTsg6jB736C
8L/TT81hhp5cc46VMIXqqKFk8/rolfnaS3tCC4zTXKCwC/vSGOpZzl7HMHT7
heoMVgxXx+12rAKpyJRMa96uW/N5/1Ov2ZnBWrOQzh0kjEE479StGbjTWTZ8
kwDefqI1OzO0X7N/b809cq+quXiNt3NelEA2htdwj17Nc06F9S5q3J3JLy1v
Ko9d0tgxjy0jfKGkWA5/ATle+dNAx7kNGEW/e7ScyjjdqqYC9Xk+zNHtPKnU
q2NQVJiAvrQVZDJn7WNTAFECiHVuHbq0WZUBVcszXD4bi3VBsrcfs1W/akNH
FQ66tfJcqHR1c7qUJbNLyiplOG30D4vNXs2NCQk3AMJlpJnAXaHXv8ib4t0R
Tt0jCSy6QxbanlNaF2k+TytX6N7D3u6jDUy03qR//5BOMa8P96CF2tevQShY
dn3+bXq4E6LVzvrewPLgzT17GEoBt/6Norwl3a76qaxva3/x+ob7Jb65s2MN
wwo8XAyyZP3qh9rYau6K6/v5b1arz7Ax4Oe/y/rmtL5da5h5njrDonY+s60r
NSaOqoXDUbVXWt87ht/unrWeWvhNAz6mleBn+TyaXqD1Efx295eB32rrXGF9
AT4U0D6qtDco2tih7JT8yXUtfXps692qlooy43jpZhQ+7tQxoJaCMChIX2S+
OZ6+TfNsypkHG4f9400reYOhoOslziVRm5sajk36wtBZr67D6aWC6Kh36cVi
UjD8As2lnRsRGjyQkYFbpd8Y5La4EJhY59tbGVAyqCniqvM2uEeI1SalKLmu
boakvl1PXuTkkzkWAEC27mVP6qpvKVcBSqTaTC3nxyiVjPgpFQCJx6Yk8WU8
TMcpLZC7JGKl6SJbarGB8qFYWrCL1YHxZHJsYQ9E/9Xpn3++wHTmZPpLRoKQ
Sk+mh4a3kvBAtQlYnSDhiao3ylxObfb6vA4fR6j2zzVXtnSMVFKIDOGhl7cR
sDtucqEAAYibIKIrpOpON/2m2SSba8F0UivXax+Dk2aq/nOlwTphNBbcyOTF
avl2lj9N8Sh5JVTJu113H5MLNErEXwVnxLlfTGaxERabU5zElY407ZGSFvzC
IOXiQiqpJTZ1UKVOpt/6iPexAdKrRXMGcQG3VZZmag2w0ViXWqHyx1zNTC90
Mh+XaWC1qsRfgsUwhvAy5pHRw8MYUykx7ZAs3sV1t5gPOGUmmgD/HMPKTlQu
qVh1nMpWUgKAOgE67d9TXh5lI2Y668oAoFAVtZN3Mz67bOq1MUIqRM2LEhhd
5zVpahkXMGFMMrXu1gu3jWeqL8aleg5Z2WsataVjGRXzoNrMdl2wma4fxlZZ
oacM9HHi5yQRVKWHspQdS6dY7UMVyWXGhJVdEet10vkEGajiBFKFcGGdWlXX
DJNE4zHWgdblWqkQC6x9ktrVAOUFuMuKZrrLR1Qecm1tnTePiDJKi18IwewR
OV1X1/ogX/AYC2oIzWO04yZU9ou9CKs5WD4Vdw1SjhJGzscp9wab8gyFSqMr
EPjuoDR7hkvGvL/5JbA+2qopPtYDLehtMsZyZYUqtkLZwoItzSeKSpZCA59M
6zJcnNU64dTWeNqETPTnq+wVFl+PNjjz2/zalGi+qWoxqctoq6+hgE/lPqAS
MuzZcCmSaqMmGaKOC6ggH1DBiakBJwiWDTUMfXzbMwTXk2twaBiJB4IX2Rwg
3s7omv36VoW26qqplQP1z3IyR5/0HjsmTx6YxSGSjMjbVoVLpYK6ALAkUdF4
UfACoHOJruhANwJj8+J8ShYC8hPO5kIj7BpHuvwQHxPgEr3Q1ayKRF7T+oLy
naWEuqD7GOQfbN5hW3DI8PFKShd9JeK0qrT0KaTpprF/A2HaLS3oVTr26nKq
Hqu31FxmzMVKTf2qeIASl0kS5+LdKecRA3LwTq9TKf7WV4Uh4tHbtIilp6aq
KBWjl74sx94UVgNOVRgx4SBIe/WU6k7g4Qq6bg3SD5uSgd6QMB2P4Z3RLa+/
CHUIQto5SsoYjnnkrBHhgzUxeCMjqRC6oZfp9iggwYnquKj6Hl61x+XaXSts
Nm0I5pqfU+ViZvjVgqKaqYylvLpcCfvJ+6qioo4RcGsqEhFIC+p81gcYEMnG
foMaCrYDTpXh4yOw+hU0dSvoEG2dJldZmSq9yvTp4GLGAeXBkbX8+k0bUvVj
0yk4omtZ8sOAGFMh4yfGvoYdUoG7/HxxusmbhtO0e/hYu7G3IRUjanYsD1Ap
ylZLOKUlnGzyW0usgdooNS6izwdX6F/tE4xzQ84AezFW7m2lZO72juZ6TNI2
Q+wM6SEK6ngUXn9RJit9UrzkbmmzP4kHY18O1HVxVBcIVi/iYQ60w3puCrca
CHhhK6ooPUrI4Di5LCUWDOuXmM5/qHzAXq9UCViDgLfTeCL+AmkLU9b25+BF
DW4tvAzFGwUb4aQj3QeH+CsVzWxmrtex7zeIpRAIAhIHWN1foI11d+UswMYH
wGNfMRsFZUjqgUb30FNCyT9YIiGjgn/CbLECN4IBOUrxhlXleDTyNg2gyHUH
4nV7knVddbRjPS8R29IBKxAtrno1fEf+jQNAyXh2wX4qPiz4xfJqHKj5COy4
/ytGX6UiVeUcv1sHVbYxgk5iBB3EpsTp+1XP4WwhQ7E3FYvWtcefgp5NzMA0
RODO31YIj93MybWoodagaqkaa0FFmOlhfXuU58khdBBR5dIN5jZqdVxTdWd3
E+vMK/cOPKqxjyPfUSw0YbdB3BG84ZoaK6CNP4dBHQsRGAeQksFXJgz4NXGY
H4XLHnhtJMgS4zQRQMAw9Ppc2WqcwKU8OT5/6oJhARQIuM9BWkyxd1EtTMg3
MZHH7gI07sR3dMcc0NIEf05uDxpwZn8fkYadjWj158rHNfD7LnqZp1cpWgHP
bIrlw1gn5XAIouibAdDSgXZ/KbCGGj3UHrDSiopAG5xvNYg+2t9+IhClYYJw
pR8c0nXidYl2pKzVEDUYx7kIlJSB+xGQbJh0NXhyaOWdw/NPyoxRP14rxOdH
q+i/wnnVJfuGDqs2P3c19K+ZecUb8FjTlMCgig292x/WPOCc42Gr/LX2AA9k
LuGQ1kn8YZD/ceHaBy3XbjJlapNXV1/7YLW1l23W3uQNX33F5WornrdZccA/
/kkxZ77KXoarY30l62DVpQ9XQ/rh6kh/h0tfCeeHS+J8ZcGrr3cljB+uiPEf
kTS0+g5Xugdo12+FTWEpJpxo0T65YtXdUjLNStsdFi23G8ox+e22Oywq271X
XyUxJKnUFjZcTby8U0nl8SMsIlorqbBkKNUG71RYqRG4zIz+bHWy6M6eI4za
r9gyKeHMX2AhS2JCpRjkMrivNgNM4E6lpUXAq7Cp3x54WDxyFdDdhai2CFyV
ORboPbuLgaWiKlcH2HJUVm3l08qJiwBZmf2jADnP09XBtxxPFuvq3YqmzdAK
THYXt7T/Ebd0WbFYbeROpeJFUPsktO3joLacRK428vEC+SJQfYF0bVl1QG3l
t9AGFoH3i6F2y2ogvIHfXgFpBnBofR+PwM8l8XFVWC+t/6jN/NbqzyJgV9f3
UcDGXm4PonsPN+CPzdWBHda+JNn7XZnk6EhxY7WO4jK21DClhUkWeTxaTe1a
OKXRv8KdHba3erq5gypvqVxOh/3jLvu2Djkihi4a/PwjZrK14G4+p7WHofi8
wlSPMZMFQ9Zq7POYXX143k2n3ePDIxvneQe6kfVR46pt1HHW7MbviCzveyxa
rUujh+3/qEMHE2hpYYXpvYohkxjelUhrmvXKyNapY3CCgHj9eHadTCja7yi9
hB11nyXj8QQd5hjxQaGeGzTWpjXAVZ7NZ9W6gwpZzq9VpVIOwlCtGrHxGqcc
rFMkJKz2dZGsd6L1sxKgHeejAvCB3qD4ieN32KoYQPI2TW7oMSdy4pR7lIzW
KRDXqj/We6gibbZ3HiLgM5jRHazyyr7zSq/y/NUcDn3MhVsp3kdC2U0Z1oRe
6Ob0AsHhkPqyY8YCh1/GwyGwc2H5rfbMSTrYrRODIKrvrFMaQlHZzRMPANWh
kZBQUS+K0pF2L6OFYDl3rDTUBCTOYQDCSBhK/Pn4llnrOQa/cRsiEnqKCuo8
2t7ZskM5sT01R6txcxVrTt0RJpd9cOwwnAd3D0Ks5jQRCrzgU+G0ZRxd7dTK
YVCxtT/9B0lZuUT/YmoRBgCrVAlkbQyywtq4tWc6K2SEGPkFt3IW7biEdbe3
LeDk/aq26cNsPJ9MdQizvmYw4IFFeqVNyozCy6YYxkhLU70ME8CEJLd6Qqlo
WGqiFf2QDGMMh8WoGYzLzuKxjkjS0VFpoaFhovbzRNquSYwux9NhmlI8LGvz
NHAMWuSA0k9yTOSJIo4eo+8piqxITMhcjzZa6Kay1GVThAOr8PGUHuL4H3gf
m/booDsgXFN4Wnpf4xKODCow/heBo2W0isMN2vGEEc0wfichJsDXQG0Cl2pz
LZJBVSdgtlfqVG9mH9ISzHRhjiU+JB4MEKv1FcLhpAUagU69SgkM+PI0/cdc
inDqJt/c6JNr9r1NKBXpCptKImPAICv7O86VoDqPGI5I3/JIJti3u7P/UHFw
bnJGzxO6jpPpFVCWbcJ969bBhlrRt8qkFKrYfbi/v/sQAQRzPzKx37gQ+BJ/
raxkEr9LJ/OJWtFOcEVh9lFZxBVxUslkCc4mszgPBqdcsF1BU3hb9sz0Pn8j
r9ts0qBSSXLrucI1VbhJYYscK5FaTtFyqAohvcpBweB0fL/DyXzy24y6zVHc
HV8/3YdPiSc8vTum7MlaiZSbnHAOoG59y9HkNJ6nUgxAkr00dK5yC74TmZ2o
JgDmKstv3a1zHO8rnAqplqaXAJIX9O2LbNp9Zf1Co3oBToc+8KTQnBu5qSil
TOztjQidJXKBLDDQ7YexC3U2o/wv3fpQwEccgzO4KQrtTXJri4BU1V26orsI
vS58pGNG42SoseoCWSRaWVDr0dKptArz2gA01yILeJAWlSVrLbnW1sf66qVY
FEZXE2S/SaVfvlRKU9LtApU9LIxuFJskV5DQyokJFVlykFxmuYt/dO0VfDqW
tIqngfLGHDt/jyR7DoU3nbjLc/IkVnaIJMZF2bwcV80AvrQaElZtEudKq0T+
qIu9MgkVRiQUii3tpiv1BpFYtBOcMFPK5N5hZ9ymISNO4RBCu4IQxYzVF6N6
RHQk5wJtRwQcmQVFbjslw6cnqSrornA5KBDt7OFWd3Y/oZxliVl7lpS1uhRV
TLCVZu6KNzBHSLpaIPV4BpgqZsWsYoQkh4VIZtlqwkMvIwssmM0VCnSFjJBU
oDNIqnJBM5N1WLdVNLKWWzv1I1szaLsq3jee/I0nf+PJXzBPtgu3tmWl7crC
fuOpXylPbS+mta0P/HF8mmfRKa2LprpTrr3U3HfJwy3W67HtUDVZzcGrLNyp
LLsEDw/WIv3Gzr+x82/s/Atm5820u+ImEgobKiPd4cpPVHYk7EAS26vweXa+
eGy+qqqHF8aSQEDaCK9tadkC4/akPtwnFS4O0B3z3SeSKhrGvlPRIjjPF6Kz
1xQ8v2OuXzPLx/L3cL33evbu2dJDvH1p63movus3rv6Nq3/j6v96XF15fy1q
9sVw9cDavnH1r5mrm0YF9QhhghIUp+UDJY3aMHlCq48XFUIodveiQniWOzUF
xJ793iHvWPY5n0ulKiMgODxqbe0j4yi5EKfPKmOqjponmuKEDW6KByiQET2X
R/F3u9QzSR9W3JkUFSuEgGLNUPgXxo2oUpQWv76kytOxTaQLVeB4gIX7sjdS
97sTDeb0GLct4Up87kVS73PVWAn6KjJ+yQzKVUyx6HIZU1HXCKutlfMRkkmB
F58C1vqR90qstgw4lrlFLr3wbWahB1IzhUsmY31gLOk2LKfEZi4dmAMvVaFs
xMFUZWac6DoZMvMcyljwrmobg8NaBTGNEClBIWZYrIGKw1XrRUfZ4BeYzV8S
BfONhU8aYYCjJu3Stc71gglV7DrFHWUc9pckpUSr8GQUvnOpd8TQ4aLxBB6q
80o9hhVuYpwgEQHqEBoV/5jHJRnzzIli6U5h/D1B9SQoElzBaqz6xKlXq8aB
gq64R+zXBdycCl5JvKAuTDiac+XZhIKH6GGMRJSym1bUI9cml7HEucgdPLnu
qTLjA9RHyWyc3ZKMyvz0nxmVG46vrgJknbbs1CsvE65VqvsXEcSxzqlTZQ0G
71syYDpVoZrMewXUci4sN7sTVCOvGP5aetXthFvJ1jQv4TvXAdWSes+fRJZG
oVo0Sa1awXthOiKiph5WiZqxxzPw/N7G6ZikL+qny5ef0QnrEUsVbPhdScVV
ICDclFbScQVApLpKX9HViqlBQg2e2mLZTQWHmCwq4zcdyrFLVQ0hQ5VnPjWk
l+gOYzYAnlhswZGELKRrAuccx5GQ/UKVs0+41n3lmFEElKhtvggK2UDwRpjS
Oipv0aEx5kucZqbaOnOnIhZHDC2gin14Na5QNCij6+wGI4lvHR2HxgDYyZB4
RlgZU3qDpP8kCIwAF7k+vAqwI7havbSsYpD26FRkU8K56XuSSuCfODKcSbfb
Bd1w+IbaZ72LkfqxHJDIP1STLIA73OT0nUIRZHHy+A0FOjt9AWAVWPtRlDCv
IinxpPfv5f0u3jmAexd7Q0wknwiUPF0El5iF8Bf5H4Sh/XivOqI/HI5S2GzK
/r2qaT55+JAqiF+TagN3bD5USloOmDoC9jIzIako76lyn34tY1HwJUxSwWww
T8d4fh7TxqYGE7qKWIoXZcAxdb3IpuZaML3Qmi5p9XgnEdFK6oLCipAq9VwR
rYjHSlfkIsmxOK+KFbVasuhHspspcTA46IS06MqIBbPRlK0XpqR1mZnCi5Va
+qW0dXEXQid5eBa9mWY3PFFt/fvo8PX5s4v+6fHRRV/V0gVZZ8lXYS5E1rPV
Jj49s0oJny77tjV3pNvH6DLv6ZTzGA7PdGedoXTVEU5meo+ophA4lXT7QBhz
AwbBD1UQG9MP+ZTRWIQYQyYwfP6QngfRARtlIo2061hj3dqziEwh1/H4kkCO
2MD8Y6Aujy6oixVkMbUOqz13YQc6zniTuwzFkgqibpGF+1iU+K1u1aFLksMK
xnBnS7GyqtADhKGFClS73j4hwG2mzNTYQ9Qyq0DMTUaAVo0I8CFiNX0jd/mw
EOAqQeIS+49TGWPVaodZs7brxGkebViL7Dgr3CT0keBrZx631w0fT78jFNfZ
pKn/ayK/1/PiYji9XDfdFOomqg7ZD49Iw1FGrS5nDNxECqLPqbI1CedpDqwY
lRqsYYw8GY4VCRSfqz3NhKraAiFBGW9g5UDSpNq8ZPormQr1VI4beXlyean6
ThCJF2ugsU3p1gI+RktbKXfn6gbhS9KmIcHa2RRiIpkBDb0qc+yFwgX3pahv
DIxs6lT9BZXzzSYjXIokwG4cFd+gECByAYAZrYxTnc0cF/pi0Dc3aZE4V0SL
ZIMM02kX3AwNI8nUEGKhMBe5uMBsyInLkbrTNkcYk70HBehri/VF+XyqG3zf
uxf9pN4Ulh+9dHiwJXaEhQK2d8ojgCs4FEhbN2TISelLixVXOPFBYGGM9yk+
xGSvCKIJVnIXQUtRAtVGw7R2YEbGfQLW1v63+URxXLy9wlQrmGbRB3Ch6XN6
tsYd/Fo0+Wv+WY3jBKJcbON2H5DpqO04z7e2o991F33+2HY9d7WvuxrHhc9O
9cFF4zzf2ol+/cNCAP2u5XpOjuT+GlJZrLIv+Mg437syyfLj2HSk+mD7cZof
/MzjuOe+u8q92L3Le6HO/eSOzv3EOXdDmP67n/u5UzEeT53ZwLLjbHBrgK7h
EYJLmy3Heb61d5f4sw5bYnHwo/HHRpsKDnzt5y4S98rj3MG5798lv9BagOn/
tdK+oqhGrVp+nOYHW46zDgrmhRic7M2h/LbMOCjiKrvVeqW9yPrn35cpQ29t
62DpceDz/i7WQ5/kvhShuUhH96OD6Pr+1vb9zirjDNMZiNwXxTwtkwKH2ums
tB4pIYsj7HY+Yl/zPL2YgfaJA60zg19fdpym1tmfHX8C6v2B82DLcbq+xu8R
kPb78tiFQzWWXo99O3hZS44TebSCGrfFhii2H8dZC5k2nAdbj7PgwUXj0EDR
K1X1LL5EXZzr+lHfZN20uI/RSoVDxfldsYkVCRnTqHaDGD1mCYzV0J2b37fM
1GittF5nZ0G+9qUy/Y9WfuWhjWnm20kwLFE6Lm+2YfoPWwh7C2XBrwPOKynR
j9oIRYtkps+jRJ9+U6LloY9WouWhO7hfj+/6fh0fHsGOTOSXbTP8ptQveHDR
OK2ZGvrFXK7W/+/O1A4VJobs00uM89GarBqn6ea2GecTXN7GCVvu67TWVrDc
OB9vMdjeukvmuOjT8vL+KE6haqdjDGZIMXSh1+vJwyDemz6vqm2p1du12kIa
K/3O86tkTc1bXnuNiXXwOLpi31L4zIZVwg8Ff/2yeoWi5IrMJO2qOoEYwVls
9vRq0YuUMOV3fGxFVJQYowNaTjrq6PHJ96YCBLjnblqa0dCx1ecWpdVRT8+W
HfaLo0y84HP0kM9icp7po//ylomn+EbF7mL2k427v4+m6PvkkB5+vsEXLMkG
FnO32asCC6V+pJxDMYspo4m4TkeONE8mCUZ3sVc2pmbk2Da45PcxxNO5XiZi
vCjmVsAjxyEwniHn3JT1U+TrciELX97ZyUNfjvl++07dondovv/XkhTveJwv
xw2wfaduY+0GCKPPx7gBHCT47Obyb26ARev5pG6A/W9uAPXQfxM3gEtA2u+r
0Wv8zQ2w4PO1jvPlWNi324TjLBTXvg44r2Bhl4fuAM573yz1rcZpfvAzj/Pl
WOq3979Z6luN8y+Jh43G6wf5V2i83v6X9ux+QUbwO/UQL/osXI+VAFDNfliQ
+rA474ESCAuVQah+owys5sRKzPNAHdcp7DMvlN2P2cDvlNld2dHC+ZGc7pHP
p1NT0ZKyTmiLkrhGf1NKBGfwNGRosBWy4KxYzta6yeyES5OdVs1g0jkdnKqh
fuSyOnedpbEgT6N9lsaCh1qL0QvHaZelscgg2Zp8tN3XXY2zSPxtAZ9W5rYF
BrfWWRpLwKcxS2OJcRrFhc99Xnc1Tg29suz+C8+9nVrY8l50K4L0avvCT7PI
uRScG0TOpcZpwKGW8Ol29f/XPNpunKgiL2CFgaXHwY/rMlptPfJp8NIsNU6D
rezrvKeL3Cptx1kkJra47y3NE+3o/KLsiiXg3Jhd8bnPa5Fbpe04i9wqn31f
C9wqS6yn0a2y1L4asiuWHKfWrbLkOLVulSXHqXWrLDFOo1vlc+PPIrdKe/7V
nF3Rfl/N2RVLrqfWrdJ+Pc1ulfbjNLtVPtu5c4jMv0Z2xXJC9Ucom/LIIltw
C2Z957bgj4JPa2T4CqKSfxtN7aM09Ief07G0BHwaHUtLjPPfTUPPW42DqT93
SATuUkNvciwtM843Tb9hnDvU9A9nXBbVKqpqIeJnlSgOL8vE7u0otd+RtlNx
Ty5EO+p4DJRftriocgHkCboEyiqwZJ/CP7CyK5acSsvoOh5xlHCBYedYrGvU
jcfZNPliWcgiX1NrueTjjQiPP6evaeF6XF9T9EoUbik4yzVR0ceEPUREG+/m
1o+qyqeqlD0mJwwJKm4JWdVkQKn0g7iwUdCaTqr6XWLlOSwZJvUsVW1op7NB
X/oaPNnZ4r4G35F/jJ1THXE+USS+6KU6op2rTlKOBxZefitXaprgnYnzW10U
l6oKcrIExfUP1WWLtVOoY1Xy1wXjMLYeNjvLCtv7Res8iF5kpamR56+af7il
ZV/lWNGR6rAveEv2ypWdE1NYMxomeckHkVAxTvW1KSzJ1fP7lHOA7zakJUgN
VSo/H48maWn1i9fkqMyG2bgjdUS5cDOVsn+T3Lqr4XJ7RfSX3v7WE4JyH/+w
n7FqMt9K+e7JZD5Va1Oz2WcqLkGqwg3bgZ1lh6/8YQqVFtRiBCumQHKLnEUc
COm0p8CKvaEBpQ6nBWFY3/E7ZC5piccIsASoII5dzvHJ5B0stHSdrAbErEfc
XKdUthBXBTCpS3xKqbp8luORaTR18p560SH3ejG/eLjA14iTnKz+I84oHf8l
vvZcHxr2N0qv0hLQjsveYyVaqiMKvzxnYhoduu9jVe8i2nh+2C82icHN9Raw
hqPqGNQFTgTv/P+tnVlv20YQx9/5KQjlITYa2TrtxEEeUtmp3TgHYucoUECg
RVpmowskfSXQN+tbv1jnPzN7UKSUpClQNCItrpa7s3MtOb/waHB4HOZXEQpc
0zRnSVERIurO/LJJ/6H+ob7AZUYVgBXMF0/hnFqYcH35GaonXtLhDdf/R6VF
W1Wbxg2vfpmFK/MBaeeFa8pC5vfTKapGjnYj+3GbG8qvFzovNAiufPfGbh7U
/pW5EhnXzb1CeUpukSTvVlk3TrA8t6Hk1v5Jfum6mZUt+cEjW59SZWQynpOk
XU1FU9qbW7mYBiSXkXq0ru9SDtLv+0AfFSC9nHL1bp521GRMt205ZujA1bvo
feMuUJnxP9/GUwhsqj2QAbc7FM43sIiNdSvSR1BEK27d2s5qYyu91bOu0+im
vr/oLXfrHq4sfH+BRMq+Cb1MvgsvsoOwko3n4rCXKxWC4RUYuXZGrarCeawr
2hi2ttTeQXh8fv52F7o83PolPD892z3E/+TGtzebiY2/US3B7Wnt52c/8MPp
5a5R/FCBX5rIQXrw9dwJh28ecU2SZQxvECGyEDD5sph+e7jG9BsXBw6U1B91
lY75XVTG6qzpnLX/9U/JyCp0xkhroBrZpIXqbqdyrYI3KOaFchHuDXWyona2
8iTBY0hCk6ffkpLPD8LB4eFp+IqswMQ6o6M4njSnOLUMvh6Q70guXDrLLkfL
0rM57iEdtBE85W0l9XLzoCLIFP32AvrWG1ig8K2pfpwLQuhVtFjQDeaBSzAP
uUIyLtvHdfy1j8mF7lpuDT6eb4Oikk5LF0mCnC5q80Ufz6ERSI0oHuGVTGRw
1y/oS3v07zX9ux+M+Pgx/YvjJ8Hn0S1OtFv0aZTjU5u+K1nFZ2GnRwcX0Rgf
+3TNCB/26MMFPnB3ZQZOHJkhcNtJ9KVWYESKmg5KO0RoIjCJkB4ddWkwpxdD
8tN5DM32DR3Qb5MlHoopxO2k8bB0Zj9IIv6Nx4GAigpaCbg/xbQkmdzkNLob
TvMxow34Xnn6RjwEnSBZUKdtm+1u4FDGOO4FnO8cCiqJT/XdENRyh3XG0Fce
jPpvM8wQUzMsIv55DE0Hc+Sf6GIyvRNdTI7/jW6/VmxJtsMHl+nYk/ewIE8x
edbgRcFngEwpECpRFE4+1bMG4A2NJVaOIVuE7xcxu9xm/RjSUfNa/lBdRXj0
8APJPiSy2dpnIBhFrw9MC619OlxCF718f/iGC1H/JTAq+1Qh2CfWveZX4+XN
eGOy4SLJ7+9QM06cAHsHQ4NrZsMHEzsiAdiMq9MzikJOG64AMACJaSXEE5No
VRYTdFBdUXlBLklv0fpozgTFyHrcyR2tJ+W4bIiLXKl4j2y3w9Svm1QiQEZw
mfw9C9LQW3mu1Hq+wwQyeWwSAQLs/BdLYPjWla8paiRNyzg9vqVBqVz5O01e
DYBaw9XHCsvxKELiYdU2pnE4x79rQQVmMGT4Lav9KtFC9PDvbuqdcLABHsJM
Cg+IBASNHMUon46m0ymjFgX3syKiwqwjSXUiukeHS4GvASlI0xAPSVGIlsDU
O6WhjDaZrex6klR6zcAY65edHCo5TQAQcSxUSA7kpNiCnbJSmYfCMCNK25T8
zGqKrZlmMW8OvPr9ICwIJcDYUsAbGI+FVj7CBEdCQG1GZIClJHupcRbI3Owg
3V7N8RSvflV5dyJtTpLsvVfFTRhYCif0TCR0B0VNoAGwBMUZubRNJjpMos9J
k4ynSSHligWEeNnfDBslDS14P32oX8ypyu6uzebpWlfi1oUD6qAuO5liww6S
SUF4yJLDsFOTvBj5llftHV/3on7UDyr779e5v2Vd055JablnvCpPG5akz8Je
9DYoYo7Gs3mO4HY2Lxy5Zs3kr1OHLsETZvPJhA4nwjt8FRW0JDetaWVDmu2G
T+wbG83AbRzTmck32uCLStEN6/GLZAS0XjrjZcOtnQLXkVg8HLy2NZpLI1u2
BOVwr94iAPXCGj2WsY0uLgDK0zRlIcg3MlgT4JzYwWUsF5qGbAkeiZsxJpUR
memdzFdhSIMlxJ5/QewMhJxmyp4H26Lmku9SeH1ReHuewuvTISu881UnXAuK
iH+P6jal2Jd6zltSj/ifDidk8KkngknqMAbjStKLEiIY+soK8QDnduuiH86x
MjzVRciwrTML3RQlFBnCQsnwWG9OUq9nVgsLVs+kl6ZzRpMWUariFqlitg5J
fE+WgBaS+B1s1uUOMvBE8lJXmF2Htvy06ncImO2O6cl8thoRsahTNFq/8Fnu
TLPGBflJaemJtPQ9aenR4dJidWu0jOi2xSQaJWQ1YjYMAjdx3qdk3WG/KJDJ
V/JZUXlvM7ekTbUEO1ZWJ2QCZsLPtaAQRwNj++jhYHLPzfSHJVEoIb9M4maK
JOg2ygRaWDdrGm8rDEUalDdKYC5sHofTnqWwla+uqVNlyvfYyFckWdPnpSbK
RqqeZWqsMbYEfI7pvVqq71A+zocSXcUEmQ3i0hVx6Xni0qXDpfnBWPnRwn7m
olqk19IJ2wBj8CoBZqPcc3Gbqj6G51ZQn8epvGyE5chORZECr111K5qtlq4n
cUY4ERTpsi0pkJX0BFRd278S4DYKQGbgeHKngPdO7oqaFYg59ShaJodUfsfI
xdWPViygn7wzGaqR5Ac32Iwfnc2OzGbXm80OHapvLCjfawa0k+dJDVjflbsy
0ww6UDmyyGrAx6oeK5MpHkaSjc2EzOkuFrLRJ0PRcKPTkDuxyUaXzPJ83iMG
icdVmldlGXJFttQzKMNuScHnyRT43JHddaQF5hFjSaHt/r4mO/Nzyrgt89Hx
5qNNh0tfBksD+jK5f6+RsmrMuv2da5WWJBUq1r3G5goTxptupsXNmneLYx4M
4WLOzs92GeuVYkLgupMJ5TW54/QCY31NR9SirQjtpqFpydC0vaFp0aGneCqz
lkTxUMLvqqswK8cQTiMP25KKlK5x+vXK+rATgcMK1tUO19uM7p9mhewxcsaJ
H5c7Y6NZ0rnDuWklNf5zszyTckerpr48bqIlLUiTO2Xy8v7W+f/mZNKQoTAg
rbGxewQgknNxwueQLxJyaBI/a1zSQksa+r6pgBxJWlL69YxxwHRTn8OvX78O
rjL40piUaf7P33m+XC65L/hblMHchr9Cccxm+IuaPd1wFUoknO0kicEe3ZHf
WxtB8vW68cCwZeuW+Nj03HslNtItexoTz+7UgApJG0WkI8QEFVGToqeCH0Dg
pyGwjMLbKC9v7EFCzm4RDT3MySbO5jciPM/HNE334YeT16/ffHjO02uk9P27
o5fPw8HR6fnJoPn66NM5+se868Efb98dnZ095QHRxo87rU7LfuPs5MXJWfMY
kdXWb/wYQTTOEgmAn/Q7e/3O9k7wL/l++yp2ZgIA

-->

</rfc>
