<?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 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-key-groupcomm-oscore-18" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Key Management for Group OSCORE Using ACE">Key Management for Group Object Security for Constrained RESTful Environments (Group OSCORE) Using Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-18"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>164 29 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <date year="2025" month="August" day="28"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 132?>

<t>This document defines an application profile of the Authentication and Authorization for Constrained Environments (ACE) framework, to request and provision keying material in group communication scenarios that are based on the Constrained Application Protocol (CoAP) and are secured with Group Object Security for Constrained RESTful Environments (Group OSCORE). This application profile delegates the authentication and authorization of Clients, which join an OSCORE group through a Resource Server acting as Group Manager for that group. This application profile leverages protocol-specific transport profiles of ACE to achieve communication security, server authentication, and proof of possession for a key owned by the Client and bound to an OAuth 2.0 access token.</t>
    </abstract>
  </front>
  <middle>
    <?line 136?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>The secure communication protocol Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> provides application-layer protection for the Constrained Application Protocol (CoAP) <xref target="RFC7252"/>, using CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/><xref target="RFC9053"/> and enabling end-to-end security of CoAP messages.</t>
      <t>As defined in <xref target="I-D.ietf-core-oscore-groupcomm"/>, Group Object Security for Constrained RESTful Environments (Group OSCORE) enables end-to-end security for CoAP group communication <xref target="I-D.ietf-core-groupcomm-bis"/>, which can employ, for example, IP multicast as underlying data transport.</t>
      <t>Group OSCORE relies on an entity called Group Manager, which is responsible for managing an OSCORE group and enables the group members to exchange CoAP messages secured with Group OSCORE. The Group Manager can be responsible for multiple groups, coordinates the joining process of new group members, and is entrusted with the distribution and renewal of group keying material.</t>
      <t>This document is an application profile of <xref target="RFC9594"/>, which itself builds on the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Message exchanges among the participants as well as message formats and processing follow what is specified in <xref target="RFC9594"/>, and enable the provisioning and renewing of keying material in group communication scenarios, where Group OSCORE is used to protect CoAP group communication.</t>
      <section anchor="ssec-terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Readers are expected to be familiar with:</t>
        <ul spacing="normal">
          <li>
            <t>The terms and concepts described in the ACE framework for authentication and authorization <xref target="RFC9200"/> and in the Authorization Information Format (AIF) <xref target="RFC9237"/> to express authorization information. The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749"/>. This includes Client (C), Resource Server (RS), and Authorization Server (AS).</t>
          </li>
          <li>
            <t>The terms and concepts related to the message formats and processing specified in <xref target="RFC9594"/>, for provisioning and renewing keying material in group communication scenarios. These include the abbreviations REQx and OPTx denoting the numbered mandatory-to-address and optional-to-address requirements, respectively.</t>
          </li>
          <li>
            <t>The terms and concepts related to Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>, and COSE <xref target="RFC9052"/><xref target="RFC9053"/>.</t>
          </li>
          <li>
            <t>The terms and concepts related to CoAP <xref target="RFC7252"/> and group communication for CoAP <xref target="I-D.ietf-core-groupcomm-bis"/>. Unless otherwise indicated, the term "endpoint" is used here following its OAuth definition, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at the RS. This document does not use the CoAP definition of "endpoint", which is "An entity participating in the CoAP protocol".</t>
          </li>
          <li>
            <t>The terms and concepts for protection and processing of CoAP messages through OSCORE <xref target="RFC8613"/> and through Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> in group communication scenarios. These especially include:  </t>
            <ul spacing="normal">
              <li>
                <t>Group Manager, as the entity responsible for a set of groups where communications are secured with Group OSCORE. In this document, the Group Manager acts as Resource Server.</t>
              </li>
              <li>
                <t>Authentication credential, as the set of information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are 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"/>.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Additionally, this document makes use of the following terminology:</t>
        <ul spacing="normal">
          <li>
            <t>Requester: member of an OSCORE group that sends request messages to other members of the group.</t>
          </li>
          <li>
            <t>Responder: member of an OSCORE group that receives request messages from other members of the group. A responder may reply back, by sending a response message to the requester which has sent the request message.</t>
          </li>
          <li>
            <t>Monitor: member of an OSCORE group that is configured as responder and never sends response messages protected with Group OSCORE. This corresponds to the term "silent server" used in <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          </li>
          <li>
            <t>Signature verifier: entity external to the OSCORE group, and intended to verify the signature of messages exchanged in the group that are protected with the group mode (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.3" sectionFormat="bare"/>, <xref target="I-D.ietf-core-oscore-groupcomm" section="7" sectionFormat="bare"/>, and <xref target="I-D.ietf-core-oscore-groupcomm" section="7.5" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).  </t>
            <t>
An authorized signature verifier does not join the OSCORE group as an actual member. However, it can interact with the Group Manager in order to retrieve what is needed to perform signature verifications, e.g., the authentication credentials of the current group members and of the Group Manager.</t>
          </li>
          <li>
            <t>Signature-only group: an OSCORE group that uses only the group mode (see <xref section="7" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </li>
          <li>
            <t>Pairwise-only group: an OSCORE group that uses only the pairwise mode (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </li>
        </ul>
        <t>Throughout this document, examples for CBOR data items are expressed in CBOR extended diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/> ("diagnostic notation"). Diagnostic notation comments are often used to provide a textual representation of the parameters' keys 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'gp_enc_alg': 10, e'sign_alg': -8} stands for {9: 10, 10: -8}.</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="sec-protocol-overview">
      <name>Protocol Overview</name>
      <t>Group communication for CoAP has been enabled in <xref target="I-D.ietf-core-groupcomm-bis"/> and can be secured by using Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>. A network node can join an OSCORE group by interacting with the responsible Group Manager. Once registered in the group, the new node can securely exchange messages with other group members.</t>
      <t>This document describes how to use <xref target="RFC9594"/> and <xref target="RFC9200"/> to perform a number of authentication, authorization, and key distribution actions as overviewed in <xref section="2" sectionFormat="of" target="RFC9594"/>, when the considered group is specifically an OSCORE group.</t>
      <t>After joining the group as defined in this application profile, a group member communicate with other other group members using CoAP <xref target="RFC7252"/> as well as CoAP for group communication <xref target="I-D.ietf-core-groupcomm-bis"/> (REQ22). Such communications are protected using the security protocol Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> (REQ23).</t>
      <t>With reference to <xref target="RFC9594"/>:</t>
      <ul spacing="normal">
        <li>
          <t>The node wishing to join the OSCORE group, i.e., the joining node, is the Client.</t>
        </li>
        <li>
          <t>The Group Manager is the Key Distribution Center (KDC), acting as a Resource Server.</t>
        </li>
        <li>
          <t>The Authorization Server associated with the Group Manager is the AS.</t>
        </li>
      </ul>
      <t>A node performs the steps described in Sections <xref target="RFC9594" section="3" sectionFormat="bare"/> and <xref target="RFC9594" section="4.3.1.1" sectionFormat="bare"/> of <xref target="RFC9594"/> in order to obtain an authorization for joining an OSCORE group and then to join that group. The format and processing of messages exchanged during such steps are further specified in <xref target="sec-joining-node-to-AS"/> and <xref target="sec-joining-node-to-GM"/> of this document.</t>
      <t>All communications between the involved entities (Client, Group Manager, Authorization Server) <bcp14>MUST</bcp14> be secured.</t>
      <t>In particular, communications between the Client and the Group Manager leverage protocol-specific transport profiles of ACE to achieve communication security, proof of possession, and server authentication (REQ24). It is expected that, in the commonly referred base-case of this document, the transport profile to use is pre-configured and well-known to nodes participating in constrained applications.</t>
      <t>With respect to what is defined in <xref target="RFC9594"/>:</t>
      <ul spacing="normal">
        <li>
          <t>The interface provided by the Group Manager extends the original interface defined in <xref section="4.1" sectionFormat="of" target="RFC9594"/> for the KDC, as specified in <xref target="sec-interface-GM"/> of this document.</t>
        </li>
        <li>
          <t>In addition to those defined in <xref section="8" sectionFormat="of" target="RFC9594"/>, additional parameters are defined in this document and summarized in <xref target="ace-groupcomm-params"/>.</t>
        </li>
        <li>
          <t>In addition to those defined in <xref section="9" sectionFormat="of" target="RFC9594"/>, additional error identifiers are defined in this document and summarized in <xref target="error-types"/>.</t>
        </li>
      </ul>
      <t>Finally, <xref target="profile-req"/> lists the specifications on this application profile of ACE, based on the requirements defined in <xref section="A" sectionFormat="of" target="RFC9594"/>.</t>
    </section>
    <section anchor="sec-format-scope">
      <name>Format of Scope</name>
      <t>Building on the definition in <xref section="3.3" sectionFormat="of" target="RFC6749"/> considered in the ACE framework <xref target="RFC9200"/>, scope denotes: the permissions that the Client seeks to obtain from the AS for accessing resources at a Resource Server; and the permissions that the AS actually issues to the Client following its request. This process is detailed in Sections <xref target="RFC9200" section="5.8.1" sectionFormat="bare"/> and <xref target="RFC9200" section="5.8.2" sectionFormat="bare"/> of <xref target="RFC9200"/>.</t>
      <t>Consistent with the above and building on <xref section="3.1" sectionFormat="of" target="RFC9594"/>, this section defines the exact format and encoding of scope used in this profile.</t>
      <t>To this end, this profile uses the Authorization Information Format (AIF) <xref target="RFC9237"/>. With reference to the generic AIF model</t>
      <artwork><![CDATA[
   AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></artwork>
      <t>the value of the CBOR byte string used as scope encodes the CBOR array [* [Toid, Tperm]], where each [Toid, Tperm] element corresponds to one scope entry.</t>
      <t>This document defines the new AIF data model AIF-OSCORE-GROUPCOMM, which this profile <bcp14>MUST</bcp14> use to format and encode scope entries.</t>
      <t>For each scope entry:</t>
      <ul spacing="normal">
        <li>
          <t>The object identifier ("Toid") is specialized as a CBOR data item specifying the name of the groups pertaining to the scope entry.</t>
        </li>
        <li>
          <t>The permission set ("Tperm") is specialized as a CBOR unsigned integer with value R, specifying the permissions that the Client wishes to have in the groups indicated by "Toid".</t>
        </li>
      </ul>
      <t>For the application profile of <xref target="RFC9594"/> defined in this document, a scope entry includes the name of an OSCORE group and the set of roles to take in that OSCORE group as a set of permissions. Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>The object identifier ("Toid") is a CBOR text string, specifying the group name for the scope entry.</t>
        </li>
        <li>
          <t>The permission set ("Tperm") is a CBOR unsigned integer with value R, specifying the role(s) that the Client wishes to take in the group (REQ1). The value R is computed as follows.  </t>
          <ul spacing="normal">
            <li>
              <t>Each role in the permission set is converted into the corresponding numeric identifier X from the "Value" column of the "Group OSCORE Roles" registry defined in <xref target="ssec-iana-group-oscore-roles-registry"/> of this document, for which the initial entries are specified in <xref target="tab-role-values"/>.</t>
            </li>
            <li>
              <t>The set of N numbers is converted into the single value R, by taking two to the power of each numeric identifier X_1, X_2, ..., X_N, and then computing the inclusive OR of the binary representations of all the power values.</t>
            </li>
          </ul>
        </li>
      </ul>
      <table align="center" anchor="tab-role-values">
        <name>Numeric Identifier of Roles in an OSCORE Group</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Value</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Reserved</td>
            <td align="left">0</td>
            <td align="left">This value is reserved</td>
          </tr>
          <tr>
            <td align="left">Requester</td>
            <td align="left">1</td>
            <td align="left">Send protected requests; receive protected responses</td>
          </tr>
          <tr>
            <td align="left">Responder</td>
            <td align="left">2</td>
            <td align="left">Send protected responses; receive protected requests</td>
          </tr>
          <tr>
            <td align="left">Monitor</td>
            <td align="left">3</td>
            <td align="left">Receive protected requests; never send protected messages</td>
          </tr>
          <tr>
            <td align="left">Verifier</td>
            <td align="left">4</td>
            <td align="left">Verify signature of intercepted messages protected with the group mode</td>
          </tr>
        </tbody>
      </table>
      <t>The following CDDL <xref target="RFC8610"/> notation defines a scope entry that uses the AIF-OSCORE-GROUPCOMM data model and expresses a set of Group OSCORE roles from those in <xref target="tab-role-values"/>.</t>
      <sourcecode type="CDDL"><![CDATA[
   ;# include rfc9237

   AIF-OSCORE-GROUPCOMM = AIF-Generic<oscore-gname, oscore-gperm>

   oscore-gname = tstr  ; Group name
   oscore-gperm = uint .bits group-oscore-roles

   group-oscore-roles = &(
      Requester: 1,
      Responder: 2,
      Monitor: 3,
      Verifier: 4
   )

   scope_entry = [oscore-gname, oscore-gperm]
]]></sourcecode>
      <t>Future specifications that define new Group OSCORE roles <bcp14>MUST</bcp14> register a corresponding numeric identifier in the "Group OSCORE Roles" registry.</t>
      <t>Note that the value 0 is not available to use as numeric identifier to specify a Group OSCORE role. It follows that, when expressing Group OSCORE roles to take in a group as per this document, a scope entry has the least significant bit of "Tperm" always set to 0.</t>
      <t>This is an explicit feature of the AIF-OSCORE-GROUPCOMM data model. That is, for each scope entry, the least significant bit of "Tperm" set to 0 explicitly identifies the scope entry as exactly expressing a set of Group OSCORE roles ("Tperm"), pertaining to a single group whose name is specified by the string literal in "Toid".</t>
      <t>Instead, by relying on the same AIF-OSCORE-GROUPCOMM data model, <xref target="I-D.ietf-ace-oscore-gm-admin"/> defines the format of scope entries for Administrator Clients that wish to access an admin interface at the Group Manager. In such scope entries, the least significant bit of "Tperm" is always set to 1.</t>
      <t>As per the guidelines in <xref target="RFC9237"/>, <xref target="ssec-iana-AIF-registry"/> and <xref target="ssec-iana-coap-content-format-registry"/> register the specific instance of "Toid" and "Tperm" as media type parameters and a corresponding Content-Format (REQ2).</t>
    </section>
    <section anchor="sec-public-keys-of-joining-nodes">
      <name>Authentication Credentials</name>
      <t>Source authentication of a message sent within the group and protected with Group OSCORE is ensured by means of a digital signature embedded in the message (in group mode), or by integrity-protecting the message with pairwise keying material derived from the asymmetric keys of the sender and recipient (in pairwise mode).</t>
      <t>Therefore, group members must be able to retrieve each other's authentication credentials from a trusted repository, in order to verify source authenticity of incoming group messages.</t>
      <t>As discussed in <xref target="I-D.ietf-core-oscore-groupcomm"/>, the Group Manager acts as trusted repository of the authentication credentials of the group members, and provides those authentication credentials to group members if requested to.</t>
      <t>Upon joining an OSCORE group, a joining node is thus expected to provide its authentication credential to the Group Manager (see <xref target="ssec-join-req-sending"/>). Later on as a group member, that node can provide the Group Manager with a different authentication credential that replaces the old one (see <xref target="sec-update-pub-key"/>). In either situation, the authentication credential can be provided within a chain or a bag (e.g., as the end-entity certificate in a chain of certificates), in which case the Group Manager stores the whole chain or bag. Consistently, the Group Manager specifies the whole chain or bag when providing that authentication credential, within the 'creds' parameter of a Join Response (see <xref target="ssec-join-resp"/>) or of an Authentication Credential Response (see <xref target="sec-pub-keys"/>).</t>
      <t>In the following circumstances, a joining node is not required to provide its authentication credential to the Group Manager when joining an OSCORE group.</t>
      <ul spacing="normal">
        <li>
          <t>The joining node is going to join the group exclusively as monitor, i.e., it is not going to send protected messages to the group.  </t>
          <t>
In this case, the joining node is not required to provide its own authentication credential to the Group Manager, which thus does not have to perform any check related to the format of the authentication credential, to a signature or ECDH algorithm, and to possible parameters associated with the algorithm and the public key.  </t>
          <t>
If the joining node still provides an authentication credential in the 'client_cred' parameter of the Join Request (see <xref target="ssec-join-req-sending"/>), the Group Manager silently ignores that parameter and the related parameter 'client_cred_verify'.</t>
        </li>
        <li>
          <t>The joining node is currently a group member acting not exclusively as monitor, and it is re-joining the group not exclusively as monitor.  </t>
          <t>
In this case, if the joining node intends to use the same authentication credential that it is currently using in the group, i.e., its latest authentication credential provided to the Group Manager (in a previous Join Request or Authentication Credential Update Request, see <xref target="sec-update-pub-key"/>), then the joining node <bcp14>MAY</bcp14> choose to omit the 'client_cred' parameter and the 'client_cred_verify' parameter in the Join Request (see <xref section="4.3.1.1" sectionFormat="of" target="RFC9594"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-joining-node-to-AS">
      <name>Authorization to Join a Group</name>
      <t>This section builds on <xref section="3" sectionFormat="of" target="RFC9594"/> and is organized as follows.</t>
      <t>First, <xref target="ssec-auth-req"/> and <xref target="ssec-auth-resp"/> describe how the joining node interacts with the AS, in order to be authorized to join an OSCORE group under a given Group Manager and to obtain an access token. Then, <xref target="ssec-token-post"/> describes how the joining node transfers the obtained access token to the Group Manager.</t>
      <t>This section considers a joining node that intends to contact the Group Manager for the first time.</t>
      <t>Note that what is defined in <xref section="3" sectionFormat="of" target="RFC9594"/> applies, and only additions or modifications to that specification are defined in this document.</t>
      <section anchor="ssec-auth-req">
        <name>Authorization Request</name>
        <t>The Authorization Request message is as defined in <xref section="3.1" sectionFormat="of" target="RFC9594"/>, with the following additions.</t>
        <ul spacing="normal">
          <li>
            <t>If the 'scope' parameter is present:  </t>
            <ul spacing="normal">
              <li>
                <t>The value of the CBOR byte string encodes a CBOR array, whose format <bcp14>MUST</bcp14> follow the data model AIF-OSCORE-GROUPCOMM defined in <xref target="sec-format-scope"/> of this document. For each OSCORE group to join:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The group name is encoded as a CBOR text string.</t>
                  </li>
                  <li>
                    <t>The set of requested roles is expressed as a single CBOR unsigned integer. This is computed as defined in <xref target="sec-format-scope"/> of this document, from the numerical abbreviations of each requested role defined in the "Group OSCORE Roles" registry (REQ1).</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>The textual format specified in <xref section="3.1" sectionFormat="of" target="RFC9594"/> is not used in this application profile (OPT1).</t>
      </section>
      <section anchor="ssec-auth-resp">
        <name>Authorization Response</name>
        <t>The Authorization Response message is as defined in <xref section="3.2" sectionFormat="of" target="RFC9594"/>, with the following additions:</t>
        <ul spacing="normal">
          <li>
            <t>The AS <bcp14>MUST</bcp14> include the 'expires_in' parameter.</t>
          </li>
          <li>
            <t>The AS <bcp14>MUST</bcp14> include the 'scope' parameter, when the value included in the access token differs from the one specified by the joining node in the Authorization Request. In such a case, the second element of each scope entry <bcp14>MUST</bcp14> be present, and specifies the set of roles that the joining node is actually authorized to take in the OSCORE group for that scope entry, encoded as specified in <xref target="ssec-auth-req"/> of this document.</t>
          </li>
        </ul>
        <t>Furthermore, the AS <bcp14>MAY</bcp14> use the extended format of scope defined in <xref section="7" sectionFormat="of" target="RFC9594"/> for the 'scope' claim of the access token. In such a case, the AS <bcp14>MUST</bcp14> use the CBOR tag with tag number TAG_NUMBER, associated with the CoAP Content-Format CF_ID for the media type "application/aif+cbor" registered in <xref target="ssec-iana-coap-content-format-registry"/> of this document (REQ28).</t>
        <t>Note to RFC Editor: In the previous paragraph, please replace "TAG_NUMBER" with the CBOR tag number computed as TN(ct) in <xref section="4.3" sectionFormat="of" target="RFC9277"/>, where ct is the ID assigned to the CoAP Content-Format registered in <xref target="ssec-iana-coap-content-format-registry"/> of this document. Then, please replace "CF_ID" with the ID assigned to that CoAP Content-Format. Finally, please delete this paragraph.</t>
        <t>This indicates that the binary encoded scope, as conveying the actual access control information, follows the scope semantics defined for this application profile in <xref target="sec-format-scope"/> of this document.</t>
      </section>
      <section anchor="ssec-token-post">
        <name>Token Transferring</name>
        <t>The exchange of Token Transfer Request and Token Transfer Response is defined in <xref section="3.3" sectionFormat="of" target="RFC9594"/>. In addition to that, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The Token Transfer Request <bcp14>MAY</bcp14> additionally contain the following parameters, which, if included, <bcp14>MUST</bcp14> have the corresponding values defined below (OPT2):  </t>
            <ul spacing="normal">
              <li>
                <t>'ecdh_info' defined in <xref target="ecdh-info"/> of this document, with value the CBOR simple value <tt>null</tt> (0xf6) to request information about the ECDH algorithm, the ECDH algorithm parameters, the ECDH key parameters, and the exact format of authentication credentials used in the OSCORE groups that the Client has been authorized to join. This is relevant in case the joining node supports the pairwise mode of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
              </li>
              <li>
                <t>'kdc_dh_creds' defined in <xref target="gm-dh-info"/> of this document, with value the CBOR simple value <tt>null</tt> (0xf6) to request the Diffie-Hellman authentication credentials of the Group Manager for the OSCORE groups that the Client has been authorized to join. That is, each of such authentication credentials includes a Diffie-Hellman public key of the Group Manager. This is relevant in case the joining node supports the pairwise mode of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> and the access token authorizes to join pairwise-only groups.</t>
              </li>
            </ul>
            <t>
Alternatively, the joining node may retrieve this information by other means.</t>
          </li>
          <li>
            <t>The 'kdcchallenge' parameter contains a dedicated nonce N_S generated by the Group Manager. For the N_S value, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random nonce. The joining node can use this nonce in order to prove the possession of its own private key, upon joining the group (see <xref target="ssec-join-req-sending"/> of this document).  </t>
            <t>
The 'kdcchallenge' parameter <bcp14>MAY</bcp14> be omitted from the Token Transfer Response, if the 'scope' of the access token specifies only the role "monitor", or only the role "verifier", or only the two roles combined, for each and every of the specified groups.</t>
          </li>
          <li>
            <t>If the 'sign_info' parameter is present in the Token Transfer Response, the following applies for each element 'sign_info_entry'.  </t>
            <ul spacing="normal">
              <li>
                <t>'id' is associated exclusively with OSCORE groups that are not pairwise-only groups.</t>
              </li>
              <li>
                <t>'sign_alg' takes value from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/> (REQ3).</t>
              </li>
              <li>
                <t>'sign_parameters' has the same format and value of the COSE capabilities array for the algorithm indicated in 'sign_alg', as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/> (REQ4).</t>
              </li>
              <li>
                <t>'sign_key_parameters' has the same format and value of the COSE capabilities array for the COSE key type of the keys used with the algorithm indicated in 'sign_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/> (REQ5).</t>
              </li>
              <li>
                <t>'cred_fmt' takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/> (REQ6). Consistently with <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, acceptable values denote a format of authentication credential that provides the public key as well as a comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve.      </t>
                <t>
At the time of writing this specification, acceptable formats of authentication credentials are 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"/>. Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria defined above.</t>
              </li>
            </ul>
            <t>
This format is consistent with every signature algorithm currently considered in <xref target="RFC9053"/>, i.e., with algorithms that have only the COSE key type as their COSE capability. <xref section="B" sectionFormat="of" target="RFC9594"/> describes how the format of each 'sign_info_entry' can be generalized for possible future registered algorithms having a different set of COSE capabilities.</t>
          </li>
          <li>
            <t>If the 'ecdh_info' parameter is present in the Token Transfer Response, the following applies for each element 'ecdh_info_entry'.  </t>
            <ul spacing="normal">
              <li>
                <t>'id' is associated exclusively with OSCORE groups that are not signature-only groups.</t>
              </li>
              <li>
                <t>'ecdh_alg' takes value from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
              </li>
              <li>
                <t>'ecdh_parameters' has the same format and value of the COSE capabilities array for the algorithm indicated in 'ecdh_alg', as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
              </li>
              <li>
                <t>'ecdh_key_parameters' has the same format and value of the COSE capabilities array for the COSE key type of the keys used with the algorithm indicated in 'ecdh_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/>.</t>
              </li>
              <li>
                <t>'cred_fmt' takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>. Consistently with <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, acceptable values denote a format of authentication credential that provides the public key as well as a comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve. The same considerations provided above on acceptable formats currently available for the 'cred_fmt' element of 'sign_info' apply.</t>
              </li>
            </ul>
            <t>
The Group Manager omits the 'ecdh_info' parameter in the Token Transfer Response even if 'ecdh_info' is included in the Token Transfer Request, in case all the OSCORE groups that the Client is authorized to join are signature-only groups.</t>
          </li>
          <li>
            <t>If the 'kdc_dh_creds' parameter is present in the Token Transfer Response, the following applies for each element 'kdc_dh_creds_entry'.  </t>
            <ul spacing="normal">
              <li>
                <t>'id' is associated exclusively with OSCORE groups that are pairwise-only groups.</t>
              </li>
              <li>
                <t>'cred_fmt' takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>. Consistently with <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, acceptable values denote a format of authentication credential that provides the public key as well as a comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve. The same considerations provided above on acceptable formats currently available for the 'cred_fmt' element of 'sign_info' apply.</t>
              </li>
            </ul>
            <t>
The Group Manager omits the 'kdc_dh_creds' parameter in the Token Transfer Response even if 'ecdh_info' is included in the Token Transfer Request, in case none of the OSCORE groups that the Client is authorized to join is a pairwise-only group.</t>
          </li>
        </ul>
        <t>Note that, other than through the above parameters as defined in <xref section="3.3" sectionFormat="of" target="RFC9594"/>, the joining node may have obtained such information by alternative means. For example, information conveyed in the 'sign_info' and 'ecdh_info' parameters may have been pre-configured, or the joining node may early retrieve it, e.g., by using the approach described in <xref target="I-D.tiloca-core-oscore-discovery"/> to discover the OSCORE group and the link to the associated group-membership resource at the Group Manager (OPT3).</t>
        <section anchor="ecdh-info">
          <name>'ecdh_info' Parameter</name>
          <t>The 'ecdh_info' parameter is an <bcp14>OPTIONAL</bcp14> parameter of the request and response messages exchanged between the Client and the /authz-info endpoint at the RS (see <xref section="5.10.1." sectionFormat="of" target="RFC9200"/>).</t>
          <t>This parameter allows the Client and the RS to exchange information about an ECDH algorithm as well as about the authentication credentials and public keys to accordingly use for deriving Diffie-Hellman secrets. Its exact semantics and content are application specific.</t>
          <t>In application profiles that build on <xref target="RFC9594"/>, this parameter is used to exchange information about the ECDH algorithm as well as about the authentication credentials and public keys to be used with it, in the groups indicated by the transferred access token as per its 'scope' claim (see <xref section="3.2" sectionFormat="of" target="RFC9594"/>).</t>
          <t>When used in the Token Transfer Request sent to the KDC (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>), the 'ecdh_info' parameter specifies the CBOR simple value <tt>null</tt> (0xf6). This is done to ask for information about the ECDH algorithm and about the authentication credentials used to compute static-static Diffie-Hellman shared secrets <xref target="NIST-800-56A"/>, in the groups that the Client has been authorized to join or interact with.</t>
          <t>When used in the following Token Transfer Response from the KDC (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>), the 'ecdh_info' parameter is a CBOR array of one or more elements. The number of elements is at most the number of groups that the Client has been authorized to join or interact with. Each element contains information about ECDH parameters and about authentication credentials for one or more groups and is formatted as follows.</t>
          <ul spacing="normal">
            <li>
              <t>The first element 'id' is a group name or a CBOR array of group names, which is associated with groups for which the next four elements apply. Each specified group name is a CBOR text string and is hereafter referred to as 'gname'.</t>
            </li>
            <li>
              <t>The second element 'ecdh_alg' is a CBOR integer or a text string that indicates the ECDH algorithm used in the groups identified by the 'gname' values.  </t>
              <t>
For application profiles of <xref target="RFC9594"/> that use the 'ecdh_info' parameter, it is <bcp14>REQUIRED</bcp14> to define specific values that 'ecdh_alg' can take, which are selected from the set of signing algorithms of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
            </li>
            <li>
              <t>The third element 'ecdh_parameters' is a CBOR array that indicates the parameters of the ECDH algorithm used in the groups identified by the 'gname' values. Its content depends on the value of 'ecdh_alg'.  </t>
              <t>
For application profiles of <xref target="RFC9594"/> that use the 'ecdh_info' parameter, it is <bcp14>REQUIRED</bcp14> to define the possible values and structure for the elements of 'ecdh_parameters'.</t>
            </li>
            <li>
              <t>The fourth element 'ecdh_key_parameters' is a CBOR array that indicates the parameters of the key used with the ECDH algorithm in the groups identified by the 'gname' values. Its content depends on the value of 'ecdh_alg'.  </t>
              <t>
For application profiles of <xref target="RFC9594"/> that use the 'ecdh_info' parameter, it is <bcp14>REQUIRED</bcp14> to define the possible values and structure for the elements of 'ecdh_key_parameters'.</t>
            </li>
            <li>
              <t>The fifth element 'cred_fmt' either is a CBOR integer indicating the format of authentication credentials used in the groups identified by the 'gname' values or is the CBOR simple value <tt>null</tt> (0xf6), which indicates that the KDC does not act as a repository of authentication credentials for group members. Its acceptable integer values are taken from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>, with some of those values also indicating the type of container to use for exchanging the authentication credentials with the KDC (e.g., a chain or bag of certificates).  </t>
              <t>
For application profiles of <xref target="RFC9594"/> that use the 'ecdh_info' parameter, it is <bcp14>REQUIRED</bcp14> to define specific values to use for 'cred_fmt', consistently with the acceptable formats of authentication credentials.</t>
            </li>
          </ul>
          <t>If 'ecdh_info' is included in the Token Transfer Request, the KDC <bcp14>SHOULD</bcp14> include the 'ecdh_info' parameter in the Token Transfer Response, as per the format defined above. Note that the field 'id' of each 'ecdh_info_entry' specifies the name, or array of group names to which that 'ecdh_info_entry' applies. As an exception, the KDC <bcp14>MAY</bcp14> omit the 'ecdh_info' parameter in the Token Transfer Response even if 'ecdh_info' is included in the Token Transfer Request, in case none of the groups that the Client is authorized to join uses an ECDH algorithm to derive Diffie-Hellman secrets.</t>
          <t>The CDDL notation <xref target="RFC8610"/> of the 'ecdh_info' parameter is given below.</t>
          <sourcecode type="CDDL"><![CDATA[
ecdh_info = ecdh_info_req / ecdh_info_resp

ecdh_info_req = null                  ; in the Token Transfer
                                      ; Request to the KDC

ecdh_info_resp = [+ ecdh_info_entry]  ; in the Token Transfer
                                      ; Response from the KDC

ecdh_info_entry =
[
  id: gname / [+ gname],
  ecdh_alg: int / tstr,
  ecdh_parameters: [any],
  ecdh_key_parameters: [+ parameter: any],
  cred_fmt: int / null
]

gname = tstr
]]></sourcecode>
          <t>This format is consistent with every ECDH algorithm currently defined in <xref target="RFC9053"/>, i.e., with algorithms that have only the COSE key type as their COSE capability. <xref target="sec-future-cose-algs"/> of this document describes how the format of each 'ecdh_info_entry' can be generalized for possible future registered algorithms having a different set of COSE capabilities.</t>
        </section>
        <section anchor="gm-dh-info">
          <name>'kdc_dh_creds' Parameter</name>
          <t>The 'kdc_dh_creds' parameter is an <bcp14>OPTIONAL</bcp14> parameter of the request and response messages exchanged between the Client and the /authz-info endpoint at the RS (see <xref section="5.10.1." sectionFormat="of" target="RFC9200"/>).</t>
          <t>This parameter allows the Client to request and retrieve the Diffie-Hellman authentication credentials of the RS, i.e., authentication credentials including a Diffie-Hellman public key of the RS.</t>
          <t>In application profiles that build on <xref target="RFC9594"/>, this parameter is used to request and retrieve from the KDC its Diffie-Hellman authentication credentials to use, in the groups indicated by the transferred access token as per its 'scope' claim (see <xref section="3.2" sectionFormat="of" target="RFC9594"/>).</t>
          <t>When used in the Token Transfer Request sent to the KDC (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>), the 'kdc_dh_creds' parameter specifies the CBOR simple value <tt>null</tt> (0xf6). This is done to ask for the Diffie-Hellman authentication credentials that the KDC uses in the groups that the Client has been authorized to join or interact with.</t>
          <t>When used in the following Token Transfer Response from the KDC (see <xref section="3.2" sectionFormat="of" target="RFC9594"/>), the 'kdc_dh_creds' parameter is a CBOR array of one or more elements. The number of elements is at most the number of groups that the Client has been authorized to join or interact with. Each element contains information about the KDC's Diffie-Hellman authentication credentials for one or more groups and is formatted as follows.</t>
          <ul spacing="normal">
            <li>
              <t>The first element 'id' is a group name or a CBOR array of group names, which is associated with groups for which the next two elements apply. Each specified group name is a CBOR text string and is hereafter referred to as 'gname'.</t>
            </li>
            <li>
              <t>The second element 'cred_fmt' is a CBOR integer indicating the format of the KDC's authentication credential used in the groups identified by the 'gname' values and specified by the following element 'cred'. Its acceptable integer values are taken from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>, with some of those values also indicating the type of container to use for exchanging the authentication credentials with the KDC (e.g., a chain or bag of certificates).  </t>
              <t>
For application profiles of <xref target="RFC9594"/> that use the 'kdc_dh_creds' parameter, it is <bcp14>REQUIRED</bcp14> to define specific values to use for 'cred_fmt', consistently with the acceptable formats of the KDC's authentication credentials.</t>
            </li>
            <li>
              <t>The third element 'cred' is a CBOR byte string encoding the original binary representation of the Diffie-Hellman authentication credential that the KDC uses in the groups identified by the 'gname' values. The authentication credential complies with the format specified by the 'cred_fmt' element.</t>
            </li>
          </ul>
          <t>If 'kdc_dh_creds' is included in the Token Transfer Request, the KDC <bcp14>SHOULD</bcp14> include the 'kdc_dh_creds' parameter in the Token Transfer Response, as per the format defined above. Note that the field 'id' of each 'kdc_dh_creds_entry' specifies the name, or array of group names to which that 'kdc_dh_creds_entry' applies. As an exception, the KDC <bcp14>MAY</bcp14> omit the 'kdc_dh_creds' parameter in the Token Transfer Response even if 'kdc_dh_creds' is included in the Token Transfer Request, in case the KDC does not use a Diffie-Hellman authentication credential in any of the groups that the Client is authorized to join.</t>
          <t>The CDDL notation <xref target="RFC8610"/> of the 'kdc_dh_creds' parameter is given below.</t>
          <sourcecode type="CDDL"><![CDATA[
kdc_dh_creds = kdc_dh_creds_req / kdc_dh_creds_resp

kdc_dh_creds_req = null                     ; in the Token Transfer
                                            ; Request to the KDC

kdc_dh_creds_resp = [+ kdc_dh_creds_entry]  ; in the Token Transfer
                                            ; Response from the KDC

kdc_dh_creds_entry =
[
  id: gname / [+ gname],
  cred_fmt: int,
  cred: bstr
]

gname = tstr
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="sec-joining-node-to-GM">
      <name>Group Joining</name>
      <t>This section describes the interactions between the joining node and the Group Manager to join an OSCORE group. The message exchange between the joining node and the Group Manager consists of the messages defined in <xref section="4.3.1.1" sectionFormat="of" target="RFC9594"/>. Note that what is defined in <xref target="RFC9594"/> applies, and only additions or modifications to that specification are defined in this document.</t>
      <section anchor="ssec-join-req-sending">
        <name>Send the Join Request</name>
        <t>The joining node requests to join the OSCORE group by sending a Join Request message to the related group-membership resource at the Group Manager, as per <xref section="4.3.1.1" sectionFormat="of" target="RFC9594"/>. Additionally to what is defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The 'scope' parameter <bcp14>MUST</bcp14> be included. Its value encodes one scope entry with the format defined in <xref target="sec-format-scope"/>, indicating the group name and the role(s) that the joining node wants to take in the group.  </t>
            <t>
The 'scope' parameter <bcp14>MUST NOT</bcp14> specify any of the following sets of roles: ("requester", "monitor") and ("responder", "monitor"). Future specifications that define a new role for members of OSCORE groups <bcp14>MUST</bcp14> define possible sets of roles (including the new role and existing roles) that are not acceptable to specify in the 'scope' parameter of a Join Request.</t>
          </li>
          <li>
            <t>The 'get_creds' parameter is present only if the joining node wants to retrieve the authentication credentials of the group members from the Group Manager during the joining process (see <xref target="sec-public-keys-of-joining-nodes"/>). Otherwise, this parameter <bcp14>MUST NOT</bcp14> be present.  </t>
            <t>
If this parameter is present and its value is not the CBOR simple value <tt>null</tt> (0xf6), each element of the inner CBOR array 'role_filter' is encoded as a CBOR unsigned integer, with the same value of a permission set ("Tperm") indicating that role or combination of roles in a scope entry, as defined in <xref target="sec-format-scope"/>.</t>
          </li>
          <li>
            <t>The 'cnonce' parameter contains a dedicated nonce N_C generated by the joining node. For the N_C value, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random nonce.</t>
          </li>
          <li>
            <t>If the joining node intends to join the group exclusively as a monitor, then the 'client_cred' parameter and the 'client_cred_verify' parameter <bcp14>MUST</bcp14> be omitted.</t>
          </li>
          <li>
            <t>If the joining node is currently a group member and intends to use the same authentication credential that it is currently using in the group, then the 'client_cred' parameter and the 'client_cred_verify' parameter <bcp14>MAY</bcp14> be omitted.</t>
          </li>
          <li>
            <t>If the 'client_cred_verify' parameter is present, then the proof-of-possession (PoP) evidence included therein is computed as defined below (REQ14).  </t>
            <ul spacing="normal">
              <li>
                <t>Specifically in the case where the joining node is not a current member of the group, the Group Manager might already have achieved proof of possession of the joining node's private key associated with the authentication credential AUTH_CRED_C that the joining node intends to use in the group.      </t>
                <t>
For example, that could have happened upon completing the establishment of the secure communication association that is used to protect the Join Request, if the joining node used AUTH_CRED_C to authenticate itself with the Group Manager.      </t>
                <t>
Under these circumstances, the joining node <bcp14>MAY</bcp14> specify an empty PoP evidence, i.e., it sets the value of the 'client_cred_verify' parameter to the empty CBOR byte string (0x40).</t>
              </li>
              <li>
                <t>If the conditions above do not hold or the joining node prefers to compute a non-empty PoP evidence, then the joining node  proceeds as follows. In either case, the N_S used to build the PoP input is as defined in <xref target="sssec-challenge-value"/>.      </t>
                <ul spacing="normal">
                  <li>
                    <t>If the group is not a pairwise-only group, the PoP evidence <bcp14>MUST</bcp14> be a signature. The joining node computes the signature by using the same private key and signature algorithm that it intends to use for signing messages in the OSCORE group.</t>
                  </li>
                  <li>
                    <t>If the group is a pairwise-only group, the PoP evidence <bcp14>MUST</bcp14> be a MAC computed as follows, by using the HKDF Algorithm HKDF SHA-256, which consists of composing the HKDF-Extract and HKDF-Expand steps <xref target="RFC5869"/>.          </t>
                    <t>
MAC = HKDF(salt, IKM, info, L)          </t>
                    <t>
The input parameters of HKDF are as follows:          </t>
                    <ul spacing="normal">
                      <li>
                        <t>salt takes as value the empty byte string.</t>
                      </li>
                      <li>
                        <t>IKM is computed as a cofactor Diffie-Hellman shared secret, see Section 5.7.1.2 of <xref target="NIST-800-56A"/>, using the ECDH algorithm used in the OSCORE group. The joining node uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the Group Manager. For X25519 and X448, the procedure is described in <xref section="5" sectionFormat="of" target="RFC7748"/>.</t>
                      </li>
                      <li>
                        <t>info takes as value the PoP input.</t>
                      </li>
                      <li>
                        <t>L is equal to 8, i.e., the size of the MAC, in bytes.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <section anchor="sssec-challenge-value">
          <name>Value of the N_S Challenge</name>
          <t>The value of the N_S challenge is determined as follows.</t>
          <ol spacing="normal" type="1"><li>
              <t>If the joining node has provided the access token to the Group Manager by means of a Token Transfer Request to the /authz-info endpoint as in <xref target="ssec-token-post"/>, then N_S takes the same value of the most recent 'kdcchallenge' parameter received by the joining node from the Group Manager. This can be either the one specified in the Token Transfer Response, or the one possibly specified in a 4.00 (Bad Request) error response to a following Join Request (see <xref target="ssec-join-req-processing"/>).</t>
            </li>
            <li>
              <t>If the provisioning of the access token to the Group Manager has relied on the DTLS profile of ACE <xref target="RFC9202"/> and the access token was specified in the "psk_identity" field of the ClientKeyExchange message when using DTLS 1.2 <xref target="RFC6347"/>, then N_S is an exporter value computed as defined in <xref section="4" sectionFormat="of" target="RFC5705"/> (REQ15).  </t>
              <t>
Specifically, N_S is exported from the DTLS session between the joining node and the Group Manager, using an empty context value (i.e., a context value of zero-length), 32 as length value in bytes, and the exporter label "EXPORTER-ACE-Pop-Input-coap-group-oscore-app" defined in <xref target="ssec-iana-tls-esporter-label-registry"/> of this document.  </t>
              <t>
The same as above holds if TLS 1.2 <xref target="RFC5246"/> was used instead of DTLS 1.2, as per <xref target="RFC9430"/>.</t>
            </li>
            <li>
              <t>If the provisioning of the access token to the Group Manager has relied on the DTLS profile of ACE <xref target="RFC9202"/> and the access token was specified in the "identity" field of a PskIdentity within the PreSharedKeyExtension of the ClientHello message when using DTLS 1.3 <xref target="RFC9147"/>, then N_S is an exporter value computed as defined in <xref section="7.5" sectionFormat="of" target="RFC8446"/> (REQ15).  </t>
              <t>
Specifically, N_S is exported from the DTLS session between the joining node and the Group Manager, using an empty 'context_value' (i.e., a 'context_value' of zero length), 32 as 'key_length' in bytes, and the exporter label "EXPORTER-ACE-Pop-Input-coap-group-oscore-app" defined in <xref target="ssec-iana-tls-esporter-label-registry"/> of this document.  </t>
              <t>
The same as above holds if TLS 1.3 <xref target="RFC8446"/> was used instead of DTLS 1.3, as per <xref target="RFC9430"/>.</t>
            </li>
          </ol>
          <t>It is up to applications to define how N_S is computed in further alternative settings.</t>
          <t><xref target="ssec-security-considerations-reusage-nonces"/> provides security considerations on the reusage of the N_S challenge.</t>
        </section>
      </section>
      <section anchor="ssec-join-req-processing">
        <name>Receive the Join Request</name>
        <t>The Group Manager processes the Join Request as defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>, with the following additions. Note that the Group Manager can determine whether the joining node is a current group member, e.g., based on the ongoing secure communication association that is used to protect the Join Request.</t>
        <t>In case the joining node is going to join the group exclusively as monitor, then the Group Manager silently ignores the parameters 'client_cred' and 'client_cred_verify', if present.</t>
        <t>In case the joining node is not going to join the group exclusively as monitor, it is a current member of the group, and the 'client_cred_verify' parameter is not present, then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>If the 'client_cred' parameter is present, the Group Manager verifies that it is already storing the authentication credential specified therein, as associated with the joining node in the group. If the verification fails, the Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response (OPT8).</t>
          </li>
          <li>
            <t>If case the 'client_cred' parameter is not present, the Group Manager verifies that it is already storing an authentication credential, as associated with the joining node in the group. If the verification fails, the Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response (OPT8).</t>
          </li>
        </ul>
        <t>In case the joining node is not going to join the group exclusively as monitor and the 'client_cred_verify' parameter specifies the empty CBOR byte string (0x40), the Group Manager checks whether it has already achieved proof of possession of the joining node's private key associated with the authentication credential that is specified in the 'client_cred' parameter. If such verification fails, then the Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 3 ("Invalid proof-of-possession evidence"). After receiving that response, the client <bcp14>MUST NOT</bcp14> specify an empty PoP evidence in the 'client_cred_verify' parameter of a follow-up Join Request for joining the same group.</t>
        <t>Note to RFC Editor: Please make sure that "application/concise-problem-details+cbor" is on one line (no line wrapping) on every occurrence and delete this note.</t>
        <t>In case the joining node is not going to join the group exclusively as monitor and the 'client_cred_verify' parameter specifies a value different from the empty CBOR byte string (0x40), then the Group Manager verifies the PoP evidence therein as follows:</t>
        <ul spacing="normal">
          <li>
            <t>As PoP input, the Group Manager uses the value of the 'scope' parameter from the Join Request as a CBOR byte string, concatenated with N_S encoded as a CBOR byte string, concatenated with N_C encoded as a CBOR byte string. The value of N_S is determined as described in <xref target="sssec-challenge-value"/>, while N_C is the nonce provided in the 'cnonce' parameter of the Join Request.</t>
          </li>
          <li>
            <t>As public key of the joining node, the Group Manager uses either the one included in the authentication credential retrieved from the 'client_cred' parameter of the Join Request, or the one from the already stored authentication credential as acquired from previous interactions with the joining node (see above).</t>
          </li>
          <li>
            <t>If the group is not a pairwise-only group, the PoP evidence is a signature. The Group Manager verifies it by using the public key of the joining node, as well as the signature algorithm used in the OSCORE group and possible corresponding parameters.</t>
          </li>
          <li>
            <t>If the group is a pairwise-only group, the PoP evidence is a MAC. The Group Manager recomputes the MAC through the same process that is taken by the joining node when preparing the value of the 'client_cred_verify' parameter for the Join Request (see <xref target="ssec-join-req-sending"/>), with the difference that the Group Manager uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the joining node. The verification succeeds if and only if the recomputed MAC is equal to the MAC conveyed as PoP evidence in the Join Request.</t>
          </li>
        </ul>
        <t>The Group Manager <bcp14>MUST</bcp14> reply with a 5.03 (Service Unavailable) error response in the following cases:</t>
        <ul spacing="normal">
          <li>
            <t>There are currently no OSCORE Sender IDs available to assign in the OSCORE group and, at the same time, the joining node is not going to join the group exclusively as monitor. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 4 ("No available individual keying material").</t>
          </li>
          <li>
            <t>The OSCORE group that the joining node has been trying to join is currently inactive (see <xref target="ssec-resource-active"/>). The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 9 ("Group currently not active").</t>
          </li>
        </ul>
        <t>The Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response in the following cases:</t>
        <ul spacing="normal">
          <li>
            <t>The 'scope' parameter is not present in the Join Request, or it is present and specifies any of the following sets of roles: ("requester", "monitor") and ("responder", "monitor").</t>
          </li>
          <li>
            <t>The joining node is not going to join the group exclusively as monitor, and any of the following holds:  </t>
            <ul spacing="normal">
              <li>
                <t>The joining node is not a current member of the group, and the 'client_cred' parameter and the 'client_cred_verify' parameter are not both present in the Join Request.</t>
              </li>
              <li>
                <t>The 'client_cred' parameter is present in the Join Request and its value is not an eligible authentication credential (e.g., it is not of the format accepted in the group).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>In order to prevent the acceptance of Ed25519 and Ed448 public keys that cannot be successfully converted to Montgomery coordinates, and thus cannot be used for the derivation of pairwise keys (see <xref section="2.5.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), the Group Manager <bcp14>MAY</bcp14> reply with a 4.00 (Bad Request) error response in case all the following conditions hold:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE group uses the pairwise mode of Group OSCORE.</t>
          </li>
          <li>
            <t>The OSCORE group uses EdDSA public keys <xref target="RFC8032"/>.</t>
          </li>
          <li>
            <t>The authentication credential of the joining node from the 'client_cred' parameter includes a public key which:  </t>
            <ul spacing="normal">
              <li>
                <t>Is for the elliptic curve Ed25519 and has its Y coordinate equal to -1 or 1 (mod p), with p = (2<sup>255</sup> - 19), see <xref section="4.1" sectionFormat="of" target="RFC7748"/>; or</t>
              </li>
              <li>
                <t>Is for the elliptic curve Ed448 and has its Y coordinate equal to -1 or 1 (mod p), with p =  (2<sup>448</sup> - 2<sup>224</sup> - 1), see <xref section="4.2" sectionFormat="of" target="RFC7748"/>.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Unless it is already intended to use Content-Format "application/concise-problem-details+cbor", a 4.00 (Bad Request) error response from the Group Manager to the joining node <bcp14>MUST</bcp14> have Content-Format "application/ace-groupcomm+cbor". In such a case, the response payload is a CBOR map formatted as follows (OPT4):</t>
        <ul spacing="normal">
          <li>
            <t>If the group uses (also) the group mode of Group OSCORE, then the CBOR map <bcp14>MUST</bcp14> contain the 'sign_info' parameter, whose CBOR label is defined in <xref section="8" sectionFormat="of" target="RFC9594"/>. This parameter has the same format of 'sign_info_res' defined in <xref section="3.3.1" sectionFormat="of" target="RFC9594"/> and includes a single element 'sign_info_entry', which pertains to the OSCORE group that the joining node has tried to join with the Join Request.</t>
          </li>
          <li>
            <t>If the group uses (also) the pairwise mode of Group OSCORE, then the CBOR map <bcp14>MUST</bcp14> contain the 'ecdh_info' parameter, whose CBOR label is defined in <xref target="ssec-iana-ace-groupcomm-parameters-registry"/>. This parameter has the same format of 'ecdh_info_res' defined in <xref target="ecdh-info"/> and includes a single element 'ecdh_info_entry', which pertains to the OSCORE group that the joining node has tried to join with the Join Request.</t>
          </li>
          <li>
            <t>If the group is a pairwise-only group, the CBOR map <bcp14>MUST</bcp14> contain the 'kdc_dh_creds' parameter, whose CBOR label is defined in <xref target="ssec-iana-ace-groupcomm-parameters-registry"/>. This parameter has the same format of 'kdc_dh_creds_res' defined in <xref target="gm-dh-info"/> and includes a single element 'kdc_dh_creds_entry', which pertains to the OSCORE group that the joining node has tried to join with the Join Request.</t>
          </li>
          <li>
            <t>The CBOR map <bcp14>MAY</bcp14> include the 'kdcchallenge' parameter, whose CBOR label is defined in <xref section="8" sectionFormat="of" target="RFC9594"/>. If present, this parameter is a CBOR byte string, which encodes a newly generated 'kdcchallenge' value that the Client can use when preparing a new Join Request (see <xref target="ssec-join-req-sending"/>). In such a case the Group Manager <bcp14>MUST</bcp14> store the newly generated value as the 'kdcchallenge' value associated with the joining node, thus replacing the currently stored value (if any).</t>
          </li>
        </ul>
        <section anchor="follow-up-to-a-400-bad-request-error-response">
          <name>Follow-up to a 4.00 (Bad Request) Error Response</name>
          <t>When receiving a 4.00 (Bad Request) error response, the joining node <bcp14>MAY</bcp14> send a new Join Request to the Group Manager. In such a case:</t>
          <ul spacing="normal">
            <li>
              <t>The 'cnonce' parameter <bcp14>MUST</bcp14> include a new dedicated nonce N_C generated by the joining node.</t>
            </li>
            <li>
              <t>In case the joining node is going to join the group exclusively as monitor, then the following applies:  </t>
              <ul spacing="normal">
                <li>
                  <t>If present, the 'client_cred' parameter <bcp14>MUST</bcp14> include an authentication credential in the format indicated by the Group Manager. Also, the authentication credential as well as the included public key <bcp14>MUST</bcp14> be compatible with the signature or ECDH algorithm, and with possible associated parameters.</t>
                </li>
                <li>
                  <t>If present, the 'client_cred_verify' parameter <bcp14>MUST</bcp14> include a PoP evidence computed as described in <xref target="ssec-join-req-sending"/>. The private key to use is the one associated with the authentication credential specified in the current 'client_cred' parameter, with the signature or ECDH algorithm, and with possible associated parameters indicated by the Group Manager. If the error response from the Group Manager includes the 'kdcchallenge' parameter, the joining node <bcp14>MUST</bcp14> use its content as new N_S challenge to compute the PoP evidence.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="ssec-join-resp">
        <name>Send the Join Response</name>
        <t>If the processing of the Join Request described in <xref target="ssec-join-req-processing"/> is successful, the Group Manager updates the group membership by registering the joining node NODENAME as a new member of the OSCORE group GROUPNAME, as described in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>.</t>
        <t>If the joining node has not taken exclusively the role of monitor, the Group Manager performs also the following actions.</t>
        <ul spacing="normal">
          <li>
            <t>The Group Manager selects an available OSCORE Sender ID in the OSCORE group, and exclusively assigns it to the joining node. The Group Manager <bcp14>MUST NOT</bcp14> assign an OSCORE Sender ID to the joining node if this joins the group exclusively with the role of monitor, according to what is specified in the access token (see <xref target="ssec-auth-resp"/>).  </t>
            <t>
Consistently with <xref section="12.2.1.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, the Group Manager <bcp14>MUST</bcp14> assign an OSCORE Sender ID that has not been used in the OSCORE group since the latest time when the current Gid value was assigned to the group. The maximum length of a Sender ID in bytes is determined as defined in <xref section="2.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.  </t>
            <t>
If the joining node is recognized as a current group member, e.g., through the ongoing secure communication association that is used to protect the Join Request, then the following also applies:  </t>
            <ul spacing="normal">
              <li>
                <t>The Group Manager <bcp14>MUST</bcp14> assign a new OSCORE Sender ID different from the one currently used by the joining node in the OSCORE group.</t>
              </li>
              <li>
                <t>The Group Manager <bcp14>MUST</bcp14> add the old, relinquished OSCORE Sender ID of the joining node to the set of stale Sender IDs associated with the current version of the group keying material for the group (see <xref target="sssec-stale-sender-ids"/>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The Group Manager stores the association between: i) the authentication credential of the joining node; and ii) the Group Identifier (Gid), i.e., the OSCORE ID Context associated with the OSCORE group, together with the OSCORE Sender ID assigned to the joining node in the group. The Group Manager <bcp14>MUST</bcp14> keep this association updated over time.</t>
          </li>
        </ul>
        <t>Then, the Group Manager replies to the joining node, providing the updated security parameters and keying material necessary to participate in the group communication. This success Join Response is formatted as defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>, with the following additions:</t>
        <ul spacing="normal">
          <li>
            <t>The 'gkty' parameter identifies a key of type "Group_OSCORE_Input_Material object", which is registered in <xref target="ssec-iana-groupcomm-keys-registry"/> of this document (REQ18).</t>
          </li>
          <li>
            <t>The 'key' parameter includes what the joining node needs in order to set up the Group OSCORE Security Context as per <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.  </t>
            <t>
This parameter has as value a Group_OSCORE_Input_Material object (REQ17), which is defined in this document and extends the OSCORE_Input_Material object encoded in CBOR as defined in <xref section="3.2.1" sectionFormat="of" target="RFC9203"/>. In particular, it contains the additional parameters 'group_senderId', 'cred_fmt', 'gp_enc_alg', 'sign_alg', 'sign_params', 'ecdh_alg', and 'ecdh_params', which are defined in <xref target="ssec-iana-security-context-parameter-registry"/> of this document.  </t>
            <t>
More specifically, the 'key' parameter is composed as follows.  </t>
            <ul spacing="normal">
              <li>
                <t>The 'hkdf' parameter, if present, specifies the HKDF Algorithm that is used in the OSCORE group. The HKDF Algorithm is specified by the HMAC Algorithm value. This parameter <bcp14>MAY</bcp14> be omitted, if the HKDF Algorithm used in the group is HKDF SHA-256. Otherwise, this parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'salt' parameter, if present, has as value the OSCORE Master Salt that is used in the OSCORE group. This parameter <bcp14>MAY</bcp14> be omitted, if the Master Salt used in the group is the empty byte string. Otherwise, this parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'ms' parameter has as value the OSCORE Master Secret that is used in the OSCORE group. This parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'contextId' parameter has as value the Group Identifier (Gid), i.e., the OSCORE ID Context of the OSCORE group. This parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'group_senderId' parameter has as value the OSCORE Sender ID that the Group Manager has assigned to the joining node in the OSCORE group, as described above. This parameter <bcp14>MUST</bcp14> be present if and only if the node does not join the OSCORE group exclusively with the role of monitor, according to what is specified in the access token (see <xref target="ssec-auth-resp"/>).</t>
              </li>
              <li>
                <t>The 'cred_fmt' parameter specifies the Authentication Credential Format used in the OSCORE group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). This parameter <bcp14>MUST</bcp14> be present and it takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/> (REQ6), with some of those values also indicating the type of container to use for exchanging the authentication credentials with the Group Manager (e.g., a chain or bag of certificates). Consistently with <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, acceptable values denote a format that provides the public key as well as a comprehensive set of information related to the public key algorithm. This information includes, e.g., the used elliptic curve.      </t>
                <t>
At the time of writing this specification, acceptable formats of authentication credentials are 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"/>. Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria defined above.</t>
              </li>
            </ul>
            <t>
The 'key' parameter <bcp14>MUST</bcp14> also include the following parameters, if and only if the OSCORE group is not a pairwise-only group.  </t>
            <ul spacing="normal">
              <li>
                <t>The 'gp_enc_alg' parameter, specifying the Group Encryption Algorithm that is used in the OSCORE group to encrypt messages protected with the group mode. This parameter takes values from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
              </li>
              <li>
                <t>The 'sign_alg' parameter, specifying the Signature Algorithm that is used in the OSCORE group to sign messages protected with the group mode. This parameter takes values from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
              </li>
              <li>
                <t>The 'sign_params' parameter, specifying the parameters of the Signature Algorithm. This parameter is a CBOR array, which includes the following two elements:      </t>
                <ul spacing="normal">
                  <li>
                    <t>'sign_alg_capab': a CBOR array, with the same format and value of the COSE capabilities array for the Signature Algorithm indicated in 'sign_alg', as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
                  </li>
                  <li>
                    <t>'sign_key_type_capab': a CBOR array, with the same format and value of the COSE capabilities array for the COSE key type of the keys used with the Signature Algorithm indicated in 'sign_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/>.</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>
The 'key' parameter <bcp14>MUST</bcp14> also include the following parameters, if and only if the OSCORE group is not a signature-only group.  </t>
            <ul spacing="normal">
              <li>
                <t>The 'alg' parameter, specifying the AEAD Algorithm used in the OSCORE group to encrypt messages protected with the pairwise mode.</t>
              </li>
              <li>
                <t>The 'ecdh_alg' parameter, specifying the Pairwise Key Agreement Algorithm used in the OSCORE group to derive the pairwise keys for the pairwise mode. This parameter takes values from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
              </li>
              <li>
                <t>The 'ecdh_params' parameter, specifying the parameters of the Pairwise Key Agreement Algorithm. This parameter is a CBOR array, which includes the following two elements:      </t>
                <ul spacing="normal">
                  <li>
                    <t>'ecdh_alg_capab': a CBOR array, with the same format and value of the COSE capabilities array for the algorithm indicated in 'ecdh_alg', as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
                  </li>
                  <li>
                    <t>'ecdh_key_type_capab': a CBOR array, with the same format and value of the COSE capabilities array for the COSE key type of the keys used with the algorithm indicated in 'ecdh_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/>.</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>
The format of 'key' defined above is consistent with every signature algorithm and ECDH algorithm currently considered in <xref target="RFC9053"/>, i.e., with algorithms that have only the COSE key type as their COSE capability. <xref target="sec-future-cose-algs-key"/> of this document describes how the format of the 'key' parameter can be generalized for possible future registered algorithms having a different set of COSE capabilities.</t>
          </li>
        </ul>
        <t>Furthermore, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The 'exi' parameter <bcp14>MUST</bcp14> be present.</t>
          </li>
          <li>
            <t>The 'ace_groupcomm_profile' parameter <bcp14>MUST</bcp14> be present and has value coap_group_oscore_app (PROFILE_TBD), which is registered in <xref target="ssec-iana-groupcomm-profile-registry"/> of this document (REQ19).</t>
          </li>
          <li>
            <t>The 'creds' parameter, if present, specifies the authentication credentials requested by the joining node by means of the 'get_creds' parameter that was specified in the Join Request.  </t>
            <t>
If the joining node has asked for the authentication credentials of all the group members, i.e., the 'get_creds' parameter in the Join Request had value the CBOR Simple Value <tt>null</tt> (0xf6), then the Group Manager provides only the authentication credentials of the group members that are relevant to the joining node. That is, in such a case, the 'creds' parameter specifies only: i) the authentication credentials of the responders currently in the OSCORE group, in case the joining node is configured (also) as requester; and ii) the authentication credentials of the requesters currently in the OSCORE group, in case the joining node is configured (also) as responder or monitor.</t>
          </li>
          <li>
            <t>The 'peer_identifiers' parameter, if present, specifies the OSCORE Sender ID of each group member whose authentication credential is specified in the 'creds' parameter. That is, a group member's Sender ID is used as identifier for that group member (REQ25).</t>
          </li>
          <li>
            <t>The 'group_policies' parameter <bcp14>SHOULD</bcp14> be present, and <bcp14>SHOULD</bcp14> include the following elements (REQ20):  </t>
            <ul spacing="normal">
              <li>
                <t>"Key Update Check Interval" (see <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>), with default value 3600;</t>
              </li>
              <li>
                <t>"Expiration Delta" (see <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>), with default value 0.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The 'kdc_cred' parameter <bcp14>MUST</bcp14> be present, specifying the Group Manager's authentication credential in its original binary representation (REQ8). The Group Manager's authentication credential <bcp14>MUST</bcp14> be in the format used in the OSCORE group. Also, the authentication credential as well as the included public key <bcp14>MUST</bcp14> be compatible with the signature or ECDH algorithm, and with possible associated parameters used in the OSCORE group.</t>
          </li>
          <li>
            <t>The 'kdc_nonce' parameter <bcp14>MUST</bcp14> be present, specifying the dedicated nonce N_KDC generated by the Group Manager. For N_KDC, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random nonce.</t>
          </li>
          <li>
            <t>The 'kdc_cred_verify' parameter <bcp14>MUST</bcp14> be present, specifying the proof-of-possession (PoP) evidence computed by the Group Manager. The PoP evidence is computed as defined below (REQ21).  </t>
            <ul spacing="normal">
              <li>
                <t>If the group is not a pairwise-only group, then the PoP evidence <bcp14>MUST</bcp14> be a signature. The Group Manager computes the signature by using the signature algorithm used in the OSCORE group, as well as its own private key associated with the authentication credential specified in the 'kdc_cred' parameter.</t>
              </li>
              <li>
                <t>If the group is a pairwise-only group, then the PoP evidence <bcp14>MUST</bcp14> be a MAC computed as follows, by using the HKDF Algorithm HKDF SHA-256, which consists of composing the HKDF-Extract and HKDF-Expand steps <xref target="RFC5869"/>.      </t>
                <t>
MAC = HKDF(salt, IKM, info, L)      </t>
                <t>
The input parameters of HKDF are as follows.      </t>
                <ul spacing="normal">
                  <li>
                    <t>salt takes as value the empty byte string.</t>
                  </li>
                  <li>
                    <t>IKM is computed as a cofactor Diffie-Hellman shared secret, see Section 5.7.1.2 of <xref target="NIST-800-56A"/>, using the ECDH algorithm used in the OSCORE group. The Group Manager uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the joining node. For X25519 and X448, the procedure is described in <xref section="5" sectionFormat="of" target="RFC7748"/>.</t>
                  </li>
                  <li>
                    <t>info takes as value the PoP input.</t>
                  </li>
                  <li>
                    <t>L is equal to 8, i.e., the size of the MAC, in bytes.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li>
            <t>The 'group_rekeying' parameter <bcp14>MAY</bcp14> be omitted, if the Group Manager uses the "Point-to-Point" group rekeying scheme registered in <xref section="11.13" sectionFormat="of" target="RFC9594"/> as rekeying scheme in the OSCORE group (OPT9). Its detailed use for this profile is defined in <xref target="sec-group-rekeying-process"/> of this document. In any other case, the 'group_rekeying' parameter <bcp14>MUST</bcp14> be included.</t>
          </li>
        </ul>
        <t>As a last action, if the Group Manager reassigns Gid values during the group's lifetime (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.2.1.1" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="E" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>), then the Group Manager <bcp14>MUST</bcp14> store the Gid specified in the 'contextId' parameter of the 'key' parameter, as the Birth Gid of the joining node in the joined group (see <xref section="E" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). This applies also in case the joining node is in fact re-joining the group; in such a case, the newly determined Birth Gid overwrites the one currently stored.</t>
      </section>
      <section anchor="ssec-join-resp-processing">
        <name>Receive the Join Response</name>
        <t>Upon receiving the Join Response, the joining node retrieves the Group Manager's authentication credential from the 'kdc_cred' parameter. The joining node <bcp14>MUST</bcp14> verify the proof-of-possession (PoP) evidence specified in the 'kdc_cred_verify' parameter of the Join Response as defined below (REQ21).</t>
        <ul spacing="normal">
          <li>
            <t>If the group is not a pairwise-only group, the PoP evidence is a signature. The joining node verifies it by using the public key of the Group Manager from the received authentication credential, as well as the signature algorithm used in the OSCORE group and possible corresponding parameters.</t>
          </li>
          <li>
            <t>If the group is a pairwise-only group, the PoP evidence is a MAC. The joining node recomputes the MAC through the same process that is taken by the Group Manager when computing the value of the 'kdc_cred_verify' parameter (see <xref target="ssec-join-resp"/>), with the difference that the joining node uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the Group Manager from the received authentication credential. The verification succeeds if and only if the recomputed MAC is equal to the MAC conveyed as PoP evidence in the Join Response.</t>
          </li>
        </ul>
        <t>In case of failed verification of the PoP evidence, the joining node <bcp14>MUST</bcp14> stop processing the Join Response and <bcp14>MAY</bcp14> send a new Join Request to the Group Manager (see <xref target="ssec-join-req-sending"/>).</t>
        <t>In case of successful verification of the PoP evidence, the joining node uses the information received in the Join Response to set up the Group OSCORE Security Context, as described in <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>. In particular, the following applies.</t>
        <t>If the following parameters were not included in the 'key' parameter of the Join Response, then the joining node performs the following actions.</t>
        <ul spacing="normal">
          <li>
            <t>Absent the 'gp_enc_alg' parameter, the parameter Group Encryption Algorithm in the Common Context of the Group OSCORE Security Context is not set.</t>
          </li>
          <li>
            <t>Absent the 'sign_alg' parameter, the parameter Signature Algorithm in the Common Context of the Group OSCORE Security Context is not set.</t>
          </li>
          <li>
            <t>Absent the 'alg' parameter, the parameter AEAD Algorithm in the Security Context of the Group OSCORE Security Context is not set.</t>
          </li>
          <li>
            <t>Absent the 'ecdh_alg' parameter, the parameter Pairwise Key Agreement Algorithm in the Common Context of the Group OSCORE Security Context is not set.</t>
          </li>
        </ul>
        <t>If the following parameters were not included in the 'key' parameter of the Join Response, then the joining node considers the default values specified below, consistently with <xref section="3.2" sectionFormat="of" target="RFC8613"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Absent the 'hkdf' parameter, the joining node considers HKDF SHA-256 as the HKDF Algorithm to use in the OSCORE group.</t>
          </li>
          <li>
            <t>Absent the 'salt' parameter, the joining node considers the empty byte string as the Master Salt to use in the OSCORE group.</t>
          </li>
          <li>
            <t>Absent the 'group_rekeying' parameter, the joining node considers the "Point-to-Point" group rekeying scheme registered in <xref section="11.13" sectionFormat="of" target="RFC9594"/> as the rekeying scheme used in the OSCORE group (OPT9). The detailed use of that rekeying scheme for this profile is defined in <xref target="sec-group-rekeying-process"/> of this document.</t>
          </li>
        </ul>
        <t>In addition, the joining node maintains an association between each authentication credential retrieved from the 'creds' parameter and the role(s) that the corresponding group member has in the OSCORE group.</t>
        <t>From then on, the joining node can exchange group messages secured with Group OSCORE as described in <xref target="I-D.ietf-core-oscore-groupcomm"/>. When doing so:</t>
        <ul spacing="normal">
          <li>
            <t>The joining node <bcp14>MUST NOT</bcp14> process an incoming request message, if protected by a group member whose authentication credential is not associated with the role "Requester".</t>
          </li>
          <li>
            <t>The joining node <bcp14>MUST NOT</bcp14> process an incoming response message, if protected by a group member whose authentication credential is not associated with the role "Responder".</t>
          </li>
          <li>
            <t>The joining node <bcp14>MUST NOT</bcp14> use the group mode of Group OSCORE to process messages in the group, if the Join Response did not include both the 'gp_enc_alg' parameter and the 'sign_alg' parameter.</t>
          </li>
          <li>
            <t>The joining node <bcp14>MUST NOT</bcp14> use the pairwise mode of Group OSCORE to process messages in the group, if the Join Response did not include both the 'alg' parameter and the 'ecdh_alg' parameter.</t>
          </li>
        </ul>
        <t>If the application requires backward security, the Group Manager <bcp14>MUST</bcp14> generate updated security parameters and group keying material, and provide it to the current group members, upon the new node's joining (see <xref target="sec-group-rekeying-process"/>). In such a case, the joining node is not able to access secure communication in the OSCORE group that occurred prior to its joining.</t>
      </section>
    </section>
    <section anchor="ssec-overview-group-rekeying-process">
      <name>Overview of the Group Rekeying Process</name>
      <t>In a number of cases, the Group Manager has to generate new keying material and distribute it to the group (rekeying), as also discussed in <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      <t>To this end the Group Manager <bcp14>MUST</bcp14> support the Group Rekeying Process described in <xref target="sec-group-rekeying-process"/> of this document, as an instance of the "Point-to-Point" rekeying scheme defined in <xref section="6.1" sectionFormat="of" target="RFC9594"/> and registered in <xref section="11.13" sectionFormat="of" target="RFC9594"/>. Future documents may define the use of alternative group rekeying schemes for this application profile, together with the corresponding rekeying message formats. The resulting group rekeying process <bcp14>MUST</bcp14> comply with the functional steps defined in <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      <t>The initial value of the version number of the group keying material <bcp14>MUST</bcp14> be set to 0 when creating the group (REQ16), e.g., as in <xref target="I-D.ietf-ace-oscore-gm-admin"/>.</t>
      <t>Upon generating the new group keying material and before starting its distribution, the Group Manager <bcp14>MUST</bcp14> increment the version number of the group keying material. When rekeying a group, the Group Manager <bcp14>MUST</bcp14> preserve the current value of the OSCORE Sender ID of each member in that group.</t>
      <t>The data distributed to a group through a rekeying <bcp14>MUST</bcp14> include:</t>
      <ul spacing="normal">
        <li>
          <t>The new version number of the group keying material for the group.</t>
        </li>
        <li>
          <t>A new Group Identifier (Gid) for the group as introduced in <xref target="RFC9594"/>, which is used as ID Context parameter of the Group OSCORE Common Security Context of that group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).  </t>
          <t>
Note that the Gid differs from the group name also introduced in <xref target="RFC9594"/>, which is a plain, stable, and invariant identifier, with no cryptographic relevance and meaning.</t>
        </li>
        <li>
          <t>A new value for the Master Secret parameter of the Group OSCORE Common Security Context of that group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
        </li>
        <li>
          <t>A set of stale Sender IDs, which allows each rekeyed node to purge authentication credentials and Recipient Contexts used in the group and associated with those Sender IDs. This in turn allows every group member to rely on stored authentication credentials, in order to confidently assert the group membership of other sender nodes, when receiving protected messages in the group (see <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). More details on the maintenance of stale Sender IDs are provided in <xref target="sssec-stale-sender-ids"/>.</t>
        </li>
      </ul>
      <t>The data distributed through a group rekeying <bcp14>MAY</bcp14> also include a new value for the Master Salt parameter of the Group OSCORE Common Security Context of that group.</t>
      <t>The Group Manager <bcp14>MUST</bcp14> rekey the group in the following cases.</t>
      <ul spacing="normal">
        <li>
          <t>The application requires backward security - In this case, the group is rekeyed when a node joins the group as a new member. Therefore, a joining node cannot access communications in the group prior to its joining.</t>
        </li>
        <li>
          <t>One or more nodes leave the group - That is, the group is rekeyed when one or more current members spontaneously request to leave the group (see <xref target="sec-leave-req"/>), or when the Group Manager forcibly evicts them from the group, e.g., due to expired or revoked authorization (see <xref target="sec-leaving"/>). Therefore, a leaving node cannot access communications in the group after its leaving, thus ensuring forward security in the group.  </t>
          <t>
Due to the set of stale Sender IDs distributed through the rekeying, this ensures that a node storing the latest group keying material does not store the authentication credentials of former group members (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.2" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="13.1" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
        </li>
      </ul>
      <t>When the expiration time for the group keying material approaches or has passed, the Group Manager may want to extend the secure group operation, as considered appropriate. If the Group Manager does so, the Group Manager <bcp14>MUST</bcp14> rekey the group.</t>
      <t>The Group Manager <bcp14>MAY</bcp14> rekey the group for other reasons, e.g., according to an application-specific rekeying period or scheduling.</t>
      <section anchor="sssec-stale-sender-ids">
        <name>Stale OSCORE Sender IDs</name>
        <t>For each OSCORE group, the Group Manager <bcp14>MUST</bcp14> maintain N &gt; 1 sets of "stale" OSCORE Sender IDs. It is up to the application to specify the value of N, possibly on a per-group basis.</t>
        <t>Each set is uniquely associated with one version of the group keying material, and includes the OSCORE Sender IDs that have become "stale" in the OSCORE group under that version of the group keying material.</t>
        <t>In the following cases, the Group Manager <bcp14>MUST</bcp14> add an element to the set X associated with the current version of the group keying material.</t>
        <ul spacing="normal">
          <li>
            <t>When a current group member obtains a new Sender ID, its old Sender ID is added to X. This happens when the Group Manager assigns a new Sender ID upon request from the group member (see <xref target="sec-new-key"/>), or in case the group member re-joins the group (see <xref target="ssec-join-req-sending"/> and <xref target="ssec-join-resp"/>), thus also obtaining a new Sender ID.</t>
          </li>
          <li>
            <t>When a current group member leaves the group, its current Sender ID is added to X. This happens when a group member requests to leave the group (see <xref target="sec-leave-req"/>) or is forcibly evicted from the group (see <xref target="sec-leaving"/>).</t>
          </li>
        </ul>
        <t>The value of N can change during the lifetime of the group. If the new value N' is smaller than N, then the Group Manager <bcp14>MUST</bcp14> preserve the sets associated with the (up to) N' most recent versions of the group keying material.</t>
        <t>When performing a group rekeying (see <xref target="sec-group-rekeying-process"/>) for switching from an old version V of the group keying material to a new version V' = (V + 1), the Group Manager <bcp14>MUST</bcp14> perform the following actions.</t>
        <ul spacing="normal">
          <li>
            <t>Before creating the new group keying material with version V', if the number of sets of stale Sender IDs for the group is equal to N, then the Group Manager deletes the oldest set.</t>
          </li>
          <li>
            <t>The Group Manager rekeys the group. This includes also distributing the set of stale Sender IDs associated with the version V of the group keying material (see <xref target="ssec-overview-group-rekeying-process"/>).</t>
          </li>
          <li>
            <t>After completing the group rekeying, the Group Manager creates an empty set of stale Sender IDs, as associated with the version V' of the group keying material.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-interface-GM">
      <name>Interface at the Group Manager</name>
      <t>The Group Manager provides the interface defined in <xref section="4.1" sectionFormat="of" target="RFC9594"/> in its entirety (REQ9), with the following additions:</t>
      <ul spacing="normal">
        <li>
          <t>The new FETCH handler is defined for the sub-resource /ace-group/GROUPNAME/kdc-cred (see <xref target="sec-gm-pub-key-fetch"/> of this document).</t>
        </li>
        <li>
          <t>Three new sub-resources are defined (see <xref target="ssec-resource-active"/>, <xref target="ssec-resource-verif-data"/>, and <xref target="ssec-resource-stale-sids"/> of this document).</t>
        </li>
      </ul>
      <t><xref target="ssec-admitted-methods"/> provides a summary of the CoAP methods admitted to access different resources at the Group Manager, for nodes with different roles in the group or as non members (REQ11).</t>
      <t>The GROUPNAME segment of the URI path <bcp14>MUST</bcp14> match with the group name specified in the scope entry of the scope in the access token (i.e., 'gname' in <xref section="3.1" sectionFormat="of" target="RFC9594"/>) (REQ7).</t>
      <t>The Resource Type (rt=) Link Target Attribute value "core.osc.gm" is registered in <xref target="iana-rt"/> (REQ10), and can be used to describe group-membership resources and its sub-resources at a Group Manager, e.g., by using a CoRE link-format document <xref target="RFC6690"/>.</t>
      <t>Applications can use this common resource type to discover links to group-membership resources for joining OSCORE groups, e.g., by using the approach described in <xref target="I-D.tiloca-core-oscore-discovery"/>.</t>
      <section anchor="sec-gm-pub-key-fetch">
        <name>/ace-group/GROUPNAME/kdc-cred</name>
        <t>In addition to what is defined in <xref section="4.5" sectionFormat="of" target="RFC9594"/>, this resource also implements a FETCH handler.</t>
        <section anchor="kdc-cred-fetch">
          <name>FETCH Handler</name>
          <t>The handler expects a FETCH request, whose payload is a CBOR map including a nonce N_C (see <xref target="sec-gm-pub-key-signature-verifier"/>).</t>
          <t>In addition to what is defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>, the Group Manager performs the following checks.</t>
          <t>In case the requesting Client is a current group member, the Group Manager <bcp14>MUST</bcp14> reply with a 4.03 (Forbidden) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 8 ("Operation permitted only to signature verifiers").</t>
          <t>In case GROUPNAME denotes a pairwise-only group, the Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 7 ("Signatures not used in the group").</t>
          <t>If all verifications succeed, the handler replies with a 2.05 (Content) response, specifying the authentication credential of the Group Manager together with a proof-of-possession (PoP) evidence. The payload of the response is formatted as defined in <xref target="sec-gm-pub-key-signature-verifier"/>.</t>
        </section>
      </section>
      <section anchor="ssec-resource-active">
        <name>/ace-group/GROUPNAME/active</name>
        <t>This resource implements a GET handler.</t>
        <section anchor="active-get">
          <name>GET Handler</name>
          <t>The handler expects a GET request.</t>
          <t>In addition to what is defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>, the handler verifies that the requesting Client is a current member of the group. If the verification fails, the KDC <bcp14>MUST</bcp14> reply with a 4.03 (Forbidden) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 0 ("Operation permitted only to group members").</t>
          <t>If all verifications succeed, the handler replies with a 2.05 (Content) response, specifying the current status of the group, i.e., active or inactive. The payload of the response is formatted as defined in <xref target="sec-status"/>.</t>
          <t>The method to set the current group status is out of the scope of this document, and is defined for the administrator interface of the Group Manager specified in <xref target="I-D.ietf-ace-oscore-gm-admin"/>.</t>
        </section>
      </section>
      <section anchor="ssec-resource-verif-data">
        <name>/ace-group/GROUPNAME/verif-data</name>
        <t>This resource implements a GET handler.</t>
        <section anchor="verif-data-get">
          <name>GET Handler</name>
          <t>The handler expects a GET request.</t>
          <t>In addition to what is defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>, the handler performs the following actions.</t>
          <t>In case the requesting Client is a current group member, the Group Manager <bcp14>MUST</bcp14> reply with a 4.03 (Forbidden) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 8 ("Operation permitted only to signature verifiers").</t>
          <t>In case GROUPNAME denotes a pairwise-only group, the Group Manager <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 7 ("Signatures not used in the group").</t>
          <t>If all verifications succeed, the handler replies with a 2.05 (Content) response, specifying data that allow also an external signature verifier to verify signatures of messages protected with the group mode and sent to the group (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="7.5" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="12.3" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>). The response <bcp14>MUST</bcp14> have Content-Format set to "application/ace-groupcomm+cbor". The payload of the response is a CBOR map, which is formatted as defined in <xref target="sec-verif-data"/>.</t>
        </section>
      </section>
      <section anchor="ssec-resource-stale-sids">
        <name>/ace-group/GROUPNAME/stale-sids</name>
        <t>This resource implements a FETCH handler.</t>
        <section anchor="stale-sids-fetch">
          <name>FETCH Handler</name>
          <t>The handler expects a FETCH request, whose payload specifies a version number of the group keying material, encoded as an unsigned CBOR integer (see <xref target="sec-retrieve-stale-sids"/>).</t>
          <t>In addition to what is defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>, the handler verifies that the requesting Client is a current member of the group. If the verification fails, the Group Manager <bcp14>MUST</bcp14> reply with a 4.03 (Forbidden) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 0 ("Operation permitted only to group members").</t>
          <t>If all verifications succeed, the handler replies with a 2.05 (Content) response, specifying data that allow the requesting Client to delete the Recipient Contexts and authentication credentials associated with former members of the group (see <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>. The payload of the response is formatted as defined in <xref target="sec-retrieve-stale-sids"/>.</t>
        </section>
      </section>
      <section anchor="ssec-admitted-methods">
        <name>Admitted Methods</name>
        <t><xref target="tab-methods"/> summarizes the CoAP methods admitted to access different resources at the Group Manager, for (non-)members of a group with group name GROUPNAME, and considering different roles. The last two rows of the table apply to a node with node name NODENAME.</t>
        <t>The table uses the following abbreviations.</t>
        <ul spacing="normal">
          <li>
            <t>G = CoAP method GET</t>
          </li>
          <li>
            <t>F = CoAP method FETCH</t>
          </li>
          <li>
            <t>P = CoAP method POST</t>
          </li>
          <li>
            <t>D = CoAP method DELETE</t>
          </li>
          <li>
            <t>Type1 = Member as Requester and/or Responder</t>
          </li>
          <li>
            <t>Type2 = Member as Monitor</t>
          </li>
          <li>
            <t>Type3 = Non-member (authorized to be signature verifier)</t>
          </li>
          <li>
            <t>Type4 = Non-member (not authorized to be signature verifier)</t>
          </li>
          <li>
            <t>* = Cannot join the group as signature verifier</t>
          </li>
        </ul>
        <table align="center" anchor="tab-methods">
          <name>Admitted CoAP Methods on the Group Manager Resources</name>
          <thead>
            <tr>
              <th align="left">Resource</th>
              <th align="left">Type1</th>
              <th align="left">Type2</th>
              <th align="left">Type3</th>
              <th align="left">Type4</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">/ace-group</td>
              <td align="left">F</td>
              <td align="left">F</td>
              <td align="left">F</td>
              <td align="left">F</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME</td>
              <td align="left">G P</td>
              <td align="left">G P</td>
              <td align="left">P *</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/active</td>
              <td align="left">G</td>
              <td align="left">G</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/verif-data</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">G</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/creds</td>
              <td align="left">G F</td>
              <td align="left">G F</td>
              <td align="left">G F</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/kdc-cred</td>
              <td align="left">G</td>
              <td align="left">G</td>
              <td align="left">F</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/stale-sids</td>
              <td align="left">F</td>
              <td align="left">F</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/policies</td>
              <td align="left">G</td>
              <td align="left">G</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/num</td>
              <td align="left">G</td>
              <td align="left">G</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/nodes/NODENAME</td>
              <td align="left">G P D</td>
              <td align="left">G D</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
            <tr>
              <td align="left">/ace-group/GROUPNAME/nodes/NODENAME/cred</td>
              <td align="left">P</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
          </tbody>
        </table>
        <section anchor="signature-verifiers">
          <name>Signature Verifiers</name>
          <t>Just like any candidate group member, a signature verifier provides the Group Manager with an access token, as described in <xref target="ssec-token-post"/>. However, unlike candidate group members, it does not join any OSCORE group, i.e., it does not perform the joining process defined in <xref target="sec-joining-node-to-GM"/>.</t>
          <t>After successfully transferring an access token to the Group Manager, a signature verifier is allowed to perform only some operations as non-member of a group, and only for the OSCORE groups specified in the validated access token. These are the operations specified in <xref target="sec-pub-keys"/>, <xref target="sec-gm-pub-key"/>, <xref target="sec-verif-data"/>, and <xref target="sec-retrieve-gnames"/>.</t>
          <t>Consistently, in case a node is not a member of the group with group name GROUPNAME and is authorized to be only signature verifier for that group, the Group Manager <bcp14>MUST</bcp14> reply with a 4.03 (Forbidden) error response if that node attempts to access any other endpoint than the following ones:</t>
          <ul spacing="normal">
            <li>
              <t>/ace-group</t>
            </li>
            <li>
              <t>/ace-group/GROUPNAME/verif-data</t>
            </li>
            <li>
              <t>/ace-group/GROUPNAME/creds</t>
            </li>
            <li>
              <t>/ace-group/GROUPNAME/kdc-cred</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="client-operations">
        <name>Operations Supported by Clients</name>
        <t>Building on what is defined in <xref section="4.1.1" sectionFormat="of" target="RFC9594"/>, and with reference to the resources at the Group Manager newly defined earlier in <xref target="sec-interface-GM"/> of this document, it is expected that a Client minimally supports also the following set of operations and corresponding interactions with the Group Manager (REQ12).</t>
        <ul spacing="normal">
          <li>
            <t>GET request to /ace-group/GROUPNAME/active, in order to check the current status of the OSCORE group.</t>
          </li>
          <li>
            <t>GET request to /ace-group/GROUPNAME/verif-data, in order for a signature verifier to retrieve data required to verify signatures of messages protected with the group mode of Group OSCORE and sent to a group (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.3" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="7.5" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>). Note that this operation is relevant to support only to signature verifiers.</t>
          </li>
          <li>
            <t>FETCH request to /ace-group/GROUPNAME/stale-sids, in order to retrieve from the Group Manager the data required to delete some of the stored group members' authentication credentials and associated Recipient Contexts (see <xref target="stale-sids-fetch"/>). This data is provided as an aggregated set of stale Sender IDs, which are used as specified in <xref target="missed-rekeying"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-additional-interactions">
      <name>Additional Interactions with the Group Manager</name>
      <t>This section defines the possible interactions with the Group Manager, in addition to the group joining specified in <xref target="sec-joining-node-to-GM"/>.</t>
      <section anchor="sec-updated-key">
        <name>Retrieve Updated Keying Material</name>
        <t>At some point, a group member considers the Group OSCORE Security Context invalid and to be renewed. This happens, for instance, after a number of unsuccessful security processing of incoming messages from other group members, or when the Security Context expires as specified by the 'exp' or 'exi' parameter of the Join Response.</t>
        <t>When this happens, the group member retrieves updated security parameters and group keying material. This can occur in the two different ways described below.</t>
        <section anchor="ssec-updated-key-only">
          <name>Get Group Keying Material</name>
          <t>If the group member wants to retrieve only the latest group keying material, it sends a Key Distribution Request to the Group Manager.</t>
          <t>That is, it sends a CoAP GET request to the endpoint /ace-group/GROUPNAME at the Group Manager.</t>
          <t>The Group Manager processes the Key Distribution Request according to <xref section="4.3.2" sectionFormat="of" target="RFC9594"/>. The Key Distribution Response is formatted as defined in <xref section="4.3.2" sectionFormat="of" target="RFC9594"/>, with the following additions.</t>
          <ul spacing="normal">
            <li>
              <t>The 'key' parameter is formatted as defined in <xref target="ssec-join-resp"/> of this document, with the difference that it does not include the 'group_SenderId' parameter.</t>
            </li>
            <li>
              <t>The 'exp' parameter <bcp14>SHOULD</bcp14> be present.</t>
            </li>
            <li>
              <t>The 'exi' parameter <bcp14>MUST</bcp14> be present.</t>
            </li>
            <li>
              <t>The 'ace_groupcomm_profile' parameter <bcp14>MUST</bcp14> be present and has value coap_group_oscore_app.</t>
            </li>
          </ul>
          <t>Upon receiving the Key Distribution Response, the group member retrieves the updated security parameters and group keying material, and, if they differ from the current ones, uses them to set up the new Group OSCORE Security Context as described in <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          <t>This application profile does not specify policies that instruct group members to retain messages and for how long, if those messages are unsuccessfully decrypted (OPT11).</t>
        </section>
        <section anchor="ssec-updated-and-individual-key">
          <name>Get Group Keying Material and OSCORE Sender ID</name>
          <t>If the group member wants to retrieve the latest group keying material as well as the OSCORE Sender ID that it has in the OSCORE group, it sends a Key Distribution Request to the Group Manager.</t>
          <t>That is, it sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/nodes/NODENAME at the Group Manager.</t>
          <t>The Group Manager processes the Key Distribution Request according to <xref section="4.8.1" sectionFormat="of" target="RFC9594"/>. The Key Distribution Response is formatted as defined in <xref section="4.8.1" sectionFormat="of" target="RFC9594"/>, with the following additions.</t>
          <ul spacing="normal">
            <li>
              <t>The 'key' parameter is formatted as defined in <xref target="ssec-join-resp"/> of this document. If the requesting group member has exclusively the role of monitor, then the 'key' parameter does not include the 'group_SenderId' parameter.  </t>
              <t>
Note that, in any other case, the current Sender ID of the group member is not specified as a separate parameter, but instead by the 'group_SenderId' parameter within the 'key' parameter.</t>
            </li>
            <li>
              <t>The 'exp' parameter <bcp14>SHOULD</bcp14> be present.</t>
            </li>
            <li>
              <t>The 'exi' parameter <bcp14>MUST</bcp14> be present.</t>
            </li>
          </ul>
          <t>Upon receiving the Key Distribution Response, the group member retrieves the updated security parameters, group keying material, and Sender ID, and, if they differ from the current ones, uses them to set up the new Group OSCORE Security Context as described in <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          <t>This application profile does not specify policies that instruct group members to retain messages and for how long, if those messages are unsuccessfully decrypted (OPT11).</t>
        </section>
      </section>
      <section anchor="sec-new-key">
        <name>Request to Change Individual Keying Material</name>
        <t>As discussed in <xref section="2.6.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, a group member may at some point exhaust its Sender Sequence Numbers in the OSCORE group.</t>
        <t>When this happens, the group member <bcp14>MUST</bcp14> send a Key Renewal Request message to the Group Manager, as per <xref section="4.8.2.1" sectionFormat="of" target="RFC9594"/>. That is, it sends a CoAP POST request to the endpoint /ace-group/GROUPNAME/nodes/NODENAME at the Group Manager.</t>
        <t>Upon receiving the Key Renewal Request, the Group Manager processes it as defined in <xref section="4.8.2" sectionFormat="of" target="RFC9594"/>, with the following additions.</t>
        <t>The Group Manager <bcp14>MUST</bcp14> return a 5.03 (Service Unavailable) response in case the OSCORE group identified by GROUPNAME is currently inactive (see <xref target="ssec-resource-active"/>). The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 9 ("Group currently not active").</t>
        <t>Otherwise, the Group Manager performs one of the following actions.</t>
        <ol spacing="normal" type="1"><li>
            <t>If the requesting group member has exclusively the role of monitor, the Group Manager replies with a 4.00 (Bad Request) error response.  The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 1 ("Request inconsistent with the current roles").</t>
          </li>
          <li>
            <t>Otherwise, the Group Manager takes one of the following actions.  </t>
            <ul spacing="normal">
              <li>
                <t>The Group Manager rekeys the OSCORE group. That is, the Group Manager generates new group keying material for that group (see <xref target="sec-group-rekeying-process"/>), and replies to the group member with a group rekeying message as defined in <xref target="sec-group-rekeying-process"/>, providing the new group keying material. Then, the Group Manager rekeys the rest of the OSCORE group, as discussed in <xref target="sec-group-rekeying-process"/>.      </t>
                <t>
The Group Manager <bcp14>SHOULD</bcp14> perform a group rekeying only if already scheduled to  occur shortly, e.g., according to an application-specific rekeying period or scheduling, or as a reaction to a recent change in the group membership. In any other case, the Group Manager <bcp14>SHOULD NOT</bcp14> rekey the OSCORE group when receiving a Key Renewal Request (OPT12).</t>
              </li>
              <li>
                <t>The Group Manager selects and assigns a new OSCORE Sender ID for that group member (REQ27), according to the same criteria defined in <xref target="ssec-join-resp"/> for selecting and assigning an OSCORE Sender ID to include in a Join Response.      </t>
                <t>
Then, the Group Manager replies with a Key Renewal Response formatted as defined in <xref section="4.8.2" sectionFormat="of" target="RFC9594"/>. The CBOR map in the response payload only includes the 'group_SenderId' parameter registered in <xref target="ssec-iana-ace-groupcomm-parameters-registry"/> of this document, specifying the new Sender ID of the group member encoded as a CBOR byte string (REQ27).      </t>
                <t>
Consistently with <xref section="2.6.3.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, the Group Manager <bcp14>MUST</bcp14> assign a new Sender ID that has not been used in the OSCORE group since the latest time when the current Gid value was assigned to the group.      </t>
                <t>
Furthermore, the Group Manager <bcp14>MUST</bcp14> add the old, relinquished Sender ID of the group member to the most recent set of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>).      </t>
                <t>
The Group Manager <bcp14>MUST</bcp14> return a 5.03 (Service Unavailable) response in case there are currently no Sender IDs available to assign in the OSCORE group. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 4 ("No available individual keying material").</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
      <section anchor="sec-pub-keys">
        <name>Retrieve Authentication Credentials of Group Members</name>
        <t>A group member or a signature verifier may need to retrieve the authentication credentials of (other) group members. To this end, the group member or signature verifier sends an Authentication Credential Request message to the Group Manager, as per Sections <xref target="RFC9594" section="4.4.1.1" sectionFormat="bare"/> and <xref target="RFC9594" section="4.4.2.1" sectionFormat="bare"/> of <xref target="RFC9594"/>. That is, it sends the request to the endpoint /ace-group/GROUPNAME/creds at the Group Manager.</t>
        <t>If the Authentication Credential Request uses the method FETCH, then the Authentication Credential Request is formatted as defined in <xref section="4.4.1" sectionFormat="of" target="RFC9594"/>. That is:</t>
        <ul spacing="normal">
          <li>
            <t>Each element (if any) of the inner CBOR array 'role_filter' is formatted as in the inner CBOR array 'role_filter' of the 'get_creds' parameter of the Join Request when the parameter value is not the CBOR simple value <tt>null</tt> (0xf6) (see <xref target="ssec-join-req-sending"/>).</t>
          </li>
          <li>
            <t>Each element (if any) of the inner CBOR array 'id_filter' is a CBOR byte string, which encodes the OSCORE Sender ID of the group member for which the associated authentication credential is requested (REQ25).</t>
          </li>
        </ul>
        <t>Upon receiving the Authentication Credential Request, the Group Manager processes it as per Section 4.4.1 or Section 4.4.2 of <xref target="RFC9594"/>, depending on the request method being FETCH or GET, respectively. Additionally, if the Authentication Credential Request uses the method FETCH, the Group Manager silently ignores node identifiers included in the ’get_creds’ parameter of the request that are not associated with any current group member (REQ26).</t>
        <t>The success Authentication Credential Response is formatted as defined in Section 4.4.1 or Section 4.4.2 of <xref target="RFC9594"/>, depending on the request method being FETCH or GET, respectively.</t>
      </section>
      <section anchor="sec-update-pub-key">
        <name>Upload a New Authentication Credential</name>
        <t>A group member may need to provide the Group Manager with its new authentication credential to use in the group from then on, hence replacing the current one. This can be the case, for instance, if the signature or ECDH algorithm and possible associated parameters used in the OSCORE group have been changed, and the current authentication credential is not compatible with them.</t>
        <t>To this end, the group member sends an Authentication Credential Update Request message to the Group Manager, as per <xref section="4.9.1.1" sectionFormat="of" target="RFC9594"/>, with the following addition.</t>
        <ul spacing="normal">
          <li>
            <t>The group member computes the proof-of-possession (PoP) evidence included in 'client_cred_verify' in the same way defined in <xref target="ssec-join-req-sending"/> when preparing a Join Request for the OSCORE group in question (REQ14), with the difference that the 'client_cred_verify' parameter <bcp14>MUST NOT</bcp14> specify an empty PoP evidence.</t>
          </li>
        </ul>
        <t>That is, the group member sends a CoAP POST request to the endpoint /ace-group/GROUPNAME/nodes/NODENAME/cred at the Group Manager.</t>
        <t>Upon receiving the Authentication Credential Update Request, the Group Manager processes it as per <xref section="4.9.1" sectionFormat="of" target="RFC9594"/>, with the following additions.</t>
        <ul spacing="normal">
          <li>
            <t>The N_S challenge that is used to build the proof-of-possession input is computed as defined in <xref target="sssec-challenge-value"/> (REQ15).</t>
          </li>
          <li>
            <t>The Group Manager verifies the PoP challenge included in the 'client_cred_verify' parameter in the same way defined in <xref target="ssec-join-req-processing"/> when processing a Join Request for the OSCORE group in question (REQ14), with the difference that the verification <bcp14>MUST</bcp14> fail if the 'client_cred_verify' parameter specifies an empty PoP evidence.</t>
          </li>
          <li>
            <t>The Group Manager <bcp14>MAY</bcp14> return a 4.00 (Bad Request) error response in order to prevent the acceptance of Ed25519 and Ed448 public keys that cannot be successfully converted to Montgomery coordinates, according to the same criteria defined in <xref target="ssec-join-req-processing"/> when processing a Join Request for the OSCORE group in question.</t>
          </li>
          <li>
            <t>The Group Manager <bcp14>MUST</bcp14> return a 5.03 (Service Unavailable) response in case the OSCORE group identified by GROUPNAME is currently inactive (see <xref target="ssec-resource-active"/>). The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 9 ("Group currently not active").</t>
          </li>
          <li>
            <t>If the requesting group member has exclusively the role of monitor, the Group Manager replies with a 4.00 (Bad request) error response. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 1 ("Request inconsistent with the current roles").</t>
          </li>
          <li>
            <t>If the request is successfully processed, the Group Manager stores the association between: i) the new authentication credential of the group member; and ii) the Group Identifier (Gid), i.e., the OSCORE ID Context associated with the OSCORE group, together with the OSCORE Sender ID assigned to the group member in the group. The Group Manager <bcp14>MUST</bcp14> keep this association updated over time.</t>
          </li>
        </ul>
        <t>This application profile does not specify a method for the group member to provide other group members with the identifier of its new authentication credential (OPT13).</t>
      </section>
      <section anchor="sec-gm-pub-key">
        <name>Retrieve the Group Manager's Authentication Credential</name>
        <t>A group member or a signature verifier may need to retrieve the authentication credential of the Group Manager. To this end, the requesting Client sends a KDC Authentication Credential Request message to the Group Manager.</t>
        <t><xref target="sec-gm-pub-key-group-member"/> defines how this operation is performed by a group member, building on <xref section="4.5.1.1" sectionFormat="of" target="RFC9594"/>.</t>
        <t><xref target="sec-gm-pub-key-signature-verifier"/> defines how this operation is performed by a signature verifier, by relying on the additional FETCH handler defined in <xref target="kdc-cred-fetch"/> of this document.</t>
        <section anchor="sec-gm-pub-key-group-member">
          <name>Retrieval for Group Members</name>
          <t>A group member sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/kdc-cred at the Group Manager as per <xref section="4.5.1.1" sectionFormat="of" target="RFC9594"/>, where GROUPNAME is the name of the OSCORE group.</t>
          <t>In addition to what is defined in <xref section="4.5.1" sectionFormat="of" target="RFC9594"/>, the Group Manager <bcp14>MUST</bcp14> respond with a 4.03 (Forbidden) error response, if the requesting Client is not a current group member. The response <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor" <xref target="RFC9290"/> and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>. Within the Custom Problem Detail entry 'ace-groupcomm-error', the value of the 'error-id' field <bcp14>MUST</bcp14> be set to 0 ("Operation permitted only to group members").</t>
          <t>The payload of the 2.05 (Content) KDC Authentication Credential Response is a CBOR map, which is formatted as defined in <xref section="4.5.1" sectionFormat="of" target="RFC9594"/>. The Group Manager specifies the parameters 'kdc_cred', 'kdc_nonce', and 'kdc_cred_verify' as defined for the Join Response in <xref target="ssec-join-resp"/> of this document. This especially applies to the computing of the proof-of-possession (PoP) evidence included in 'kdc_cred_verify' (REQ21).</t>
          <t>Upon receiving a 2.05 (Content) KDC Authentication Credential Response, the requesting Client retrieves the Group Manager's authentication credential from the 'kdc_cred' parameter, and proceeds as defined in <xref section="4.5.1.1" sectionFormat="of" target="RFC9594"/>. The requesting Client verifies the PoP evidence included in 'kdc_cred_verify' by means of the same method used when processing the Join Response, as defined in <xref target="ssec-join-resp"/> of this document (REQ21).</t>
        </section>
        <section anchor="sec-gm-pub-key-signature-verifier">
          <name>Retrieval for Signature Verifiers</name>
          <t>A Client signature verifier sends a CoAP FETCH request to the endpoint /ace-group/GROUPNAME/kdc-cred at the Group Manager defined in <xref section="4.5" sectionFormat="of" target="RFC9594"/>, where GROUPNAME is the name of the OSCORE group.</t>
          <t>The request <bcp14>MUST</bcp14> have Content-Format "application/ace-groupcomm+cbor". The payload of the request is formatted as a CBOR map, which <bcp14>MUST</bcp14> contain the following field with the value specified below:</t>
          <ul spacing="normal">
            <li>
              <t>'cnonce': encoded as a CBOR byte string, whose value is a dedicated nonce N_C generated by the Client. For the N_C value, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random nonce.</t>
            </li>
          </ul>
          <t>The payload of the 2.05 (Content) KDC Authentication Credential Response is a CBOR map, which is formatted as defined in <xref section="4.5.1" sectionFormat="of" target="RFC9594"/>, with the following difference:</t>
          <ul spacing="normal">
            <li>
              <t>The 'kdc_cred_verify' field  specifies the PoP evidence computed by the Group Manager over the following PoP input: the nonce N_C (encoded as a CBOR byte string) concatenated with the nonce N_KDC (encoded as a CBOR byte string), where:  </t>
              <ul spacing="normal">
                <li>
                  <t>N_C is the nonce generated by the Client signature verifier and specified in the 'cnonce' field of the received KDC Authentication Credential Request.</t>
                </li>
                <li>
                  <t>N_KDC is the nonce generated by the Group Manager and specified in the 'kdc_nonce' field of the KDC Authentication Credential Response.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>The Group Manager specifies the 'kdc_cred' field and 'kdc_nonce' field as defined for the Join Response in <xref target="ssec-join-resp"/> of this document. The computed PoP evidence included in the 'kdc_cred_verify' field is always a signature computed over the PoP input defined above (REQ21).</t>
          <t>Upon receiving a 2.05 (Content) KDC Authentication Credential Response, the requesting Client retrieves the Group Manager's authentication credential from the 'kdc_cred' parameter. Then, it proceeds as defined in <xref section="4.5.1.1" sectionFormat="of" target="RFC9594"/>, with the difference that it verifies the PoP evidence included in 'kdc_cred_verify' field by verifying a signature and using the PoP input defined above (REQ21)</t>
          <t>Note that a signature verifier would not receive a successful response from the Group Manager, in case GROUPNAME denotes a pairwise-only group (see <xref target="kdc-cred-fetch"/>).</t>
          <t><xref target="fig-gm-pub-key-signature-verifier-req-resp"/> gives an overview of the exchange described above,  while <xref target="fig-gm-pub-key-signature-verifier-resp-ex"/> shows an example of Signature Verification Data Request-Response.</t>
          <figure anchor="fig-gm-pub-key-signature-verifier-req-resp">
            <name>Message Flow of KDC Authentication Credential Request-Response, with a Signature Verifier as Requesting Client</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="568" viewBox="0 0 568 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 24,64 L 24,160" fill="none" stroke="black"/>
                  <path d="M 536,64 L 536,160" fill="none" stroke="black"/>
                  <path d="M 32,96 L 528,96" fill="none" stroke="black"/>
                  <path d="M 32,144 L 56,144" fill="none" stroke="black"/>
                  <path d="M 512,144 L 528,144" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="536,96 524,90.4 524,101.6" fill="black" transform="rotate(0,528,96)"/>
                  <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(180,32,144)"/>
                  <g class="text">
                    <text x="40" y="36">Signature</text>
                    <text x="536" y="36">Group</text>
                    <text x="36" y="52">Verifier</text>
                    <text x="536" y="52">Manager</text>
                    <text x="152" y="84">KDC</text>
                    <text x="228" y="84">Authentication</text>
                    <text x="332" y="84">Credential</text>
                    <text x="408" y="84">Request</text>
                    <text x="168" y="116">FETCH</text>
                    <text x="312" y="116">/ace-group/GROUPNAME/kdc-cred</text>
                    <text x="80" y="148">KDC</text>
                    <text x="156" y="148">Authentication</text>
                    <text x="260" y="148">Credential</text>
                    <text x="344" y="148">Response:</text>
                    <text x="404" y="148">2.05</text>
                    <text x="464" y="148">(Content)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
Signature                                                       Group
Verifier                                                       Manager
  |                                                               |
  |              KDC Authentication Credential Request            |
  |-------------------------------------------------------------->|
  |               FETCH /ace-group/GROUPNAME/kdc-cred             |
  |                                                               |
  |<--- KDC Authentication Credential Response: 2.05 (Content) ---|
  |                                                               |
]]></artwork>
            </artset>
          </figure>
          <figure anchor="fig-gm-pub-key-signature-verifier-resp-ex">
            <name>Example of KDC Authentication Credential Request-Response, with a Signature Verifier as Requesting Client</name>
            <artwork><![CDATA[
   Request:

   Header: FETCH (Code=0.05)
   Uri-Host: "kdc.example.com"
   Uri-Path: "ace-group"
   Uri-Path: "g1"
   Uri-Path: "kdc-cred"
   Content-Format: 261 (application/ace-groupcomm+cbor)
   Payload (in CBOR diagnostic notation):
   {
     / cnonce / 6: h'6c5a8891bbcf4199'
   }


   Response:

   Header: Content (Code=2.05)
   Content-Format: 261 (application/ace-groupcomm+cbor)
   Payload (in CBOR diagnostic notation):
   {
     / kdc_cred /        17: h'a2026008a101a5010202419920012158
                               2065eda5a12577c2bae829437fe33870
                               1a10aaa375e1bb5b5de108de439c0855
                               1d2258201e52ed75701163f7f9e40ddf
                               9f341b3dc9ba860af7e0ca7ca7e9eecd
                               0084d19c',
     / kdc_nonce /       18: h'aff56da30b7db12a',
     / kdc_cred_verify / 19: h'f3e4be39445b1a3e83e1510d1aca2f2e
                               3fc54702aa56e1b2cb20284294c9106a
                               8a7c081c7645042b18aba9d1fad1bd9c
                               63f91bac658d69351210a031d8fc7c5f'
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-verif-data">
        <name>Retrieve Signature Verification Data</name>
        <t>A signature verifier may need to retrieve data required to verify signatures of messages protected with the group mode and sent to a group (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="7.5" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="12.3" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>). To this end, the signature verifier sends a Signature Verification Data Request message to the Group Manager.</t>
        <t>That is, it sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/verif-data at the Group Manager defined in <xref target="ssec-resource-verif-data"/> of this document, where GROUPNAME is the name of the OSCORE group.</t>
        <t>The payload of the 2.05 (Content) Signature Verification Data Response is a CBOR map, which has the format used for the Join Response message in <xref target="ssec-join-resp"/>, with the following differences.</t>
        <ul spacing="normal">
          <li>
            <t>Of the parameters present in the Join Response message, only the parameters 'gkty', 'key', 'num', 'exp', 'exi', and 'ace_groupcomm_profile' are present in the Signature Verification Data Response.  </t>
            <t>
The 'key' parameter includes only the following data.  </t>
            <ul spacing="normal">
              <li>
                <t>The parameters 'hkdf', 'contextId', 'cred_fmt', 'gp_enc_alg', 'sign_alg', and 'sign_params'. These parameters <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The parameters 'alg' and 'ecdh_alg'. These parameters <bcp14>MUST NOT</bcp14> be present if the group is a signature-only group. Otherwise, they <bcp14>MUST</bcp14> be present.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The 'sign_enc_key' parameter is also included, with CBOR label registered in <xref target="ssec-iana-ace-groupcomm-parameters-registry"/>. This parameter specifies the Signature Encryption Key of the OSCORE Group, encoded as a CBOR byte string. The Group Manager derives the Signature Encryption Key from the group keying material, as per <xref section="2.1.9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>. This parameter <bcp14>MUST</bcp14> be present.</t>
          </li>
        </ul>
        <t>In order to verify signatures in the group (see <xref section="7.5" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), the signature verifier relies on: the data retrieved from the 2.05 (Content) Signature Verification Data Response; the public keys of the group members signing the messages to verify, retrieved from those members' authentication credentials that can be obtained as defined in <xref target="sec-pub-keys"/>; and the public key of the Group Manager, retrieved from the Group Manager's authentication credential that can be obtained as defined in <xref target="sec-gm-pub-key-signature-verifier"/>.</t>
        <t><xref target="fig-verif-data-req-resp"/> gives an overview of the exchange described above,  while <xref target="fig-verif-data-req-resp-ex"/> shows an example of Signature Verification Data Request-Response.</t>
        <figure anchor="fig-verif-data-req-resp">
          <name>Message Flow of Signature Verification Data Request-Response</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="552" viewBox="0 0 552 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 32,96 L 512,96" fill="none" stroke="black"/>
                <path d="M 32,144 L 56,144" fill="none" stroke="black"/>
                <path d="M 496,144 L 512,144" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="520,96 508,90.4 508,101.6" fill="black" transform="rotate(0,512,96)"/>
                <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(180,32,144)"/>
                <g class="text">
                  <text x="40" y="36">Signature</text>
                  <text x="520" y="36">Group</text>
                  <text x="36" y="52">Verifier</text>
                  <text x="520" y="52">Manager</text>
                  <text x="176" y="84">Signature</text>
                  <text x="268" y="84">Verification</text>
                  <text x="340" y="84">Data</text>
                  <text x="392" y="84">Request</text>
                  <text x="152" y="116">GET</text>
                  <text x="296" y="116">/ace-group/GROUPNAME/verif-data</text>
                  <text x="104" y="148">Signature</text>
                  <text x="196" y="148">Verification</text>
                  <text x="268" y="148">Data</text>
                  <text x="328" y="148">Response:</text>
                  <text x="388" y="148">2.05</text>
                  <text x="448" y="148">(Content)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
Signature                                                     Group
Verifier                                                     Manager
  |                                                             |
  |              Signature Verification Data Request            |
  |------------------------------------------------------------>|
  |              GET /ace-group/GROUPNAME/verif-data            |
  |                                                             |
  |<--- Signature Verification Data Response: 2.05 (Content) ---|
  |                                                             |
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-verif-data-req-resp-ex">
          <name>Example of Signature Verification Data Request-Response</name>
          <artwork><![CDATA[
   Request:

   Header: GET (Code=0.01)
   Uri-Host: "kdc.example.com"
   Uri-Path: "ace-group"
   Uri-Path: "g1"
   Uri-Path: "verif-data"


   Response:

   Header: Content (Code=2.05)
   Content-Format: 261 (application/ace-groupcomm+cbor)
   Payload (in CBOR diagnostic notation):
   {
                       / gkty / 7: e'group_oscore_input_material_obj',
                       / key /  8: {
                         / hkdf /       3: 5, / HMAC with SHA-256 /
                         / contextId /  6: h'37fc',
                              e'cred_fmt': 33, / x5chain /
                            e'gp_enc_alg': 10, / AES-CCM-16-64-128 /
                              e'sign_alg': -8, / EdDSA /
                           e'sign_params': [[1], [1, 6]]
                                           / [[OKP], [OKP, Ed25519]] /
                       },
     / num /                    9: 12,
     / ace_groupcomm_profile / 10: e'coap_group_oscore_app',
     / exp /                   11: 1609459200,
     / exi /                   12: 2592000,
                  e'sign_enc_key': h'bc661fae6742abc3dd01beda1142567c'
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-policies">
        <name>Retrieve the Group Policies</name>
        <t>A group member may request the current policies used in the OSCORE group. To this end, the group member sends a Policies Request, as per <xref section="4.6.1.1" sectionFormat="of" target="RFC9594"/>. That is, it sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/policies at the Group Manager, where GROUPNAME is the name of the OSCORE group.</t>
        <t>Upon receiving the Policies Request, the Group Manager processes it as per <xref section="4.6.1" sectionFormat="of" target="RFC9594"/>. The success Policies Response is formatted as defined in <xref section="4.6.1" sectionFormat="of" target="RFC9594"/>.</t>
      </section>
      <section anchor="sec-version">
        <name>Retrieve the Keying Material Version</name>
        <t>A group member may request the current version of the keying material used in the OSCORE group. To this end, the group member sends a Version Request, as per <xref section="4.7.1.1" sectionFormat="of" target="RFC9594"/>. That is, it sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/num at the Group Manager, where GROUPNAME is the name of the OSCORE group.</t>
        <t>Upon receiving the Version Request, the Group Manager processes it as per <xref section="4.7.1" sectionFormat="of" target="RFC9594"/>. The success Version Response is formatted as defined in <xref section="4.7.1" sectionFormat="of" target="RFC9594"/>.</t>
      </section>
      <section anchor="sec-status">
        <name>Retrieve the Group Status</name>
        <t>A group member may request the current status of the OSCORE group, i.e., active or inactive. To this end, the group member sends a Group Status Request to the Group Manager.</t>
        <t>That is, the group member sends a CoAP GET request to the endpoint /ace-group/GROUPNAME/active at the Group Manager defined in <xref target="ssec-resource-active"/> of this document, where GROUPNAME is the name of the OSCORE group.</t>
        <t>The payload of the 2.05 (Content) Group Status Response includes the CBOR Simple Value <tt>true</tt> (0xf5) if the group is currently active, or the CBOR Simple Value <tt>false</tt> (0xf4) otherwise. The group is considered active if it is set to allow new members to join, and if communication within the group is fine to occur.</t>
        <t>Upon learning from a 2.05 (Content) Group Status Response that the group is currently inactive, the group member <bcp14>SHOULD</bcp14> stop sending messages to other group members and <bcp14>MUST</bcp14> stop processing messages from other group members, until the group becomes active again. In the meantime, the group member can still interact with the Group Manager, e.g., in order to check whether the group has become active again.</t>
        <t>Upon learning from a 2.05 (Content) Group Status Response that the group has become active again, the group member can resume taking part in communications with other group members (i.e., sending messages and processing incoming messages).</t>
        <t><xref target="fig-key-status-req-resp"/> gives an overview of the exchange described above, while <xref target="fig-key-status-req-resp-ex"/> shows an example of Group Status Request-Response.</t>
        <figure anchor="fig-key-status-req-resp">
          <name>Message Flow of Group Status Request-Response</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="560" viewBox="0 0 560 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,128" fill="none" stroke="black"/>
                <path d="M 528,64 L 528,128" fill="none" stroke="black"/>
                <path d="M 32,80 L 48,80" fill="none" stroke="black"/>
                <path d="M 496,80 L 520,80" fill="none" stroke="black"/>
                <path d="M 32,112 L 120,112" fill="none" stroke="black"/>
                <path d="M 440,112 L 520,112" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="528,80 516,74.4 516,85.6" fill="black" transform="rotate(0,520,80)"/>
                <polygon class="arrowhead" points="40,112 28,106.4 28,117.6" fill="black" transform="rotate(180,32,112)"/>
                <g class="text">
                  <text x="24" y="36">Group</text>
                  <text x="528" y="36">Group</text>
                  <text x="28" y="52">Member</text>
                  <text x="528" y="52">Manager</text>
                  <text x="80" y="84">Group</text>
                  <text x="132" y="84">Status</text>
                  <text x="196" y="84">Request:</text>
                  <text x="248" y="84">GET</text>
                  <text x="376" y="84">/ace-group/GROUPNAME/active</text>
                  <text x="152" y="116">Group</text>
                  <text x="204" y="116">Status</text>
                  <text x="272" y="116">Response:</text>
                  <text x="332" y="116">2.05</text>
                  <text x="392" y="116">(Content)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
Group                                                          Group
Member                                                        Manager
  |                                                              |
  |--- Group Status Request: GET /ace-group/GROUPNAME/active --->|
  |                                                              |
  |<----------- Group Status Response: 2.05 (Content) -----------|
  |                                                              |
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-key-status-req-resp-ex">
          <name>Example of Group Status Request-Response</name>
          <artwork><![CDATA[
   Request:

   Header: GET (Code=0.01)
   Uri-Host: "kdc.example.com"
   Uri-Path: "ace-group"
   Uri-Path: "g1"
   Uri-Path: "active"


   Response:

   Header: Content (Code=2.05)
   Content-Format: 60 (application/cbor)
   Payload (in CBOR diagnostic notation):
     true
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-retrieve-gnames">
        <name>Retrieve Group Names</name>
        <t>A node may want to retrieve from the Group Manager the group name and the URI of the group-membership resource of a group. This is relevant in the following cases.</t>
        <ul spacing="normal">
          <li>
            <t>Before joining a group, a joining node may know only the current Group Identifier (Gid) of that group, but not the group name and the URI of the group-membership resource.</t>
          </li>
          <li>
            <t>As current group member in several groups, the node has missed a previous group rekeying in one of them (see <xref target="sec-group-rekeying-process"/>). Hence, it retains stale keying material and fails to decrypt received messages exchanged in that group.  </t>
            <t>
Such messages do not provide a direct hint to the correct group name, that the node would need in order to retrieve the latest keying material and authentication credentials from the Group Manager (see <xref target="ssec-updated-key-only"/>, <xref target="ssec-updated-and-individual-key"/>, and <xref target="sec-pub-keys"/>). However, such messages may specify the current Gid of the group, as value of the 'kid_context' field of the OSCORE CoAP option (see <xref section="6.1" sectionFormat="of" target="RFC8613"/> and <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </li>
          <li>
            <t>As signature verifier, the node also refers to a group name for retrieving the required authentication credentials from the Group Manager (see <xref target="sec-pub-keys"/>). As discussed above, intercepted messages do not provide a direct hint to the correct group name, while they may specify the current Gid of the group, as value of the 'kid_context' field of the OSCORE CoAP option. In such a case, upon intercepting a message in the group, the node requires to correctly map the Gid currently used in the group with the invariant group name.  </t>
            <t>
Furthermore, since it is not a group member, the node does not take part to a possible group rekeying. Thus, following a group rekeying and the consequent change of Gid in a group, the node would retain the old Gid value and cannot correctly associate intercepted messages to the right group, especially if acting as signature verifier in several groups. This in turn prevents the efficient verification of signatures, and especially the retrieval of required, new authentication credentials from the Group Manager.</t>
          </li>
        </ul>
        <t>In either case, the node only knows the current Gid of the group, as learned from received or intercepted messages exchanged in the group. As detailed below, the node can contact the Group Manager, and request the group name and URI of the group-membership resource corresponding to that Gid. Then, it can use that information to join the group, or get the latest keying material as a current group member, or retrieve authentication credentials used in the group as a signature verifier. To this end, the node sends a Group Name and URI Retrieval Request, as per <xref section="4.2.1.1" sectionFormat="of" target="RFC9594"/>.</t>
        <t>That is, the node sends a CoAP FETCH request to the endpoint /ace-group at the Group Manager formatted as defined in <xref section="4.2.1" sectionFormat="of" target="RFC9594"/>. Each element of the CBOR array 'gid' is a CBOR byte string (REQ13), which encodes the Gid of the group for which the group name and the URI of the group-membership resource are requested.</t>
        <t>Upon receiving the Group Name and URI Retrieval Request, the Group Manager processes it as per <xref section="4.2.1" sectionFormat="of" target="RFC9594"/>. The success Group Name and URI Retrieval Response is formatted as defined in <xref section="4.2.1" sectionFormat="of" target="RFC9594"/>. Each element of the CBOR array 'gid' is a CBOR byte string (REQ13), which encodes the Gid of the group for which the group name and the URI of the group-membership resource are provided.</t>
        <t>For each of its groups, the Group Manager maintains an association between the group name and the URI of the group-membership resource on one hand, and only the current Gid for that group on the other hand. That is, the Group Manager does not maintain an association between the former pair and any other Gid for that group than the current, most recent one.</t>
        <t><xref target="fig-group-names-req-resp"/> gives an overview of the exchanges described above, while <xref target="fig-group-names-req-resp-ex"/> shows an example of Group Name and URI Retrieval Request-Response.</t>
        <figure anchor="fig-group-names-req-resp">
          <name>Message Flow of Group Name and URI Retrieval Request-Response</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="568" viewBox="0 0 568 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,64 L 16,128" fill="none" stroke="black"/>
                <path d="M 536,64 L 536,128" fill="none" stroke="black"/>
                <path d="M 24,80 L 40,80" fill="none" stroke="black"/>
                <path d="M 496,80 L 528,80" fill="none" stroke="black"/>
                <path d="M 24,112 L 48,112" fill="none" stroke="black"/>
                <path d="M 496,112 L 528,112" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="536,80 524,74.4 524,85.6" fill="black" transform="rotate(0,528,80)"/>
                <polygon class="arrowhead" points="32,112 20,106.4 20,117.6" fill="black" transform="rotate(180,24,112)"/>
                <g class="text">
                  <text x="536" y="36">Group</text>
                  <text x="20" y="52">Node</text>
                  <text x="536" y="52">Manager</text>
                  <text x="72" y="84">Group</text>
                  <text x="116" y="84">Name</text>
                  <text x="152" y="84">and</text>
                  <text x="184" y="84">URI</text>
                  <text x="240" y="84">Retrieval</text>
                  <text x="316" y="84">Request:</text>
                  <text x="376" y="84">FETCH</text>
                  <text x="444" y="84">/ace-group</text>
                  <text x="80" y="116">Group</text>
                  <text x="124" y="116">Name</text>
                  <text x="160" y="116">and</text>
                  <text x="192" y="116">URI</text>
                  <text x="248" y="116">Retrieval</text>
                  <text x="328" y="116">Response:</text>
                  <text x="388" y="116">2.05</text>
                  <text x="448" y="116">(Content)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                                                Group
Node                                                           Manager
 |                                                                |
 |--- Group Name and URI Retrieval Request: FETCH /ace-group ---->|
 |                                                                |
 |<--- Group Name and URI Retrieval Response: 2.05 (Content) -----|
 |                                                                |
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-group-names-req-resp-ex">
          <name>Example of Group Name and URI Retrieval Request-Response</name>
          <artwork><![CDATA[
   Request:

   Header: FETCH (Code=0.05)
   Uri-Host: "kdc.example.com"
   Uri-Path: "ace-group"
   Content-Format: 261 (application/ace-groupcomm+cbor)
   Payload (in CBOR diagnostic notation):
   {
     / gid / 0: [h'37fc', h'84bd']
   }


   Response:

   Header: Content (Code=2.05)
   Content-Format: 261 (application/ace-groupcomm+cbor)
   Payload (in CBOR diagnostic notation):
   {
     / gid /   0: [h'37fc', h'84bd'],
     / gname / 1: ["g1", "g2"],
     / guri /  2: ["/ace-group/g1", "/ace-group/g2"]
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-leave-req">
        <name>Leave the Group</name>
        <t>A group member may request to leave the OSCORE group. To this end, the group member sends a Group Leaving Request, as per <xref section="4.8.3.1" sectionFormat="of" target="RFC9594"/>. That is, it sends a CoAP DELETE request to the endpoint /ace-group/GROUPNAME/nodes/NODENAME at the Group Manager.</t>
        <t>Upon receiving the Group Leaving Request, the Group Manager processes it as per <xref section="4.8.3" sectionFormat="of" target="RFC9594"/>. Then, the Group Manager performs the follow-up actions defined in <xref target="sec-leaving"/> of this document.</t>
      </section>
    </section>
    <section anchor="sec-leaving">
      <name>Removal of a Group Member</name>
      <t>Other than after a spontaneous request to the Group Manager as described in <xref target="sec-leave-req"/>, a node may be forcibly removed from the OSCORE group, e.g., due to expired or revoked authorization.</t>
      <t>In either case, if the Group Manager reassigns Gid values during the group's lifetime (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.2.1.1" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="E" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>), the Group Manager "forgets" the Birth Gid currently associated with the leaving node in the OSCORE group. This was stored following the Join Response sent to that node, after its latest (re-)joining of the OSCORE group (see <xref target="ssec-join-resp"/>).</t>
      <t>If any of the two conditions below holds, the Group Manager <bcp14>MUST</bcp14> inform the leaving node of its eviction as follows. If both conditions hold, the Group Manager <bcp14>MUST</bcp14> inform the leaving node by using only the method corresponding to one of either conditions.</t>
      <ul spacing="normal">
        <li>
          <t>If, upon joining the group (see <xref target="ssec-join-req-sending"/>), the leaving node specified a URI in the 'control_uri' parameter defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>, then the Group Manager sends a DELETE request targeting the URI specified in the 'control_uri' parameter (OPT7).</t>
        </li>
        <li>
          <t>If the leaving node has been observing the associated resource at /ace-group/GROUPNAME/nodes/NODENAME, then the Group Manager sends an unsolicited 4.04 (Not Found) error response to the leaving node, as specified in <xref section="4.3.2" sectionFormat="of" target="RFC9594"/>.</t>
        </li>
      </ul>
      <t>Furthermore, the Group Manager might intend to evict all the current group members from the group at once. In such a case, if the Join Responses sent by the Group Manager to nodes joining the group (see <xref target="ssec-join-resp"/>) specify a URI in the 'control_group_uri' parameter defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/>, then the Group Manager <bcp14>MUST</bcp14> additionally send a DELETE request targeting the URI specified in the 'control_group_uri' parameter (OPT10).</t>
      <t>If the leaving node has not exclusively the role of monitor, then the Group Manager performs the following actions.</t>
      <ul spacing="normal">
        <li>
          <t>The Group Manager frees the OSCORE Sender ID value of the leaving node. This value <bcp14>MUST NOT</bcp14> become available for possible upcoming joining nodes in the same group, until the group has been rekeyed and assigned a new Group Identifier (Gid).</t>
        </li>
        <li>
          <t>The Group Manager <bcp14>MUST</bcp14> add the relinquished Sender ID of the leaving node to the most recent set of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>).</t>
        </li>
        <li>
          <t>The Group Manager cancels the association between, on one hand, the authentication credential of the leaving node and, on the other hand, the Gid associated with the OSCORE group together with the freed Sender ID value.</t>
        </li>
        <li>
          <t>The Group Manager deletes the authentication credential of the leaving node, if that authentication credential has no remaining association with any pair (Gid, Sender ID).</t>
        </li>
      </ul>
      <t>Then, the Group Manager <bcp14>MUST</bcp14> generate updated security parameters and group keying material, and provide it to the remaining group members (see <xref target="sec-group-rekeying-process"/>). As a consequence, the leaving node is not able to acquire the new security parameters and group keying material distributed after its leaving.</t>
      <t>The same considerations from <xref section="5" sectionFormat="of" target="RFC9594"/> apply here as well, considering the Group Manager acting as KDC.</t>
    </section>
    <section anchor="sec-group-rekeying-process">
      <name>Group Rekeying Process</name>
      <t>In order to rekey an OSCORE group, the Group Manager distributes the following information for that group:</t>
      <ul spacing="normal">
        <li>
          <t>A new Group Identifier (Gid), i.e., a new OSCORE ID Context.</t>
        </li>
        <li>
          <t>A new OSCORE Master Secret.</t>
        </li>
        <li>
          <t>Optionally, a new OSCORE Master Salt.</t>
        </li>
      </ul>
      <t>Before starting such distribution, the Group Manager <bcp14>MUST</bcp14> increment the version number of the group keying material used in the group.</t>
      <t>As per Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="12.2.1.1" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="E" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>, the Group Manager <bcp14>MAY</bcp14> reassign a Gid to the same group over that group's lifetime, e.g., once the whole space of Gid values has been used for the group in question. If the Group Manager supports reassignment of Gid values and performs it in a group, then the Group Manager additionally takes the following actions.</t>
      <ul spacing="normal">
        <li>
          <t>Before rekeying the group, the Group Manager <bcp14>MUST</bcp14> check if the new Gid to be distributed coincides with the Birth Gid of any of the current group members (see <xref target="ssec-join-resp"/>).</t>
        </li>
        <li>
          <t>If any of such "elder members" is found in the group, then the Group Manager <bcp14>MUST</bcp14> evict them from the group. That is, the Group Manager <bcp14>MUST</bcp14> terminate their membership and <bcp14>MUST</bcp14> rekey the group in such a way that the new keying material is not provided to those evicted elder members. This also includes adding their relinquished Sender IDs to the most recent set of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>), before rekeying the group.  </t>
          <t>
Until a further following group rekeying, the Group Manager <bcp14>MUST</bcp14> store the list of those latest-evicted elder members. If any of those nodes re-joins the group before a further following group rekeying occurs, the Group Manager <bcp14>MUST NOT</bcp14> rekey the group upon their re-joining. When one of those nodes re-joins the group, the Group Manager can rely, e.g., on the ongoing secure communication association to recognize the node as included in the stored list.</t>
        </li>
      </ul>
      <t>Throughout the rekeying execution, the Group Manager <bcp14>MUST</bcp14> preserve the same unchanged OSCORE Sender IDs for all group members that are intended to remain in the group. This avoids affecting the retrieval of authentication credentials from the Group Manager and the verification of group messages.</t>
      <t>The Group Manager <bcp14>MUST</bcp14> support the "Point-to-Point" group rekeying scheme registered in <xref section="11.12" sectionFormat="of" target="RFC9594"/>, as per the detailed use defined in <xref target="sending-rekeying-msg"/> of this document. Future specifications may define how this application profile can use alternative group rekeying schemes, which <bcp14>MUST</bcp14> comply with the functional steps defined in <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>. The Group Manager <bcp14>MUST</bcp14> indicate the use of such an alternative group rekeying scheme to joining nodes, by means of the 'group_rekeying' parameter included in Join Response messages (see <xref target="ssec-join-resp"/>).</t>
      <t>It is <bcp14>RECOMMENDED</bcp14> that the Group Manager gets confirmation of successful distribution from the group members, and admits a maximum number of individual retransmissions to non-confirming group members. Once the group rekeying process has completed, the Group Manager creates a new empty set of stale Sender IDs associated with the version of the newly distributed group keying material (see <xref target="sssec-stale-sender-ids"/>).</t>
      <t>In case the rekeying terminates and some group members have not received the new keying material, such group members will not be able to correctly process following secured messages exchanged in the group. These group members will eventually contact the Group Manager, in order to retrieve the current keying material and its version.</t>
      <t>Some of these group members may be in multiple groups, each associated with a different Group Manager. When failing to correctly process messages secured with the new keying material, these group members may not have sufficient information to determine which exact Group Manager to contact, in order to retrieve the current keying material that they are missing.</t>
      <t>If the Gid is formatted as described in <xref section="C" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, then the Group Prefix can be used as a hint to determine the right Group Manager, as long as no collisions among Group Prefixes are experienced. Otherwise, a group member needs to contact the Group Manager of each group, e.g., by first requesting only the version of the current group keying material (see <xref target="sec-version"/>) and then possibly requesting the current keying material (see <xref target="ssec-updated-key-only"/>).</t>
      <t>Furthermore, some of these group members can be in multiple groups, all of which are associated with the same Group Manager. In this case, these group members may also not have sufficient information to determine which exact group to refer to, when contacting the right Group Manager. Hence, these group members need to contact a Group Manager multiple times, i.e., separately for each group they belong to and associated with that Group Manager.</t>
      <t><xref target="receiving-rekeying-msg"/> defines the actions performed by a group member upon receiving the new group keying material. <xref target="missed-rekeying"/> discusses how a group member can realize that it has missed one or more rekeying instances, and the actions it is accordingly required to take.</t>
      <section anchor="sending-rekeying-msg">
        <name>Sending Rekeying Messages</name>
        <t>When using the "Point-to-Point" group rekeying scheme, the group rekeying messages <bcp14>MUST</bcp14> have Content-Format set to "application/ace-groupcomm+cbor" and have the same format used for the Join Response message in <xref target="ssec-join-resp"/>, with the following differences. Note that this extends the minimal content of a rekeying message as defined in <xref section="6" sectionFormat="of" target="RFC9594"/> (OPT14).</t>
        <ul spacing="normal">
          <li>
            <t>Of the parameters present in the Join Response message, only the parameters 'gkty', 'key', 'num', 'exp', 'exi', and 'ace_groupcomm_profile' are present.  </t>
            <t>
The 'key' parameter includes only the following data.  </t>
            <ul spacing="normal">
              <li>
                <t>The 'ms' parameter, specifying the new OSCORE Master Secret value. This parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'contextId' parameter, specifying the new Gid to use as OSCORE ID Context value. This parameter <bcp14>MUST</bcp14> be present.</t>
              </li>
              <li>
                <t>The 'salt' value, specifying the new OSCORE Master Salt value. This parameter <bcp14>MAY</bcp14> be present.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The 'stale_node_ids' parameter <bcp14>MUST</bcp14> also be included, with CBOR label registered in <xref target="ssec-iana-ace-groupcomm-parameters-registry"/>. This parameter is encoded as a CBOR array, where each element is encoded as a CBOR byte string. The order of elements in the CBOR array is irrelevant. The parameter is populated as follows.  </t>
            <ul spacing="normal">
              <li>
                <t>The Group Manager creates an empty CBOR array ARRAY.</t>
              </li>
              <li>
                <t>The Group Manager considers the most recent set of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>), i.e., the set X associated with the current version of the group keying material about to be relinquished.</t>
              </li>
              <li>
                <t>For each Sender ID in X, the Group Manager encodes it as a CBOR byte string and adds the result to ARRAY.</t>
              </li>
              <li>
                <t>The 'stale_node_ids' parameter takes ARRAY as value.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The parameters 'creds', 'peer_roles', and 'peer_identifiers' <bcp14>SHOULD</bcp14> be present, if the group rekeying is performed due to one or multiple Clients that have requested to join the group.  </t>
            <t>
Following the same semantics used in the Join Response message (see <xref target="ssec-join-resp"/>), the three parameters specify the authentication credential, roles in the group and node identifier of each of the Clients that have requested to join the group. The Group Manager <bcp14>MUST NOT</bcp14> include a non-empty subset of these three parameters.</t>
          </li>
        </ul>
        <t>The Group Manager separately sends a group rekeying message formatted as defined above to each group member to be rekeyed.</t>
        <t>Each rekeying message <bcp14>MUST</bcp14> be secured with the pairwise secure communication association between the Group Manager and the group member used during the joining process. Each rekeying message can target the 'control_uri' URI path defined in <xref section="4.3.1" sectionFormat="of" target="RFC9594"/> (OPT7), if provided by the intended recipient upon joining the group (see <xref target="ssec-join-req-sending"/>).</t>
        <t>This distribution approach requires group members to act (also) as servers, in order to correctly handle unsolicited group rekeying messages from the Group Manager. If a group member and the Group Manager use OSCORE <xref target="RFC8613"/> to secure their pairwise communications, then the group member <bcp14>MUST</bcp14> create a Replay Window in its own Recipient Context upon establishing the OSCORE Security Context with the Group Manager, e.g., by means of the OSCORE profile of ACE <xref target="RFC9203"/>.</t>
        <t>Group members and the Group Manager <bcp14>SHOULD</bcp14> additionally support alternative distribution approaches that do not require group members to act (also) as servers. A number of such approaches are defined in <xref section="6" sectionFormat="of" target="RFC9594"/>. In particular, a group member may use CoAP Observe <xref target="RFC7641"/> and subscribe for updates to the group-membership resource of the group, at the endpoint /ace-group/GROUPNAME of the Group Manager (see <xref section="6.1" sectionFormat="of" target="RFC9594"/>). Alternatively, a full-fledged Pub-Sub model can be considered <xref target="I-D.ietf-core-coap-pubsub"/>, where the Group Manager publishes to a rekeying topic hosted at a Broker, while the group members subscribe to such topic (see <xref section="6.2" sectionFormat="of" target="RFC9594"/>).</t>
      </section>
      <section anchor="receiving-rekeying-msg">
        <name>Receiving Rekeying Messages</name>
        <t>After having received the new group keying material, a group member proceeds as follows. Unless otherwise specified, the following is independent of the specifically used group rekeying scheme.</t>
        <t>The group member considers the stale Sender IDs received from the Group Manager. If the "Point-to-Point" group rekeying scheme as detailed in <xref target="sending-rekeying-msg"/> is used, the stale Sender IDs are specified by the 'stale_node_ids' parameter.</t>
        <t>After that, as per <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, the group member <bcp14>MUST</bcp14> remove every authentication credential associated with a stale Sender ID from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete each of its Recipient Contexts used in the group whose corresponding Recipient ID is a stale Sender ID.</t>
        <t>Then, the following cases can occur, based on the version number V' of the new group keying material distributed through the rekeying process. If the "Point-to-Point" group rekeying scheme as detailed in <xref target="sending-rekeying-msg"/> is used, this information is specified by the 'num' parameter.</t>
        <ul spacing="normal">
          <li>
            <t>The group member has not missed any group rekeying. That is, the old keying material stored by the group member has version number V, while the received new keying material has version number V' = (V + 1). In such a case, the group member simply installs the new keying material and derives the corresponding new Security Context.</t>
          </li>
          <li>
            <t>The group member has missed one or more group rekeying instances. That is, the old keying material stored by the group member has version number V, while the received new keying material has version number V' &gt; (V + 1). In such a case, the group member <bcp14>MUST</bcp14> proceed as defined in <xref target="missed-rekeying"/>.</t>
          </li>
          <li>
            <t>The group member has received keying material not newer than the stored one. That is, the old keying material stored by the group member has version number V, while the received keying material has version number V' &lt; (V + 1). In such a case, the group member <bcp14>MUST</bcp14> ignore the received rekeying messages and <bcp14>MUST NOT</bcp14> install the received keying material.</t>
          </li>
        </ul>
      </section>
      <section anchor="missed-rekeying">
        <name>Missed Rekeying Instances</name>
        <t>A group member can realize to have missed one or more rekeying instances in one of the ways discussed below. In the following, V denotes the version number of the old keying material stored by the group member, while V' denotes the version number of the latest, possibly just distributed, keying material.</t>
        <t>a. The group member has participated to a rekeying process that has distributed new keying material with version number V' &gt; (V + 1), as discussed in <xref target="receiving-rekeying-msg"/>.</t>
        <t>b. The group member has obtained the latest keying material from the Group Manager, as a response to a Key Distribution Request (see <xref target="ssec-updated-key-only"/>) or to a Join Request when re-joining the group (see <xref target="ssec-join-req-sending"/>). That is, V is different than V' specified by the 'num' parameter in the response.</t>
        <t>c. The group member has obtained the authentication credentials of other group members, through an Authentication Credential Request-Response exchange with the Group Manager (see <xref target="sec-pub-keys"/>). That is, V is different than V' specified by the 'num' parameter in the response.</t>
        <t>d. The group member has performed a Version Request-Response exchange with the Group Manager (see <xref target="sec-version"/>). That is, V is different than V' specified by the 'num' parameter in the response.</t>
        <t>In either case, the group member <bcp14>MUST</bcp14> delete the stored keying material with version number V.</t>
        <t>If case (a) or case (b) applies, the group member <bcp14>MUST</bcp14> perform the following actions.</t>
        <ol spacing="normal" type="1"><li>
            <t>The group member <bcp14>MUST NOT</bcp14> install the latest keying material yet, in case that was already obtained.</t>
          </li>
          <li>
            <t>The group member sends a Stale Sender IDs Request to the Group Manager (see <xref target="sec-retrieve-stale-sids"/>), specifying the version number V as payload of the request.  </t>
            <t>
If the Stale Sender IDs Response from the Group Manager has no payload, the group member <bcp14>MUST</bcp14> remove all the authentication credentials from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete all its Recipient Contexts used in the group.  </t>
            <t>
Otherwise, the group member considers the stale Sender IDs specified in the Stale Sender IDs Response from the Group Manager. Then, the group member <bcp14>MUST</bcp14> remove every authentication credential associated with a stale Sender ID from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete each of its Recipient Contexts used in the group whose corresponding Recipient ID is a stale Sender ID.</t>
          </li>
          <li>
            <t>The group member installs the latest keying material with version number V' and derives the corresponding new Security Context.</t>
          </li>
        </ol>
        <t>If case (c) or case (d) applies, the group member <bcp14>SHOULD</bcp14> perform the following actions.</t>
        <ol spacing="normal" type="1"><li>
            <t>The group member sends a Stale Sender IDs Request to the Group Manager (see <xref target="sec-retrieve-stale-sids"/>), specifying the version number V as payload of the request.  </t>
            <t>
If the Stale Sender IDs Response from the Group Manager has no payload, the group member <bcp14>MUST</bcp14> remove all the authentication credentials from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete all its Recipient Contexts used in the group.  </t>
            <t>
Otherwise, the group member considers the stale Sender IDs specified in the Stale Sender IDs Response from the Group Manager. Then, the group member <bcp14>MUST</bcp14> remove every authentication credential associated with a stale Sender ID from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete each of its Recipient Contexts used in the group whose corresponding Recipient ID is a stale Sender ID.</t>
          </li>
          <li>
            <t>The group member retrieves the latest keying material with version number V' from the Group Manager. This can happen by sending a Key Distribution Request to the Group Manager (see <xref target="ssec-updated-key-only"/>) and <xref target="ssec-updated-and-individual-key"/>).</t>
          </li>
          <li>
            <t>The group member installs the latest keying material with version number V' and derives the corresponding new Security Context.</t>
          </li>
        </ol>
        <t>If case (c) or case (d) applies, the group member can alternatively perform the following actions.</t>
        <ol spacing="normal" type="1"><li>
            <t>The group member re-joins the group (see <xref target="ssec-join-req-sending"/>). When doing so, the group member <bcp14>MUST</bcp14> re-join with the same roles it currently has in the group, and <bcp14>MUST</bcp14> request from the Group Manager the authentication credentials of all the current group members. That is, the 'get_creds' parameter of the Join Request <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be set to the CBOR Simple Value <tt>null</tt> (0xf6).</t>
          </li>
          <li>
            <t>When receiving the Join Response (see <xref target="ssec-join-resp-processing"/> and <xref target="ssec-join-resp-processing"/>), the group member retrieves the set Z of authentication credentials specified in the 'creds' parameter.  </t>
            <t>
Then, the group member <bcp14>MUST</bcp14> remove every authentication credential which is not in Z from its list of group members' authentication credentials used in the group, and <bcp14>MUST</bcp14> delete each of its Recipient Contexts used in the group that does not include any of the authentication credentials in Z.</t>
          </li>
          <li>
            <t>The group member installs the latest keying material with version number V' and derives the corresponding new Security Context.</t>
          </li>
        </ol>
        <section anchor="sec-retrieve-stale-sids">
          <name>Retrieve Stale Sender IDs</name>
          <t>When realizing to have missed one or more group rekeying instances (see <xref target="missed-rekeying"/>), a node needs to retrieve from the Group Manager the data required to delete some of its stored group members' authentication credentials and Recipient Contexts (see <xref target="stale-sids-fetch"/>). These data is provided as an aggregated set of stale Sender IDs, which are used as specified in <xref target="missed-rekeying"/>.</t>
          <t>That is, the node sends a CoAP FETCH request to the endpoint /ace-group/GROUPNAME/stale-sids at the Group Manager defined in <xref target="ssec-resource-stale-sids"/> of this document, where GROUPNAME is the name of the OSCORE group.</t>
          <t>The payload of the Stale Sender IDs Request <bcp14>MUST</bcp14> include a CBOR unsigned integer. This encodes the version number V of the most recent group keying material stored and installed by the requesting Client, which is older than the latest, possibly just distributed, keying material with version number V'.</t>
          <t>The handler <bcp14>MUST</bcp14> reply with a 4.00 (Bad Request) error response, if the request is not formatted correctly. Also, the handler <bcp14>MUST</bcp14> respond with a 4.00 (Bad Request) error response, if the specified version number V is greater or equal than the version number V' associated with the latest keying material in the group, i.e., in case V &gt;= V'.</t>
          <t>Otherwise, the handler responds with a 2.05 (Content) Stale Sender IDs Response. The payload of the response is formatted as defined below, where SKEW = (V' - V + 1).</t>
          <ul spacing="normal">
            <li>
              <t>The Group Manager considers ITEMS as the current number of sets of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>).</t>
            </li>
            <li>
              <t>If SKEW &gt; ITEMS, the Stale Sender IDs Response <bcp14>MUST NOT</bcp14> have a payload.</t>
            </li>
            <li>
              <t>Otherwise, the payload of the Stale Sender IDs Response <bcp14>MUST</bcp14> include a CBOR array, where each element is encoded as a CBOR byte string. The order of elements in the CBOR array is irrelevant. The Group Manager populates the CBOR array as follows.  </t>
              <ul spacing="normal">
                <li>
                  <t>The Group Manager creates an empty CBOR array ARRAY and an empty set X.</t>
                </li>
                <li>
                  <t>The Group Manager considers the SKEW most recent sets of stale Sender IDs for the group. Note that the most recent set is the one associated with the latest version of the group keying material.</t>
                </li>
                <li>
                  <t>The Group Manager copies all the Sender IDs from the selected sets into X. When doing so, the Group Manager <bcp14>MUST</bcp14> discard duplicates. That is, the same Sender ID <bcp14>MUST NOT</bcp14> be present more than once in the final content of X.</t>
                </li>
                <li>
                  <t>For each Sender ID in X, the Group Manager encodes it as a CBOR byte string and adds the result to ARRAY.</t>
                </li>
                <li>
                  <t>Finally, ARRAY is specified as payload of the Stale Sender IDs Response. Note that ARRAY might result in the empty CBOR array.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t><xref target="fig-stale-ids-req-resp"/> gives an overview of the exchange described above,  while <xref target="fig-stale-ids-req-resp-ex"/> shows an example of Stale Sender IDs Request-Response.</t>
          <figure anchor="fig-stale-ids-req-resp">
            <name>Message Flow of Stale Sender IDs Request-Response</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="552" viewBox="0 0 552 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 24,64 L 24,160" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                  <path d="M 32,96 L 512,96" fill="none" stroke="black"/>
                  <path d="M 32,144 L 112,144" fill="none" stroke="black"/>
                  <path d="M 464,144 L 512,144" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="520,96 508,90.4 508,101.6" fill="black" transform="rotate(0,512,96)"/>
                  <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(180,32,144)"/>
                  <g class="text">
                    <text x="520" y="36">Group</text>
                    <text x="20" y="52">Node</text>
                    <text x="520" y="52">Manager</text>
                    <text x="200" y="84">Stale</text>
                    <text x="252" y="84">Sender</text>
                    <text x="296" y="84">IDs</text>
                    <text x="344" y="84">Request</text>
                    <text x="152" y="116">FETCH</text>
                    <text x="304" y="116">/ace-group/GROUPNAME/stale-sids</text>
                    <text x="144" y="148">Stale</text>
                    <text x="196" y="148">Sender</text>
                    <text x="240" y="148">IDs</text>
                    <text x="296" y="148">Response:</text>
                    <text x="356" y="148">2.05</text>
                    <text x="416" y="148">(Content)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
                                                              Group
Node                                                         Manager
  |                                                             |
  |                   Stale Sender IDs Request                  |
  |------------------------------------------------------------>|
  |             FETCH /ace-group/GROUPNAME/stale-sids           |
  |                                                             |
  |<---------- Stale Sender IDs Response: 2.05 (Content) -------|
  |                                                             |
]]></artwork>
            </artset>
          </figure>
          <figure anchor="fig-stale-ids-req-resp-ex">
            <name>Example of Stale Sender IDs Request-Response</name>
            <artwork><![CDATA[
   Request:

   Header: FETCH (Code=0.05)
   Uri-Host: "kdc.example.com"
   Uri-Path: "ace-group"
   Uri-Path: "g1"
   Uri-Path: "stale-sids"
   Content-Format: 60 (application/cbor)
   Payload (in CBOR diagnostic notation):
     42


   Response:

   Header: Content (Code=2.05)
   Content-Format: 60 (application/cbor)
   Payload (in CBOR diagnostic notation):
     [h'01', h'fc', h'12ab', h'de44', h'ff']
]]></artwork>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="ace-groupcomm-params">
      <name>ACE Groupcomm Parameters</name>
      <t>In addition to what is defined in <xref section="8" sectionFormat="of" target="RFC9594"/>, this application profile defines additional parameters used during the second part of the message exchange with the Group Manager, i.e., after the exchange of Token Transfer Request and Response (see <xref target="ssec-token-post"/>). The table below summarizes them and specifies the CBOR key to use instead of the full descriptive name.</t>
      <t>Note that the media type "application/ace-groupcomm+cbor" <bcp14>MUST</bcp14> be used when these parameters are transported in the respective message fields.</t>
      <table align="center" anchor="tab-ACE-Groupcomm-Parameters">
        <name>ACE Groupcomm Parameters</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR Key</th>
            <th align="left">CBOR Type</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">group_senderId</td>
            <td align="left">21</td>
            <td align="left">bstr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">ecdh_info</td>
            <td align="left">31</td>
            <td align="left">array</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">kdc_dh_creds</td>
            <td align="left">32</td>
            <td align="left">array</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">sign_enc_key</td>
            <td align="left">33</td>
            <td align="left">bstr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">stale_node_ids</td>
            <td align="left">34</td>
            <td align="left">array</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
        </tbody>
      </table>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <t>The Group Manager is expected to support all the parameters above. Instead, a Client is required to support the new parameters defined in this application profile as specified below (REQ29).</t>
      <ul spacing="normal">
        <li>
          <t>'group_senderId' <bcp14>MUST</bcp14> be supported by a Client that intends to join an OSCORE group with the role of Requester and/or Responder.</t>
        </li>
        <li>
          <t>'ecdh_info' <bcp14>MUST</bcp14> be supported by a Client that intends to join a group which uses the pairwise mode of Group OSCORE.</t>
        </li>
        <li>
          <t>'kdc_dh_creds' <bcp14>MUST</bcp14> be supported by a Client that intends to join a group which uses the pairwise mode of Group OSCORE and that does not plan to or cannot rely on an early retrieval of the Group Manager's Diffie-Hellman authentication credential.</t>
        </li>
        <li>
          <t>'sign_enc_key' <bcp14>MUST</bcp14> be supported by a Client that intends to join a group which uses the group mode of Group OSCORE or to be signature verifier for that group.</t>
        </li>
        <li>
          <t>'stale_node_ids' <bcp14>MUST</bcp14> be supported.</t>
        </li>
      </ul>
      <t>When the conditional parameters defined in <xref section="8" sectionFormat="of" target="RFC9594"/> are used with this application profile, a Client must, should, or may support them as specified below (REQ30).</t>
      <ul spacing="normal">
        <li>
          <t>'client_cred' and 'client_cred_verify'. A Client that has an own authentication credential to use in a group <bcp14>MUST</bcp14> support these parameters.</t>
        </li>
        <li>
          <t>'kdcchallenge'. A Client that has an own authentication credential to use in a group and that provides the access token to the Group Manager through a Token Transfer Request (see <xref target="ssec-token-post"/>) <bcp14>MUST</bcp14> support this parameter.</t>
        </li>
        <li>
          <t>'creds_repo'. This parameter is not relevant for this application profile, since the Group Manager always acts as repository of the group members' authentication credentials. Consequently, no encoding is defined for this parameter (OPT6).</t>
        </li>
        <li>
          <t>'group_policies'. A Client that is interested in the specific policies used in a group, but that does not know them or cannot become aware of them before joining that group, <bcp14>SHOULD</bcp14> support this parameter.</t>
        </li>
        <li>
          <t>'peer_roles'. A Client <bcp14>MUST</bcp14> support this parameter, since in this application profile it is relevant for Clients to know the roles of the group member associated with each authentication credential.</t>
        </li>
        <li>
          <t>'kdc_nonce', 'kdc_cred', and 'kdc_cred_verify'. A Client <bcp14>MUST</bcp14> support these parameters, since the Group Manager's authentication credential is required to process messages protected with Group OSCORE (see Section 4.3 of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
        </li>
        <li>
          <t>'mgt_key_material'. A Client that supports an advanced rekeying scheme possibly used in the group, such as based on one-to-many rekeying messages sent by the Group Manager (e.g., over IP multicast), <bcp14>MUST</bcp14> support this parameter.</t>
        </li>
        <li>
          <t>'control_group_uri'. A Client that supports the hosting of local resources each associated with a group (hence acting as CoAP server) and the reception of one-to-many requests sent to those resources by the Group Manager (e.g., over IP
multicast) <bcp14>MUST</bcp14> support this parameter.</t>
        </li>
      </ul>
    </section>
    <section anchor="error-types">
      <name>ACE Groupcomm Error Identifiers</name>
      <t>In addition to what is defined in <xref section="9" sectionFormat="of" target="RFC9594"/>, this document defines new values that the Group Manager can use as error identifiers (OPT5). These are used in error responses with Content-Format "application/concise-problem-details+cbor" <xref target="RFC9290"/>, as values of the 'error-id' field within the Custom Problem Detail entry 'ace- groupcomm-error' (see <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>).</t>
      <table align="center" anchor="tab-ACE-Groupcomm-Error-Identifiers">
        <name>ACE Groupcomm Error Identifiers</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">7</td>
            <td align="left">Signatures not used in the group</td>
          </tr>
          <tr>
            <td align="left">8</td>
            <td align="left">Operation permitted only to signature verifiers</td>
          </tr>
          <tr>
            <td align="left">9</td>
            <td align="left">Group currently not active</td>
          </tr>
        </tbody>
      </table>
      <t>If the Client supports the problem-details format <xref target="RFC9290"/> and the Custom Problem Detail entry 'ace-groupcomm-error' defined in <xref section="4.1.2" sectionFormat="of" target="RFC9594"/>, and is able to understand the error specified in the 'error-id' field therein, then the Client may use that information to determine what actions to take next. If the Concise Problem Details data item specified in the error response includes the 'detail' entry and the Client supports it, such an entry may provide additional context.</t>
      <ul spacing="normal">
        <li>
          <t>In case of error 7, the Client should stop sending the request in question to the Group Manager. In this application profile, this error is relevant only for a signature verifier, in case it tries to access resources related to a pairwise-only group.</t>
        </li>
        <li>
          <t>In case of error 8, the Client should stop sending the request in question to the Group Manager.</t>
        </li>
        <li>
          <t>In case of error 9, the Client should wait for a certain (pre-configured) amount of time, before trying to re-send its request to the Group Manager.</t>
        </li>
      </ul>
    </section>
    <section anchor="default-values-for-group-configuration-parameters">
      <name>Default Values for Group Configuration Parameters</name>
      <t>This section defines the default values that the Group Manager assumes for the configuration parameters of an OSCORE group, unless differently specified when creating and configuring the group (for example, by means of the admin interface specified in <xref target="I-D.ietf-ace-oscore-gm-admin"/>).</t>
      <t>A possible reason for the Group Manager to consider default values different from those recommended in this section is to ensure that each of those are consistent with what the Group Manager supports, e.g., in terms of signature algorithm and format of authentication credentials used in the OSCORE group.</t>
      <t>This ensures that the Group Manager is able to perform the operations defined in this document, e.g., to achieve proof of possession of a joining node's private key (see <xref target="ssec-join-req-processing"/>), as well as to provide a joining node with its own authentication credential and the associated proof-of-possession challenge (see <xref target="ssec-join-resp"/>).</t>
      <t>The following builds on the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>, the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>, the "COSE Key Types" registry <xref target="COSE.Key.Types"/>, and the "COSE Elliptic Curves" registry <xref target="COSE.Elliptic.Curves"/>.</t>
      <section anchor="common">
        <name>Common</name>
        <t>This section always applies, as related to common configuration parameters.</t>
        <ul spacing="normal">
          <li>
            <t>For the HKDF Algorithm 'hkdf', the Group Manager <bcp14>SHOULD</bcp14> use HKDF SHA-256, defined as default in <xref section="3.2" sectionFormat="of" target="RFC8613"/>. In the 'hkdf' parameter, this HKDF Algorithm is specified by the HMAC Algorithm HMAC 256/256 (COSE algorithm encoding: 5).</t>
          </li>
          <li>
            <t>For the Authentication Credential Format 'cred_fmt', the Group Manager <bcp14>SHOULD</bcp14> use CBOR Web Token Claims Set (CCS) <xref target="RFC8392"/>, i.e., the COSE Header Parameter 'kccs' (COSE header parameter encoding: 14).</t>
          </li>
          <li>
            <t>For 'max_stale_sets', the Group Manager <bcp14>SHOULD</bcp14> consider N = 3 as the maximum number of stored sets of stale Sender IDs for the group (see <xref target="sssec-stale-sender-ids"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="group-mode">
        <name>Group Mode</name>
        <t>This section applies if the group uses (also) the group mode of Group OSCORE.</t>
        <ul spacing="normal">
          <li>
            <t>For the Group Encryption Algorithm 'gp_enc_alg' used to encrypt messages protected with the group mode, the Group Manager <bcp14>SHOULD</bcp14> use AES-CCM-16-64-128 (COSE algorithm encoding: 10).</t>
          </li>
          <li>
            <t>For the Signature Algorithm 'sign_alg' used to sign messages protected with the group mode, the Group Manager <bcp14>SHOULD</bcp14> use EdDSA <xref target="RFC8032"/>.</t>
          </li>
          <li>
            <t>For the parameters 'sign_params' of the Signature Algorithm, the Group Manager <bcp14>SHOULD</bcp14> use the following:  </t>
            <ul spacing="normal">
              <li>
                <t>The array [[OKP], [OKP, Ed25519]], in case EdDSA is assumed or specified for 'sign_alg'. This indicates to use the COSE key type OKP and the elliptic curve Ed25519 <xref target="RFC8032"/>.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-256]], in case ES256 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-256.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-384]], in case ES384 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-384.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-521]], in case ES512 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-521.</t>
              </li>
              <li>
                <t>The array [[RSA], [RSA]], in case PS256, PS384, or PS512 <xref target="RFC8017"/> is specified for 'sign_alg'. This indicates to use the COSE key type RSA.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="pairwise-mode">
        <name>Pairwise Mode</name>
        <t>This section applies if the group uses (also) the pairwise mode of Group OSCORE.</t>
        <ul spacing="normal">
          <li>
            <t>For the AEAD Algorithm 'alg' used to encrypt messages protected with the pairwise mode, the Group Manager <bcp14>SHOULD</bcp14> use the same default value defined in <xref section="3.2" sectionFormat="of" target="RFC8613"/>, i.e., AES-CCM-16-64-128 (COSE algorithm encoding: 10).</t>
          </li>
          <li>
            <t>For the Pairwise Key Agreement Algorithm 'ecdh_alg' used to compute static-static Diffie-Hellman shared secrets, the Group Manager <bcp14>SHOULD</bcp14> use the following:  </t>
            <ul spacing="normal">
              <li>
                <t>The ECDH algorithm ECDH-SS + HKDF-256 (COSE algorithm encoding: -27), in case the HKDF Algorithm assumed or specified for 'hkdf' is HKDF SHA-256 (specified by the HMAC Algorithm HMAC 256/256).</t>
              </li>
              <li>
                <t>The ECDH algorithm ECDH-SS + HKDF-512 (COSE algorithm encoding: -28), in case the HKDF Algorithm specified for 'hkdf' is HKDF SHA-512 (specified by the HMAC Algorithm HMAC HMAC 512/512).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>For the parameter 'ecdh_params' of the Pairwise Key Agreement Algorithm, the Group Manager <bcp14>SHOULD</bcp14> use the following:  </t>
            <ul spacing="normal">
              <li>
                <t>The array [[OKP], [OKP, X25519]], in case EdDSA is assumed or specified for 'sign_alg', or in case the group is a pairwise-only group. This indicates to use the COSE key type OKP and the elliptic curve X25519 <xref target="RFC8032"/>.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-256]], in case ES256 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-256.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-384]], in case ES384 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-384.</t>
              </li>
              <li>
                <t>The array [[EC2], [EC2, P-521]], in case ES512 <xref target="RFC6979"/> is specified for 'sign_alg'. This indicates to use the COSE key type EC2 and the elliptic curve P-521.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations for this profile are inherited from <xref target="RFC9594"/>, the ACE framework for Authentication and Authorization <xref target="RFC9200"/>, and the specific transport profile of ACE signaled by the AS, such as <xref target="RFC9202"/> and <xref target="RFC9203"/>.</t>
      <t>The following security considerations also apply for this profile.</t>
      <section anchor="ssec-security-considerations-management">
        <name>Management of OSCORE Groups</name>
        <t>This profile leverages the following management aspects related to OSCORE groups and discussed in the sections of <xref target="I-D.ietf-core-oscore-groupcomm"/> referred below.</t>
        <ul spacing="normal">
          <li>
            <t>Management of group keying material (see <xref section="12.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). The Group Manager is responsible for the renewal and re-distribution of the keying material in the groups of its competence (rekeying).  </t>
            <t>
The Group Manager performs a rekeying when one or more members leave the group, thus preserving forward security and ensuring that the security properties of Group OSCORE are fulfilled. According to the specific application requirements, the Group Manager can also rekey the group upon a new node's joining, in case backward security has also to be preserved.</t>
          </li>
          <li>
            <t>Provisioning and retrieval of authentication credentials (see <xref section="12" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). The Group Manager acts as repository of authentication credentials of group members, and provides them upon request.</t>
          </li>
          <li>
            <t>Freshness of messages (see <xref section="5.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). This concerns how a recipient node can assert freshness of messages received within the group.</t>
          </li>
        </ul>
        <t>Before sending the Join Response, the Group Manager <bcp14>MUST</bcp14> verify that the joining node actually owns the associated private key. To this end, the Group Manager relies on the proof-of-possession challenge-response defined in <xref target="sec-joining-node-to-GM"/>.</t>
        <t>A node may have joined multiple OSCORE groups under different non-synchronized Group Managers. Therefore, it can happen that those OSCORE groups have the same Group Identifier (Gid). It follows that, upon receiving a Group OSCORE message addressed to one of those groups, the node would have multiple Security Contexts matching with the Gid in the incoming message. It is up to the application to decide how to handle such collisions of Group Identifiers, e.g., by trying to process the incoming message using one Security Context at the time until the right one is found.</t>
      </section>
      <section anchor="ssec-security-considerations-challenges">
        <name>Size of Nonces as Proof-of-Possesion Challenge</name>
        <t>With reference to the Join Request message in <xref target="ssec-join-req-sending"/>, the proof-of-possession (PoP) evidence included in 'client_cred_verify' is computed over an input including also N_C | N_S, where | denotes concatenation.</t>
        <t>For the N_C challenge, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random nonce. Furthermore, N_C is always conveyed in the 'cnonce' parameter of the Join Request, which is always sent over the secure communication association between the joining node and the Group Manager.</t>
        <t>As defined in <xref target="sssec-challenge-value"/>, the way the N_S value is computed depends on the particular way the joining node provides the Group Manager with the access token, as well as on following interactions between the two.</t>
        <ul spacing="normal">
          <li>
            <t>If the access token has not been provided to the Group Manager by means of a Token Transfer Request to the /authz-info endpoint as in <xref target="ssec-token-post"/>, then N_S is computed as a 32-byte long challenge. For an example, see points (2) and (3) in <xref target="sssec-challenge-value"/>.</t>
          </li>
          <li>
            <t>If the access token has been provided to the Group Manager by means of a Token Transfer Request to the /authz-info endpoint as in <xref target="ssec-token-post"/>, then N_S takes the most recent value provided to the Client by the Group Manager in the 'kdcchallenge' parameter, as specified in point (1) of <xref target="sssec-challenge-value"/>. This value is provided either in the Token Transfer Response (see <xref target="ssec-token-post"/>), or in a 4.00 (Bad Request) error response to a following Join Request (see <xref target="ssec-join-req-processing"/>). In either case, it is <bcp14>RECOMMENDED</bcp14> to use an 8-byte long random challenge as value for N_S.</t>
          </li>
        </ul>
        <t>If we consider both N_C and N_S to take 8-byte long values, the following considerations hold.</t>
        <ul spacing="normal">
          <li>
            <t>Let us consider both N_C and N_S as taking random values, and the Group Manager to never change the value of the N_S provided to a Client during the lifetime of an access token. Then, as per the birthday paradox, the average collision for N_S will happen after 2<sup>32</sup> new transferred access tokens, while the average collision for N_C will happen after 2<sup>32</sup> new Join Requests. This amounts to considerably more token provisionings than the expected new joinings to OSCORE groups under a same Group Manager, as well as to considerably more requests to join OSCORE groups from a same Client using a same access token under a same Group Manager.</t>
          </li>
          <li>
            <t><xref section="7" sectionFormat="of" target="RFC9203"/> as well <xref section="B.2" sectionFormat="of" target="RFC8613"/> recommend the use of 8-byte random values as well. Unlike in those cases, the values of N_C and N_S considered in this document are not used for as sensitive operations as the derivation of a Security Context, and thus do not have possible implications in the security of AEAD ciphers.</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-security-considerations-reusage-nonces">
        <name>Reusage of Nonces for Proof-of-Possession Input</name>
        <t>As long as the Group Manager preserves the same N_S value currently associated with an access token, i.e., the latest value provided to a Client in a 'kdcchallenge' parameter, the Client is able to successfully reuse the same proof-of-possession (PoP) input for multiple Join Requests to that Group Manager.</t>
        <t>In particular, the Client can reuse the same N_C value for every Join Request to the Group Manager, and combine it with the same unchanged N_S value. This results in reusing the same PoP input for producing the PoP evidence to include in the 'client_cred_verify' parameter of the Join Requests.</t>
        <t>Unless the Group Manager maintains a list of N_C values already used by that Client since the latest update to the N_S value associated with the access token, the Group Manager can be forced to falsely believe that the Client possesses its own private key at that point in time, upon verifying the PoP evidence in the 'client_cred_verify' parameter.</t>
      </section>
    </section>
    <section anchor="sec-iana">
      <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-kinfo">
        <name>OAuth Parameters</name>
        <t>IANA is asked to register the following entries in the "OAuth Parameters" registry, following the procedure specified in <xref section="11.2" sectionFormat="of" target="RFC6749"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: ecdh_info</t>
          </li>
          <li>
            <t>Parameter Usage Location: client-rs request, rs-client response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: kdc_dh_creds</t>
          </li>
          <li>
            <t>Parameter Usage Location: client-rs request, rs-client response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-kinfo-map">
        <name>OAuth Parameters CBOR Mappings</name>
        <t>IANA is asked to register the following entries in the "OAuth Parameters CBOR Mappings" registry, following the procedure specified in <xref section="8.10" sectionFormat="of" target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: ecdh_info</t>
          </li>
          <li>
            <t>CBOR Key: TBD (range -256 to 255)</t>
          </li>
          <li>
            <t>Value Type: Null or array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: kdc_dh_creds</t>
          </li>
          <li>
            <t>CBOR Key: TBD (range -256 to 255)</t>
          </li>
          <li>
            <t>Value Type: Null or array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-ace-groupcomm-parameters-registry">
        <name>ACE Groupcomm Parameters</name>
        <t>IANA is asked to register the following entries to the "ACE Groupcomm Parameters" registry defined in <xref section="11.7" sectionFormat="of" target="RFC9594"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: group_senderId</t>
          </li>
          <li>
            <t>CBOR Key: 21 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: bstr</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: ecdh_info</t>
          </li>
          <li>
            <t>CBOR Key: 31 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: kdc_dh_creds</t>
          </li>
          <li>
            <t>CBOR Key: 32 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: sign_enc_key</t>
          </li>
          <li>
            <t>CBOR Key: 33 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: bstr</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: stale_node_ids</t>
          </li>
          <li>
            <t>CBOR Key: 34 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-groupcomm-keys-registry">
        <name>ACE Groupcomm Key Types</name>
        <t>IANA is asked to register the following entry in the "ACE Groupcomm Key Types" registry defined in <xref section="11.8" sectionFormat="of" target="RFC9594"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: Group_OSCORE_Input_Material object</t>
          </li>
          <li>
            <t>Key Type Value: GROUPCOMM_KEY_TBD</t>
          </li>
          <li>
            <t>Profile: "coap_group_oscore_app", defined in <xref target="ssec-iana-groupcomm-profile-registry"/> of this document.</t>
          </li>
          <li>
            <t>Description: A Group_OSCORE_Input_Material object encoded as described in <xref target="ssec-join-resp"/> of this document.</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-groupcomm-profile-registry">
        <name>ACE Groupcomm Profiles</name>
        <t>IANA is asked to register the following entry in the "ACE Groupcomm Profiles" registry defined in <xref section="11.9" sectionFormat="of" target="RFC9594"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: coap_group_oscore_app</t>
          </li>
          <li>
            <t>Description: Application profile to provision keying material for participating in group communication protected with Group OSCORE as per <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          </li>
          <li>
            <t>CBOR Value: PROFILE_TBD</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-security-context-parameter-registry">
        <name>OSCORE Security Context Parameters</name>
        <t>IANA is asked to register the following entries in the "OSCORE Security Context Parameters" registry defined in <xref section="9.4" sectionFormat="of" target="RFC9203"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: group_SenderId</t>
          </li>
          <li>
            <t>CBOR Label: 7 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: byte string</t>
          </li>
          <li>
            <t>Registry: -</t>
          </li>
          <li>
            <t>Description: OSCORE Sender ID assigned to a member of an OSCORE group</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: cred_fmt</t>
          </li>
          <li>
            <t>CBOR Label: 8 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: integer</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Header.Parameters"/> Labels (integer)</t>
          </li>
          <li>
            <t>Description: Format of authentication credentials to be used in the OSCORE group</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: gp_enc_alg</t>
          </li>
          <li>
            <t>CBOR Label: 9 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: text string / integer</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Algorithms"/> Values</t>
          </li>
          <li>
            <t>Description: OSCORE Group Encryption Algorithm Value</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: sign_alg</t>
          </li>
          <li>
            <t>CBOR Label: 10 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: text string / integer</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Algorithms"/> Values</t>
          </li>
          <li>
            <t>Description: OSCORE Signature Algorithm Value</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: sign_params</t>
          </li>
          <li>
            <t>CBOR Label: 11 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: array</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Algorithms"/> Capabilities, <xref target="COSE.Key.Types"/> Capabilities, <xref target="COSE.Elliptic.Curves"/> Values</t>
          </li>
          <li>
            <t>Description: OSCORE Signature Algorithm Parameters</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: ecdh_alg</t>
          </li>
          <li>
            <t>CBOR Label: 12 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: text string / integer</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Algorithms"/> Values</t>
          </li>
          <li>
            <t>Description: OSCORE Pairwise Key Agreement Algorithm Value</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: ecdh_params</t>
          </li>
          <li>
            <t>CBOR Label: 13 (suggested)</t>
          </li>
          <li>
            <t>CBOR Type: array</t>
          </li>
          <li>
            <t>Registry: <xref target="COSE.Algorithms"/> Capabilities, <xref target="COSE.Key.Types"/> Capabilities, <xref target="COSE.Elliptic.Curves"/> Values</t>
          </li>
          <li>
            <t>Description: OSCORE Pairwise Key Agreement Algorithm Parameters</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-tls-esporter-label-registry">
        <name>TLS Exporter Labels</name>
        <t>IANA is asked to register the following entry in the "TLS Exporter Labels" registry defined in <xref section="6" sectionFormat="of" target="RFC5705"/> and updated in <xref section="12" sectionFormat="of" target="RFC8447"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Value: EXPORTER-ACE-Pop-Input-coap-group-oscore-app</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Recommended: N</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-AIF-registry">
        <name>AIF Media-Type Sub-Parameters</name>
        <t>For the media-types application/aif+cbor and application/aif+json defined in <xref section="5.1" sectionFormat="of" target="RFC9237"/>, IANA is requested to register the following entries for the two media-type parameters Toid and Tperm, in the respective sub-registry defined in <xref section="5.2" sectionFormat="of" target="RFC9237"/> within the "MIME Media Type Sub-Parameter" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Parameter: Toid</t>
          </li>
          <li>
            <t>Name: oscore-gname</t>
          </li>
          <li>
            <t>Description/Specification: OSCORE group name</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Parameter: Tperm</t>
          </li>
          <li>
            <t>Name: oscore-gperm</t>
          </li>
          <li>
            <t>Description/Specification: permissions pertaining OSCORE groups</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-coap-content-format-registry">
        <name>CoAP Content-Formats</name>
        <t>IANA is asked to register the following entries in the "CoAP Content-Formats" registry within the "Constrained RESTful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Content Type: application/aif+cbor;Toid="oscore-gname",Tperm="oscore-gperm"</t>
          </li>
          <li>
            <t>Content Coding: -</t>
          </li>
          <li>
            <t>ID: 292 (suggested)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Content Type: application/aif+json;Toid="oscore-gname",Tperm="oscore-gperm"</t>
          </li>
          <li>
            <t>Content Coding: -</t>
          </li>
          <li>
            <t>ID: 293 (suggested)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-rt">
        <name>CoRE Resource Type</name>
        <t>IANA is asked to register the following entry in the "Resource Type (rt=) Link Target Attribute Values" registry within the "Constrained Restful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Value: "core.osc.gm"</t>
          </li>
          <li>
            <t>Description: Group-membership resource of an OSCORE Group Manager.</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t>Client applications can use this resource type to discover a group-membership resource at an OSCORE Group Manager, where to send a request for joining the corresponding OSCORE group.</t>
      </section>
      <section anchor="iana-ace-groupcomm-errors">
        <name>ACE Groupcomm Errors</name>
        <t>IANA is asked to register the following entries in the "ACE Groupcomm Errors" registry defined in <xref section="11.12" sectionFormat="of" target="RFC9594"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Value: 7 (suggested)</t>
          </li>
          <li>
            <t>Description: Signatures not used in the group.</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Value: 8 (suggested)</t>
          </li>
          <li>
            <t>Description: Operation permitted only to signature verifiers.</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Value: 9 (suggested)</t>
          </li>
          <li>
            <t>Description: Group currently not active.</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-iana-group-oscore-roles-registry">
        <name>Group OSCORE Roles</name>
        <t>This document establishes the IANA "Group OSCORE Roles" registry. The registry has been created to use the "Expert Review" registration procedure <xref target="RFC8126"/>. Expert review guidelines are provided in <xref target="ssec-iana-expert-review"/>.</t>
        <t>This registry includes the possible roles that nodes can take in an OSCORE group, each in combination with a numeric identifier. These numeric identifiers are used to express authorization information about joining OSCORE groups, as specified in <xref target="sec-format-scope"/> of [RFC-XXXX].</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A value that can be used in documents for easier comprehension, to identify a possible role that nodes can take in an OSCORE group.</t>
          </li>
          <li>
            <t>Value: The numeric identifier for this role. Integer values greater than 65535 are marked as "Private Use", all other values use the registration policy "Expert Review" <xref target="RFC8126"/>.</t>
          </li>
          <li>
            <t>Description: This field contains a brief description of the role.</t>
          </li>
          <li>
            <t>Reference: This contains a pointer to the public specification for the role.</t>
          </li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="tab-role-values"/>. The Reference column for all of these entries will be [RFC-XXXX].</t>
      </section>
      <section anchor="ssec-iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined as "Expert Review".  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 should inspect the entry for the considered role, to verify the correctness of its description against the role as intended in the specification that defined it. Experts should consider requesting an opinion on the correctness of registered parameters from the Authentication and Authorization for Constrained Environments (ACE) Working Group and the Constrained RESTful Environments (CoRE) Working Group.  </t>
            <t>
Entries that do not meet these objectives of clarity and completeness should not be registered.</t>
          </li>
          <li>
            <t>Duplicated registration and 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.</t>
          </li>
          <li>
            <t>Experts should take into account the expected usage of roles when approving point assignments. Given a 'Value' V as code point, the length of the encoding of (2<sup>V+1</sup> - 1) should be weighed against the usage of the entry, considering the resources and capabilities of devices it will be used on. Additionally, given a 'Value' V as code point, the length of the encoding of (2<sup>V+1</sup> - 1) should be weighed against how many code points resulting in that encoding length are left, and the resources and capabilities of devices it will be used on.</t>
          </li>
          <li>
            <t>Specifications are recommended. When specifications are not provided, the description provided needs to have sufficient information to verify the points above.</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="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="RFC5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes. This document describes a general mechanism for allowing that. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5705"/>
          <seriesInfo name="DOI" value="10.17487/RFC5705"/>
        </reference>
        <reference anchor="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="RFC6979">
          <front>
            <title>Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
            <author fullname="T. Pornin" initials="T." surname="Pornin"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>This document defines a deterministic digital signature generation procedure. Such signatures are compatible with standard Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures and can be processed with unmodified verifiers, which need not be aware of the procedure described therein. Deterministic signatures retain the cryptographic security features associated with digital signatures but can be more easily implemented in various environments, since they do not need access to a source of high-quality randomness.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6979"/>
          <seriesInfo name="DOI" value="10.17487/RFC6979"/>
        </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="RFC7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </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="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="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </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="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="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="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="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </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="RFC9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure. Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC9430">
          <front>
            <title>Extension of the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE) to Transport Layer Security (TLS)</title>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document updates "Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)" (RFC 9202) by specifying that the profile applies to TLS as well as DTLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9430"/>
          <seriesInfo name="DOI" value="10.17487/RFC9430"/>
        </reference>
        <reference anchor="RFC9594">
          <front>
            <title>Key Provisioning for Group Communication Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document defines how to use the Authentication and Authorization for Constrained Environments (ACE) framework to distribute keying material and configuration parameters for secure group communication. Candidate group members that act as Clients and are authorized to join a group can do so by interacting with a Key Distribution Center (KDC) acting as the Resource Server, from which they obtain the keying material to communicate with other group members. While defining general message formats as well as the interface and operations available at the KDC, this document supports different approaches and protocols for secure group communication. Therefore, details are delegated to separate application profiles of this document as specialized instances that target a particular group communication approach and define how communications in the group are protected. Compliance requirements for such application profiles are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9594"/>
          <seriesInfo name="DOI" value="10.17487/RFC9594"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</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>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="5" month="July" year="2025"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of CoAP messages exchanged between members of a group, e.g.,
   sent over IP multicast.  In particular, the described protocol
   defines how OSCORE is used in a group communication setting to
   provide source authentication for CoAP group requests, sent by a
   client to multiple servers, and for protection of the corresponding
   CoAP responses.  Group OSCORE also defines a pairwise mode where each
   member of the group can efficiently derive a symmetric pairwise key
   with each other member of the group for pairwise OSCORE
   communication.  Group OSCORE can be used between endpoints
   communicating with CoAP or CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-26"/>
        </reference>
        <reference anchor="NIST-800-56A" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography - NIST Special Publication 800-56A, Revision 3</title>
            <author initials="E." surname="Barker" fullname="Elaine Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen" fullname="Lily Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky" fullname="Allen Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev" fullname="Apostol Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis" fullname="Richard Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
        <reference anchor="COSE.Algorithms" target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="COSE.Key.Types" target="https://www.iana.org/assignments/cose/cose.xhtml#key-type">
          <front>
            <title>COSE Key Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="COSE.Elliptic.Curves" target="https://www.iana.org/assignments/cose/cose.xhtml#elliptic-curves">
          <front>
            <title>COSE Elliptic Curves</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </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="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-core-coap-pubsub">
          <front>
            <title>A publish-subscribe architecture for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Jaime Jimenez" initials="J." surname="Jimenez">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>Dogtiger Labs</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document describes a publish-subscribe architecture for the
   Constrained Application Protocol (CoAP), extending the capabilities
   of CoAP communications for supporting endpoints with long breaks in
   connectivity and/or up-time.  CoAP clients publish on and subscribe
   to a topic via a corresponding topic resource at a CoAP server acting
   as broker.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-18"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-discovery">
          <front>
            <title>Discovery of OSCORE Groups with the CoRE Resource Directory</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Group communication over the Constrained Application Protocol (CoAP)
   can be secured by means of Group Object Security for Constrained
   RESTful Environments (Group OSCORE).  At deployment time, devices may
   not know the exact security groups to join, the respective Group
   Manager, or other information required to perform the joining
   process.  This document describes how a CoAP endpoint can use
   descriptions and links of resources registered at the CoRE Resource
   Directory to discover security groups and to acquire information for
   joining them through the respective Group Manager.  A given security
   group may protect multiple application groups, which are separately
   announced in the Resource Directory as sets of endpoints sharing a
   pool of resources.  This approach is consistent with, but not limited
   to, the joining of security groups based on the ACE framework for
   Authentication and Authorization in constrained environments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-discovery-17"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin">
          <front>
            <title>Admin Interface for the OSCORE Group Manager</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="Peter Van der Stok" initials="P." surname="Van der Stok">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   Group communication for CoAP can be secured using Group Object
   Security for Constrained RESTful Environments (Group OSCORE).  A
   Group Manager is responsible for handling the joining of new group
   members, as well as managing and distributing the group keying
   material.  This document defines a RESTful admin interface at the
   Group Manager that allows an Administrator entity to create and
   delete OSCORE groups, as well as to retrieve and update their
   configuration.  The ACE framework for Authentication and
   Authorization is used to enforce authentication and authorization of
   the Administrator at the Group Manager.  Protocol-specific transport
   profiles of ACE are used to achieve communication security, proof-of-
   possession, and server authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-13"/>
        </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>IN Groupe</organization>
            </author>
            <date day="18" month="August" 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.
   C509 is deployed in different settings including, in-vehicle and
   vehicle-to-cloud communication, Unmanned Aircraft Systems (UAS), and
   Global Navigation Satellite System (GNSS).  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 by 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-15"/>
        </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="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </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="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks. The state of a resource on a CoAP server can change over time. This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time. The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </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>
      </references>
    </references>
    <?line 2125?>

<section anchor="profile-req">
      <name>Profile Requirements</name>
      <t>This section lists how this application profile of ACE addresses the requirements defined in <xref section="A" sectionFormat="of" target="RFC9594"/>.</t>
      <section anchor="mandatory-to-address-requirements">
        <name>Mandatory-to-Address Requirements</name>
        <ul spacing="normal">
          <li>
            <t>REQ1: Specify the format and encoding of scope. This includes defining the set of possible roles and their identifiers, as well as the corresponding encoding to use in the scope entries according to the used scope format: see <xref target="sec-format-scope"/> and <xref target="ssec-auth-req"/>.</t>
          </li>
          <li>
            <t>REQ2: If scope uses AIF, register its specific instance of "Toid" and "Tperm" as media type parameters and a corresponding Content-Format, as per the guidelines in <xref target="RFC9237"/>: see <xref target="ssec-iana-AIF-registry"/> and <xref target="ssec-iana-coap-content-format-registry"/>.</t>
          </li>
          <li>
            <t>REQ3: If used, specify the acceptable values for the 'sign_alg' parameter: values from the "Value" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>REQ4: If used, specify the acceptable values and structure for the 'sign_parameters' parameter: values and structure from the COSE algorithm capabilities as specified in the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>REQ5: If used, specify the acceptable values and structure for the 'sign_key_parameters' parameter: values and structure from the COSE key type capabilities as specified in the "COSE Key Types" registry <xref target="COSE.Key.Types"/>.</t>
          </li>
          <li>
            <t>REQ6: Specify the acceptable formats for authentication credentials and, if applicable, the acceptable values for the 'cred_fmt' parameter: acceptable formats explicitly provide the public key as well as the comprehensive set of information related to the public key algorithm (see <xref target="ssec-token-post"/> and <xref target="ssec-join-resp"/>). Consistent acceptable values for 'cred_fmt' are taken from the "Label" column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>, with some of those values also indicating the type of container to use for exchanging the authentication credentials with the Group Manager (e.g., a chain or bag of certificates).</t>
          </li>
          <li>
            <t>REQ7: If the value of the GROUPNAME URI path and the group name in the access token scope ('gname') are not required to coincide, specify the mechanism to map the GROUPNAME value in the URI to the group name: not applicable, since a perfect matching is required.</t>
          </li>
          <li>
            <t>REQ8: Define whether the KDC has an authentication credential as required for the correct group operation and if this has to be provided through the 'kdc_cred' parameter: yes, as required by the Group OSCORE protocol <xref target="I-D.ietf-core-oscore-groupcomm"/>, see <xref target="ssec-join-resp"/> of this document.</t>
          </li>
          <li>
            <t>REQ9: Specify if any part of the KDC interface as defined in <xref target="RFC9594"/> is not supported by the KDC: not applicable.</t>
          </li>
          <li>
            <t>REQ10: Register a Resource Type for the group-membership resources, which is used to discover the correct URL for sending a Join Request to the KDC: the Resource Type (rt=) Link Target Attribute value "core.osc.gm" is registered in <xref target="iana-rt"/>.</t>
          </li>
          <li>
            <t>REQ11: Define what specific actions (e.g., CoAP methods) are allowed on each resource accessible through the KDC interface, depending on: whether the Client is a current group member; the roles that a Client is authorized to take as per the obtained access token; and the roles that the Client has as a current group member: see <xref target="ssec-admitted-methods"/>.</t>
          </li>
          <li>
            <t>REQ12: Categorize possible newly defined operations for Clients into primary operations expected to be minimally supported and secondary operations, and provide accompanying considerations: see <xref target="client-operations"/>.</t>
          </li>
          <li>
            <t>REQ13: Specify the encoding of group identifiers: CBOR byte string (see <xref target="sec-retrieve-gnames"/>).</t>
          </li>
          <li>
            <t>REQ14: Specify the approaches used to compute and verify the PoP evidence to include in the 'client_cred_verify' parameter and which of those approaches is used in which case: see <xref target="ssec-join-req-sending"/> and <xref target="ssec-join-req-processing"/>.</t>
          </li>
          <li>
            <t>REQ15: Specify how the nonce N_S is generated, if the access token is not provided to the KDC through the Token Transfer Request sent to the /authz-info endpoint (e.g., the access token is instead transferred during the establishment of a secure communication association): see <xref target="sssec-challenge-value"/>.</t>
          </li>
          <li>
            <t>REQ16: Define the initial value of the version number for the group keying material: the initial value <bcp14>MUST</bcp14> be set to 0 when creating the OSCORE group, e.g., as in <xref target="I-D.ietf-ace-oscore-gm-admin"/>.</t>
          </li>
          <li>
            <t>REQ17: Specify the format of the group keying material that is conveyed in the 'key' parameter: see <xref target="ssec-join-resp"/>.</t>
          </li>
          <li>
            <t>REQ18: Specify the acceptable values of the 'gkty' parameter. For each of them, register a corresponding entry in the "ACE Groupcomm Key Types" IANA registry if such an entry does not exist already: Group_OSCORE_Input_Material object (see <xref target="ssec-join-resp"/>).</t>
          </li>
          <li>
            <t>REQ19: Specify and register the application profile identifier: coap_group_oscore_app (see <xref target="ssec-iana-groupcomm-profile-registry"/>).</t>
          </li>
          <li>
            <t>REQ20: If used, specify the format and default values of the entries of the CBOR map to include in the 'group_policies' parameter: see <xref target="ssec-join-resp"/>.</t>
          </li>
          <li>
            <t>REQ21: Specify the approaches used to compute and verify the PoP evidence to include in the 'kdc_cred_verify' parameter and which of those approaches is used in which case. If external signature verifiers are supported, specify how those provide a nonce to the KDC to be used for computing the PoP evidence: see <xref target="ssec-join-resp"/>, <xref target="ssec-join-resp-processing"/> and <xref target="sec-gm-pub-key-signature-verifier"/>.</t>
          </li>
          <li>
            <t>REQ22: Specify the communication protocol that members of the group use to communicate with each other (e.g., CoAP for group communication): CoAP <xref target="RFC7252"/>, also for group communication <xref target="I-D.ietf-core-groupcomm-bis"/>.</t>
          </li>
          <li>
            <t>REQ23: Specify the security protocol that members of the group use to protect the group communication (e.g., Group OSCORE). This must provide encryption, integrity, and replay protection: Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          </li>
          <li>
            <t>REQ24: Specify how the communication is secured between the Client and the KDC. Optionally, specify a transport profile of ACE <xref target="RFC9200"/> to use between the Client and the KDC: by means of any transport profile of ACE <xref target="RFC9200"/> between Client and Group Manager that complies with the requirements in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
          </li>
          <li>
            <t>REQ25: Specify the format of the node identifiers of group members: the Sender ID used in the OSCORE group (see <xref target="ssec-join-resp"/> and <xref target="sec-pub-keys"/>).</t>
          </li>
          <li>
            <t>REQ26: Specify policies at the KDC to handle node identifiers that are included in the 'get_creds' parameter but are not associated with any current group member: see <xref target="sec-pub-keys"/>.</t>
          </li>
          <li>
            <t>REQ27: Specify the format of (newly generated) individual keying material for group members or of the information to derive such keying material, as well as the corresponding CBOR map key that has to be registered in the "ACE Groupcomm Parameters" registry: see <xref target="sec-new-key"/>.</t>
          </li>
          <li>
            <t>REQ28: Specify which CBOR tag is used for identifying the semantics of binary scopes, or register a new CBOR tag if a suitable one does not exist already: see <xref target="ssec-auth-resp"/>.</t>
          </li>
          <li>
            <t>REQ29: Categorize newly defined parameters according to the same criteria of <xref section="8" sectionFormat="of" target="RFC9594"/>: see <xref target="ace-groupcomm-params"/>.</t>
          </li>
          <li>
            <t>REQ30: Define whether Clients must, should, or may support the conditional parameters defined in <xref section="8" sectionFormat="of" target="RFC9594"/> and under which circumstances: see <xref target="ace-groupcomm-params"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="optional-to-address-requirements">
        <name>Optional-to-Address Requirements</name>
        <ul spacing="normal">
          <li>
            <t>OPT1: Optionally, if the textual format of scope is used, specify CBOR values to use for abbreviating the role identifiers in the group: not applicable.</t>
          </li>
          <li>
            <t>OPT2: Optionally, specify the additional parameters used in the exchange of Token Transfer Request and Response:  </t>
            <ul spacing="normal">
              <li>
                <t>'ecdh_info', to negotiate the ECDH algorithm, ECDH algorithm parameters, ECDH key parameters, and exact format of authentication credentials used in the group, in case the joining node supports the pairwise mode of Group OSCORE (see <xref target="ssec-token-post"/>).</t>
              </li>
              <li>
                <t>'kdc_dh_creds', to ask for and retrieve the Group Manager's Diffie-Hellman authentication credentials, in case the joining node supports the pairwise mode of Group OSCORE and the access token authorizes to join pairwise-only groups (see <xref target="ssec-token-post"/>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>OPT3: Optionally, specify the negotiation of parameter values for signature algorithm and signature keys, if the 'sign_info' parameter is not used: possible early discovery by using the approach based on the CoRE Resource Directory described in <xref target="I-D.tiloca-core-oscore-discovery"/>.</t>
          </li>
          <li>
            <t>OPT4: Optionally, specify possible or required payload formats for specific error cases: send a 4.00 (Bad Request) error response to a Join Request (see <xref target="ssec-join-req-processing"/>).</t>
          </li>
          <li>
            <t>OPT5: Optionally, specify additional identifiers of error types as values of the 'error-id' field within the Custom Problem Detail entry 'ace-groupcomm-error': see <xref target="error-types"/> and <xref target="iana-ace-groupcomm-errors"/>.</t>
          </li>
          <li>
            <t>OPT6: Optionally, specify the encoding of the 'creds_repo' parameter if the default one is not used: no encoding is defined.</t>
          </li>
          <li>
            <t>OPT7: Optionally, specify the functionalities implemented at the resource hosted by the Client at the URI indicated in the 'control_uri' parameter, including the encoding of exchanged messages and other details: see <xref target="sec-leaving"/> for the eviction of a group member; see <xref target="sec-group-rekeying-process"/> for the group rekeying process.</t>
          </li>
          <li>
            <t>OPT8: Optionally, specify the behavior of the POST handler of group-membership resources, for the case when it fails to retrieve an authentication credential for the specific Client: send a 4.00 (Bad Request) error response to a Join Request (see <xref target="ssec-join-req-processing"/>).</t>
          </li>
          <li>
            <t>OPT9: Optionally, define a default group rekeying scheme to refer to in case the 'rekeying_scheme' parameter is not included in the Join Response: the "Point-to-Point" rekeying scheme registered in <xref section="11.13" sectionFormat="of" target="RFC9594"/>, whose detailed use for this profile is defined in <xref target="sec-group-rekeying-process"/> of this document.</t>
          </li>
          <li>
            <t>OPT10: Optionally, specify the functionalities implemented at the resource hosted by the Client at the URI indicated in the 'control_group_uri' parameter, including the encoding of exchanged messages and other details: see <xref target="sec-leaving"/> for the eviction of multiple group members.</t>
          </li>
          <li>
            <t>OPT11: Optionally, specify policies that instruct Clients to retain messages and for how long, if those are unsuccessfully decrypted: no such policies are specified.</t>
          </li>
          <li>
            <t>OPT12: Optionally, specify for the KDC to perform a group rekeying when receiving a Key Renewal Request, together with or instead of renewing individual keying material: the Group Manager <bcp14>SHOULD NOT</bcp14> perform a group rekeying, unless already scheduled to occur shortly (see <xref target="sec-new-key"/>).</t>
          </li>
          <li>
            <t>OPT13: Optionally, specify how the identifier of a group member's authentication credential is included in requests sent to other group members: no such method is defined.</t>
          </li>
          <li>
            <t>OPT14: Optionally, specify additional information to include in rekeying messages for the "Point-to-Point" group rekeying scheme (see <xref section="6" sectionFormat="of" target="RFC9594"/>): see <xref target="sending-rekeying-msg"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-future-cose-algs">
      <name>Extensibility for Future COSE Algorithms</name>
      <t>As defined in <xref section="8.1" sectionFormat="of" target="RFC9053"/>, future algorithms can be registered in the "COSE Algorithms" registry <xref target="COSE.Algorithms"/> as specifying none or multiple COSE capabilities.</t>
      <t>To enable the seamless use of such future registered algorithms, this section defines a general, agile format for:</t>
      <ul spacing="normal">
        <li>
          <t>Each 'ecdh_info_entry' of the 'ecdh_info' parameter in the Token Transfer Response; see <xref target="ecdh-info"/>).  </t>
          <t><xref section="B" sectionFormat="of" target="RFC9594"/> describes the analogous general format for each 'sign_info_entry' of the 'sign_info' parameter in the Token Transfer Response (see <xref target="ssec-token-post"/> of this document).</t>
        </li>
        <li>
          <t>The 'sign_params' and 'ecdh_params' parameters within the 'key' parameter (see <xref target="ssec-join-resp"/>), as part of the response payloads used in <xref target="ssec-join-resp"/>, <xref target="ssec-updated-key-only"/>, <xref target="ssec-updated-and-individual-key"/>, and <xref target="sec-group-rekeying-process"/>.</t>
        </li>
      </ul>
      <t>If any of the currently registered COSE algorithms is considered, using this general format yields the same structure defined in this document for the items above, thus ensuring backward compatibility.</t>
      <section anchor="sec-future-cose-algs-ecdh-info-entry">
        <name>Format of 'ecdh_info_entry'</name>
        <t>The format of each 'ecdh_info_entry' (see <xref target="ssec-token-post"/> and <xref target="ecdh-info"/>) is generalized as follows.</t>
        <ul spacing="normal">
          <li>
            <t>'ecdh_parameters' includes N &gt;= 0 elements, each of which is a COSE capability of the ECDH algorithm indicated in 'ecdh_alg'.  </t>
            <t>
In particular, 'ecdh_parameters' has the same format and value of the COSE capabilities array for the ECDH algorithm indicated in 'ecdh_alg', as specified for that algorithm in the 'Capabilities' column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'ecdh_key_parameters' is replaced by N elements 'ecdh_capab', each of which is a CBOR array.  </t>
            <t>
The i-th 'ecdh_capab' array (i = 0, ..., N-1) is the array of COSE capabilities for the algorithm capability specified in 'ecdh_parameters'[i].  </t>
            <t>
In particular, each 'ecdh_capab' array has the same format and value of the COSE capabilities array for the algorithm capability specified in 'ecdh_parameters'[i].  </t>
            <t>
Such a COSE capabilities array is currently defined for the algorithm capability COSE key type, in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/>.</t>
          </li>
        </ul>
        <t>The CDDL notation <xref target="RFC8610"/> of the 'ecdh_info_entry' parameter is given below.</t>
        <figure anchor="fig-ecdh-info-entry-general">
          <name>'ecdh_info_entry' with General Format</name>
          <sourcecode type="CDDL"><![CDATA[
ecdh_info_entry =
[
    id: gname / [+ gname],
    ecdh_alg: int / tstr,
    ecdh_parameters : [* ecdh_capab: any],
  * ecdh_capab: [* capab: any],
    cred_fmt: int / null
]

gname = tstr
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-future-cose-algs-key">
        <name>Format of 'key'</name>
        <t>The format of 'key' (see <xref target="ssec-join-resp"/>) is generalized as follows.</t>
        <ul spacing="normal">
          <li>
            <t>The 'sign_params' array includes N+1 elements, whose exact structure and value depend on the value of the signature algorithm specified in 'sign_alg'.  </t>
            <ul spacing="normal">
              <li>
                <t>The first element, i.e., 'sign_params'[0], is the array of the N COSE capabilities for the signature algorithm, as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/> (see <xref section="8.1" sectionFormat="of" target="RFC9053"/>).</t>
              </li>
              <li>
                <t>Each following element 'sign_params'[i], i.e., with index i &gt; 0, is the array of COSE capabilities for the algorithm capability specified in 'sign_params'[0][i-1].</t>
              </li>
            </ul>
            <t>
For example, if 'sign_params'[0][0] specifies the key type as capability of the algorithm, then 'sign_params'[1] is the array of COSE capabilities for the COSE key type associated with the signature algorithm, as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/> (see <xref section="8.2" sectionFormat="of" target="RFC9053"/>).</t>
          </li>
          <li>
            <t>The 'ecdh_params' array includes M+1 elements, whose exact structure and value depend on the value of the ECDH algorithm specified in 'ecdh_alg'.  </t>
            <ul spacing="normal">
              <li>
                <t>The first element, i.e., 'ecdh_params'[0], is the array of the M COSE capabilities for the ECDH algorithm, as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="COSE.Algorithms"/> (see <xref section="8.1" sectionFormat="of" target="RFC9053"/>).</t>
              </li>
              <li>
                <t>Each following element 'ecdh_params'[i], i.e., with index i &gt; 0, is the array of COSE capabilities for the algorithm capability specified in 'ecdh_params'[0][i-1].</t>
              </li>
            </ul>
            <t>
For example, if 'ecdh_params'[0][0] specifies the key type as capability of the algorithm, then 'ecdh_params'[1] is the array of COSE capabilities for the COSE key type associated with the ECDH algorithm, as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="COSE.Key.Types"/> (see <xref section="8.2" sectionFormat="of" target="RFC9053"/>).</t>
          </li>
        </ul>
      </section>
    </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 Groupcomm Parameters
sign_enc_key = 33

; ACE Groupcomm Key Types
group_oscore_input_material_obj = 1

; ACE Groupcomm Profiles
coap_group_oscore_app = 1

; OSCORE Security Context Parameters
cred_fmt = 8
gp_enc_alg = 9
sign_alg = 10
sign_params = 11
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-17-18">
        <name>Version -17 to -18</name>
        <ul spacing="normal">
          <li>
            <t>Avoid unnecessary normative language.</t>
          </li>
          <li>
            <t>Added missing optional check at the Group Manager when receiving a group member's updated authentication credential.</t>
          </li>
          <li>
            <t>Clarified the origin of the latest client's authentication credential.</t>
          </li>
          <li>
            <t>Clarified meaning of the group becoming inactive and active again.</t>
          </li>
          <li>
            <t>Refer to all the REQ and OPT profile requirements.</t>
          </li>
          <li>
            <t>Minor clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-16-17">
        <name>Version -16 to -17</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Fixes in the CDDL definitions.</t>
          </li>
          <li>
            <t>Fixes in the examples in CBOR diagnostic notation.</t>
          </li>
          <li>
            <t>Updated author list.</t>
          </li>
          <li>
            <t>Updated references and section numbers of referred documents.</t>
          </li>
          <li>
            <t>Use actual tables.</t>
          </li>
          <li>
            <t>Add high-level recap of the concept of scope.</t>
          </li>
          <li>
            <t>Fixed name of the error with error code 4.</t>
          </li>
          <li>
            <t>Renamed parameters to align with RFC 9594  </t>
            <ul spacing="normal">
              <li>
                <t>"Group Encryption Key" becomes "Signature Encryption Key"</t>
              </li>
              <li>
                <t>'group_enc_key' becomes 'sign_enc_key'</t>
              </li>
              <li>
                <t>"Signature Encryption Algorithm" becomes "Group Encryption Algorithm"</t>
              </li>
              <li>
                <t>'sign_enc_alg' becomes 'gp_enc_alg'</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Added CBOR integer abbreviations for ACE Groupcomm Parameters.</t>
          </li>
          <li>
            <t>Considerations on authentication credentials consistent with RFC 9594.</t>
          </li>
          <li>
            <t>Revised alternative computing of N_S challenge when DTLS is used.</t>
          </li>
          <li>
            <t>Generalized definition of ecdh_info.</t>
          </li>
          <li>
            <t>Generalized definition of kdc_dh_creds.</t>
          </li>
          <li>
            <t>Clarified maximum size of the OSCORE Sender ID.</t>
          </li>
          <li>
            <t>Clarified parameters left "not set" in the Security Context.</t>
          </li>
          <li>
            <t>Clarified meaning of 'cred_fmt'.</t>
          </li>
          <li>
            <t>Consistent mandatory use of 'cnonce'.</t>
          </li>
          <li>
            <t>Relation between 'cred_fmt' and Authentication Credential Format.</t>
          </li>
          <li>
            <t>Implicit PoP evidence of the Client's authentication credential.</t>
          </li>
          <li>
            <t>Process of 'client_cred' and 'client_cred_verify' consistent with RFC 9594.</t>
          </li>
          <li>
            <t>GET to ace-group/GROUPNAME/kdc-cred only for group members.</t>
          </li>
          <li>
            <t>Added FETCH handler for /ace-group/GROUPNAME/kdc-cred.</t>
          </li>
          <li>
            <t>PUT becomes POST for ace-group/GROUPNAME/nodes/NODENAME.</t>
          </li>
          <li>
            <t>Fixed error response code from /ace-group/GROUPNAME/nodes/NODENAME.</t>
          </li>
          <li>
            <t>Consistent use of the 'exi' ACE Groupcomm Parameter.</t>
          </li>
          <li>
            <t>Use concise problem details (RFC9290) for error responses.</t>
          </li>
          <li>
            <t>Revised default values on group configuration parameters.</t>
          </li>
          <li>
            <t>Revised future-ready generalization of 'ecdh_info_entry'.</t>
          </li>
          <li>
            <t>CCS is used as default format of authentication credential.</t>
          </li>
          <li>
            <t>Updated name of TLS exporter label.</t>
          </li>
          <li>
            <t>Revised IANA considerations.</t>
          </li>
          <li>
            <t>Aligned requirement formulation with that in RFC 9594.</t>
          </li>
          <li>
            <t>Use of AASVG in message diagrams.</t>
          </li>
          <li>
            <t>Clarifications and editorial fixes.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-15-16">
        <name>Version -15 to -16</name>
        <ul spacing="normal">
          <li>
            <t>Early mentioning of invalid combinations of roles.</t>
          </li>
          <li>
            <t>Revised presentation of handling of stale Sender IDs.</t>
          </li>
          <li>
            <t>Fixed CDDL notation.</t>
          </li>
          <li>
            <t>Fixed diagnostic notation in examples.</t>
          </li>
          <li>
            <t>Possible reason to deviate from default parameter values.</t>
          </li>
          <li>
            <t>Clarifications and editorial fixes.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-14-15">
        <name>Version -14 to -15</name>
        <ul spacing="normal">
          <li>
            <t>Alignment with renaming in draft-ietf-ace-key-groupcomm.</t>
          </li>
          <li>
            <t>Updated signaling of semantics for binary encoded scopes.</t>
          </li>
          <li>
            <t>Considered the upload of access tokens in the DTLS 1.3 Handshake.</t>
          </li>
          <li>
            <t>Fixes in IANA registrations.</t>
          </li>
          <li>
            <t>Editorial fixes.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-13-14">
        <name>Version -13 to -14</name>
        <ul spacing="normal">
          <li>
            <t>Major reordering of the document sections.</t>
          </li>
          <li>
            <t>The HKDF Algorithm is specified by the HMAC Algorithm.</t>
          </li>
          <li>
            <t>Group communication does not necessarily use IP multicast.</t>
          </li>
          <li>
            <t>Generalized AIF data model, also for draft-ace-oscore-gm-admin.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-12-13">
        <name>Version -12 to -13</name>
        <ul spacing="normal">
          <li>
            <t>Renamed parameters about authentication credentials.</t>
          </li>
          <li>
            <t>It is optional for the Group Manager to reassign Gids by tracking "Birth Gids".</t>
          </li>
          <li>
            <t>Distinction between authentication credentials and public keys.</t>
          </li>
          <li>
            <t>Updated IANA considerations related to AIF.</t>
          </li>
          <li>
            <t>Updated textual description of registered ACE Scope Semantics value.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-11-12">
        <name>Version -11 to -12</name>
        <ul spacing="normal">
          <li>
            <t>Clarified semantics of 'ecdh_info' and 'kdc_dh_creds'.</t>
          </li>
          <li>
            <t>Definition of /ace-group/GROUPNAME/kdc-pub-key moved to draft-ietf-ace-key-groupcomm.</t>
          </li>
          <li>
            <t>/ace-group accessible also to non-members that are not Verifiers.</t>
          </li>
          <li>
            <t>Clarified what resources are accessible to Verifiers.</t>
          </li>
          <li>
            <t>Revised error handling for the newly defined resources.</t>
          </li>
          <li>
            <t>Revised use of CoAP error codes.</t>
          </li>
          <li>
            <t>Use of "Token Transfer Request" and "Token Transfer Response".</t>
          </li>
          <li>
            <t>New parameter 'rekeying_scheme'.</t>
          </li>
          <li>
            <t>Categorization of new parameters and inherited conditional parameters.</t>
          </li>
          <li>
            <t>Clarifications on what to do in case of enhanced error responses.</t>
          </li>
          <li>
            <t>Changed UCCS to CCS.</t>
          </li>
          <li>
            <t>Authentication credentials of just joined Clients can be in rekeying messages.</t>
          </li>
          <li>
            <t>Revised names of new IANA registries.</t>
          </li>
          <li>
            <t>Clarified meaning of registered CoRE resource type.</t>
          </li>
          <li>
            <t>Alignment to new requirements from draft-ietf-ace-key-groupcomm.</t>
          </li>
          <li>
            <t>Fixes and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-10-11">
        <name>Version -10 to -11</name>
        <ul spacing="normal">
          <li>
            <t>Removed redundancy of key type capabilities, from 'sign_info', 'ecdh_info' and 'key'.</t>
          </li>
          <li>
            <t>New resource to retrieve the Group Manager's authentication credential.</t>
          </li>
          <li>
            <t>New resource to retrieve material for Signature Verifiers.</t>
          </li>
          <li>
            <t>New parameter 'gp_enc_alg' related to the group mode.</t>
          </li>
          <li>
            <t>'cred_fmt' takes value from the COSE Header Parameters registry.</t>
          </li>
          <li>
            <t>Improved alignment of the Join Response payload with the Group OSCORE Security Context parameters.</t>
          </li>
          <li>
            <t>Recycling Group IDs by tracking "Birth GIDs".</t>
          </li>
          <li>
            <t>Error handling in case of non available Sender IDs upon joining.</t>
          </li>
          <li>
            <t>Error handling in case EdDSA public keys with invalid Y coordinate when the pairwise mode of Group OSCORE is supported.</t>
          </li>
          <li>
            <t>Generalized proof-of-possession (PoP) for the joining node's private key; defined Diffie-Hellman based PoP for OSCORE groups using only the pairwise mode.</t>
          </li>
          <li>
            <t>Proof of possession of the Group Manager's private key in the Join Response.</t>
          </li>
          <li>
            <t>Always use 'peer_identifiers' to convey Sender IDs as node identifiers.</t>
          </li>
          <li>
            <t>Stale Sender IDs provided when rekeying the group.</t>
          </li>
          <li>
            <t>New resource for late retrieval of stale Sender IDs.</t>
          </li>
          <li>
            <t>Added examples of message exchanges.</t>
          </li>
          <li>
            <t>Revised default values of group configuration parameters.</t>
          </li>
          <li>
            <t>Fixes to IANA registrations.</t>
          </li>
          <li>
            <t>General format of parameters related to COSE capabilities, supporting future registered COSE algorithms (new Appendix).</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-09-10">
        <name>Version -09 to -10</name>
        <ul spacing="normal">
          <li>
            <t>Updated non-recycling policy of Sender IDs.</t>
          </li>
          <li>
            <t>Removed policies about Sender Sequence Number synchronization.</t>
          </li>
          <li>
            <t>'control_path' renamed to 'control_uri'.</t>
          </li>
          <li>
            <t>Format of 'get_pub_keys' aligned with draft-ietf-ace-key-groupcomm.</t>
          </li>
          <li>
            <t>Additional way to inform of group eviction.</t>
          </li>
          <li>
            <t>Registered semantics identifier for extended scope format.</t>
          </li>
          <li>
            <t>Extended error handling, with error type specified in some error responses.</t>
          </li>
          <li>
            <t>Renumbered requirements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-08-09">
        <name>Version -08 to -09</name>
        <ul spacing="normal">
          <li>
            <t>The url-path "ace-group" is used.</t>
          </li>
          <li>
            <t>Added overview of admitted methods on the Group Manager resources.</t>
          </li>
          <li>
            <t>Added exchange of parameters relevant for the pairwise mode of Group OSCORE.</t>
          </li>
          <li>
            <t>The signed value for 'client_cred_verify' includes also the scope.</t>
          </li>
          <li>
            <t>Renamed the key material object as Group_OSCORE_Input_Material object.</t>
          </li>
          <li>
            <t>Replaced 'clientId' with 'group_SenderId'.</t>
          </li>
          <li>
            <t>Added message exchange for Group Names request-response.</t>
          </li>
          <li>
            <t>No reassignment of Sender ID and Gid in the same OSCORE group.</t>
          </li>
          <li>
            <t>Updates on group rekeying contextual with request of new Sender ID.</t>
          </li>
          <li>
            <t>Signature verifiers can also retrieve Group Names and URIs.</t>
          </li>
          <li>
            <t>Removed group policy about supporting Group OSCORE in pairwise mode.</t>
          </li>
          <li>
            <t>Registration of the resource type rt="core.osc.gm".</t>
          </li>
          <li>
            <t>Update list of requirements.</t>
          </li>
          <li>
            <t>Clarifications and editorial revision.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-07-08">
        <name>Version -07 to -08</name>
        <ul spacing="normal">
          <li>
            <t>AIF data model to express scope entries.</t>
          </li>
          <li>
            <t>A set of roles is checked as valid when processing the Join Request.</t>
          </li>
          <li>
            <t>Updated format of 'get_pub_keys' in the Join Request.</t>
          </li>
          <li>
            <t>Payload format and default values of group policies in the Join Response.</t>
          </li>
          <li>
            <t>Updated payload format of the FETCH request to retrieve authentication credentials.</t>
          </li>
          <li>
            <t>Default values for group configuration parameters.</t>
          </li>
          <li>
            <t>IANA registrations to support the AIF data model.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Alignments with draft-ietf-core-oscore-groupcomm.</t>
          </li>
          <li>
            <t>New format of 'sign_info', using the COSE capabilities.</t>
          </li>
          <li>
            <t>New format of Join Response parameters, using the COSE capabilities.</t>
          </li>
          <li>
            <t>Considerations on group rekeying.</t>
          </li>
          <li>
            <t>Editorial revision.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>Added role of external signature verifier.</t>
          </li>
          <li>
            <t>Parameter 'rsnonce' renamed to 'kdcchallenge'.</t>
          </li>
          <li>
            <t>Parameter 'kdcchallenge' may be omitted in some cases.</t>
          </li>
          <li>
            <t>Clarified difference between group name and OSCORE Gid.</t>
          </li>
          <li>
            <t>Removed the role combination ["requester", "monitor"].</t>
          </li>
          <li>
            <t>Admit implicit scope and audience in the Authorization Request.</t>
          </li>
          <li>
            <t>New format for the 'sign_info' parameter.</t>
          </li>
          <li>
            <t>Scope not mandatory to include in the Join Request.</t>
          </li>
          <li>
            <t>Group policy about supporting Group OSCORE in pairwise mode.</t>
          </li>
          <li>
            <t>Possible individual rekeying of a single requesting node combined with a group rekeying.</t>
          </li>
          <li>
            <t>Security considerations on reusage of signature challenges.</t>
          </li>
          <li>
            <t>Addressing optional requirement OPT12 from draft-ietf-ace-key-groupcomm</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>Nonce N_S also in error responses to the Join Requests.</t>
          </li>
          <li>
            <t>Supporting single access token for multiple groups/topics.</t>
          </li>
          <li>
            <t>Supporting legal requesters/responders using the 'peer_roles' parameter.</t>
          </li>
          <li>
            <t>Registered and used dedicated label for TLS Exporter.</t>
          </li>
          <li>
            <t>Added method for uploading a new authentication credential to the Group Manager.</t>
          </li>
          <li>
            <t>Added resource and method for retrieving the current group status.</t>
          </li>
          <li>
            <t>Fixed inconsistency in retrieving group keying material only.</t>
          </li>
          <li>
            <t>Clarified retrieval of keying material for monitor-only members.</t>
          </li>
          <li>
            <t>Clarification on incrementing version number when rekeying the group.</t>
          </li>
          <li>
            <t>Clarification on what is re-distributed with the group rekeying.</t>
          </li>
          <li>
            <t>Security considerations on the size of the nonces used for the signature challenge.</t>
          </li>
          <li>
            <t>Added CBOR values to abbreviate role identifiers in the group.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>New abstract.</t>
          </li>
          <li>
            <t>Moved general content to draft-ietf-ace-key-groupcomm</t>
          </li>
          <li>
            <t>Terminology: node name; node resource.</t>
          </li>
          <li>
            <t>Creation and pointing at node resource.</t>
          </li>
          <li>
            <t>Updated Group Manager API (REST methods and offered services).</t>
          </li>
          <li>
            <t>Size of challenges 'cnonce' and 'rsnonce'.</t>
          </li>
          <li>
            <t>Value of 'rsnonce' for reused or non-traditionally-posted tokens.</t>
          </li>
          <li>
            <t>Removed reference to RFC 7390.</t>
          </li>
          <li>
            <t>New requirements from draft-ietf-ace-key-groupcomm</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>New sections, aligned with the interface of ace-key-groupcomm .</t>
          </li>
          <li>
            <t>Exchange of information on the signature algorithm and related parameters, during the Token POST (Section 4.1).</t>
          </li>
          <li>
            <t>Nonce 'rsnonce' from the Group Manager to the Client (Section 4.1).</t>
          </li>
          <li>
            <t>Client PoP signature in the Key Distribution Request upon joining (Section 4.2).</t>
          </li>
          <li>
            <t>Local actions on the Group Manager, upon a new node's joining (Section 4.2).</t>
          </li>
          <li>
            <t>Local actions on the Group Manager, upon a node's leaving (Section 12).</t>
          </li>
          <li>
            <t>IANA registration in ACE Groupcomm Parameters registry.</t>
          </li>
          <li>
            <t>More fulfilled profile requirements (Appendix A).</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>Editorial fixes.</t>
          </li>
          <li>
            <t>Changed: "listener" to "responder"; "pure listener" to "monitor".</t>
          </li>
          <li>
            <t>Changed profile name to "coap_group_oscore_app", to reflect it is an application profile.</t>
          </li>
          <li>
            <t>Added the 'type' parameter for all requests to a Join Resource.</t>
          </li>
          <li>
            <t>Added parameters to indicate the encoding of authentication credentials.</t>
          </li>
          <li>
            <t>Challenge-response for proof of possession of signature keys (Section 4).</t>
          </li>
          <li>
            <t>Renamed 'key_info' parameter to 'sign_info'; updated its format; extended to include also parameters of the signature key (Section 4.1).</t>
          </li>
          <li>
            <t>Code 4.00 (Bad request), in responses to joining nodes providing an invalid authentication credential (Section 4.3).</t>
          </li>
          <li>
            <t>Clarifications on provisioning and checking of authentication credentials (Sections 4 and 6).</t>
          </li>
          <li>
            <t>Extended discussion on group rekeying and possible different approaches (Section 7).</t>
          </li>
          <li>
            <t>Extended security considerations: proof of possession of signature keys; collision of OSCORE Group Identifiers (Section 8).</t>
          </li>
          <li>
            <t>Registered three entries in the IANA registry "Sequence Number Synchronization Method" (Section 9).</t>
          </li>
          <li>
            <t>Registered one public key encoding in the "ACE Public Key Encoding" IANA registry (Section 9).</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Changed name of 'req_aud' to 'audience' in the Authorization Request (Section 3.1).</t>
          </li>
          <li>
            <t>Added negotiation of signature algorithm/parameters between Client and Group Manager (Section 4).</t>
          </li>
          <li>
            <t>Updated format of the Key Distribution Response as a whole (Section 4.3).</t>
          </li>
          <li>
            <t>Added parameter 'cs_params' in the 'key' parameter of the Key Distribution Response (Section 4.3).</t>
          </li>
          <li>
            <t>New IANA registrations in the "ACE Authorization Server Request Creation Hints" registry, "ACE Groupcomm Key" registry, "OSCORE Security Context Parameters" registry and "ACE Groupcomm Profile" registry (Section 9).</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="sec-acknowledgments">
      <name>Acknowledgments</name>
      <t>Jiye Park contributed as a co-author of initial versions of this document.</t>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/>, <contact fullname="Santiago Aragón"/>, <contact fullname="Stefan Beck"/>, <contact fullname="Carsten Bormann"/>, <contact fullname="Martin Gunnarsson"/>, <contact fullname="Rikard Höglund"/>, <contact fullname="Watson Ladd"/>, <contact fullname="Daniel Migault"/>, <contact fullname="Jim Schaad"/>, <contact fullname="Ludwig Seitz"/>, <contact fullname="Göran Selander"/>, <contact fullname="Peter van der Stok"/>, and <contact fullname="Paul Wouters"/> for their comments and feedback.</t>
      <t>The work on this document has been partly supported by the Sweden's Innovation Agency VINNOVA and the Celtic-Next projects CRITISEC and CYPRESS; by the H2020 project SIFIS-Home (Grant agreement 952652); and by the EIT-Digital High Impact Initiative ACTIVE.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIACNDsGgAA+y96XIbV7Yu+J9PkU1HNEkfACY4ky7XvTRF2TplDVeUXVW3
yqGTABJkHoFInExAEsv2jfsa/a+fpR+ln6TXuKfcmQAoSnZVW+GwICCHPay9
5vWtbre78fYs2d/YmOfzSXaW/Cm7S56m0/Q6u82m82RclMk3ZbGYJc8H/5kN
58lVNlyU+fyOfrkoptW8TPNpNkpeXl69Gi8myeX0bV4WU7y7Srbl3quL5y8v
d5Lvq3x6nZwv5jfwaz5M53kxTdLpiL4qyvwf/E34aP+R5xeXOxvpYFBmb9uG
S6/UN15cboyK4TS9hRmOynQ87+bZfNxNh1n3TXbXvcZbhsXtbbeohkWZdSfp
PKvmGxufJdUcxvc6nRRTuHVeLrKNjXxW0sdqvre7e7q7t5GWWXpmVmbjXVG+
oSee4YuTP8M/cRA0rg14Hfw+OkueTOdZOc3m3Uc4ng1YjDN42WijWgxu86qC
dZjfzeCdTy5fPd7YGBYjeMZZsoBRn2zM8rME/nyWDNNpsqiyJC3L9C7ZzsdJ
Opkkd1m1k8BK3KTVTXKTlTDmJJkXwzP8BT5WRTkvs3F1Rs8YZeN0MYGVnRf6
+90t/4z/3Ehpb842uhv4znwK3z/tJa/ySTFM6Ste1qdpOSzcr4sSxvvyydVl
cv41fQH7mWUwyydVOv5PWIPqOoXFTfb26NchLB3sZw4Lzv8uRvDUq8tu/+gg
2TtNrmACb26Kya38upjOS7jh6l02yqb0XXab5pOz5BYH0pvTQP57mfeqzB36
417yAnbzdpBPc2f0j8t0OsyqYRr8SpO4LPNhVQFhBhN5VZTVTXo71YnsL53I
we7q8xjrkHozHdJ/z2QkPSDWjY1pUd7CiXmbncF9Lx9fHO4dHOnH491D+Xi0
f3CsH0+PT+Xj8d7hnn48PjiRjye7/WPzcV8vOOnv6XNPDg6cj+bao/6u/biv
H08P9G2nu+Zt8FEvOO2bJ5zCUbIf9+xHc+3evr322H48Nbcd7JuPh6cH+PFJ
91GPzjmdaTna5qzjFc+eXL3qnuzudg+Pzs9o8ZXaE/rTlb+FeC57yddp+SYr
zddMPZcTZFT+b8Gt3/WSixvZYHvjd/nkzv0+uOm8l7wsruHjm7vgxvPJJJuG
P9bv/iEFTjLJ3oZ3z4pqXkzCn4P7X/aSR+nbvApufpkPb9Jy5PwmouNlhsua
TUeWi79I87L75xw4FDDq7iUcicEkr26IV18Nb4BpV8KiH+XVsMzmWfJdcZ0C
G725TS7Ku9m8uC7T2c1d0qW9Sq5m2TBPJ8mLBTxIBIjsXwcGACPCb/ggwjhg
VHu7/ZPu7gEPNC2v8eDezOez6uyLL6ZvJ7PFoOpN4bD2rou3X+AH/OYLeY/z
muoLHEDv6kVP3lfu92ajMTz34vnVZe98cl3QsKsYHREbeXL+7NwZ2DidAGty
1g+fk9jnREf87t27Xg7yrgdP/AJ375rF4hfDosrof733N/PbyWep+xwaIexA
7xWIlA8cIEpcesyHjQ/FLgo4Hd3lZJLPQCfoXSzKtx86Rn1Ywg/7sJFm8rDu
UB9GA/42S0dZ2XuRlnAqQJR/4JD5cYl93IcN+oYe153Zx23k07ErL3zmaDWg
QV7Vfx4W6ayLB2Mx0B9ZwHqsdQRnuHibgThzH4BKlvLe2246us2nwQsqeMGg
KLvZFGXlqDvMyrkRaSfK1Q9PjlScHB0Ztn90bITM8dFBX0XP/inIkA3UMuc0
mqvL7x6fJZt/g9+6f4E/P25ubHS73SQdoJY5BFXv1U1eJaAkLog5gVIEHL0C
5TRJZzPDamZlMQaGmRTjBHTYh9BkUczfZqgydlABK7P/WoDmSY+Clwk/g8OC
PBI2DxQA4H75NKENS3DHFlN9fzXMpsA7C1DlblJ4Rpklg7SC18JvOFx3JOfO
rF6UBSglIA+2L4rzFzv0cry5Qo0Wrn0HfOThrADQHXGpY8s6yibZNareNNy0
vrqpt7qwCxeTHF/RSd7dgFhK/rPI8ULV/nmR5jfw1/VNkoKAqIpFOcxg/HCU
ywQ2Htc1rWR2bEmUNCtaQnpAy4BBdmYl3FLhN7SG3Qolxxh4DyzJtJqBqq1X
VzhgtAhgn9PhTQ73hhsoy9qBTzxAbwk6ShbwHPgPhHiVkaVAA06RTJLiHW7D
4I43nFaH7hqAojmiN8PqIJEme71dGAZomKj5v8mmPT4Rt/loNMnQ9AELpSxG
iyEN7afPYHDd3PnqFzwzSiTBRHQ17kkvai/+9JNolL/8wqdhlHn7AHbaHawS
vi0bmgO3DqnTG1AX/uWXDlhSSA0XXz9/acYNDJYoZIpnd4gKCT5lG1m23Iyq
7S+/6EccKV4MBxE0B7gT1KHuvADWNjK7S3QLb09A+6mQeGDlzythOSM83D/9
1K664mAfziqnscLCxobKz4OxxvhNOExPiOAY+VCikZrdziYF0DU+L3ufwr+y
TvIElgAsT3gccrwqAQrNygmxOhCVqT1BsECeVV9mQNhVQkwhYSYPbwGVeOQf
ZB0BnN4ygydNqxxmSoO4xSt4a31uYXZPuBB/e5vdDkCK4gHK3oP+O73O/D2M
Mkt6LrKPLGAwuCSDrD4oXA1YGn4pcLVhAXZyPjUsEfkbDhoong4uUNI0e+eP
kblEjvtJTgodE94PEnpe5oOFYahlBveDRIEH8UMCUdMLBWPeJhP5FID1ZTc/
n1fZZJwMFvlkVKkgelC5KW8FA/KXX3rJU94Ps0sw3NsCJoSvBW0I3pnPUnwK
0Ns7UO3wb9nDhPWjSrksrjCuxbiYTIp3MJ+Upi8MXk+qM2NLOvw6ld/KQWix
8R+wVOuKdFzPrMx87xaMZoHyHahSeGDjYYWN/Oyz5FVWgvpVTIrrO+ToyNLn
9ivh6ChG0EdVJZtPv796tdnhv5Nnz+nzy8v/8f2Tl5eP8PPVt+fffWc+bMgV
V98+//67R/aTvfPi+dOnl88e8c3wbeJ9tbH59Pyvm7yOm89fvHry/Nn5d5u4
NHOPBlE3gSnDAcrRiTZDuxF0g2oDxMMQyJu35uuLF//P/90/gC36P2CP9vr9
U+DN/I+T/jFsGK6oyNRiCnY4/xN27m4D6DtLS3wK+tOG6Syfg9beQWKpbkDE
klcNlvTzv+HK/HiW/GEwnPUP/ihf4IS9L3XNvC9pzerf1G7mRYx8FXmNWU3v
+2Cl/fGe/9X7t6678+Uf/tsE3Rvd/sl/++PGxsZLsi0q2obsPZyGOZMg7Mc4
vc0nOawcchxQwD8n3ockxqdqWEyH2WyOws7ZKWIJoBfZI036zDL1zzn3zPIs
c7EXPVGrBz4/pk/AP548VuG9t38MdxNXBzICjuq/Ird398xU9ACRLEPhg7JI
Xj5Edg6rg/RYgo6HZxLVo9yT71YBo1GgDYO8izhtPh1OFqjniPK2fbHTqSmu
2y+vdjoRvqk/n1/t9FpWH+RnKpuGg17C/5oZHq5AM5dbl8XRCleZrgDbAOTn
z9kDAzT8P97TO4BI38OCTgvS3/HC6QKFH4wRBDsoD0V5h7pMOhrxruIZJ90t
nbjfo7mVlxQ7gNON4hj1yLfZ5G7F5QMhNUT31iPUVx7hDuc0qe9A9ixwTbcv
Hj36zmqyu7hsetPXINnLO9XhXmZIgTCSVHRM0EP1xlMkEN5w8hbENc+Vxwwi
wlF86cLYzhjlb4mi10u+n05IHYGdKN/ltIcjfEo2IoZKA0o2QbOcgQIz3zSC
i0Qay1fcSFAW5GyMzFLCrPNbPE5zu+GlHAfgxgvQMYArf0EmDM3kCzJSaCfx
JmIJV7x2X+Dp/kcXT7X+9PJKzp01/Qt4LryIAitsS8AS2AGh9LZTcVTMzXOj
jBpNg4abT+1z1DLabNssOVdq1ATnMTQfjIErWoFrNeGt+rOnOiw3MVY+r3Rq
4ICDCJWje7ZB3qtuqI2nrMXKIoXabwo69NxoopUoPN7Lq0a/hKjaTwJdgcnP
V77B6if1L2CqPR10oJ0OS4zMzGGCZgIyTkc6wC9VAYtgtG1jmHRkUZhRAdXx
11tVMiPnMqlbtMPGV1d7GGmT5upecskWFOn/adNoea3Imv1zNkhe4QEB5fni
z68qdvHAJxAycLoqWAHUqy8urirlOPunZBL/pXe4e5qgQw59GmSH0O/olzMc
KXLJEu8e8arz0Shnljy56wQq3m36JiMeoa42yyQcEUwaxkt2mWXlmVhAtCo1
HxCsPDDXUWVcbPb4FMy4jJEnr2TnD78CKXW0wivKbJiB/Ii8ZVwWt23vSc7l
QKAb+DbF4zGDEzVIh2866M/BwZOI1XNj5baI8VIXQljSDWqruJjOj3oPTesp
CG2QlEsnBRsDrGmcX9OpSytnoLj/U3SCmcX1x1YpH2uyjOnZpTyw0qmwvMDY
1HQuvrBNlhgreUdodui7SUn5grtRf4GJCufJ3mPsHVQSeZ07ZTGfwbCACZK8
pNvZoVaZZ8JamSmqrWlUUGft8AwGS+B4FeBAJNtVlsGcrpjZV0l/r7ffSY55
HMe9Q3zVsgnvEPMC+aPqK7yrqs3fijbyk4Yzx51F2x40Vlgapole8m3xDvcX
2Nic3BZkcsE1di4+d4UHg+0IH8ibPS/Jzam28zTLZFFnWYnMszZK4fOdJOtd
9zoxP7DL4eQEgTgokVJ8Xw0pfeP6EH3q6JLtJ/kaUfIHuqvYQmzdueR41Z36
nOKiqCet+/KZ3Bd9/8mq73/FCkGxmIfCMlPBQqofig5yxIEZc2vsPVScmdTp
AjxLdFJGeXo9LSoMuwGJqVT03ZreUI1iSzv100/nYHQDj3uffKO/kr6cbG9G
Hr2500seRd7IIeg5j7YYw9hcFwl6kIGDzmHQSOOlr3ILsVhBvIXilgnpbTpZ
kKf2iShztDiRASiXClZ2SN6sBaoeRqIB+WdbV8+fXr5+dv70couGjFw/HVoX
Pr034VAfT8PcYPRKsDCIICbinKClBnbdHY5Gky79AstI/jn0+Ljf9tAoth7Z
n7Kt69lrkNSv08n11lnS3wWa2MJ3yxfdk184JYpJ5KdTvqa/Sz/B8jwDVoej
hO1LLkcsXl5MsrTi6M48M0tMgf0kh+0aoaoDFD5D6SmKUk6MKgOxOKmKjpnq
mqs+4zfLohoLfdlGGNb28Vc/F/VnFqyRzh8DMSZo8Rx45Ns8eyfRGBNzKuT7
X9RP3mDHoUYwyLKpeCmj0jSw7dgwYXe16t1AmhwqWdOiQB1nms3JwzNFBobP
jYbsBndGzuB7zH64JoPP05PnYDvB79c5akCBKGY5gp5y81qey+TOuvONOKe3
sabmCZSaL1ydWFUCG4/Egfqq4yARvma9VI7cS8VjUVfhO74PivUANBJ8571o
C7Cjuvshk90TNmod8lnNScUTtF7tIZlxwXagrj5GvVLDD1YO+gx+3hAnhTl4
S+nQZ+Yud2TRNShX81lY9z39hjR+jxhVsv3y8n/s7YEwuUJPQsTYtMobj2Su
MU+y8/Vkrmtb02v3URj/GadfZmPYDqRgIBGHgowLlegWJP8NDaGIK3DAJnuZ
KE26VXhjBzfYxoON5yFQ3PgazO955FLaRYYnMdn+0yP0RNqQeS2cbp4b9UnG
bNroAM6vkN54xnJaxOqeZ7PAc+yozft0Tg56+71+r+9RvqeSFoN5ygwnrUWc
dM1iIcE5HR6z8G5ugDpOI36aiIkwAspBpyqSG88IqWy8KIn2A18rcnkZVRcX
BH2X51eGs8R+/uYpSxtPEuKKYiDDJ+8B8OJMeEI+fVtM3mYj69HeZmrphE6c
2O7uJBT2sDKCFSV2gy0madlpe7eTplCnCk2xeOgMi0gaBbPaaOoFH9gD4BNP
yJCxcQ8gBaOe4LtIV6fzTKIyRfdHqn6MmmeqNgUVIzlazph4Ze1uGBuyvO6b
KaoZcB1ueVX3NQ6dwKnDjCvLbNg5Ck9Qu8xT0uvch2TxGDUo0aGNeurvFdsC
fFqBRK5RuXFujpoCB+Fp1RQO4DcccKsfCfPIRmr/HD2BqTiY2MwvqoYRnARy
MjV+Kc8nV2Y1UWcjkkg3i9vblE1vejwOz0obelIlronVx3baPDYgMFipnGxh
tO7vMUR6BKVh8siMNvrTT0KO3TL7L1jhCQgEYcKqJ/AxLpqFvpzFjp+D5kZc
4lM+96ZMCrAE7uD7q2Exy0T9Za7brfAr0Hy/xhQD4rv8Jsdj7z1/v7cvb+C4
m6sORYORjgbXSehtHInIqjM2ZtAhSQxEEu8cngYW+pvKkTvkBWQpxz7voUoL
G9NASRLK1i8Nd4y+DZ7Gbhv0wVfVIjOeNBmHH2MRZ6D43zSZhPgAjHJSk62H
vRM4pTgC/GT0Sk652NjATA1Uu6eOUygdgFrKmWfOvri70A9Im+iokp81/5LC
Be/R3eTIWPIki4Tl/fDMP6E/VNcL/gaYUsf7jd0q94sW95K6ykYKcTbF8owE
rmd7cGPjf9k/GFuAX7rf8FV/eFXkMKZXuJt/TL5K/vZ58jfnqx9/9O7dsLao
2KxkCA/u5qgVkT5BK4DcktaDfe2VvZQLhP4Or/m7+56///j3HzWzJAOJGf6a
gDlK3CPw0RbTzLxpXt5FLCO7fWh24ZqQJ4kNZVwI1rC637x8/v0LzEzQQJq3
TaRVUByuqBGAO4KcXDPkysBZOEMzMqzgKKvll8n2Js51c8eYP+mEWCPptr7z
S9jenYk2A2/w3PcVnks84aKfE6v0FohHYU8vBZFgCPhN2xgWU3E+oNBDIUtH
jInhZSccWBsvQvOBGcNN+jbzDOTKBmxRsvPCyIrSaV6a79UoeND2c1bC5je4
69igcWugrSwmwtHSNzJwmFrNd62XO4vQ44oRMWxXJAZZefQSyvGqrTO/lIav
+sq6232v/cWV2K52WvbWLpGOElXX/g5bKvJcDunczhacOCXioeIQaDe5xEOE
r9IHBfPggBCIpTmPuxDtV3kEGZ6w+8gOnTX+ixV/mz/gQDbhnsni1nheNz0z
+iXu+qb4dIByPG2BctewFIJ1LLWxiVK6ektEN+SkFWU1OMEcQwnKRTi+7Guc
83RAz+2yD5hEHi3TK0uhz8SdUzWsDYr4SWa3FdXnlMpC5+8KZRiz4h07hIiJ
xRbwdb8D/9vrJL1eDz8961jjlPdTCYWOWZXDOQcak+UdcL6J7/XmIDIYh3YE
xtf9c/IMKZz+/JzQlsHfj8gC50zoD/jz88bPXfvn5+DvD/4Dj0clCrWnEY5+
V2ZBgor3gdOC5Yrf4ug1nvtz0pfRX2XsYxCXlChy1ZcaePZ+41Bs9autvcSI
f072mkYvI4wPn6f264xeQuM06n0Z/cvGMX7pxMCdn43351OP/gcN+MKoD2T0
P3AU24tgkx2NKUfuYNuj1T9v/HSWfBawRK5k+2rzmbCsJ5ZloY5P0tvz8hOf
3wS2A6P5anNIHsZNST+2pgqFVpzMORvuMeVZnmphA6ak2UeUTFcJJUVSwpmO
8uAXGtDQRWoVlNfWIBAcdZ3GjRLiy89MLmM5HqL1sKFmQG1gX3nWgXqMUcHo
JPovMhboEe7vcOschB28TsaOX7oX4W1w0QJ2O+kN0P6ri0x6av1ruO3/3JZa
RifPpt8x35nEmD39zmSV7Os3P5j8CyrD3aGX0ca95o0D+6d5xoEp9HhB1Bv4
IWjrmSrI4IjsItkSGiCC/V6qroju06qUmIin6mMsWXYTjt8l6Vuwp7kigP16
oGxFXgU/iqIHA6uNnZyOoqKJw5FiOUK9tUhcTV1OrZI8w7e16ec3kuOG8cg5
sQtaZqAdIB3KfWQdFg7vu/SuomMDr9pVG5ALRGBoYDDADePMcJsVDiUqqeSR
lEqhwJjrrDYyHZIZBXpFdLGrUFnHVSEXAwUDzYq2MQSjx3cCsy9VRY/X+x3x
DDqkXuGIOE/FdJ/kGOmk/GhjeD2ZApWmI1IUMUzp+LUqfNySdey4MahIAa6x
1yoTAWf/mmdS0x6c4/VI65hUrfWWTO9odLCrfchJ1gk93PH4yqEIQrVPphL+
cF+24t4ieXmE1+fqOaZrWPgF7PSEZmac2eS26XhGA66fYyVIOMX8TPXOoMaj
T0v9jM7lhou4HlEETZgjZAcPFzeSK1n0vGCh0ShPE/S3ep5lrGwI2NGFvFud
UBh92CFfaJCdeuFkQ32meQGUKorINlW3GHsRogqE7BU7FoMAB1oBJqOwUl+e
Z0imnnZTS+fjmrNKUwRus1SMi2SUX2MBjaN8YHB3NLIeV33xtkk6RjqG8wU0
J8kA1xi36WpatJg5eh8NxmRHhZUHIKByVPKN+ZlWd7e3mJw25Awf4U6ov0lS
Iyik+YwLMPKpn3fFKVRZmQFhgKzyw9W3C6DfAfo/meebFDjiZRTg3qraUtpo
jGmipXtgrBUVylNKJLZxTElKrIK9lPJSUDuKW1wCHZxXaJpXw0W1cjJlWwp1
fZS6lMuT9iJFi6bGl5WtlmfACvjrno9N/ivm6cBMv4ez1BTSRaHnRsg59ryo
vHomzRdDjalxKGq7++sjmXmVBmgxjNKVDF7MwUu+Q9JMOEPOz43oMG81iSo6
ivpLOM8ctnNMnuh52yA5N5myoCQ8NxmRF1dHCgNdzBCgArkHsg4aJnDqLOfA
dD5fSD5K6/ZqrpAJFAoXAQZ3kxIBw8dBep1sc4KnKQkYdbWQ12aSJ+6NYy/H
fIeOgxYYV7H1qYAeZbYgiOE4mhHA+3uJjVpM7mI0ruK66Qmsg/E8TXJ/47p0
XHa6hd9XW1YIMJv8d8wteKkZ1BEaqmawK/h6dpk2ioL6Q1gqkEjgHFBJY7TG
1jAvQSFkCVbFzgeqsxK9+9DjQSvXcDSN7zR8/3UR5r7wscnei6drQqrcLZsf
mguTz3Xs5v4mK13jODKKxBSTIH3Vs2qWrQkG6ddbFxsCWVQ2V5uc9W7m2BTO
yE02fBOW8VktrvWEdlRRNY6AMrm8ePRtYiCDxKlYUGoE5dotqU0xd9oopa1W
oZUc15evmueTiQPr0LZa5tyQ+vkafwlOD/4s54cLHZaw4OiJp3oDNBaup8I6
YD3ta3Ryuu72F3dgr1k0bzUSsmSrI7n6WXGSW4Wb3kTUVJswZ89lt56O13xr
hKDzyKZw3UOl1qqxN5aIFh6SnRinyvkpmHoeq4TRFVueaYRHXLiSVJhhXWgB
B8XbdTRYGrni9yTg9FoEWWkUfR32qdfW5+n5X+HwFQWHJEHHmrcSplJMjD6c
y2ShYvRr02TqiW3WILARbBgVPUbdCGwRRHLIxFzXgLsFaHBi9H5ijsBKFOV1
OtUgpQ0cPc5LXFM5cbi3kjvi2FbyLYoxk8fHubMxOixJyzRMBos4XQ14kLnV
LioXwkjigjX65BoOxDTUYpnLOSmBLhwOnt2pmRB910XcPGfsVXzwlNQ1JrgQ
ijXOJRfLeXqUsnvBnmhiShVKYz5z9qiipYo5EvWzosHJMe5OMs9vM89jFc3/
atp+jAFnlQOYoMlISBNoGbn+uIJf4LnpWhOUGKDCJ2Y9CwJVYYiKHcXxa9Ui
zKvG6pN67okhMqsPmclxxhbzyi1yWXhHl/L00F4+c6KC7bkamp2ROrkZHXEW
iRAnZ6UAj+AzliRPBLHRMDkqkiKXmGQJv+aIj5EU8Op0nGg32fhUyOnkKDiR
8p5/pwbwjWnGDjTOoJRKIg7ds98sGhJXZAQ/Zr3ulDvW/BcPLIgEH19AQ6/+
cH2SXRallmg7k6gWGsmuBoHlJnpUzdLLaoqlYGw/f/GK3hU5OWIA+EcHOG/8
7AQVpa2Hp1ZX0HJ4TMbF+RXTtAvusAU0AJpz9TqfOkeq13pLeACdsgYJ6vLV
Zrc8rsu2cmUpgRKZQr9sIIlY+sSYjXVlpo6RAOtdYGxJUqeUqFyXs2ZLC+uQ
xGPP4PRTXzS8EOqSJuvPF4VuEoh3vg2ynedVd050mG0bCPNIqu1jTl2/JWfY
XPYN1CTVH02BYOhljpLXcTwZWPd9iPXqxsTxxHVsK5SEDJQDcatUK4rSa63C
eXX+zetn3z/9+vJlJ2rhUI1J4JS9ePz6ySMzQse3u+mc1S/SfPxvWP++mfjF
SWu4m8NFZ3fwyU5DuZ2Y9kZBNsV2tXq4TTvtTWeuukiyNi7TffVsezjfCTO4
jaawd3wslUaI3DDXkg5YJreGrmlBH2yBVHcLp0s75sy0Nq50HhtYe5meWV4T
AZNUOufYSuaNnjMiZvJ9UaqQye6S0muha5wvHH8XZqLjhAE1iFVltymaO5Zf
M0k2yIyVNQQGDCO2+UoUWtJeFDfMKsQsUkwhHTzJv83oZsjlaj+J6GnUQnu+
HtqrZ8+nUkzhyB/WVY0oaRgPsqnUQaFgRToPXWPW+yEeGrKdVdB0mMWwm6aW
BicJEjq1QYYaHcrtvR1VGLey4ejmNe7ylr8E+D2B1US1GSdP0JzaKsc6Xvn2
P6aLyeQ/ku3d9+OjHRdc1sMtGXAZeFbzAdW/8xbC/Iylie4PavN6advtQCVW
0fHFVT2H1VSw1k0/qyWWcDrfYuwQi2HUN+z7nhYzLLrhY+QX1YcR35XQJngf
34yGr2EnxbnrbeX1bffj7CVe/gi0mjzrfptNJrdtbjQTeonbiB+08hK15yjX
WCRx80BMFnAajt5BxYmCN/xau2zo2lMozWJUxgMxq2M7SGLt+YRgRxhgLOJQ
ZtQXiRfOWZTYkwrKqcLHpFPL2pDqgPFiP4BrzzIVXoZLDFxKkrunCDGVPHt9
xeUKmvAdWWZN/X72d7iYiFCd6Q6SoMlqmSYnXTJxJwi2CXx2BAo2vaxX94Fq
1xKpcscRuY4d9P4JTIBFOMagpjjVZ2X+Fv14QCKdZOFG+awjtN37WzuBO2K2
ti4oSgvQ2dHpN3eDyQ0SzThYVXeNaK2Ozm8wPsjk3BS37SZFwIPfFM8l+BEz
idlcGFK7EBRNJouGst0Qm93Euo2ib0jUcXMg4gNLpJirQ3l148yj0tgORk0j
+x5OBNuibfg82cpHW2yDGk3c9WoTt4xwK3Qvod3ceAI/TyyWBdlImgm8LC89
aM3gmPs//RS0f5Di7v0d740upohmWFVSPaBVLb7TCN84TGfpIJ9wPS6X8Ciz
tkLZVm7Artj5BbWTxvBzb5TJOW95gJkf+DOHU/rws6ffUUSQvSU3USYHqRKR
wNSaq2SevfoimcYY9TUyrTdkiQ7NElFAYHw7byLH71LQGOPvq3WMqL+31qNC
3n+044e/ecEc5IjewSpYQh3iZbM55boYRRcrI0HmrKD48VI7SR+Zh4lnER5S
skHLDB5DJQ0R/L0gFuo+x6q0BonPhZciitEmHwk1+VAn5jlrQOg2x/e9g8cY
dBrPs+2thMKo/hOD8yXi1DFzQdUEAy4mnVWNJMrG5Ve9KxaTEV1l18JmvZJi
wGf/jrZTyY5spjKnVC2jNFP5KG0DqXtCTFxb49WaskyzwWx74m000i/wdQBT
NSjJmTSGkTFdkkFnhKvPcXgeeRkwqruec4i+9j1Z9ZiRPSEkFGvCUFNpWFPj
ukBCBtWoPC++6zZx5gDD5zRWmx8kx6bGXD3R7xijH1X0m/c8qOivIrBuRvbT
Kz+u7Pde9cmEvpnYryH0vSn/JqX90uX5aNL+VxPzv8v3VvnOsUmkSZUNEgE0
mSeMX1BMY4LdSeAx8tAEKuxWOwEg16BClngnoi10xaBtWbXx4Vbmi8Jwilan
e7OFlB813i75MOpI0WrQdodQXkXzL8qskQlbIeN7yj6qnHFf9WCips3C/P2s
/37W1zzrjcfhkxz3KQbBhQ7vc+QJyyByItxMo474LuEzDorwZ1lm09p7+aWr
xYEa/KestWvKFbmhAydqar2w4kr1MVDdyzk8Z5fS21tQY6JcurIDIYe5j+NF
Prvo0LO0nDgO4HyulG3wNmnBZkC3yOECILxlPRkZflL/Wdts496e5NM3evIc
zsi1oVJtcZPPDF5RtMaLIlz7nJnymbdKhnElP31m41scQWy0PTCpT9rS1LN+
3ZaJdfhxC7zXgjjn9oXQzg62QUSYinnY6+/2+j0PBWlHg79O7qcN1Aavg0e6
fcTq4TiYbxB5cxmoidi1eRcwxd3wzUqq9KiZ2DXl5zIXo8Iobr/rBWGqDJvx
Vlh4KsWRTphZWlWQDY7C0I0yq1eEKwwi8WdhKpRumpgmPi4ElLfzit3csljz
epzyAVZrkDnGRW4h/mJwOeQj0hB5mOgpNbfI6/0kloCqwrwqwga9yaZecLQh
js0o/3xm//Toov5on3VK8nv8uPlZSEsikTYaN0IhglRWcfem1fZpOlptg5QM
JBUFIaixIy//VSPemxR3QWgY1sHt8k1OH28r1wh0JjQxB/8+tkdWKW2S20YX
/NC9yv0cUryRZDlm42KRJSsl3KjFwRvW7+n+OVwrcWR7xUMsDaMIWQAxiUbW
CYOIIqyHZT7YUiZJkS87Vxmx5KjzK2rgRhwx5VxoYyCoFeBmuVKVmr+w9tfK
6fkT5orJMHyMoSmmx45BWtqVZ8WQlyiIxJk823pyrU4P06tSQmQ2QKN09JIt
wk+wpSdBKqLjAbPPV9wpmrP7Mskyt8lMtfPrkr0yRq2zN5xRxmRRhRLSt6Ky
IcAUU0CP5iNgY9LcYI90HIaBMHXZilGCD3NWAL2raKHpbnJnoQkXhZkjKuZJ
pY1grYP1vs4y6fp0k5fhxriOs/BoRzbDOTIylgfYHpL4Kt1H2YxKDAo3wbYY
O6v46baTZqyeb9lSypolMP9Fac0yc8jMSJ2FtVygwBBHsAOh+/Jeu4CGqu+Y
DPbl9y2prbTDnMfurjgWNtch1/mWbIfaR2snnK24DSTgVlKKjHio54GiwDeF
nSgpySHiV88vEXp+SwKiDcdtoYuiu4GdUlPUQj6i/0niZ1WhmJhYx6IDmFRF
uEPqxReVgJN+1CIRRd9Yu82LYU4XaVFSTe5XaIc147+i8LEztDTdcaKZbjR0
3VgyGlv39gLpCkpLWb8+Y30fdMeCDJmz6Ad1Ex8wCU4cWIKkhZlIaBgbDIwS
wYgqo8oZw5qz6pVG4owmNzg5F6QiXGwDbIBLgYletrTzV3TEu565tVxyBIJW
9yIQfSIUSpO9z34Ywl0zWGsuAFuxJEjMVZaU5BzDRDO3JV8ldl/K7L+SL7x/
V7ONDf/3rxLksHUowC/jS7kRQQ2M/PnSWNDWePbfXM0QnOzfkoCKfnyIN0es
QfflXCn01cbf4JH56CxhsLcvcDT08UeEV1Opf4acH35EJDjzvZWvZ8nf0umd
vcOXvmf4TPNPbETGlyqj0ofjFmz8uLHhws754GwrJWsERGk97LUuBB8vSYMK
ICh9gpNg4LlVrNJmedZGjb98wqwNcq76wQPXv+oknYuDtSXu9i/iY3VS43mw
Jp36HnnyL6+U+JamsvOuLc1lf3n10J7R6Gw9DxO6HlefOmsq/5L+zibqfyCX
53ok5tkEJK9/227JvbWW9F/DMymLsbXO+fmnc0xi2cCv7Ze0Zv4a9r3dneas
hPsY+m4ttrnGHh9v0Fu/W+CfygJvYDWf1ghfgeaqJh8vgwNZAq9BguiSm9ZZ
UcB+HcaqLGmppFnugHzVRgeczJ1nDj3U4C70ubWEGXFd+Hv7QN6L+2XVPIgD
I5J09iE+jNjj1nVjfGiO0b23yC3P9PyfVBiwOhkTRNPdfdwhK7s1WrSZJZ4N
906wjL0NY/9G8BW6OGpXNXk5PtjR0ebuqA2MPR51mvtgp8cS10f9jcu8H56D
Qr84Swbol2j1U3wm6Ur/LjlYcZS0b56GKGnWHYCjNi2Kw4aWXmpXvK1lA14Z
81qF4TFZL2s+XCSakVjGUm/owFiHlnOZXHuTyE+DC0adQ3AqHkaeQFHUCnz5
vHsLZdqJNDXPRRkl91soVh9STE6NpqeulxJn5MqyhT93ASmaenR6j4jkRTZD
YdQhzBSMSBk6q7Rs+ipUWdDwrSbql4BxdUIN1LEoDKpm2NrK27936XQe72/F
xXotU3v2/JXtrmAliF2iKuOjQsXTZ8n2puJ/YYW1qcTmujz8UXpeeD9iydyy
xhQptaagGm7UQRW6Gt7sp93SqOUe4zb0BokYmOp1YkNOnstNTeDsU0tJvFQW
VAuk/No8XRaT3houYDEODoOlo+ts3prAT6wghjFqttJzzq0JGG5lh8/6pL2y
+1Ltb+ljITcj5CPw9XN4AOUz11xvhqQsfBdT4JNxxEuni8G4rU7jKdyLFbxN
Hb+aQVYin6LN5rgBtnCrX4MRBa/dimP0haB6Dm4bJcebTIK0pWude4gRsAlJ
rigFb8BYJ6Vp+OPDjC0H7bPUNSRciJXxLC7qeBYuzXlwFhcfBGfhlLE0Iee2
A1SnFs13rtB1H4gfqxxcoCmax9gGPjwdJR8R/ffBpuqBcHhFRUswdiuLtmcG
Q03AkQM4SCPbL4oXO2D3oFk8dPAEkSNkXO4Qg6EUZCdEfzQICG7vSV0PsoUY
IC22P8SjdS11b1wGGAOuvs2vb7DIs8zSkVQeSPvzUazPuT7PffdW5eKqxFG+
G6ng/PtX376+eHn5CM5WA1ShT1l1+e3XYNBDhlRPTrO5AS0mw1UmuBdyOGRG
lwCpBPIsr25cFsl96IPu7zorQg4TtUrjKAIIX1My4zjZdJc37cJdH0KAzyZj
u3gh0C9O+XvCJoZfYUUC+P3aC5HurRKTZLez+V0ClGoI1QG8J1UBn+BV2S45
H6Lc8oNr/imQRge7StZy4NCFK3o+V/GMCgasp94SkSKXGXmFKzeRO0Wu2o3N
xpxR7xEszNHIdvznTpsKC/2IGEe6txxTw2/xHfkUXh2DOK3ImjDYP9zeTfG9
kq7Om9mmOauRyqeOeZdhI8qiHeD9GDISL4vUTBtQA68AiDiyd1bRXx0BQDC8
2T97qHpqOqsxDCMGUeO015/y0/OLWLvZoLLp2z89emwTafmfV9+ed/cOjzSw
4Rq2+MDCu7l7+X5OUR5cEflixgmJ2UyxMU6OTs2WJjSyr+ja7SqdwGF/8qen
XALWSb7b0atekc6FVONne9IQqQTGzMkgJ3+e4AOlBjRVzc8eMed09ew98PpQ
wGDB5BhmBdvWVujAcPY2fn4MpuUee9TD+ge75C0Jw3WvRMgAK4PIFYa9A+KM
eKuXoryhOPjL3uFh/5Qe8ZeDg5OOiuxhNkJKJ5vYq4EzsxeL+Pj44MTZ7M9p
Y2NbYtiCc+13pEf/14KbdZwof+WT+Q/DVoGCyMeJ+6k5GT+4fJcA1C6UqZDP
IsZm2GfxtnanuY7nO0fdfBrGD/u9qL6HUVHbS+EmWw5BHzTuaoi/y53xlI5K
mWmAmi8snSbFW1C3PchZhUFf7Acr1dtRLDbpFxuHbI6bhhK4l/QckRd4lY8B
vSw6UNibxDa/8+9Ok4Pe7m6y/XU60gUDdbIsi9KmzlAHFuuAWN64RGxYaR+1
sbFnNpz2F7U6ahEYgZiLbjNSRplNcMiSSf7o1XdXbm/384tLbZ+3u9cEf/gu
RIzGKzZn1ZvXHFSa321KfEShPkgH+VN2d6muTdPBjRMWqBgRh4Lci95/tH9w
7FNPri0mi3KukdZmaHjjKhOmcHi8eyg4WH0B4vIU9Y55ibzBqQahkakWvZ5T
VtmuUd4oo//9XIa/LXlGwdcw5H9kZdHFAzC/2ekk+3sEpkT/NIjnzHxc6FVZ
mglGmpPNy7+8eP7y1eXLLmxq90Ux6z5BXseoyuzFlGphULM3m/qszydVF+kX
H9ylB7dCMBuvHFuQqiOickjd2rw9Ptw7OIKHIDmJDKL2l/hUJQbHf4pEebC/
S5x9/7d8ECKHIE1eVG+eyPduT7AXZXZF8pwOxxzREaylxscGhWfRcmD2ZZz9
hzkwxz2VoycHtD2/+pHZksPxmmawZQ9N+IMcmyQ4NluY98rfbf1THxvZadmX
lmOz33BsnrDtSw0/nFSMysmewITXZ7yrhlRgbmNBhnNhFMDgRGscNRGZOpnf
2K/Tx9yAqS+QeLvkS8OMW4MYoneEKB1yKuVGoxq5mhGHiLQ9e2jA16JEjixl
pcvnCPKz6CfekxpFSyQK09pSJkghCKJ36dQqenjMjaZS6/5gHEV+B0mBjUgr
y9WKKfe/ezC/COexxoGX8/W79Rlzf2lLNq/kzvcmEiRHxM1BPhzrrG8bt9cp
cNVOg3N/M6Jeu1VbgfEQ6q7KWkTvrMH32eL0DBZXcIQr14urTkRsnrk0BcwR
eeIdJXYTcx7GeqqIbSlz4NHIO8ZpPqliY5Yu7gY9chVtG8FIqFsGrZfZ+pZF
C7fgHgvXlsvy216lhz0eqxK+nx7V6oaMzZg6YlaGW+acEqyb8km94cpBa/pg
A8HR3hJSUcPmxhjjPXaYvThmv23XiqANizRW97rYgFAeosMP1m8wyW67IJ9w
eNLZRtTj013bJdBLdG4Qmv0gqbyX/NnqwxcLOEm3oBbTC5NH9ELJPtjClvYG
vKxL09zqRFze9EsXU/NYAVeXpExxP9nefDKFW/JRNBSkrkwM75+Prd/BBkA9
ODre3ljSQcRfHyOKyLEgk4F5f1cSlow6gp5cF/qeVEYfesvvDPSCu9fcYgoF
9mnnSayx0TnpY+j7mKBusj0t+MO7Ep4Bw9hJaNUIZn7I4nDIyr3bMQdR5X4D
fCYVYrGlVsZoWc5+YmfSEQuBK1yko+8n/hxTN43nMcbUFqqF+lRdy9Iw4w61
1XqmMaU7Y4RqatkZKtP1hIGlN12039TzOyGKKeF7MAP/bUMAhrz/Ew7zSwk+
x/2Nb9OcpVrWQFFvDdyTpa/7oF0qbNyPwHNY6zfXKBc03cUxjtdoaOx5Hs0D
XK0Dl7Tx5bhFQ2lUTXeb9mBeFmNcEyGXJBmiO27E/V6BsLyqx8AajhEIcS9A
tGzDHNgvYoeRmFhThIMhwDTXym/hZM2N6OTXmvjT84vYlEGsuJE/jEq5IIkS
8uM0JlUvuKok5v+WxvQZDFyXbp1IsNayrddO21COstNho4H74LEjP9XnVagm
g27FMWOwAk2Saq6Vrca5gavuhnx0JwwIZFpFJXjAW+q7W9fVDnu7oHtcZeXb
HJ7z/dRgi9a08lr1HopM01YTaRuteZN6AwJZyBozZuHdTx5VDnIpVWPhuWg6
Ax3NXSWSw8YHzY3v15PPv2ufofZ5ANrns8LrqTAC3XKE5PeGmwLCJLAtwmRz
x2TG+e16o8k2phgSRutukZeklU+R57/NvJOtGcxd/o1SIX/fNn/bTmHb+Hy7
x47gfGDJNndWZAHLDfL2ox/vRe04LmLsiZQI9le4mamOTvzR8qN12A/hcCOE
wNhIyU1OKRjdxpfdw093jzxFzbceFLDbLTvSs4Nd7sSLPSCeWowm5yS/Jm2m
WSmUmk0mCLzNLCg3aqBc8aCAVjxETrc2LBETBE9OLkfZCE+6HNn8jcvRwcGJ
j7FKKX7plBYpYxldVeOFtOGEFRUI8KfAaK6LW7QphwUh2KZO1GZROQ8h7U7V
F0K6MTnJpv0fvTyobt/rHbL/fhlKetT1hKl56x9tD2nfOeM2qQ6J+SzK9o1d
2NrUMC4y6N7L0aOrc287OJ60u7/nJGE3E05E71pu1Dg9Hx0VjhK7tBXqk8qB
jHNR3D1iQvmGFP9XhyCs2tbtI5PrJ9uwJslMNVOsatve+0O1mP0RHvSHL/AD
vLB/usOJU56I8dKHvoTHrTA8pO8PGZyODp5jRifj3Tuw440Md88bLuze99MJ
Ggq+X5qzAPlIYRpgIL9XF9ydlSi8oTxD1Go/tbVJp/D7aLvSm0cS7/lthjBL
7yZFOnIqrm/TWRSBgXzfBztnNfOODss2ltDvON/GDpvjFDKvoom5LYWjfRXR
u4H1+nQbR56bqr1OAs0nQMOJNdsp3IYEWN65FX/0fi2EKRUB5syiGT7Jmns3
ao7mDDg31WnIXq+osKJvxGJ2GGuy5rhp3Z9WfrjaFsWB/pZukQ34+2qmdR44
Yf+Vd86DImvpDr1kq0KMql9jq9o9JS0b0oj78CvtSVgv3dbpecm+ROr6P9HW
vPLWHBSYEDkhlnX5AZzqydiNp4ZVcjGPMy+D1p9S6SSSjKnyCgapubw+HIB2
Gg48YlyIuY5/KxQ1MTUQKZf8sOyhDsbLA0yr2Arrb+0B4Q6ru6hqpkN17Fkb
VFzAmk6Irq477cDx2ASQKPM0Ir4vSXxrmqvgR9lo1woiv6loBSu3Iwsey8YL
V/mspRyQlluplp9fKwv8+9K6QGJTHyONJZauIcUUXmJBk7LsT28JLoZjs9WA
2oIFPgdZ2VkSqAj86CbC4Wjt6hNB5yncj2amLSc1fnegDr/CQBqFks6rznaH
7D1P+7LVaqqDtDThOWv9dMcg7BQ99Oz6ch3SWr1WmUDMepkBtYwA9UQ0UEHn
YRd1KXGIwF5NlTdyrV1kxNV9WkYH1hw2BU9wUPHgFIqF4ZQ4LISM2M/4q2a/
EMoQKYgm9y8WY2snDDcHn/I7jMsiGiucjQxGvFe5jkgRgzuD/xlWq9MaPXv+
6PLZ+dNLjqziyvi+Kk8b+Obl8+9f4NWdCG03pyj2zKLUtAgqTqfwksvnyLgq
OCnaZXhh/mRWIi8S5LGAF3KY0aggQbIfdV+gXGXrFA/DGbHIRUdwD1yejAeG
bOCIyRkLwZmsDQmQWGAW++qY9ZpLBi9+6e52rZVgdPlMUyYX6aPGJrxUc1dT
QVbDFP6LpGW3tQLs7/X21H++vB9gg4bTtjyMyMv0QwGIxnArnCJOi0gQSwXV
Aeyx/U6lp/LFb3JVaN5xxhxDGMg+uIg56fv8dnGrhRGUNeORDKV6xxIQIsrr
3mpL5MA+1BUHjCteTwmFKl2WqOuGeh88Tzeuk+DRdBWTRJ3QLTtOfKi26ZHs
GRSMLhpAQ5lWc81py1hGzO+LyahDdRvT/1rk1Q28oTawmI9SCEebuszTSeYF
SiPSXDcOtA03W5D3MQjTGe8g/2pOKmXE48tIucgwuFTxiY2ywbnJdHY3XGon
zpJ8Z4maEZn5l2yKyq38vieK+1cm23DQdtwKR1lNWMYLqUeKrY3Pg+fFNSdf
hr/bPQlPcEu+awMBvMmyGTNcd21Y2I4Sbm0IrISDcNMYF0P7Kc+q2BA6klGk
Mlkfa2oTgi5V4fZPM+TTCNmIBzItYXPyGaEBuLaDd6bF7SC6RKDHrBgSXa/4
wBpV12/mfu65EgQyLE2vQKhQjne+5u18TVUwr5/qpIvBf8JINh3sWQfaPPDD
WB8MQe+0FMJwsdGJPSNYuxONJryLOkOmnPDhBKrw0JPvJPO8glgyzZtrKT3A
6VpDGkR8SKbQOE2WLyNP+3jHWc0mYDTReaS235y2hudqqh48hXGDGtus7llq
2tvdJ+fNVIh5MUm53MFg8RAjMoBlXmUGrc1rZnhPRlsdD3N163r2GoYkXdnZ
l+x+pgdV+E+3ebvpuGp+tq27Gjx/biES7q51/i0vw3pauHheVOc2j1FiJVgE
YVU2lZET7d68GY19zFrHsPUz3wMUBE/MN5bmBzd5OqSI3m8xlcleQiRZ83n6
6DoG+iR4fA1UGV/owjUsxc8KsbM0oyGdzBuXyTtLzjI8TZHXJFeEtrDCaq0y
YfeZ0dmSmVzDcbjntG89CLVl8yS0h3vMtGUAcjaejFrHcR+tIWKvrjWygIms
sEyBOVKX/zcRS2KZXhpY1oID3D6PWLYhPd8A4MZxKH8lw1FJwSA0N5XmnPt6
54XVOyVs22j0hVkXK2VcLF1mzn8RSAkmh48ItU4C+mjn10Zc90l6Rez1VufA
Xu9gNb+AgyApE4bhFYTlJD5oOnimsJfcbtZz7PZmJrlZZjdY7P7WmGVuHwbF
WpVz6j5HxZE25HDuUt3QGtiSG+RnbRiwl3PmE+SDgAG8g+fyZtgzxZvRWbs3
G+kmpHH9ORswqkiVbF/8+VXF+XLwKbnA/igVcK45/nRxBT9xOs7+6R6u+F96
h7un3l4qasLJLu0IPidyibOXVdbFlImuqIFdvBJVu8dSza1zwT70CNnk5KSy
HUHgpuJpJly2QRZgiRJwYsWIiRw5uGOkNoeNAf8ktTRAVLcIroFqxTY/nycb
n7RGjdU3OzF263GftjoFX+ZY1dTVRaSaS08pn8DL6bC8I9z1NXQ2amjON1oE
LvHfuOa1zTapMUGH2zlQqJsEPBRnd2t0qHUUMtXLWxbiykQm1lsBcir9E0xf
bI2WFai3gI2sSW0ONu5NGK62a6gTVrGU7nZpMRhjXbtDr6k12NZZ+EwP41Xz
OqcjP+W51ltMYGXVnRXbYhtLgv11DTgPCYWfgO8Mu99uXjjve4g9c9YDYT5Q
4n7URfGbzRWm928VNP99gMUzb1l97f4Et7yCWyJLBz/16CfrtPhEnNcEMZtY
7xJWc355/qjBDr0Pf/Wyxbxx2C7hzYN5oXfjUp9flxkn9aw2PGnD6Y2CaEep
yx/br8T/XF/LWvxv2dp8JGao2/ZRz33acIpdR9WvygJNh8/fDAu895J9Asbn
ZvYhC/Q00+YmprHiUip0aGpuqrBG6qL89P1N0ee+bo/TmL/zEzY4FfMEG+kt
7WuRvc9jmOjWq6QyZpi9NgbtawF6a7nTZPUrbFo64/tfs3X8GkaSbL94+fzx
k+8uX7/6+tHOmqEQGcLyaMipEw2JtEFrdCm3WKdayRWP0LpgoEQJ0Z4P3CQm
BoBXK3RqSjhJqzdO5U57KwitmfGSalwvZENnikjp1E06chyIxB+vuBXDD7FW
DPM47IPxdJhzum4vC9OhowSp9jadNiatkFVFcLO1socaRThEgANbHjc2gzMV
fH69aMQrmrekTgLDG+fXCyR9ydBPLb2VfkB6lTHJjR9jTDJdblfE1crmoM2y
rHxtIqPlqmculo5ArTzcnZd86pbcziiKULDRDmH4PR22KjcHRoRy6jT8K62k
9YaF3Gbv0OE2zO9mxSQf5plHZNJ4z7JL9hFF+vHVOmhW/J7dnTOGld9E0f09
hdyTC4RzSp4gNAUc0M3QdVyPeatHFsR3upgofOr+0e7ul/L0y/eznEEFk0fZ
ZJ7e+6G7Tkx6NIxn7rrrEXUcCfNobV6KJdvoX2xvB4mLeLITSZhofbZt+uRK
/OZo0j9J3nDzDLw9i2eTt2xaveMMtjKs5ZYH+bQIYk5XfkCvGY/OWnq/NI18
hRYnJjU6PgscQYhk0t4BZa8vQaV1eyYIFO5KjRN8IbxS54Q1AGE8NBnFKrk/
Jlydi0dYR9Oa3XO9/n/UdcE8+X59F37rnRc+KXzOx+i8sF7vhQ/ovuDpK2XG
CXrN/aNMwkdkhcml8AJ7GmAvUPqwKWdSH5xUwxtQZWpWnkm47vf6+0FRbVW7
Oxoqf/7i1ekOd2Lk6mt4tsaLObVEEMprRY9gYNIzuvoeLVyI5Tlhbhchacz9
7jltKxi2i9zYwBbEySSt5pLg37CsZaZp+Savu3Ib9tE7QWuZ5OOMYrG+glZp
AnufPS2rAzY0Amjacj0cUUTVjiXGxN0iHVV7vs5LEAf4vFgGcm7Bz7NRPC9i
tYmJC1XcIOqqbzZ9ckQUHSJkpbY7tGv+ZdSi5ApGJ1/emRnoIRglz2wlVFiI
2AjK3VCj48Nyfz8r3PLD2u2RuiKF16vW1LItbkVMJNdhZIhwWA9bVcFqlv5x
xM/6arWoWQ8Px+dNdw00Pv+AmXU1vVra8ZD/aaD7Aqr7QOQ+f9GoAoafGIfu
ayGcSAkz5Xctweb7hG2d1qGJXw3HT8CSLT4tzGTMAtgbjYa6wq51EW4BHHHm
lh5Gzvd0tHa19NKadW8KtlrxPtMwGpGfnCWbGFvAdVLu2woXV0u+D3PUfYeT
jRU8CRHDHNPiXSaYXSGkaxgAiXHopoaFphoyGJFTCHk+qBRAqyn3iPiteX9L
6pGM+AJWBXMz/Szc9rIHERywZ7VRRdOA/DHFsxw+xmDaxxGkCMgQas//0EFE
EwT8kSzND3io5fnkNK2hzEpcY45z1Cs8QEWl48RP60mn+wa86uSovy/QY+46
1wonWgbjui5UkQirKbz2szX/oEfzYS3CkmWoeRd0CF59wurvbzTAlo7koxit
LGP9JzQneov1+orIw7FeicoIN99/0gNbtST4tCwpsl63aa69xP2iWu1PRZGa
NZG8w/CbqkiYur9d7ViFy1dRvcDLTdrUivWxvAjR92MUQP29pKWePlIyn7iU
WNyUHl+pS93lgpaAYUZco1ycRVE9TSm9Kr4ppWQXt3iFBPJ0eBJD09ysQa0v
+QohMrJ3Iu5YKprYfGnASuMYpEtGK9rMJxyuwqcuGa52aLdpsiHgmZSF06TC
Tr8aLI0Zm6N85MoMxjBtVk8sJGpET1hxEq3AbQ8/j6YJRMS6FbAOGiFRcY5V
2oN0+OZdWtoa4UbgBA0WLa0qjpaWcwRMUg0cWIsYrkDV4T7p4sTRjja6A2o2
tLDUGt5VMwq4wRXnUqMobkE0CRLZoTQJwYnlBdXEoO0pr0EPUvL8LYKkwyQ8
veilyo8XQhbiTSrk6qaJsWBIpgsFUyFI5diWEZhaYTcN1zEs96a+Jpiykw8W
c3dTRArq63e43xN66ODy4aKqajJ3dciJVwULO0W+iXk1FzPsN9i2XiHQzTri
lWeDu1oZrN+o3hFK+WjB8VEMdnJ13QRLWMjs0NFxDYv0MMRhid7h9iuMKkSV
1ULcky4aSQzewBfk5nHaoFNqagyCOijJVuCbq5WxCfChXy8zXkyHUlrN0bTo
Eq5DPWTC5ySKPMeSwlvYo2EJOaT7ABB9V7xWZWbr3eQEYNYaZk5JfVoVKBkI
y6jDvO2mIxC5DGCL3EuOnj4RD2B8OEgwg2xMxdpz9AHAj8hGzNE0SmDkrIBs
KNkwW3MVRBMy+5i63sPIiyg+X4or3ICKuFvQmDIkqkUuoC+qEpJ2nc5ThweN
GN9POSz7IVM7SBcgzehuuLLrbL8HcsJ2Cz0jXh8cYKIQDczLYrQYupmwiluh
eZOaquSUEtdsVU9FECs6buib/Kb7VaBiXDJo2JmPxJfqpN/zK6bo8ZVozPJ5
pslskmLbxIrq6DqCGPo2hZXGEmKzmOLEnRYJeX2K6zKdwUM0Y1C6bGG2JktO
3RQpiJU98GvIf80VxfE1wPAYVAfGZqYjQBRM2TeM4jNblNetaYO4Gi+zYT4j
HFAZu58eZKMHdW0clXg7IlNimoComZqBUSK4p/3DyEqs20Zn9ZKOTJzGadBJ
KDNxxE4SGE4m4ttT6xA5DtaLY7VcE08LQivmwXVaCyWqL4e7tqoAAbWQMDEE
D1x7y5I5nU1VF6jDKpV+q65mSKRGrmZYWSA90WfuVSmlLVSPHpgHoPm2Bh+U
nG+W2STXeR08LL7+SgYFJgQJ9IvVxE0ISw8GEUDK5yOEogtABHvcOWhMSfVp
zY/AvUxIJ/G0+ICEGjT2z5Pn04wTaUvGO8Bu9elb11bt2oTV5rkUzmP8hh3o
Y8Qy+mlWLKrJnfEozIvamxxTh37CCAlFxIrSgs0FIaqiHOYDeGz2NkcwQrji
NuDxqs+MFsSLMkwsRfApzHB4W7yRU1+U+T8kQ9MfhURn/F2QH9bdhZS6UuIW
yAMEJDibVpxXAc/3qclD2ULJ9mixFBctdhRdh2BHTRJsKqnp7DwVt4+wQP3F
tQqDimFzMtqzwlG9hvH5mfSxjBFi8f39FTt89AT7mHy6NmWY8lF8Vaamh86A
yYGwwoR7NiBnyMlHMZUQbZR3kujPGE6yAWQ98/OLmTRBJ83ZqR+iF8H5gxcb
zFb/8bSYmrC7nFHFORq1NfEZGi4Aix/M5YERGdXehSNBp6plbV1FUHBsHliw
gg4Mml6jxUSs/c+SKyK9egsztO+jImNjA/PVSEcI0OjiM1fXb/Is+WPSN62N
NunBm/U3YwoWKaQzPSQu18YYpzR5JfPBNLvsaEYC6QIpzpipDLuy5ygCLnHI
eODw4dMcWNiknlSKTHAV4EHVG51qyfoa2oKyAQbLMzPpmHtmQbfRLasMgF3u
EWHXjCM6GnGXIrG+LAf6ywfjMJIc+jNLxJiDLCkG4v4nsWjWqMOpD5ORXzcB
Q2XL6i+iCN4ADSCOR4MI0Sy34OnslFNpFZgNWnlhRQXcyxV7LK7c3C7vFkno
cgV+e2IA0Uo0T4REB6lTvEBs13qTWLq0JGedwfCa6qVrrGsaTpPWrVpDzNOy
VYFEd4M20btN8sQr70RTiEUCLE7OoslVdOnRcGWriz7bomKeW4S2pnM1RSYx
b8lN9BwGxKdix2KbGNMOPv+2qOZkA9hTUi07JrSTkqPgeDEsq17FWUxioYIh
DW9I5cDlhfnhOdLT+kO7S4G8Fq4f4oct7Nf0Q/Jv1PGoaYV43AHbcVMrvma3
kOeaanYk0aLaEZiognWKqLioaUi+ZuBmHzXvMrfElgzKyQiZgqYa1KUxLXvl
kpiYpNpcRLzL4vHSioc1gG5X3CqXtyxzt6ulT0oq+TazwEPoapC1kg7cNepJ
KMH1Rn9BumRGW8uOwWdcajZO0Y8SA40D/QMLd/Wi7jdPf4npTB7olbm6sZWl
7/iWci9UccsMpove09OdFcFckaofX766+BaY6HQ0YUgFfa9SZ7UYmBafie2o
9YVBkP/izWjYHVJ5pHPub7szuBFWrQu8bngTCQloqWCZ8UjcF1UePGdrt9FO
7RdKVeuiP0CBrsIrRCMk90F0XIp4N+KU/y5Y/zcFXW12K4UB395ibZ0CHxTn
LxK5MNE7nSiXLV53Zhmhmw4tPVvBXElob8Rmmr4xh03s0QaaWnMGHeh901JU
twlOwjVpTTLc718+AVsDHi8qLmxSCKNEbslaHjK1EJX+qPIs/iqKH8glGFvX
+Kwtn5hrlZM09GMd+UslOoRfSLbL+Vc7yXf59E3yKi2v4VSfzzWIxtJyE82y
HlhnvevbzVgdPZXQI4QZL9HuDhOHQBMoJrpGuXgNuo4bzdk2aZ8ZkOxc4Xrt
VrKlY3KgU6ASUJfBdnnTlfJJU65Pzt6jI+xti+UR1mKoTEsiduiwv8mcScJ1
mHOYkLCs8ekciGyeAZKYOnFcHb6qDVnMF7JSY5kf83xSDFPPNNaR3NFMwEJr
ZxvMJ2scw0vIcRErGzjjoUdM4l4wq8QOP5QmHPBLfc6nPY/ou2+FG/70mY7R
DAkJU5klWPrcekJuKxU8n/M54q0EWfiKkixloRcNnNNCH0lCfWkydNdYl7D5
cWv/jcAaw4rqyskJZgcOTRN/l45ZeXOzgkZfgt/6dD/ZBpN8kINyPw17RP3e
TToMnp4k25vP1dGDeyeyhrEkCqcSQumm2nQzu61MYBTO1qKGFXavvcfX7/sX
7t8x7J/JfWYHZi3GxBvGyCVu7n2lFQ38XuVF2qBANmWvt3uYbMsC7zjt1oJC
76X9IPzd99MZ0hXKmKQflrBCDytkWa+CFZhhi3SRRvWS4xNqjcjIXengCYZv
Ll8FYgG/sUKBn9GFpWgUCHhDaTBsHoJf6ztMaZWJKy/hx5GG5cbV4BV1YL2K
uN4Qp+B3Pv3B53x3CZ/2whCf5sArVYAFNF/4nh4tl5aTQ+5D/vyBh5jfZQK1
bCJpqY87KF4PGRo8tljMfQsjklXG5BAarZQWhI6NdE7zUKM6ytU8C2eFTKMm
lmPtzhrbcUzSD2I99jm/EvtZWpr0u6b4W+JAv2uK/9z799vQFImlCRwp1pFz
J7gpBaFLyjOtkREOXurdKzt+mPVq4N20SZUT44ulIFXJMRj9FKjf6+2vDIBw
XwrztpTpaqlgtIa/k7/XLi1d72WLsLEuzJqwcbybrcJmFQeIfdaHuEAszF26
TtZox3Sg4uTxxVQ6sNCiolR3K5ppCbjGynPwPpTH5JNq4L9Lwn9tXTxkqXEy
Inc0Bvzo90hqKiWitiS0BgEuSX/SSIF39u6Z3vmBtkH0xDLbO9cQylOJqQif
qwVlMFwzTwdOkIYjM/k/JKj2sJGZ7Wkx7e44a6jxb1piJ3Li9ljGOIMkY9H2
+yEdXkQCQ0KY8hIzhWUpuVUKns87iXijeJS8buxZiG/S1s9iYfE9Bn7BUdMH
gzJ7y3WrHOz+JvnKXR60HODbx8G3xNzh+xfB9y+eX+Hlj4KvH11+d/nqEoN7
d7OsDz8+ZQ4IBGAKK3FJvoDVNKWLcvmed/lTRlaV3/bht2ew+Jr3ohmTvJmD
LKKH7MitB8GtlCq52u1//xynx9mVpvuWSZKt37Ox8bONXS3787Os0c8y+Z9l
oj/LqH/e+Lm78p+fl/0NI7PKxNKRPW7/++ONzKo5DSP7BijR/ftF8rn8/clG
pg7G2sj8v7v+359kZI4fwhlZMJJwhJ9kZFTvHtnNx9G/P+XITDCydTf1BHzK
kTmKvjOy8Ez+GnSm0M6/vRMAtkUS/vmNjAzTOr5QeW1H9gKEKP796DcyMjqq
lqPWuIeO7Kez5DNH90rm+XySfbVpdDdSC1SBK2IZbSoqq01QhUGYfrWJyYhZ
ufkLW6QWJOgHdVFtbPw7WAzJJH+TERDlEHSJnCDAfZdiGnNMeOlW/lBYf596
GSwxmClSQ+lXDHxRT7xvi3dY2tUBG5WGFR9SRZjOfi9PnEAARk9uePdCN2lR
szZmpio7UKnlgi5uKBZWf/OUE0oooc4ieqE+WabTCvRQRp7x5x1FD2tYUrR2
UcVkRUoHS5YVN7tUu6uSXKWuNYlNCawBZ1MfvpeWUk9DAusvZ0wEd9ikSSOY
hpSDOK8O3Py4VBJbrCSLzAs42u+i+WSu7ULJTWy3uN0ybVuB1Ec/iHkEmq0H
NbNr6iovcH07fHz+B/EncFYrPJLmgebc7YzTqmXxLR5sNh3NsJSf85V9+6OY
Zpx9aDmQ94+oEtN0BSkTTT+qPCdL8rklgiuGOWAYFray0bAc0qeupRZgPl8v
8smIR73cYdQPHEYGer7MDHhiobZxi4lpAFT5PVlaTnIu42aa87JJYzALjBnP
fjmqvKKsNPEnYFAMs8nvFO5BcoD9XZKUWffUkvnqAhfQOCTq09hhFrPs9jjN
04lI4UK0aNRBiSv1dGiOXNbgsFZ5kaUt52V4aqLcjepz+aSz20bKLkcf6uMO
EWtcn3fa4PEmTzdeeMz5bit4vN0qdAyqGicYOYZt7xhFAGmJDdEKe57exjW2
aqu/oWYpTUFFkGJyE1llcYLZzsmZlkp70nVrWXG34w+LONPUkRy6vA1uMo2L
Ace4Lpnd0un1dZldCzxPe3V6mRmUgkAc3eZY9mfS4dkJlpyL0zqdcLL5khP3
meRSpua2rntQNRxQCeNiLiPdlhUMd4WTTTvq+tMtYat2EhG2DXoJAT4LTXwv
KEd/kkJtrR/QeQkKEoln0GjmTBEkbsI+NgG+nXfQ6tCIU9ImGNOJZCuwmgz0
Gb/GiP1/CmHTkUJaFxpoMXUgUy1Wk0VxLcYWJ8ywCToKLD0DbdEtOa6NmmuI
K5+YBCF4C37cwtvDFmcxzEZbvurO1eFWWk2lYNn3QqOStcRcZoJwUkUOPZ7W
H/ouvXP1bcKD1FQIOFy8jzX6+Eydww6FUHz6F4PE5U0Fy2grjx2ZPlxtBcck
XrEmDsM7CNH5yIGLacXdJc+sduKyzyDzKBBZeK9RoqJOsZjiEC3HFcKTI944
YK8Q1+9tFEZtXsWfs4q7v/mx7eUqTkcbH360PbgQVCpGVKVGhGvX9HK7UQm+
JvP1J6MYYh2fu5ZWV7+N3oO9KFp+48a2MgP86f7wdFowdye7YPUCVfjQaOiY
aMZtgBFtQYSamPuHwkSL0Izgezn4A1LQbVxiTEcgKcrFMADaE7aD9eRGAuAa
oWzBZprY0klWpbAgklwR5coXMhMI2AdLpJ6/eMVFP+2cEl9Uw4yqs0+4rItt
V0HNWYASwfJ2NUa6jIeGsP210egRbMA1/W3w4NCR98lY8klgaj4QSw4f+6uw
ZJMV4UTCPWpDksjeA0OuwFAUeU0IqGh0cajQqZwNB7c+T3cgvFjnjXS9qVep
F5Fzkrt8IhfTAUgQ3zbPXKBm2EBiHFlqlbnGMdIuxdG5P4pI+lRCo9MGWeFA
L/wuQD6GAHG56AWjFzwxwqDROFPsCWrt1IBZutc7Wi2tpGbOIfhN6hp8wAhu
UgwDYCGmkMQVjptq6ha8UnFc7FWMHQZF5c4aSOIv0SCE2erSKGBng5u8Qjd4
wGH3Iqy7QRxhYsXHkEcN5zeYXLRC0MitfN4qR9ZU7esSUpzTjJqXHJJj+gox
A2Bfv5+mb9N8gvktO45z2sk59wBpDBQisVJrQOV+Q2AJ5beWmX9Q6ui/Zkrd
abK9yVtnF5MhyHDJKIfuOQpLTBZvLTol2LawIYUtKeg/mF5Qw8fw8vZWyE//
nQYCGugDDShLRMeWRr/qGEyU6EZEsddLWumC+z0uIYoEGz7WmYcDeRK2xHTQ
A/17FK+7aoF5CXper4Jw0xFUaqYxz0uqxhPTHX9Xg4KO1kM2vKwjPumleDXE
xaLIxs7KlbibkQALx8J9yd42Km3OWd8m0UE1VFxbA+3SlU5K0IPvFPKNowHi
PqxuipKirA+FJtcRMA2MPTChcSRG4JEEx8lLALTYCo1dMaMTxzYGFifPk1kB
Kmtc+yBtbW+n+RxU2YQT8znq4UCL1eztlnbuxzvBulLkBaPTQ2zkCAS1xMIj
kCcaCqcY6GAk4aBu+1tQVjS3am5qJacGCvbYub9uwrJXs4VjXk8HwUEPCT/S
5D4Tzbpwei12W4hNQitHACU+Y7YmUZdvQVCNiC8zKPP0MeRiBqlbWcFzc9sQ
ye7rirtZDWE7JlTpV8TJbMb1I6KoYd8J+CBbSAPssdPYPajK2XtrfE+Er2Zi
JyqETA/Z5B3jP3E9icucdc6PFyWe5FvCWm0a94ghOIsJmKFlBkzkvxZ5Bfxk
yeLL+1zwtSbULR8kzKiocSjknWaO+0FadckJNa6a5yGD6d3EL3kvY5bX79pT
oD0dgPb0rHDWz/pcQ8G9aUxz8bOe+6HuCx/oVjZfHAZqopt8J7DRA3DLhuQH
NLunGR8Rz8XbjrO7TVJwx5eSsP+2D0nE5EZZUR+B2MXT5gnf0yavgAIOTGdo
/LyKge6YIasZ5pzz3GCPi12zfGqmmMOtyHB8ncufsOKZCBHmzBpQ3hYB0Cr8
6ja1VL3bUWrPp6BHsyxJyxIIZwt1/tfjHLuobNUGIOdsyV16kq6z+etauzQ/
mM3zNDzfXsZnUlywc5XlFRVDyo//MV1MJv+RbO++Hx/trNAkde2lyEfuQtRF
rqaIsFxuCI3EZMmYcgTwVjqWNsOltZ+YkDA6/lDUH+7EnUNLyWoVV9GMPHMe
gflfEBf2el2MshmvtuYM2w5wRP6DDH/jTCR42DeXrzokWDJyPUzuek7mDCVi
fvg5CxXsfCLuo+tpwbXZqLSa3hsGZtPoK//v//6/DBHD5zoZG7ZCOXvSgzMs
4aN85xiGLu3jkYLniZe3dcbLI0SfetdIwn0/I3U6TZ6BMtg8fj8nyGTt1iSb
K8G0FVp9O2lt0ZOMGmjzyfF7cfJ7xl6XxRvyP6Mpkg5D0JVimjlJMANp60OW
op9YJORqpSH8ennx6Funs7nXwNwhEifw3qgsC553ptjEo47pZqdDXdqMEJFZ
4Td8u7p6bv1OYxEJv4Is5xSw+7vZTyPJuC0uaBP7CnLHnPbsy0GuvKO+xbnE
fsN1hc5E0/ldetdsNbuQ2yTJZiXGCNkT4Mm5WJo8Po89pDhGTL89WNbJPTrc
IASI3goNUBlgXbf5txtZb9r0hwlscF3K6tGNVQltVTkWkNp9YubP/v76Cg/e
BATItWYcVQZ/dIBp542El09nC7rcdK6vR9mRnMzzu6TfKObp4U4vDhXtgBpw
X3c7wFoX6HaKWYPUbV6kpXaTKflxyN3DWyDiRtAFZbhLpubAWDScgtjSck8M
MbyXxhi8ZGk4/G8zaTOHhRYz0zvxcrR3eNg/Jb59OTo4OElAAIK1nIgTF6Yr
DWEGmV/0A5Y0zEwK4J+C5X1d3GJPqmFBbj70ntzf6fewe9q0oL8HCP853Bsr
BAg//9ShvfJ36KmPF9kLd5PaV7jMR0VqtL8RlXRUnhmLayH91c+SfMf4tpfi
lro09CWvu9zO7ww7TmrVpcMhnDaSsUYBQeegWqPXmvEe9TZ7fToz108a4Xlv
smzG6rW7PppGRdjf6PZeK+EoVePMdzRbR7XaTJH6BDtZa/dShcNSO4riV/uh
S7NGElttBuxnNeDwj+nWjEJHRjyadRAfk6v66OIDfZjcmMCHxeXYK08XOIyW
9NwQplBY7iXx1izShL7DiqcY7x6ues2iio0jBs+73mjq20Qo9Ngb03Ep2NKm
oHWFx0cD3PZIqiknSgvpSYA/7jRvWuwasX1YQrFBoIiWhUbMj/q+UEvPMvP1
GGKZqS2cC3Lh1sTYr72xPlRRz6hUdMXyYuPxiCKpcc10zOn1u9T+cJizVzc1
+K4AwGwZ47o33GEzXcVEoLW+PO9+lWzB0SGTDRaMPlNfhS12apkfjT3njEJl
npdmsHKyOglZcl/mVFNN1GVTfdhCl6K/+ziSaiMnF28/4qqvYc6ttmVNEstP
0w4lcrOINJnXdkfczHZyWaICSAGxNlqIUkN9nDWnxYrrCFIFm16bInIybkUN
IjdMaLfWaKSzfnGDs3t1yRMBOYnJn4iQRSmkikZj8JRFUq1w+0OF0oqNWNYX
Ss52NzP1e4KzxqOhdc5F7x0W3PjT9+kx57Utw4hBOyW4WLNK4dKtIbOis/Z0
G4VLNXFK9LCMcGrZyGkSo3mKpi6E972XPBY2hhfRMxQG4uXlxfOnTy+fPbp8
pKGLdJqcdOndWCaQlHAo4dDSS36rwiDqV7XOvTNbjBQedN6oQHJ4jMK4UWVJ
fQJnk8p7L95NTtgzJmLbwqd1i3eQlHBDp74Vqffjsi55ghykM0zx6dIr9SDR
MxqoI8YVCGgixNNRWpVFM+cFZQyW5K9ivfR0bHh1++gC9TY6IivL/UGtRoPR
4gKfFBw5xS8wGoP32gfUGByKaxRY8xZaJqglqpF3DSbzTEOwhkzNyNNBgS7M
f2YVQpOXgbndS49oL/m+rzbBGwNkzV/wYtq9QZKyndSW7MvGhkVriTou3hWL
yYgsIjmZ1IfQQE4YUyiOrmIRqVYE9leXd2hPc4/EcX7drp1QREBOw3X+lgMn
2gBUT3P2XjvkmiI7WpNOgmJjgq9f5UXVrJu9R+zfG0TPJXT6lBJ84DWheiV0
9wjxXIR1dR228b/snyRNq7fXG/YB9/tDu7Chut09HyKbuIH4ex/25+f6M1bz
ToXPWB2XMPbnj5FxiJa6MkhnbC73W48/wIhW5HpnIbMkYMWHGIdDeoStuPoR
U+jFp+JAfIyw4kD7K21s1/Jz8djULRIHvtky+s0kLefvivJNtwbe6E4F5ia3
kvqSfJulo6w8k82GdRxlX+3Cku7gj9+XeffbAi5NNmHHe3KOeyDkNvXnF+n8
Bn42RBL+cN0Pv1Haoe99SwJ286ifbLebEzSyF6IabwMbJf1slKfXUxhqPkSe
TPfunOGVP3Ee9hcJa1Xw4egsudk6Gh6mJyen/cFgOD7on55u4WWwVrxAQlze
CslQZY32dI0+4QxU4MFH+dM/xrmke7t7R7u7J2l/t58e7vZ34d84p73d3f5e
//BkYwmx7+0eHWaj9DDt7x0eHw/3Bml2snd6sH88zvb3T453l93fhxenabp/
fJjBeh4ODkdZf/dklB3snw53Tw4Pl94/2ts7PNnb7WeHe9no+PB4t98/2h8f
j0+zg93RaLzs/tPx/kF/sD8ang7Sk6PddHyc7Q7TY/gvO82y4WjZ/bB0B6P+
6XCr4660kouM8YRWejw+PBql+7uD49Ggv5f6dzjKCHzTP8U7xvvZwSDbPz04
OBz00/3sZD/rH/Z3R/10mO6N97JlY9sfDw8Pjnf30vTwCFZ3bziAzT05gO0Z
nvZ3j9Jl95/AOuye9IfHRweHuwd7g/5JOkhPR/1xOuoPRqfDZffDPsAhSYdH
hyejo9P9QyCo3XR3vz86GQ+Ph4djOTf34ZakJyizvLQ6wkfmk7/4oa42jUQd
P17TsPOVw1gPilG4CibhfbrwhGGzFt/VCsrbsqjZw8G+ONjqy11izW3JY2hU
9/KStTtr2peuzVVzk2rvCPK1kVc0bvvq0kdt4CWuG06Kez4OPfqKZCXGcPSF
HQvZ5sYCrt/M7ygOkNFf08Ut/oUQKB3GN5GwQAOqFqZdB29fZRHJ8cE+qAAQ
R+sBzWCddYAniMfkVTCLmzejMQ54yAkITyi0QYx+fDvHz9ez17CAr9PJNf4L
T498psnRv+l51ZYiIjuPr+O6xMaAz+PHgTC7occ3PQsTRB0AstzNwcg9V4Vj
W4ZV4HfNEGg0H5xvHW6I+3qLgS7kRsQ8SQfZ5MPqLCXEE0sA9AnjckowKkgW
WHXqH9dvOEOk1bkXi3dhq5i3y15l7PxotXckQ3qv1++drtrYx5t8fXeeOKmK
dSHjJckH3YVWRa9tFA5YbEmnit2wIvNYAo7sqtyDH37JLMXJpoykFHHfF3Xq
GFlq1qFTHwxD8SzHqdXcTUL4HmD0IZbk64GXf2nS9+2wo/kqkWGt45xbeWjL
2zazT8dpZ/qAnqLIU3+zrqEHcAw9lFso4sBYRfUKn/DQDiFU0VZuc/MQ7iDr
DFqFXXwcV1DcERQh7Cavzzpk/YE+HNwg48HpfzwPjp395m/ZYVL/80WCSin8
dXyWZIIJIVCsFAp4reL6dTH4T7XtY49Btv4FGNdnze/Cy1B5NB6E/bPksAP/
+vbp+QVrR1ffnnf3Do+SL9qeYRRPfBC5rvaPx8PmwcmfzCqpZ8n+Pr74/SEw
bVi8ltfRjY5Ge5b0d/HW88ur7sXF027/qHt00O3vnSx5CD7GqMJnSfcEH3I5
enR13n5j5inMZ8nf/tb/sZP8rd9Jjn78cZmrwv3zBdz6/E8v8Gb4q6NVGj/+
2Pz+X4wvB5sWfRG75BTWY89cFjVc0PGzi9QVRfu1/iKwg6Lv6PfhHUe7pweH
6L5zLs/jl+/BAaJLd2MUkfkKO1LPYHh01B+n2dHxwV46GO6PRrt9kN9pv38A
tHg8bHHoxMV5xIOzFs/7pSn1+IUiMBrQBPkiXlpqi3ZtQrwBcWyqwFyGhKA+
CjMWU6UWyQM9iuZLPZTDw8wl3hBzfa9FpEivPs26Y2VZMd5RNGdMy6CdN6yH
i1t7bJ1sQjzMH6TBsePGw3+vTj7aIVnWL4Qi+1Ci0vG10dTxR6Up5HQfkZxq
E1yfmo5bqcm+YD1iqj21iQddcY8bpSBuebM6ATW3yNEyFyloo6Jz/rwq9XgD
XBVtu/Fp96MfGf26Dlit1PtEztdgpUyqkAMQRgrlFeOQ/MA4JPNykTEOyeFO
zZFmy+i0V5K4ZCMPGqeTSp50sMPVO+hq6znV7lRGzF1SkG55VfOxJA9KRjn3
p8ZyHgd+GF287GuEy1ERWUxV3DqI1OYtuCV4GwH36aGdZGlJLhTyRNTyj+LL
Zwp5I2uipByhN4Hdq+bFLJECe89rEytuwtkxCjDe5WQDr9C3ZTGd5xNnGIMM
FgmFqFDuNWjEhBjI7qN0inVbkXGjswVMjcnEtOVpbMnDKIj13llA2jRC+2z0
7fOA/PE84L40vKJhhnBC4Rwi7idBM4I1SnlKLllJrVlsn7aZpdW21aSb867V
2u7YHCbyU9GEPtAN5XqhIg9t9kLFuGq724nvuPcf9jtJo+17/nmwfCT1G0WX
4azZAySk1ZRJdJ9R/MHxRsVJPebw0T8PMoqYDRQhpibPTysp/ZO4eqRA/AHc
PEe7vpfnHn6dJEGZvOq2xE3T9k0JbFG++Bn2FBUFMOw0ipog4U2hBvhO+vet
0lmPOSepNRoy+P7lEy/C0bWYtqZXpdOoVcJCbu/AWn0EZphyaPfrDPRi27PW
Nns1X5lpvJki/WqU1AB2Rqu1ecC2wyn2zFBst3tOkYZ7XsWxtWCGFbb3BeuL
vheVlsaOoo6b92EKbZm9zQvYY77dwA2jWDZ41rcrwUf3gNQZDGou3R4qQQet
NdTB3g9Yu8itEik+aBP3jTxUsSXGo64eRX+vFsMbe+Wo4K7DUvmdwtmAx82T
m3w6t9VtJX1nl7tjlQBaGElVzviF9QaQeKGAtcZm1BIiayBwF56j1geOu/ku
6XHktfe18bUdp79z5a0UEq5W0ntkm488iiMj2y/kfJOPXouXNShvEEuDbKOC
Q71B+NR6JU6O+vtSomp/3l+tx8aO0nys8tpsIwXYqYtt5SYB0QEbF6anixrf
JvHo/vsXrr3XTkQ0LVKHERDHpfD70i2rbZSC8Ik2lHR/IqVUAOAWM0J3klkx
s3RSa5wXm52RpaZtkWlN7giimtYWRmxtI9dpxFO32A3Ttymcuqm7Jowj7EEg
M8Jy7lRkuyzSGZaBmEAcf9bmiW4MWp3PG1GgLKi1poHMCrmnAadDaYkdXgwY
O4rWfMRY4eHyMP+RRjn4bQH/tADQ1NOYIZLs4hmgjziBaQvn/PrGyB6nABhB
QAXpPHao6mJEhSmMD8GMBO6JfQPZeIwuS1PmKucIMaJNjgWzK2cEfAK1shSu
1ePYaQfkaDqTnOSR5XMf057Wl2Q1Su1q+Ukhm1KTDoxoIvdTZJkDSWVgUZAR
UNG8Flk6o0E7kqo1h1HHIrdisK6yQEtYSQnyO2ATLaQ0X6cuCYexUHs4n7JX
ULAVUOVx16XA1hPzVjlYNQAf0M1GkrZsa/3cp37pmBJnxP9H6+r7/Z65C2ZL
mNtcyXsx+BDPM+i9Z61K5bgLcBVXbB3q2cPzFVpwAXyvEXMhCt3L0HP7OzEI
3/A0BHC999XHMU3RQPjGveCrbdj6rvEYSLZ1jS9563r+8n+BTdJW4bBHWKWd
4fgFIcm1JPwtuAWJxQo/9jGpQ2F9mCnHpsgNtc7DO+s2V665vqYpiIDvsPsN
b21tqGM0AJ1I2zwIAqik4kPW+00Plcg44KPX0KHj9VBAfF1Tl0gLQObyWk69
qt2rF3vsMrde+xlsd/N9mDNJ/XzPkMPe/49x9H1ofRv62BxHX/vCaHWYw+41
R+xBxvGHFQbS5vJ7mHFES1giRNbu7luRxH5L1XqfsIINpAL8f/cs+ZumMSU3
WycHg9HWj/8E9Xc8+iQ+fpOqQ55BTAOCq9Cj2kk2r/c2nd8XJeXy7OHvjjed
L3W/gLtaqqvi/K/R5bkqYbIL9Lss9eLgGgCf4Pf4viUx8CKZmCfcJzWC34qj
QI2hTas90Z5HqyRIPLr87vLV5Sfq59kwh/UVvROu5vIVvWjjLdPI0bqBu6ic
S31YLT18woNrgOWDMd8WYr7qlkigyqUHfIA0mGS1IB1jlQLYNjM0A6cZumHL
lgSFSF9fn9aoCa3xTw9IVRnmgwkSHIzQzaH3cyw4FDtaUMw7ez8jfxgZbG+L
N+IaK8r8H6mAHIcmdh5J3ceedNLHzfgwYPyLUved3r0FpnY+zqj5VVim198T
W4wwo9cov/DHsQmrAGZrtUm/fZ2X85vA1xRDS5Udky4Z8d5QQAfYlYtgYEeO
Pwiv9UvAtCKRNEN8ZEd2H/VqsaW3YS47GmWI5HDEmrygirjDbXlIDeW7QGKi
a0Fw3NnzkNwUk1FU+aWUAbb86zMX1T97m/MpSyuZZ0U9Tgeg+LqvuqHGYmu+
Y3AneCNGsRdos5r/QkISSnvmvYLkK05JXUPLNZe0x+nUx+T0PSdJYDCH4KiW
xeQ1kLHXqT1uD4Ys1+l/5K+Pct+Q8aZIuToXHEcEBSk+IgSsPfYgjr35cb4D
tgAZVGhXyCuck2CtwpUY/rKpTbGTNyU14sMPersHyfYzsLgeF4vpqIYpL+zP
HTJJNW/6/krvhS6bJf3wbskniu68KRUdE4lj8pBnWvqZG0HxWooW3DCr+8bz
cZ0HVMwEomhS84KmWK1GunToHTzkGH3SzQ9NpdpC0PQp0n7jH0C20YES2vLu
ju03VqNdNNZXQVmPTSMi/f1WvTEM/3GZNTW58qIq7khFRvDvTt0ppxmZHnro
MjCxBhJl+AA33mxqEwn4UYR2mLJljjSFIbKR072U2Bj60+PR6ba2Bdoxsr1Z
pLc/H7NZZGycQ+wxMWnEYe/4HiS6ahlotjcfuq3mUOoYT9wysPUI1jpS0ygk
oYbpjbJJpq191hq48KG0rTkSnyXUD1PJeHAW0PTvIl8XkkrHjlmgeKP6NVGO
IugZvHfYVTjn8zu3GhtplBepXgnM6XAUGc2NRmxH6rPm1TIUzik+oVG5YRaR
/Bot1O6gQ4pHsd8fTtBak8AwMFiQA+57YxU+fp92PqNOJZLWKrmDJGgsj/YB
Sgm39y7hLqeggmYTWC19gG9VGcvBRPn+9OiCbBb+/aVGLF/wIimCa3wF/QJq
bgdtmyI74cyAgM0ihCzXjTf5jlPCyDxv4VkmMdztEW07IPTs/fLb0xTL6rEh
XJnxz89nKseCx+il6QQvlJQg4EclLSJJejOnvGg+AfkU3kWef7xAqySmC0b6
d/33bSUTmvRyXmsHur6BFB0qtfsxHY2Ro7k9dMSfzjiNuj2O2abWY6H9jN/d
oByuZunQhLvF+DMSykPn4Be4XXRUYw0UycVsVpTzygxWYyrOG4hnqHjP52Gc
PaYNePoMZgC06QVCCybQb8bfSAOc0ywKIZEzr+8g85jDEKT9MB9lTosKa6kW
nnUXV01bjEOyAOQBRLyb2QTPsIKqc3RrMR3V8zYatUDWlueYG+Yrxa1xFrp1
jhjviCqLF+RmGBjzMRnsttW8oQ5RsLFDl03bgvUMj47wb41jMS0jlgENGb7w
Ji8qmgvKURFJ8ObmZYPiU308LacDtNFAZZTl8j3pfWkyZvvGoVQ/C6VxA8hf
wYIPKJDJCheI/RDdhnVyXQx4NeulwF6Q2ipnfjL65QPk6opmQkFlOSQEMvB1
Y7qiI/eSP3M3y2z58GJv45R+FAPKyljXm14XxPBR5GdB1YirJ5EwHBbX0/wf
oiiQ2ljvqCqeIlx2Ev4wiuubYjEXzUaWJXsPL2wVLIRoUorfmLj0YqoZKKF5
wuSHdq3PMEzTVjaBFZMLtatacx88IW+LHO348TgbGtPOy9xZP39Ow8BhvpAO
lLNrorDITMgsEegZmy/QNd2dF136sBnSWgWM+DarweuohtUHMboXWMHiYsan
myweTJUJ3MPkRbLK0m0V9RMnjxeUviKWsBaJ3JqGg7bnTKwNkqbppNiRGZgn
lhFEZ1gFcPC3qCpauwPoRJrRwCrMGhIZUK9YFXGnQfFhMHh6Jw5bJQ96vZfN
QDOPjPHbqfU/EEwCvTGCX0UzisJwtYrKJ3UU+ptoyg46lFHnHueqv/IUFdfY
1Q9Dt5EpuiIDfXSLJkEKlPA+v13cOuqhzfWlgwbzx7RtIhtyGE27MoCaNdRL
nqs2FiyxqPKkihFxwKJFPbZwfFNGWUYhy70jm+RbzAAOaoLhIUCHrsYTV3xX
cAE8cXojWhGpSgXrgFVxG6w2d2RwcKhHTRqEpEz7d7/DkjbpTqmmoc3C1FW1
ko5lxgopgq8InyzyMsqsXKTSAbMpTbAxUV21xFimOhKc7A+s51VhakZrI5E4
ErzldjGZ5zNNhgXipcygWrNvg5U390cqIhqz/sWXX189s1a6eLbpQGyXmsaL
u0SbXS1MRmqQ2DjKmF4yza16j8tb88nKut9jlZVr3JGEpWNL9r4aNnmsQZMX
2VNefLGyWefq6i9K4OvvFfqKzC1Ko9TEcrsAdIrIFR5QFibBFuwzmOJSTEBr
Id6T3uLX7nvw0JWYkQTiMke3ysiDyvMTr6nAonKWN8J8MMaT6hlUrQyEADA7
0rYNVqmJGAXsxreRmpiMg3Xwy45qI1P1xd65L2rb7PYyjp0wFFG1nDfZsNh5
Qw0O7mKCTcssynVJFwwOHhXtUgt3yYaOnhqygO59dNTPyXUX8KHDLYlki42+
WCc0UzUUG5hCxSqlpAGdmEVCR0SlLqEKG5DDusAOjjWFUQaIJxLDocyCxEEe
rGIajhAz9EzKQqjoacdA8s6KX6alayEbMH4CBHK3KKH2gKq4Usu8Fd8opSXc
pTB4PJsy6YQtEe4T4RR8kYkE6+aZl2AfUZtm0UjcmXD1hGmuLGdCcXrRW8KQ
EFdSy2z8iU+Vl6NDMaIhb2yQPLB9JlbT391UGPOTkRtrtdOLNGCi6d+krl31
seFkE9s+g9N93s8pXkquBdCBb4G/DCWji9JLwlk3ZiMf+T5jCqkd7PyW8Wsf
ApN267byWrhJlNQ9ajF/sARgliOImvdYoNslrxN/HxlvVaRV79pvrsCC2tK2
WcvnB1c3veP8r3HwWlS7X6Pp9RqU7q1wVCQpBrbJzMfGsKUkuBCKltLnFQYl
c5Pso5fXkGtZnUM9g28zEVYnOR8LnUotGtbmbM6oZsVsMUlFfdOsGLtRDfbU
VIwp50XnL1+e/7X5TonsVB/N32g7SeMT/xLVLBqwnuIKVjogpxaRies/lTma
wgIbAIXV/0vMDNWqB874i1RJsA0tHBNxOSb04nBJW4iaff50g6mRNIfB5XTo
0aqQq82yrHxNTcSVudE3tqc0PF8AXOz56vjgOFb6uvqCpOCpmFb1hiH5xWdH
AsrU0tTrtGjWj71kNBJlVXaLsC1Dv8YqLsyaXCS8RfObMvOWxi1AbXQDdrjv
elDcNR1J2NVryK1lJ3Qi15p8k0sKncnCsShJctoVn8ZiIMeIFdBwbvGmbFbD
1MytuE4SrxriDlqYc5QGjgZzZiiDA95N9UO1p9oeuoGhrB2xlvus3YqWuFfW
V1srok4TXlYHndjuUuhUGyiqo5wNxH47L1kNE4NmKYx8xbwkyWmjg2TCO5JP
ZZzYwBrzGRku98sF1F70ngMP9May4AlKBXPgS8c8gXmyjaJxh/LU0DuPLj4P
3sh4PLgFuJcR16TTNpS5UjjG3yLdN383Ue8QjYBaREv9PQxHSISDKYZwfBAj
x7HgvYudyyTSEsSqnE1AjP05n47AIsH4ARzX4h3yFd0M1XZoU+DspoMJSATd
GROzkNwKvbodOir0CstT1GUO355fXGpj7N19Sgr8xtu3+JIJ6/YT3STU4Hqv
oySSCaOS0n4hmBXppYcpC8b/yx5z+1xUlVdQ9cnixyr2fAjqSVnzv6C1j1RB
mf7PBxxIolU6PjroCzYDskVyR5EywV4NE/Pk9JAG2BUn0iae89a6gSjsezN8
BE8RM3nsRnD+xngxmXTHk2yEPtYXi0H3ajGgljAT9ao40HE//eS71BCFFjEc
YNq2AXB9WIRWX91kAixhvc/FLB+COU4yiTohfl0WbxgfUpAaAgqw64snETea
n1Gb+F4wcUHeUf9BzOBu8FVsbJxTBtINJzvV3OBNaVg+9bh9LE0m+PfTCTpw
DWafzffsBOYagQeMshkya1sRa4JiE0V+iFr/Iot9h4enHddUYTPLFj66Rvgw
dQr628J/OStZnfig0tJNMBcJ1qyh9nTnkLFEintWDddF6ogk2QKLQzDgUN61
pArWff3BxHiNKcFN8go8mm9tIlFLeOrYZBBOgPRKkWuCJQYcwD2q/SICeyMa
HVV9El5WY4AQRYyEkhZA+KTsT/O8z8K7f9hywl4rZAbOORHAj2gZzeqjUyid
SevkzasIcaJbx6PIz5PaUdS8bAWXmt4FYwxygxDeJFwWyZAY3NVpFR8fLrTL
YM1Rj2UFxW7eSr5Ktn9I/i3p79RT+Guvr3IKpZOzdCLZxrE3Idm6nXB8+sM7
QjWneTUjXtvQelTf7W9ubf+4xtpKUgtJlppDs+YBb14vM8xwiEiWMPRMKu+Y
K9NqYAn+p1m61ZbtD+suW3491XQu86q6GWGYKdvBRMOtw2NF4ykToNEynii5
gZoR7kut0tWLRRRsuq8Uh/DR5xLqHm4BtaiczWDRGhbdSX4wraEjPFmetd7m
6j7Cvix/NKfPdWz48D8XIAUdPt+JrHHai1My6+/5LBUvR1oTDOoPqTxREjuf
JK1bDiipFHZ96dA1xbtgyIOGIZsGS3YxakNp6vJNvj23+iulZmGPXAtLsbuX
hFsJYRofIJ4tvomikTZjcA1/gGUOPyTkF9D8BuIksI7LhKUqJaWFzRiusoQt
2hJQXBTFWRUJGNjqnUEtPHDc3G6EufsICzNqOg7GQ1prB3Cvediw/0eZRgyC
rM65Ra91hNFKJ5fTSCgFajslcufPgx3OHMxi+PUsYXkVA9XW5rf3I6sfFRoN
p/su41wZSc+CZcXy6HQCQmB0Z4gbXrQXeZHpnhpaS22Y/e6eGsxZiXFodCMI
kYXLSfaUj4sv/mXGFBT1OzIsIbuG5FaprJJHL7G9dGGX5dB+NOMKB7CqYcXr
4vfCXMsor1WDrru4LrLD7/bsMnt2P3LaPDOm4Tg36A33MnAMxxo6HGvUxrHE
C3sfnvU7K/mdlfzOSj4GK4kJbj0s9+ElzXuSs7ftBhgEaO6DO9Muo8UyaD3W
TeaC4GcvA9re+adlpEO/6AITru/BUyOFXkstJ0rxG3ENVdF8xOjmIIdVUgXm
DkrPTVo1HQMFnmhpJNBuTbXCfgT+oa3rbP6ac0EcI6DwID94OEESlx3vINOU
RLwn0gtpuphMuBXS0Q4fuz+zAevmjfqpG9GUja7tJ2NA11uu2Ilskn+8cdj/
c0m1VwTsI1gtZvsPwHg5B1lKPuFt//O3xmglFpzpCCUBxVbztowH5/Mb4Tqf
ue0+aiI26PnhKE2S5steQCn8aPIDNnm2lbJrfuAdA3dmSgpWaSkirddtGrPs
rebl496KPb467eCqRghCD6VZke44mw9vxO+A+UY0GswB04SWlEF0r6/L7Fpg
M6JZfh2nFEALPAJ4pJjn/IGArB0cKDu5tRvcuep1rWTygZrcNRoBCtEgKWH/
X3vf1tzGkaX5zl9RAUcsyGmAAniRRGrsCJqkJI514Yi0ujssB6MIFMhqASgO
ChDFlrV/aiPmad/6j22eW+bJrKwCJLHt3ohxdNsEUJXXkyfP9TvIhRdThsuB
eCIniWjs5YrQz/3owMy4y4+JCjOw6Pw6m5JKNaF4t47jbQUmYlvHxZfbmWtY
Aa8XBSNZvmvzRVNA6eol6z+mQ1mzEKfLxjQKwTAndlFvNuYJIjZECAh6RObz
5X06Yq9sSQ4BWhCcNAPuYtqhlKw6Z20U/y/OVP3rgQJnxeL1Nvnhe1rWQKGR
+fJUS5lrANJbq7pI7HGgWS7BJueCA3SIzn46/jO6O9tJN2EHUw2aklW4Ts6P
X55Bi1oyUuFJkAJ7T6BORqrFEf5AnXaWqHLWKIl3SSpLQ8kN/tov5wa6zYAd
/EFR5kHQEYeZl+GbQdT514WdM4S5yvD9S0NrnjKOOxbEo69AEX7OSzWinbk8
iAYNB3OVOPSmidxgiWgW+/VQRXAozZYM+P6FfTN34V+iKk0k2BicaekMAmYp
36jinkcdx1kHFDacVRYm5NWFiBOsY8PuznzqZwTZ3fpdg+qhv5yhk4iMvKiR
qh2sgbc5aqCWCJiRe+Vph7RrUfOJoYBg9W2FMD3M/Gqj9Yj5deLFPxMlH3fz
2zDy76sUZl0ByVqpK95C9xv+iZTSDHH449Lq8ll84TqoWpz1BF9XjvM+xhAD
QK8Scx0y/1JS/ldC428sx+k2OYrcfy81Nne2/lWqff5y3e71EWKfkfb7W+kl
/jHMdnboh1H71xWpIw6Ov5w2ABAfA+6fScSpmYTNEPr0XST1jxEFJdAerphb
uiXjce6PKzC1NWg5kpTtQvh1tlKYy2IEU1BAsPCbKHN8NJaEFFgQQg7PVS+Y
hs6L90ZYOAfgFkiKFw5IpoKI1W4Oz3eNWjcX+0AyR6wRAvAuF5NJOsv/ToLg
hML0+cpVsiHiZVG+KWiZmbuDIUKeb74bTGDgwnmBOJYZUkvmdzfZ8nxpMWbi
it5ypkjppYaBeQKxayB9wlnHZlgDDkdhU6WgAiGIsr9REQbF2GhmYPfnP89h
eL+ZZeREasP7/hTeC79F//T/Nn3hnC5IJTkZmka3+rbbSyMPyd+fPv2vs+MX
T40Y8PV9ZYPh9QXE2kqj264vksnvry/DTS9Mb2h6pb62/ml9gdHkwuzDBRAf
9rX9T1tDP0we+tpZOi/gduYodQ176lr21FXsiRleHfsyF1944dGhKYAdJcdD
wJveT07HGdgBwIYC4JeI2DEgxRnsmOYYtuyoWo6lQBM6lNCJ0pK3hyZbDhbi
3OirWXpzHU1ORBSBG9JdMLlEMpfGrBC7swmy7yYGdWbgV07Z9kTFkp2BVOOs
gYFYNaH4dC039gyTxMugttnWHun+bf8Etp2LhLoVGA0eGxcqZJgEzv8MUGjd
2gomODPfDNPkHhQz5sBDjmVv25P5dd1btyqY7BYl82ObVDfhUgq0UTRS6lef
0t+ta857054JQ7F4/6JLcUqZa+O7BInPqJUzRP5QYH+Vq7BdJkf5yGxx93k2
Hk/AhF1nLaeZa55xnzNnm31s2oXk10ZKnfrwwzzEICOnMshN9m+QH2UaEzZW
EGScCZ/JNn6O1PmcLMAAbNTRBZTbKCinT53SSd2Z2+7xmRtgQ0h35BLS31zg
qty1IR1R78A1+SYgs7PeJWdlD7tBIVZjGeRX0zEwctN4nBnR6b66tUTOrhXB
6KHgaZTNogEDNoi2ToCrldnCmWoYC152OOcX5oIo2jGcCz53VKWeKLKOFqi6
cXX06RjD5dPBHFP0oKsSbqc731K2gk9rE7QVLl8Mdp5pQYYjTuMTwrbD9Ms3
PPSY+w3mOWdlZW8x9wigQkolHMrtl8hr1rFqwZwvF/OAg0FhX6J9x8Ok1MIt
nLCCa9kzPq2LBE9taWSOOWvaQYX9oObSsPG2EHXDDZnzlat23qIeFHZmHBQR
2ceKoZTA+ZoZMFw9U7AtInqP+YDMgAEt5HOEFTQe51rCNPdD/eEN5I0KIKD5
Yk4CDc7OY+p4GhVoAKxPmN5bV0q+Pbmaw/1zIRbjCn1a0HG40IYfwCGt0ms4
58564iIRBJTBU7p8wWKaQRLfBGIAqnk69TVi1hmbGIDYT04JG2SQlvONzgps
p1JspXae6K8qGF1vlIyLAcKPksO2rEN9ZFfPNepirtgAupQpt93i66Gp/0Yg
U/3VQP5aqmpZBYrT0vkK67Lm1mXJsoTGimP0MroyA2CzQM9jF3ThLzVV7MVM
FeLZtvYJEKYZub4GZ9bi/pbsBlUgM8hnd20kgZUizEB8lyk7HANQNE+7NxQy
MOIiRANdjrNJl3JIS9bzGUNhr8ewyDxmQeOlZYJKxqjDY2/i6DKSSjGB8hLQ
bHKEzZp7ZG4uJIAE6ybOJoTNtMMU+J3NfiQJ/jeOlIpZTI/ExGHejllJf4to
lqv9A/pnkjxC/fLMFrXH66ca+nPv/T7Gfl/fcJUQCOOb5Oj1JVy0IiLXlvfQ
7x72S3TpwvGwSApZcKL/1GndeM66+pxFle/KcYzo4CcaIMhnYQEdC46fImTL
j5aSaIVCa/BqQjqlqxSufAYMXoC+CVFN1DEd0mq0XHicwKGd5VOFxSJqACN5
sHpUi9OZzi2gI6M2Gs7zcW5Tyw/p8AdLUHJs0tx8UxlkUK/NIvThBGjR27yG
dp2DbcrncjtO+UmYj1T8UabbgUqTFvBn8KnjEB51vMZRJYJImxsbMOzFp7gq
I1Hh36GlRoVugmgkPqzkNTx+iLIfOYEuPgSKGM1yBg8hNcTdbaYxl+sp2jsG
KSuNtDL7x/c7+2gfe7E+btN8zlMeZDMsmb5+g0Aq01F+BaBUGwAUvGCMD6wT
w4K32WmOBJxRKAhG3DUVPsXb+igbpeARfkt3D/RNDx1yl7RXzmjHQE4ln08N
1DrktprvXiPmmOvaRS8MvI6Ujo/1WYIySAuCRLHphIAhZA8RYeNCaIZ426Xt
IDcV8WvJC1PFOwLo+CmpTyOwNwbRf1YEBh4mEvCki2/RJXrgys5BTR1bhClS
nlAiP8Klc+mSHDhBEhtwS8LjErVHtiFH8s+mJWFPmYV3WG8FSzHYWYn+MxRc
buP7I5xE8KCgqwwK/0AIij2H6fiqmJlWyGHC90BzALO+yysBhhj5U+K9X0M3
iuPrSPvixpb3Cq2mLuSRZoIM4hoDWQ3vATF5hFuVlRLzknolEtqgIuUfAI0L
LPDRwPwgzpsLh2F4V+G4rtcsrb6AeTWkvwhqsNMLcNhd8z81bGvhaarAAPZs
l5NwucjHw1JgVlqHr8+O2cXqWecFPdS0CY9s0iOb7hEBv6EWDoQkIq+63/x3
wPkEXqfIK+anTfxJrnz31vF4DILowAgZRgmKvCsPbNIDGKL73XeGp00mxTTg
YGLakUyP1Ls1BvhKLZNC3v6Uj/fzn46eulVI2tfvh6N2LFKIDSIgZOA7Z88P
ulu7DzsOyrC0HMGThlw9VgKcs3gN1Jc2j+AJCEYUw6B5/vLgUD2CH81YHpj/
J+u42u6oi6FqP9nd8GZenxbPWhGa6C5Gk/my9UA/5J+zS7YSHo7T3LCeswx8
/odnG4y2t723BVThEFajJJy03w8GZZuncU2/Onuam40gOMN02pP04wWZqCFE
rWm8lnu/Sr5PtiWks1pxhCOU7y+y8zspNPjSsJOQnImOfVhUNOMzLl6zNd/b
VvrheDqY3ZHep4j76gbdDIY42sTZ8f7BJ2stTH7XSyjh4Pise3j4stt/2H24
0+1vPW4gx37Pp0erReoRo2vEGy/W5ruXwR4Pj84OmDh721uMpiPD0XC3OAqK
07B4VpHhLulvrvk5xchwRCY5a9/98u6X1z+dvvu1k+AfHTPCrd3d/t67X+E7
kZ1p2HnJQhlWp3ccAujSrRpb1qUIUSm+AXv8MEQCIghMf5ZhZ8KqB8CJZRTB
SsVGf3y4RaM3f3SSU+CPwdjPgEVhQw/3Hu0R+Na3D950Vzd4HMSKw91+vBMO
13z1Ow/X9LjicHe3+uFwd/tbv/NwzSBqhvvm7ICGi3/ocZ6e4cV5CquLPrtT
N/DHvf6j+xq46ZgY76m4gL+W9y53X9tb9fjgSDOwL+a1XlcrcBSMn/ZUkbhR
JhRD5Cb+FpZt1xVEwoOrWUYZAWr6GEzgrQGU2lpgfLWRO/CyBHIKHObldUq3
L1QkiJZFbOSrRIrHh0fP1TTgY/fsLPkTSljdZlmpu4Xoyqq+ViCW1TNfkupE
kGMx0UgIXyDEbWyuOgs4N02zeNw8i6VDx/ZXGjr+yzz+wPx/I36TMjkEF+ky
Irr3W/Uv33ipIsvSi0o8A3ECYuaq+7iD//I/V/D/XMGNV/B3XrKyrqBOOclS
rb3r11f/vLZm3wsrr9twBolewxKp19kMYdq5MLvn2cvQkziC8w7B8dhEoGfC
NOArc7j/Tt8ILHlPGw1s4IONmA3RzNGupfJGD86ci1ma3LKp/hr53DeslDXT
x+IuVF8+XAlGhERmJKW32TqGfArXvGHRwcnLr35mcUQmN4Y8f5QNPMaWuDfM
/CCk0bN4aNMcZWB7IIa4oFIqfaWgAKpeNrMYk8DP/fnGE3sDj+WqeMwbsWw/
9CugVwXtsqJxz7JpdsumNtOKBz3PV0pTqmopie0giJhbCdz06xJ9sGHhGMLM
Q6mkrtAnb22lZU7bF0TzcSaFs9gCPr9elFKpGN40Td1CUpwlPZgLmlJtGA5v
Gf1siMMMYJ6To9mPX5xhNLuhnTHUGjyQ+mS2cL2cI+3F4QgTzMOsqwKN5B+t
OU11UNnYykZSxwEv08F7f3IYtAatUcShVGymHNVTMLeCTVTM/6sWUq5Q2lfT
WTxArBklxQsdI66lY+smUtxOIK+MNGSmfT1FbPhRpQCvzGL3C45LjlV3B9ls
KuXvXMEPNFnjLhoWMAOPRKxzC3irohTEuv8jeai078wDWalN+KQoKUfEnhXd
LDXVcS1uGT/HM5Rbu72ZX8Euxmm0Ji+UUsqsNbzRxN61rtmgWvVAIFC7MDaI
vXn2Eu+HAxos+GAxqxoeM6/ZGkQ+t0VXtvL+QEGd8m46uJ4VUAV96I8c01/N
gyMsgAmoPg7aidesKMMu/EJ81J6LB0jWn+VDAEmeSxJ0QvD4QYHF1Occtmre
cGhWiLUzr3A89a7wMW7R4UmoJbIYIUQK1NCcD7CeicsUyu01lBvlZKLivHDY
gMB+IxxLMyr03g/AHYMlwQspF4P3vCrEarmiipJQtVGcn9UhBleHwiUYYQkq
5VeYmMF7azZ8njNiNObnwguIPGAogWtAAs6zGdOrArMdDG85FQo9RQpFg7v1
AS0RFiwlI4gMrOnMJvvwmnlYS7VlGBUkVaf23KyfFqcbSQasjGI1XRFxDox+
h+GQ7yQeMslLUeqHFHuWgivWfOaXkfaA/796d3GYvPsN/nsmUALmo+BJAzcz
53+K04ZSsXzh42t2ETocIupVJueigtPkcReTt7GsqREch0ZExcBOKDqvCs9i
k6CwkR/J9PwBqkw5lCaKBm0GtVK4JNwORuvhEtjre9XCUz6bjBXjAcZUhhAy
sLuO06H5RzbXjEiW74wNQ3qnqPKIY6G2So590RuSFznu82J7zHVAuedWRXe6
rXsCXnoJwtFLML8tBAEjbM0WVLiEhy1AUDRoXccG1Aau85sP4Jb/exfz0Cy0
D4GrRaLaOewIF1QvJSIHbG8p0rNbsolWEJcnDyV5IUo2h4Dm9S0KBV3f3mjc
z8ZV+ZdZESoeiN40BWNBhBeOjyNoolGscga9RAjtJQ3RnWiM6/0NUm3qFpFE
JnsQ7JAYnpq7razOsuxUsQatgNdDEU3uJHhce3mkAjqOPTDtL+SELupAAldR
qYLdIzjFW1cZKrkszKlGPgkkSjvMEXO6aQp+qdSI8VXp62JM0v6LDMJDGzsB
j2z6Pnejlh7iFcrMmKagMiecbAxP0NSYY2Ojmv5s6pDKex7nowzvdopf0odM
UFG51hA8fZmbq2QIEXqGKIfFR5p9Soq7E0vs4hoOOR6LkEcJ0lv/Xi5uftje
+vcH8F9UqOZMcwiMpQZQ6hIatZ0crtaJJrmSjwQFp0kdeto3COEn2BU8DzdK
S0PpkkMfJbkSmubroqzaI0hCTiMl2cPgm2r/NhJect38ptEIxS3ztpIUx995
7LJ+HEicTg17JMGraDGyY3QP/Bg4U1ycF67LgoIG+Zx4dCyNYaWw/D0nwyAE
LdRV6jgCRnbtnw1Vti2Ml0JDgI2+xnBElEeMQgtxySriKpXAP1S3bBBVKPLK
gVuUUsAP5X4bJgcgnVIbUdmYqA0w0YEjzOij1xRxg6iJC5RLnWAMwwwkY6Tp
E5Qel4jFM2qui6IaiMZGOkKWlMaEFLE6lE6PUoKRi+WuJHRMA7HGxa8I/FLl
hnPJw3At1F9k6iZUgXJGt4H+AKIAEkE8P1+9wE4C90iXyvXOOt28Ro0J6T6o
kKjGREVrvP6RHN3NQZik3jUWE0A6HNc5uYQg7HweANwupsS7h2pHmDUR9BHS
F4zEwlTAa2baatZmZYaLgTwAv1kVxgxJwMysfF/N8GyW9YGEubRflbYmqRFA
UkAETi3WqlspV/YBj+Yl20YkiNjmiDE5EfKyrKOi0RgCmE+acUMeFa4cEGmO
jCIG2cyXYD/5oLAueDhMV4iIRbGOOpoy5RQpkrhgMTGaGe0MtIzRDVhp1dGF
cXLw6iDuvoCa6WIrtzzvOg3N5KJXAElAY5v/OvAEhgO+BseHjwWDteDfg7gN
WRwwfXRCvqftkvLxwSwhRyB39aNbYbsuuLKj3mKN31DCYlYJkbZ2VJe68fDR
zh4rH4BCsu8wO8Bua0/Lz8jUXxS0BPsJ7XJ3ZgPZO8ms7NK3VhQ2LRySwHZI
CXljgAo6OT5/an6xWCb7Drpibe3fL2c/uLFotIA/ZDix7cRAyJdGBEM5SG9u
d5Le3OMG+z19w3Y/3uz3nLDTq91uQZ3ZT85/PErWZ7hWGNhgJrG1u7thnqE0
NAj/3U9eAcAOCCHgOq1bw39LXs/yK4TxO9PHaPVt/+OG9V0jwlMpLKsbwXrC
h7qyZV9BFXw3NGC02NjqaCiQOeNWwqU6yW6BfQQSb4m3+kZJXVxdYYL6hvxE
CwvQNiue3DhZbTc03rhbqxLI9tb9dKDBOvwOtu9leXykDb+Hna+dQoVabQy/
R6yOUKGy2deS6J1lWzV9rkCfj6v0yeuD7V2QFniBisLFS/HzFpd/M03As9IX
nf59Qs4GM8nFT8d/vTDMAh46JZ/7ftKCotecEk7etgvDWludCGB3sE7stndL
VQXv3oSuVCLufnKwwiQ0pq6D6KyY9BHkM9rjioTAa1BHB5X53Q8pSK8rUMJe
LSVEN6262BGQCUnzQf2pUpixmKmak2SxZn+vb8pvgmKwlamXuXJxr/AcM6We
vnn99OTFsdBovfBBHVU8VTX3kNai4Tl3FX3LTWTlk6WDWbbTe5s7ntFFbzTt
8Zm7k2jBXqRGi9lPHgVM0eO7DsmXFpOGsJ90K3RipyCQwUbfIgB81OgZXaSa
31i/ScLXhVw5myYc/+OG8TP2vj/2+swuarIEqEx8b6Myy6erJP1RnEZd6t/K
E3bZJuGU9xqmjHTD4MsPGhdA56dxLmzdrjYkxeCLK89JYvfCGRkp+neeUixd
5ivmQsG4lemE0lhM1Fgy/MP0Jr3Mx/kcM/SqCYLxBypZgF+xDCrxedW1kDj1
ykKEUuM/fV+XxtR/2SariOvK3EKB9V92k5euySo7bu7M8xdnyfFHBKybCa/U
l+R8XHYzgmeddcfw+7cLPpE+l92FD/km3H3U2+UAVq7HFkhH1gmxs/OIr0yW
Io7/cvr6zfnxG0QcOS1uuihkdkFkIulDRBESmY7MKLuvf9pP/ooqhM1ZNxpz
o05x8jR5CSC5XZS1zxaX3Rrxwzypl1JCOxBhl1CFEg9hNx8h3g7B7wc//K20
GAbBguxu9q0Qsf0I3NOyZ2z7WUmokUDT+W2hBqgTAs+LnIrXnAPwTCeC5Fua
pWje5F0HkYJj1UF4rZcnL49pZZPqyirycXgY9td9HJ1VJ0XiBIBj2Gh3uh4E
xg0PNZQfb2Yxuk9YiEqn/GVDpwjcU1IQ1w2hZ8BWeE6+JgpEWC0fzcknPKR4
LhLRJciD+xB4Y/2qfdF7Cebs+YyKmb85PjsfLcZGEvmQz4opFUJZPyzeHG/E
ZWW3wQKjzuw5cliewMZ/39I73urgxrgv4VNLN3coqUIYY3K0n2zt+VfeUipo
Hhgc1vsa2PZqA0OyMNTzhhFl6Ah9J/bY2fyrebnf4vps/v1G8iKfvk/O09lV
Zi6kORee4vtsFYows/lKimBW34IF3DTruHlFK+jdoCj5djlQ+Tq/sTg7vipT
9YbH15bdRGqXSwvMNmePHTWPPBPiN3OzwxgVSEOPjgVgmeJjkThBcIyCez11
FS4Nm3bIlWH1vgCspGL3QFAta6OPYFuV38AdYl2tYOrob1VtHbzJj0LS9zZ5
GQBbw4bKKeZ+Hjf284WAa6t3u9fYbT3eWkMPFm+BKeFNEbVyiRyEgKL6ZvA9
jWZk6eU4L685gAApo1XtwO0yZRrYPbehelSGaqhzvVpGPoQo/TcZVOixTVgr
E7twKPmvv/UQgtn4lRm+klwt8mE2pkIPMxWMENgtM3ypSy9xKhSeWR6kh13m
AJFw5dDxO8ViSXDgMRCsCjfeIQwjSAZBdz/NgaExp2YtZ/lAATcKYGP1l9KB
OELi9EeI3yDcVJc4pnHe0stiMbf8wJMfqhGDFP3P0oDZ/5uMrKiWfDhJbFCM
FxNBmdILZca270z2B+yhxyVil7ucQaEgEiuztMyx5tbEzOcaonOKKWIc8cQB
6Ntb9xWXXbMKGHh1PV0OGzQLoYSorUqIgtQIxNCuh7u727u4/pN09p5s0K1T
jgP4uTSXN3nMMRKRGxBa9mkXQIvvKvStCbly2JEiCe0PxDYOq7g0/HXkKna4
VC+cTcAFJDdGXsZwBYoVRMJemJM8CDz3NruM2vPPBYbWXcLC52Ahg7rRXInO
Zh/yMiBxAdIjtEOhpyXFnmaqRAfRFUVpjQVEvszsPSL9aXo0/MxbRqxVMFsM
bJBEzSknSkZ+ZefjuFkkkEzhuMK++3u3mSQeegLVF8N6sVfZ1NwOY82LYIIW
sYyGVQps3iUEkBbvOR1OYKwzPFvmR/jebDdeKjQSeZ+g9hilrSzoJdcojGgK
+hegSyKckdmnfG7YmllEj2sCk+H3+FjpCETKP/GueQrbxoN/OE5t4h4X9pT0
Kn0CSmHUxM50MYrBdTZ4T4ILtwXIZovZDUK/gcpf2hhWp70yhbhmeQKG0KFp
WmiUWRVUn8QMAk0it7E5Wlk4eIj60acsvYIzNLdHg0LB5wrQLgsOEkGRi4Qz
r4zUxv6qOq8AaX9jDhdiQseGJXJXNtRquC1QuDTFGGHEldTtS9tGXNtI/lzM
kBjpTrdInSsqb97bmER6LM56gmZHoWWSZYITTl4+PD1mfgOPnCBRwCwxzJ0X
jVIf1DIQ35SaikOf7WI2IoZolf+1SOe4xO6AoEC+gCji4SYfa7luwedIvwCV
gEZTLkYjwJ2f+qiqI4xqV13qMF2NaEjRsJiNRLLpVcGZWLYgJOZPCQK+hMqp
DbfFC0goyYlFQewsCZ76ss1uxsUdbgwuUEB67pSngwECcnpBzDY6lQQeTO81
ig7IUnL42SlEPSTPkNWkSRtv3nbyFk7HALNl4GGOEs2mV/NrW3ZRygaYz+sU
n/32T30O0O4m/Q21UbdZfgUcWp9BO0Z70Dv2RDmMU0FSRXJSBlh4cWh2fEAV
L+WaWRAe+2ZyYJFmocrB1e87PcjwQ/Bz14UEgLITljAypQvuGeh2nI3mLkHg
q+cPJOPZp+hUKAxPrnpaVh/CyjEsdnc4wNqxUSuQ2/LsGExdc7p8Ds0rQRWK
1ta63S7mWEO4JLvRMUhV8rnR0OHc9v/1OcA7ggBVShiurcHAAAuSGFraO8j2
EdVgD0LtlTAShimkVEN67QE16A0XRbfj/+zv88rf8Z2LbkpKi3ckhaK6Rc1g
XQXH4grYzQUhVOkuTBm5hxnv5x5UDAi2X1dOBTuAIVhBLQ3T7ZGU6JkRFzbk
vJ6qwkHAFCi3gV6Dm0UCMZSE2oeML2oJ0agOTp52nP0B7mmb2o8l1Kdk0mmB
ra2FbbfQxNaC6alKdrroFdpT/Gn7Nk0v7UUJdrlF7QDTtZ1j3NzvzXS5UdYu
wTYuAaxoh+d6Z4Oeb6gc4AeHgIwRxg4u8MbZpuUhkRZayM9aIoUz6/oyPFQZ
487KY8QahSiww+Xoj9jtSWzgwZsyjQD1yeNzocL79RPcvZcJQmGRr5+khcFZ
cY6rAdTKDB/6rEdNbMT+BNQ46sMlUoAoyEfCSi/HDI7QQKcWWVWvRKRnI5tA
2R8wegkusdJgMSQ/5GHWsvDBckN9tyjQmLAlS0p1uY76HHtYxRSyTzDV8Vmr
GWMZzBTysdyJRL9o/ER+LcYx2pxQMbV4BjYdoywEdEnuDSQvEMTJakDGAmD7
BDuOCSrybAMpxGujSmGWFJIUDaWaJi9TvNAAMJ4EiazcEIJ8tC/Jvl4ioy3c
nPz85sTQDSYnDZ2RF312chC8vDe6Rdbb6Hlpb1h5RRcaGpj9BKAF/5RPMph5
Xk7gkUl6EwyEk2mpSxgVU5Ubzz4Za9XJoISXFBF1QGO1aBGq8pGsxON9wLqn
yg0ZWpug9Z+ODqUQWgMQt6qj5FRhVCp5eDYljmpTsInvOpX4J5fRxVXQ8OTa
6lD65N5ZDGru0UtsZkMdhAsWhsJXCArsJHFU8EikJy3UnuNhwIimd14JX1gw
h42fBuKbK77HKppXeJDfD/dROu739jlCBD08voPMw0iO+X1KBaEgpl7rL9I7
9vObF9iawNGk0aQzHOccLW2r+umIgj0XWmItf5Jo+emTOA7tpdHvK9KEolEW
ZokNcnzk0U9sqOS6GJZ08FKwJqG+QaZy5wPDI4tSq6Y4b/M6DNtAOCX73rFQ
mYTiK/Fgip5YIw4bJXSNUzGs880AirKS/IrLOZlANFt54hQu16YaCB7RusF4
IiPUYQBfUpcXSi2zEYMPDXO8wrE5sX6a3Y6dH00lt+p6cajp38zySQqITu4Z
bYUz53xitIcJGnUd4aM0grWw/Xc9pCeU/ic35rRVU95lfpx95FpQc9v2BQ+t
6DCipFNW9ik2S8Wz2lvaLCBjZrFvvZSabtDJTiDdgD3DkF3mDpwAssLMlNr5
bSmU0BgdbVfOwnWdu8IS9BDkPu9HmJ5CrIkIHz4+gp3yrpvyNZcLxBzh5BXh
dpChep6R1Fa5LZkLhpAVcA71uayB0XAF22qwNJgxxLqVIuUaCUCBFFirvUDw
pUshZjbcotYji8CaPbTsDHpiP4cvf5hNxnh5ToD0AfCDIPr9SDO2ZGyGC9QL
Sr/MgzBjgW8S7JHmGi52Io+ihgSvUGQY8C+2xwoKEJbjVdd8/FK2XT+uVSSC
InFX7+de5itixLjaL9lEKfqhfr5igo3v7zFk7peXsqVCs4+Qr8xW11WSa5oK
ltAyKFmE8PxUyES04qflcjUpHV6XS/Nv7EC2ejWqqzIuBSV8lF01dx+R86Lw
W+WCNFZb03V1atnq/7MYc1iv9Nu4MlZGyz6atyEfMlZVD4Qae3O6lSbWC124
ijrEhjVDdeZ74Cc041gOed1ydirfeXeCXBrmAcMrjLILiW1dO4uuzELty5a/
L9WUH5ThkWcI3qfHXRaE8+Pey1QdWnKZa9kQph1JLjKMG39G8fzR1i6WTkHF
teaFilbhzshlrqSOrUDq0BijK06N857UD/5IeHpa+RHASqjWbekhs+kYHQqe
h3F0mGncjKkC3pyMy/u+LrVKXhXPd6cqDfjDJdv4grBuHRqZRLqxjGuodTN5
feO8I0LnaT1CsQI2FnNCcw/7PlTX9G61tqVR1WAAkoSBKeBXzDNlpPBM+p4p
/7CaEw5rudt0uSJMnA7gCWFSSShwCVZ1CUZ1V4w6zHyStaS7pex4tlg2ayTM
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
NwMA

-->

</rfc>
