<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wagner-tls-keysharepqc-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Larger Data in TLS 1.3 Handshake">Larger Data in TLS 1.3 Handshake</title>
    <seriesInfo name="Internet-Draft" value="draft-wagner-tls-keysharepqc-08"/>
    <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
      <organization>UNC Charlotte</organization>
      <address>
        <postal>
          <street>9201 University City Blvd</street>
          <city>Charlotte, NC</city>
          <code>28223</code>
          <country>USA</country>
        </postal>
        <email>jwagne31@charlotte.edu</email>
      </address>
    </author>
    <author initials="Y." surname="Wang" fullname="Yongge Wang">
      <organization>UNC Charlotte</organization>
      <address>
        <postal>
          <street>9201 University City Blvd</street>
          <city>Charlotte, NC</city>
          <code>28223</code>
          <country>USA</country>
        </postal>
        <email>yongge.wang@charlotte.edu</email>
      </address>
    </author>
    <author initials="V." surname="Smyslov" fullname="Valery Smyslov">
      <organization>ELVIS-PLUS</organization>
      <address>
        <postal>
          <street>PO Box 81</street>
          <city>Moscow (Zelenograd)</city>
          <code>124460</code>
          <country>Russian Federation</country>
        </postal>
        <email>svan@elvis.ru</email>
      </address>
    </author>
    <author initials="Y." surname="Nir" fullname="Yoav Nir">
      <organization>Dell Technologies</organization>
      <address>
        <postal>
          <street>9 Andrei Sakharov St</street>
          <city>Haifa</city>
          <code>3190500</code>
          <country>Israel</country>
        </postal>
        <email>ynir.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="20"/>
    <area/>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>key share</keyword>
    <keyword>Classic McEliece</keyword>
    <abstract>
      <?line 290?>

<t>This memo discusses possible modifications of TLS 1.3, aimed to allow trasferring data larger than 64 Kbytes in handshake messages.
One possible application for this feature is to allow using post-quantum Key Encapsulation Method that have large public key or ciphertext size
(like Classic McEliece).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://jwagrunner.github.io/internet-draft/draft-wagner-tls-keysharepqc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wagner-tls-keysharepqc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security  mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/jwagrunner/internet-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 296?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Transport Layer Security (TLS) Protocol Version 1.3 (<xref target="RFC8446"/>) is widely used to protect network traffic. To establish secure connection client and server first perform a "handshake" during which they negotiate cipher suites, compute shared session key and perform one-side or mutual authentication. TLS 1.3 handshake protocol consists of several messages, and while the size of each handshake message can be up to 2^24 bytes the size of some individual data blocks inside these messages is limited to 2^16 bytes. This limitation makes it impossible to transfer larger data blocks in TLS 1.3 handshake.</t>
      <t>One possible application for larger data in TLS 1.3 handshake is post-quantum Key Encapsulation Mechanisms (KEM). Large public key algorithms, including the code-based cryptographic algorithm family Classic McEliece (see <xref target="I-D.josefsson-mceliece"/>, <xref target="NIST"/>, <xref target="DJB25"/>, <xref target="RJM78"/>, and <xref target="OQS24"/>), cannot be easily implemented in TLS 1.3 due to the current key share limitations of 65,535 Bytes. It is important to consider such uses of algorithms given that Classic McEliece is a Round 4 algorithm submitted in the National Institute of Standards and Technology (NIST) standardization process (see <xref target="PQC25"/>). Thus, enabling the use of Classic McEliece algorithms to be used in TLS 1.3 key exchanges and also presenting them as an alternative option to replace classical algorithms for future protection against the threat of attackers in possession of powerful quantum computers that will break classical encryption.</t>
      <t>This document discusses the possible ways how the TLS 1.3 handshake can accommodate data larger than 64 Kbytes with an immediate goal to be able to run large public key KEMs, but not limited to.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="possible-solutions-to-the-problem">
      <name>Possible Solutions to the Problem</name>
      <section anchor="new-key-share-extension">
        <name>New Key Share Extension</name>
        <t>Based on the key share extension from <xref target="RFC8446"/> is introduced a new key share extension in this document, "key_share_pqc". This is reflected in this document and is represented as KeyShareEntryPQC below, based on the existing KeyShareEntry from <xref target="RFC8446"/>. However, this is modified along with the existing KeyShareEntry structure to test if the key exchange algorithm chosen in a TLS 1.3 connection belongs from the Classic McEliece family, and if it is, then KeyShareEntryPQC is constructed. If the opposite is true, where the key exchange algorithm is not from the Classic McEliece family, then KeyShareEntry is constructed. Note that the "key_exchange" fields are expanded in KeyShareEntryPQC to accommodate a large public key that is greater than 65,535 Bytes:</t>
        <artwork><![CDATA[

struct {
  NamedGroup group;
  select (KeyShareEntry.group) {
  case classicmceliece348864:       Empty;
  case classicmceliece460896:       Empty;
  case classicmceliece6688128:      Empty;
  case classicmceliece6960119:      Empty;
  case classicmceliece8192128:      Empty;
  case x25519classicmceliece348864: Empty;
  case rlcel5:                      Empty;
  case other large PQ algorithm1:   Empty;
  case other large PQ algorithm2:   Empty;
  case etc.:                        Empty;
  default:                          opaque key_exchange<1..2^16-1>;
  }
} KeyShareEntry;

struct {
  NamedGroup group;
  select (KeyShareEntryPQC.group) {
  case classicmceliece348864:       opaque key_exchange<1..2^24-1>;
  case classicmceliece460896:       opaque key_exchange<1..2^24-1>;
  case classicmceliece6688128:      opaque key_exchange<1..2^24-1>;
  case classicmceliece6960119:      opaque key_exchange<1..2^24-1>;
  case classicmceliece8192128:      opaque key_exchange<1..2^24-1>;
  case x25519classicmceliece348864: opaque key_exchange<1..2^24-1>;
  case rlcel5:                      opaque key_exchange<1..2^24-1>;
  case other large PQ algorithm1:   opaque key_exchange<1..2^24-1>;
  case other large PQ algorithm2:   opaque key_exchange<1..2^24-1>;
  case etc.:                        opaque key_exchange<1..2^24-1>;
  default:                          Empty;
  }
} KeyShareEntryPQC;

]]></artwork>
        <t>Note: PQ (Post-Quantum) where "other large PQ algorithm1" and "other large PQ algorithm2" and "etc." above indicates that one or more future post-quantum algorithms with large public key sizes can be added by just defining a constant for each of these post-quantum algorithms.</t>
        <t>Another Note: An additional algorithm is included in the above, "rlcel5", since it also has a large public key beyond the 65,535 Byte limit. See Section 7 for more information discussing this RLCE algorithm.</t>
        <t>This is then applied to the existing KeyShareClientHello structure, which originates from <xref target="RFC8446"/>, that now contains an additional field for KeyShareEntryPQC:</t>
        <artwork><![CDATA[

    struct {
       KeyShareEntry client_shares<0..2^16-1>;
       KeyShareEntryPQC client_shares<0..2^24-1>;
    } KeyShareClientHello;

]]></artwork>
        <t>Since the KeyShareClientHello needs to be expanded to accommodate for the KeyShareEntryPQC struct, the same applies to the existing Extension struct, originated as well from <xref target="RFC8446"/> but "extension_data" is now expanded:</t>
        <artwork><![CDATA[

    struct {
      ExtensionType extension_type;
      opaque extension_data<0..2^24-1>;
    } Extension;

]]></artwork>
        <t>Since there is a new key share extension to accommodate keys larger than the 65,535 Byte limit (KeyShareEntryPQC), this is reflected in the existing ExtensionType structure from <xref target="RFC8446"/> where this is the new type that holds a value of TBD, "key_share_pqc":</t>
        <artwork><![CDATA[

enum {
    server_name(0),                             /* RFC 6066 */
    max_fragment_length(1),                     /* RFC 6066 */
    status_request(5),                          /* RFC 6066 */
    supported_groups(10),                       /* RFC 8422, 7919 */
    signature_algorithms(13),                   /* RFC 8446 */
    use_srtp(14),                               /* RFC 5764 */
    heartbeat(15),                              /* RFC 6520 */
    application_layer_protocol_negotiation(16), /* RFC 7301 */
    signed_certificate_timestamp(18),           /* RFC 6962 */
    client_certificate_type(19),                /* RFC 7250 */
    server_certificate_type(20),                /* RFC 7250 */
    padding(21),                                /* RFC 7685 */
    pre_shared_key(41),                         /* RFC 8446 */
    early_data(42),                             /* RFC 8446 */
    supported_versions(43),                     /* RFC 8446 */
    cookie(44),                                 /* RFC 8446 */
    psk_key_exchange_modes(45),                 /* RFC 8446 */
    certificate_authorities(47),                /* RFC 8446 */
    oid_filters(48),                            /* RFC 8446 */
    post_handshake_auth(49),                    /* RFC 8446 */
    signature_algorithms_cert(50),              /* RFC 8446 */
    key_share(51),                              /* RFC 8446 */
    key_share_pqc(TBD),
    (65535)
} ExtensionType;

]]></artwork>
        <t>Since the "extension_data" field will be much larger for a KeyShareClientHello that contains a large public key that is greater than the previously defined 65,535 Byte limit, an example being a Classic McEliece public key, the server must be able to handle this circumstance when receiving the ClientHello message. One way is to compare the value for a packet that contains extensions including a large public key from the ClientHello message to a macro constant (for example,  "CLIENT_HELLO_MIN_EXT_LENGTH" as defined in this introduced TLS implementation in this paper, see <xref target="SRVR1650"/> and <xref target="SRVR1211"/>) and if this packet value is longer than this constant, the server will change the way it normally handles all of the extensions. This constant could be easily modified in the aforementioned TLS Open Secure Socket Layer (OpenSSL) implementation. The process of how the server collects the extensions from a ClientHello message must also be modified, as the server must be able to process the new key share extension differently than the other extensions, should the server see this inside a ClientHello message. For example, see <xref target="EXT652"/>.</t>
        <t>The ServerHello message is modified as well where the KeyShareServerHello structure originates from <xref target="RFC8446"/>:</t>
        <artwork><![CDATA[

struct {
    KeyShareEntry server_share;
    KeyShareEntryPQC server_sharePQC;
} KeyShareServerHello;

]]></artwork>
        <t>This new "key_share_pqc" extension is therefore can be implemented in the full TLS handshake, where Figure 1 from <xref target="RFC8446"/> is modified to be the following:</t>
        <figure>
          <name>Full TLS Handshake with "key_share_pqc" extension</name>
          <artwork><![CDATA[

       Client                                           Server

Key  ^ ClientHello
Exch | + key_share*
     | + key_share_pqc*
     | + signature_algorithms*
     | + psk_key_exchange_modes*
     v + pre_shared_key*       -------->
                                              ServerHello  ^ Key
                                             + key_share*  | Exch
                                         + key_share_pqc*  |
                                        + pre_shared_key*  v
                                    {EncryptedExtensions}  ^  Server
                                    {CertificateRequest*}  v  Params
                                           {Certificate*}  ^
                                     {CertificateVerify*}  | Auth
                                               {Finished}  v
                           <--------  [Application Data*]
     ^ {Certificate*}
Auth | {CertificateVerify*}
     v {Finished}          -------->
       [Application Data]  <------->  [Application Data]

              +  Indicates noteworthy extensions sent in the
                 previously noted message.

              *  Indicates optional or situation-dependent
                 messages/extensions that are not always sent.

              {} Indicates messages protected using keys
                 derived from a [sender]_handshake_traffic_secret.

              [] Indicates messages protected using keys
                 derived from [sender]_application_traffic_secret_N.


]]></artwork>
        </figure>
        <!--
## NamedGroup Addition for Classic McEliece

The values for Classic McEliece algorithms and the hybrid combination "x25519classicmceliece348864" (see Section 8 for more information) are added below in the NamedGroup struct that originates from [RFC8446]:

<figure><artwork>

enum {

      /* Elliptic Curve Groups (ECDHE) */
      secp256r1(0x0017), secp384r1(0x0018), secp521r1(0x0019),
      x25519(0x001D), x448(0x001E),

      /* Finite Field Groups (DHE) */
      ffdhe2048(0x0100), ffdhe3072(0x0101), ffdhe4096(0x0102),
      ffdhe6144(0x0103), ffdhe8192(0x0104),

      /* Reserved Code Points */
      ffdhe_private_use(0x01FC..0x01FF),
      ecdhe_private_use(0xFE00..0xFEFF),
      (0xFFFF)

      /* Classic McEliece Algorithms */
      classicmceliece6688128(TBD),
      classicmceliece6960119(TBD),
      classicmceliece8192128(TBD),

      /* RLCE Algorithm */
      rlcel5(TBD),
  } NamedGroup;

</artwork></figure>

Note: An RLCE algorithm is also added above. See Section 7 for more information discussing this RLCE algorithm.

-->

<section anchor="modification-to-pskkeyexchangemode-structure">
          <name>Modification to PskKeyExchangeMode structure</name>
          <t>There are two key establishments that are considered when examining the structure of PskKeyExchangeMode from <xref target="RFC8446"/>. Since there is no Diffie Hellman algorithm in use with a pre-shared key (PSK) when considering the use of a Classic McEliece algorithm for key exchange, then there must be another key exchange mode to utilize in this case. Therefore, this is reflected in the existing <xref target="RFC8446"/> PskKeyExchangeMode structure below where "psk_pqc_ke(2)" is added:</t>
          <artwork><![CDATA[

enum {
 psk_ke(0), psk_dhe_ke(1), psk_pqc_ke(2), (255)
} PskKeyExchangeMode;

]]></artwork>
          <t>When selecting a Classic McEliece algorithm and using an external PSK or a resumption PSK, "02" will then be listed for the "psk_key_exchange_modes" extension along with the new "key_share_pqc" extension in the ClientHello message. At the end of this ClientHello message is printed the "00 29" extension (pre-shared key extension), where the PSK identity should be printed and is mapped to the binder that should proceed it in this pre-shared key extension. The ServerHello message will also contain the new "key_share_pqc" extension, and will as well contain the pre-shared key extension, where it should contain "00 00" at the end which represents the server selecting the PSK identity of 0 (for example: the Selected Identity of 0 shown in the pre-shared key extension in a ServerHello message in this Wireshark example: <xref target="RASHOK20"/>). Overall, this is a new key exchange selecting a Classic McEliece algorithm using a PSK, whether its external or resumption, and this can be demonstrated in the TLS Implementation below.</t>
          <t>As stated above, resumption PSK with a Classic McEliece algorithm chosen as a key exchange algorithm involves the use of the new "key_share_pqc" extension for both the ClientHello and ServerHello messages. Thus, the Resumption and PSK Message Flow diagram (which originates from Figure 3 of <xref target="RFC8446"/>) is derived for this situation and has been tested with the TLS Implementation mentioned in this document:</t>
          <figure>
            <name>Resumption with "key_share_pqc" extension</name>
            <artwork><![CDATA[

      Client                                 Server

Initial Handshake
      ClientHello
         key_share_pqc         --------->
                                             ServerHello
                                               key_share_pqc
                                             EncryptedExtensions
                                             Certificate
                                             CertificateVerify
                              <---------     Finished
      Finished                ---------->
                              <---------     NewSessionTicket
                              <---------     NewSessionTicket


Subsequent Handshake
       ClientHello
          key_share_pqc
          pre_shared_key       --------->
                                               ServerHello
                                                  key_share_pqc
                                                  pre_shared_key
                                               EncryptedExtensions
                              <---------       Finished
       Finished               ---------->
                              <---------       NewSessionTicket


]]></artwork>
          </figure>
        </section>
        <section anchor="hello-retry-request-using-new-key-share-extension">
          <name>Hello Retry Request using New Key Share Extension</name>
          <t>In a Hello Retry Request scenario, the first ClientHello message will have two algorithms listed in its "supported_groups" extension, where the numerical identifier (NID) for the algorithm that is no longer recognized by the server as an acceptable algorithm will first be listed in this extension, followed by the NID for a Classic McEliece algorithm. In this same ClientHello message is where "02" will be listed in the "psk_key_exchange_modes" extension, and the original "key_share" extension (value 51) is also shown with its public key for the unacceptable algorithm.</t>
          <t>When the server responds with the HelloRetryRequest message, the random is the same special value for SHA-256 as indicated in Section 4.1.3 of <xref target="RFC8446"/>, and has the same exact fields ("legacy_version", "random", "legacy_session_id_echo", "cipher_suite", "legacy_compression_method", and "extensions") as in the ServerHello structure indicated in <xref target="RFC8446"/> (see section 4.1.3). The extensions field not only consists of the "supported_versions" extension, but also the new "key_share_pqc" extension where the server offers the client the Classic McEliece algorithm NID it shares with the client.</t>
          <t>When the client sends a second ClientHello in response to the HelloRetryRequest, this will be the same message as the first ClientHello with one exception: the original "key_share" extension is replaced with the new "key_share_pqc" extension which contains the large public key of a Classic McEliece algorithm. Then the ServerHello message will then respond containing the new "key_share_pqc" extension.</t>
          <t>Therefore, this Hello Retry Request scenario is reflected in Figure 3 below, which is a modification of Figure 2 in <xref target="RFC8446"/>, and this can be demonstrated in the TLS Implementation mentioned in this documentation:</t>
          <figure>
            <name>Handshake with HelloRetryRequest with "key_share_pqc" extension</name>
            <artwork><![CDATA[

        Client                                    Server

        ClientHello
          key_share             -------->
                                                  HelloRetryRequest
                                <--------           key_share_pqc
        ClientHello
          key_share_pqc         -------->
                                                  ServerHello
                                                    key_share_pqc
                                                  EncryptedExtensions
                                                  Certificate
                                                  CertificateVerify
                                <--------         Finished
         Finished               -------->
                                <--------         NewSessionTicket
                                <--------         NewSessionTicket

]]></artwork>
          </figure>
          <t>Note: When the client processes the HelloRetryRequest message, it must mark the new "key_share_pqc" extension as an unsolicited extension, which would be an additional exception to the rule noted in <xref target="RFC8446"/> regarding extension responses <bcp14>MUST NOT</bcp14> be sent if the corresponding extension requests were not sent by a remote endpoint (see section 4.2 in <xref target="RFC8446"/>).</t>
          <t>The following structure would remain intact from <xref target="RFC8446"/>, since support would already be provided for a Classic McEliece algorithm being in NamedGroup (see Section 4):</t>
          <artwork><![CDATA[

struct {
    NamedGroup selected_group;
} KeyShareHelloRetryRequest;

]]></artwork>
          <t>When a Hello Retry Request involves a PSK in use with a Classic McEliece algorithm, both the first and second ClientHello messages (the second one being sent after a HelloRetryRequest message) will contain the exact same content except the first ClientHello will have the original "key_share" extension and the second ClientHello will have the new "key_share_pqc" extension. Another exception includes different binders in both ClientHello messages' pre-shared key extensions. This pre-shared key extension appears as the last extension in both ClientHello messages as well in the ServerHello message.</t>
        </section>
        <section anchor="other-use-case-rlce-algorithm">
          <name>Other Use Case (RLCE Algorithm)</name>
          <t>The Random Linear Code-based Encryption (RLCE) algorithm group (see <xref target="RLCE17"/>) is another code-based cryptographic scheme (NIST Round 1 <xref target="NIST1"/>). "rlcel5" is a RLCE algorithm from this group (where the public key size is 1,232,001 Bytes) that can be used in the new key share extension, and can be demonstrated for use for TLS key exchange in the TLS Implementation mentioned in this document.</t>
        </section>
        <section anchor="hybrid-combination-x25519classicmceliece348864">
          <name>Hybrid Combination "x25519classicmceliece348864"</name>
          <t>"x25519classicmceliece348864" is a hybrid mechanism introduced in this document that combines both classicmceliece348864 and x25519 <xref target="RFC7748"/> in TLS key exchanges. The experiment TLS implementation presented in this document, which uses the fork <xref target="JWYWPROV"/> of the oqs-provider <xref target="OQSPROV"/>, is one example of using x25519classicmceliece348864 in a hybrid key exchange; when x25519classicmceliece348864 is chosen in this circumstance, it uses the "concatenating" method mentioned in <xref target="I-D.ietf-tls-hybrid-design"/> in the new key_share_pqc extension. In the ClientHello message, this new key share extension contains both the Classic McEliece public key and X25519 key concatenated together. In the ServerHello message, this new key share extension then contains the classicmceliece348864 ciphertext and X25519 key concatenated together.</t>
        </section>
        <section anchor="tls-implementation">
          <name>TLS Implementation</name>
          <t>A TLS implementation exists that tests the use of a new key share extension for both the ClientHello and ServerHello messages that is implemented for OpenSSL, and also where the mentioned Classic McEliece algorithms can be chosen for key exchange when initiating TLS connections. It can be accessed here: <xref target="JWYW25"/>.</t>
        </section>
        <section anchor="summary-of-changes-from-rfc-8446">
          <name>Summary of Changes from RFC 8446</name>
          <t>A new structure is introduced of KeyShareEntryPQC along with modifications of existing structures including KeyShareEntry, NamedGroup, Extension, ExtensionType, KeyShareClientHello, and KeyShareServerHello. Adding a new ExtensionType of "key_share_pqc" allows for the addition of this new structure of KeyShareEntryPQC, which is based on the existing KeyShareEntry, but "key_exchange" has been expanded and select statements are added to both structures which depend on the KeyShareEntry.group or KeyShareEntryPQC.group being called in a TLS connection for key exchange. This new KeyShareEntryPQC will now also appear in existing structures of KeyShareClientHello and KeyShareServerHello. Thus, the "extension_data" is expanded in the existing Extension structure.</t>
        </section>
      </section>
      <section anchor="post-handshake-key-exchange-with-extended-key-update">
        <name>Post-handshake Key Exchange with Extended Key Update</name>
        <t>Extended Key Update <xref target="I-D.ietf-tls-extended-key-update"/> is a TLS 1.3 extension that allows to perform post-handshake key exchange
in order to update session keys. This mechanism defines new TLS 1.3 handshake message type - ExtendedKeyUpdate.
Since TLS 1.3 handshake messages can be up to 2^24 bytes long, this allows to transfer large key shares using this message.</t>
        <t>Currently, the functionality of Extended Key Update is limited to only allow
using exactly the same key exchange mechanism as was negotiated and used during the handshake. However, the mechanism can be
extended to also allow performing a different key exchange mechanism, that could be additionally negotiated during the handshake.
In this case a modified Extended Key Update must be run immediately after the initial handshake and before
any application data sent over the connection. Thus, the resulting key exchange will always be non-composite hybrid key exchange, similar to what
IKEv2 does (see <xref target="RFC9370"/>).</t>
        <figure>
          <name>Additional Key Exchange with Extended Key Update</name>
          <artwork><![CDATA[

        Client                                           Server

 Key  ^ ClientHello
 Exch | + key_share
      | + signature_algorithms
      v + additional_key_exchange
                              -------->
                                                   ServerHello  ^ Key
                                                   + key_share  | Exch
                                                                v
                                         {EncryptedExtensions   ^ Server
                                    + additional_key_exchange}  | Params
                                          {CertificateRequest}  v
                                                 {Certificate}  ^
                                           {CertificateVerify}  | Auth
                                                    {Finished}  v
                                <--------
      ^ {Certificate}
 Auth | {CertificateVerify}
      v {Finished}              -------->
  [EKU(key_update_request       -------->
        (with key_share))]
                                <-------- [EKU(key_update_response
                                            (with key_share))]
                                         # Server derives new secrets
                                         # and updates SEND keys here
 # Client derives new secrets
 # and updates RECEIVE keys here
         [EKU(new_key_update)]  -------->
 # Client updates SEND keys here
                                     # Server updates RECEIVE keys here

        [Application Data]      <------->        [Application Data]

]]></artwork>
        </figure>
      </section>
      <section anchor="new-auxhandshakedata-handshake-message">
        <name>New AuxHandshakeData Handshake Message</name>
        <t>If there is a need to send large pieces of data that do not fit into
the existing TLS 1.3 handshake messages during the handshake (e.g. in the
case of PQ KEM with large public keys, like Classic McEliece) then the
client indicates this with new extension of type aux_data (Figure 7)
in the ClientHello message.  This extension contains no data.</t>
        <t>If the server supports this extension, it replies with the
HelloRetryRequest that also includes the aux_data extension.</t>
        <t>Once HelloRetryRequest has been received, the client repeats
ClientHello and immediately after that sends a new message
AuxHandshakeData (Figure 5) which actually contains large data.  The
server then responds with ServerHello that also is immediately
followed by AuxHandshakeData message, preceding all other other
handshake messages (e.g. EncryptedExtensions, etc.).</t>
        <t>The data in the AuxHandshakeData message is organized as an array of
AuxHandshakeDataEntry (Figure 4) structures.  When a large piece of data
should be used in the protocol, it is referenced from the
corresponding item in the ClientHello or ServerHello by its index in
the AuxHandshakeData message.</t>
        <t>For example, with large public keys for some PQ KEMs (like Classic
McEliece) the key_share representation would be
LargeKeyShareRepresentation (Figure 6), which contains the type of
representation and, depending on that type, either the key share
itself (e.g. for Classic McEliece ciphertext, which is small) or the
index of AuxHandshakeDataEntry data elements in the AuxHandshakeData
message, which will contain the large key share (e.g. a Classic
McEliece public key).</t>
        <figure>
          <name>Using the AuxHandshakeData Message in TLS Handshake</name>
          <artwork><![CDATA[

           Client                                               Server

           ClientHello
           + key_share
           + aux_data             -------->
                                                     HelloRetryRequest
                                                           + key_share
                                  <--------                 + aux_data
           ClientHello
           + key_share
           + aux_data
           AuxHandshakeData*      -------->
                                                           ServerHello
                                                           + key_share
                                                            + aux_data
                                                     AuxHandshakeData*
                                                 {EncryptedExtensions}
                                                 {CertificateRequest*}
                                                        {Certificate*}
                                                  {CertificateVerify*}
                                                            {Finished}
                                   <--------       [Application Data*]
           {Certificate*}
           {CertificateVerify*}
           {Finished}              -------->
           [Application Data]      <------->        [Application Data]

]]></artwork>
        </figure>
        <figure>
          <name>Definition of AuxHandshakeData</name>
          <artwork><![CDATA[

         enum {
             ...
             aux_handshake_data(TBA),
             (65535)
         } HandshakeType;

         struct {
             HandshakeType msg_type;    /* handshake type */
             uint24 length;             /* bytes in message */
             select (Handshake.msg_type) {
                 ...
                 case aux_handshake_data:    AuxHandshakeData;
             };
         } Handshake;

]]></artwork>
        </figure>
        <figure>
          <name>Format of AuxHandshakeData</name>
          <artwork><![CDATA[

           struct {
               opaque  data<0..2^24-1>;
           } AuxHandshakeDataEntry;

           struct {
               AuxHandshakeDataEntry   aux_data<0..2^24-1>;
           } AuxHandshakeData;

       struct {
           uint8 form;
           select (LargeKeyShareRepresentation.type) {
               case 0:     uint16      aux_data_entry_index;
               default:    opaque      key_exchange<0..2^16-1>;
           };
       } LargeKeyShareRepresentation;

       enum {
               ...
               aux_data(TBD),
               (65535)
           } ExtensionType;

       struct {
       } AuxData;

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="analyzing-of-the-proposed-solutions">
      <name>Analyzing of the Proposed Solutions</name>
      <t>This document proposes three possible solutions for transferring large amounts of data during the TLS 1.3 handshake.</t>
      <ol spacing="normal" type="1"><li>
          <t>New Key Share Extension  </t>
          <t>
This is a straightforward solution to the problem, it changes the format of the ClientHello and the ServerHello messages in a non-backward compatible way.  </t>
          <t>
Advantages:  </t>
          <ul spacing="normal">
            <li>
              <t>It is the most efficient solution in terms of round trips - the number of round trips needed to establish the TLS connection does not increase.</t>
            </li>
          </ul>
          <t>
Disadvantages:  </t>
          <ul spacing="normal">
            <li>
              <t>It can only be used in environments when clients know beforehand that servers they contact support this extension.</t>
            </li>
            <li>
              <t>It deals only with key shares, thus it is not a generic solution to transferring large data in handshake.</t>
            </li>
            <li>
              <t>Since the format of the ClientHello is changed, it is unclear how this extension will interact with Encrypted ClientHello extension.</t>
            </li>
            <li>
              <t>It is not clear how middleboxes will handle modified ClientHello and ServerHello</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Modified Extended Key Update  </t>
          <t>
Advantages:  </t>
          <ul spacing="normal">
            <li>
              <t>This solution keeps the current TLS 1.3 handshake intact, thus making it friendly to middleboxes.</t>
            </li>
          </ul>
          <t>
Disadvantages:  </t>
          <ul spacing="normal">
            <li>
              <t>The number of round trips needed before application data can be sent increases.</t>
            </li>
            <li>
              <t>It complicates the TLS state machine - application data should not be sent once the initial handshake is complete, instead it can only be sent after the modified Extended Key Update immediately following the initial handshake completes.</t>
            </li>
            <li>
              <t>It deals only with key shares, thus it is not a generic solution to transferring large data in a handshake.</t>
            </li>
            <li>
              <t>It is unclear how this would interact with regular Extended Key Update extension either only initial key exchange algorithm is used for rekey using Extended Key Update, or this extension neede to be modified to be able to perform several successive key exchanges (similar to <xref target="RFC9370"/>).</t>
            </li>
          </ul>
        </li>
        <li>
          <t>New AuxHandshakeData Handshake Message  </t>
          <t>
Advantages:  </t>
          <ul spacing="normal">
            <li>
              <t>This solution keeps the current ClientHello and ServerHello messages intact, but adds a new handshake message following them. It seems that this is more friendly to middleboxes than modifying the format of CH and SH, but this is not for sure.</t>
            </li>
            <li>
              <t>This is a generic solution, allowing to transfer large data of any kind in a TLS handshake.</t>
            </li>
            <li>
              <t>Since the ClientHello format remains the same, it seems that this solution can be used with ECH (requires more investigations).</t>
            </li>
          </ul>
          <t>
Disadvantages:  </t>
          <ul spacing="normal">
            <li>
              <t>The solution relies on HelloRetryRequest, thus the number of round trips needed to complete a handshake increases.</t>
            </li>
          </ul>
        </li>
      </ol>
      <!--
# IANA Considerations

Probable request for the new key share proposed in this document "key_share_pqc" to have a value in the registry specified for TLS ExtensionType Values (see [TLSE]):

Extension Name: key_share_pqc

Value: TBD



Probable request for the registry for TLS Supported Groups to have the proper values assigned to the Classic McEliece and the RLCE algorithms mentioned in this document; also requested is the hybrid combination "x25519classicmceliece348864" (see [TLSP]):

Description: x25519classicmceliece348864

Value: TBD



Description: classicmceliece348864

Value: TBD



Description: classicmceliece460896

Value: TBD



Description: classicmceliece6688128

Value: TBD



Description: classicmceliece6960119

Value: TBD



Description: classicmceliece8192128

Value: TBD



Description: rlcel5

Value: TBD
-->

</section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thank you D. J. Bernstein and Simon Josefsson as they advised to have at least one reference for the description of Classic McEliece. Thank you also to Eliot Lear for his feedback on other fields regarding the next algorithm needed.</t>
      <t>Thank you as well to Martin Thomson and David Schinazi, as their Internet Draft template was used to generate this document, before the authors' information was added. The authors also want to thank the contributors of the kramdown-rfc GitHub repository, as their examples helped with the format of the figures, references, and authors' information presented in this document. Thank you also to Joyce Reynolds and Robert Braden, as their Internet Draft <xref target="JR04"/> was helpful as a guide on how to write the citations in this document (i.e., using citation brackets with author's initials, year, etc.).</t>
      <t>Using Extended Key Update mechanism for transferring large key shares was proposed by John Mattsson.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="I-D.josefsson-mceliece">
          <front>
            <title>Classic McEliece</title>
            <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
         </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies Classic McEliece, a Key Encapsulation Method
   (KEM) designed for IND-CCA2 security, even against quantum computers.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-josefsson-mceliece/.

   Source for this draft and an issue tracker can be found at
   https://gitlab.com/jas/ietf-mceliece.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-josefsson-mceliece-03"/>
        </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="NIST" target="https://csrc.nist.gov/projects/post-quantum-cryptography/round-4-submissions">
          <front>
            <title>Classic McEliece</title>
            <author initials="D." surname="Bernstein" fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author initials="T." surname="Chou" fullname="Tung Chou">
              <organization/>
            </author>
            <author initials="C." surname="Cid" fullname="Carlos Cid">
              <organization/>
            </author>
            <author initials="J." surname="Gilcher" fullname="Jan Gilcher">
              <organization/>
            </author>
            <author initials="T." surname="Lange" fullname="Tanja Lange">
              <organization/>
            </author>
            <author initials="V." surname="Maram" fullname="Varun Maram">
              <organization/>
            </author>
            <author initials="I." surname="von Maurich" fullname="Ingo von Maurich">
              <organization/>
            </author>
            <author initials="R." surname="Misoczki" fullname="Rafael Misoczki">
              <organization/>
            </author>
            <author initials="R." surname="Niederhagen" fullname="Ruben Niederhagen">
              <organization/>
            </author>
            <author initials="E." surname="Persichetti" fullname="Edoardo Persichetti">
              <organization/>
            </author>
            <author initials="C." surname="Peters" fullname="Christiane Peters">
              <organization/>
            </author>
            <author initials="N." surname="Sendrier" fullname="Nicolas Sendrier">
              <organization/>
            </author>
            <author initials="J." surname="Szefer" fullname="Jakub Szefer">
              <organization/>
            </author>
            <author initials="C." surname="Tjhai" fullname="Cen Jung Tjhai">
              <organization/>
            </author>
            <author initials="M." surname="Tomlinson" fullname="Martin Tomlinson">
              <organization/>
            </author>
            <author initials="W." surname="Wang" fullname="Wen Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="NIST1" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization/round-1-submissions">
          <front>
            <title>RLCE-KEM</title>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="RJM78" target="https://ipnpr.jpl.nasa.gov/progress_report2/42-44/44N.PDF">
          <front>
            <title>A Public-Key Cryptosystem Based On Algebraic Coding Theory</title>
            <author initials="R." surname="McEliece" fullname="R. J. McEliece">
              <organization/>
            </author>
            <date year="1978"/>
          </front>
        </reference>
        <reference anchor="DJB25" target="https://classic.mceliece.org/impl.html">
          <front>
            <title>Classic McEliece: Implementation</title>
            <author initials="D." surname="Bernstein" fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author initials="T." surname="Chou" fullname="Tung Chou">
              <organization/>
            </author>
            <author initials="C." surname="Cid" fullname="Carlos Cid">
              <organization/>
            </author>
            <author initials="J." surname="Gilcher" fullname="Jan Gilcher">
              <organization/>
            </author>
            <author initials="T." surname="Lange" fullname="Tanja Lange">
              <organization/>
            </author>
            <author initials="V." surname="Maram" fullname="Varun Maram">
              <organization/>
            </author>
            <author initials="I." surname="von Maurich" fullname="Ingo von Maurich">
              <organization/>
            </author>
            <author initials="R." surname="Misoczki" fullname="Rafael Misoczki">
              <organization/>
            </author>
            <author initials="R." surname="Niederhagen" fullname="Ruben Niederhagen">
              <organization/>
            </author>
            <author initials="E." surname="Persichetti" fullname="Edoardo Persichetti">
              <organization/>
            </author>
            <author initials="C." surname="Peters" fullname="Christiane Peters">
              <organization/>
            </author>
            <author initials="N." surname="Sendrier" fullname="Nicolas Sendrier">
              <organization/>
            </author>
            <author initials="J." surname="Szefer" fullname="Jakub Szefer">
              <organization/>
            </author>
            <author initials="C." surname="Tjhai" fullname="Cen Jung Tjhai">
              <organization/>
            </author>
            <author initials="M." surname="Tomlinson" fullname="Martin Tomlinson">
              <organization/>
            </author>
            <author initials="W." surname="Wang" fullname="Wen Wang">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RLCE17" target="https://eprint.iacr.org/2017/206.pdf">
          <front>
            <title>Quantum Resistant Public Key Encryption Scheme RLCE and IND-CCA2 Security for McEliece Schemes</title>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="PQC25" target="https://csrc.nist.gov/projects/post-quantum-cryptography/round-4-submissions">
          <front>
            <title>Post-Quantum Cryptography: Round 4 Submissions</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="OQS24" target="https://openquantumsafe.org/liboqs/algorithms/kem/classic_mceliece">
          <front>
            <title>liboqs / Algorithms / Classic McEliece</title>
            <author>
              <organization>Open Quantum Safe</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SRVR1650" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/statem_srvr.c#L1650">
          <front>
            <title>ssl/statem/statem_srvr.c#L1650</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SRVR1211" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/statem_srvr.c#L1211">
          <front>
            <title>ssl/statem/statem_srvr.c#L1211</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="EXT652" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/extensions.c#L652C9-L663C9">
          <front>
            <title>ssl/statem/extensions.c#L652C9-L663C9</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RASHOK20" target="https://stackoverflow.com/questions/58719595/how-to-do-tls-1-3-psk-using-openssl">
          <front>
            <title>How to do TLS 1.3 PSK using openssl?</title>
            <author initials="" surname="rashok" fullname="rashok">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="JWYWPROV" target="https://github.com/jwagrunner/oqs-provider">
          <front>
            <title>oqs-provider</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="OQSPROV" target="https://github.com/open-quantum-safe/oqs-provider/">
          <front>
            <title>OQS Provider for OpenSSL 3</title>
            <author initials="O. Q. S." surname="Project" fullname="Open Quantum Safe Project">
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="JWYW25" target="https://github.com/jwagrunner/openssl">
          <front>
            <title>openssl</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="JR04" target="https://www.rfc-editor.org/old/instructions2authors.txt">
          <front>
            <title>Instructions to Request for Comments (RFC) Authors</title>
            <author initials="J." surname="Reynolds" fullname="Joyce Reynolds">
              <organization/>
            </author>
            <author initials="R." surname="Braden" fullname="Robert Braden">
              <organization/>
            </author>
            <date year="2004"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-tls-extended-key-update">
          <front>
            <title>Extended Key Update for Transport Layer Security (TLS) 1.3</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Münster Univ. of Applied Sciences</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Steffen Fries" initials="S." surname="Fries">
              <organization>Siemens</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="18" month="February" year="2026"/>
            <abstract>
              <t>   TLS 1.3 ensures forward secrecy by performing an ephemeral Diffie-
   Hellman key exchange during the initial handshake, protecting past
   communications even if a party's long-term keys (typically a private
   key with a corresponding certificate) are later compromised.  While
   the built-in KeyUpdate mechanism allows application traffic keys to
   be refreshed during a session, it does not incorporate fresh entropy
   from a new key exchange and therefore does not provide post-
   compromise security.  This limitation can pose a security risk in
   long-lived sessions, such as those found in industrial IoT or
   telecommunications environments.

   To address this, this specification defines an extended key update
   mechanism that performs a fresh Diffie-Hellman exchange within an
   active session, thereby ensuring post-compromise security.  By
   forcing attackers to exfiltrate new key material repeatedly, this
   approach mitigates the risks associated with static key compromise.
   Regular renewal of session keys helps contain the impact of such
   compromises.  The extension is applicable to both TLS 1.3 and DTLS
   1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-extended-key-update-09"/>
        </reference>
        <reference anchor="RFC9370">
          <front>
            <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
            <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
            <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup.</t>
              <t>This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs.</t>
              <t>This document updates RFC 7296 by renaming a Transform Type 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and renaming a field in the Key Exchange Payload from "Diffie-Hellman Group Num" to "Key Exchange Method". It also renames an IANA registry for this Transform Type from "Transform Type 4 - Diffie- Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Method Transform IDs". These changes generalize key exchange algorithms that can be used in IKEv2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9370"/>
          <seriesInfo name="DOI" value="10.17487/RFC9370"/>
        </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="I-D.ietf-tls-hybrid-design">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa and Meta</organization>
            </author>
            <date day="7" month="September" year="2025"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if a way is found to defeat the encryption for all but
   one of the component algorithms.  It is motivated by transition to
   post-quantum cryptography.  This document provides a construction for
   hybrid key exchange in the Transport Layer Security (TLS) protocol
   version 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-16"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19a3fbOLLgd/4KXPc5O1KPJFuy7DhObs84tjNxHo7bdtLT
m+PxoSRIZpsi1QRpR903/2V/y/6yrQcAgi9ZTrK798PwzHQskgCqCoVCvVDs
drteGqSh3Bdv/WQmE3Hkp74IInH59kL0e9vilR9N1I1/Kz1/NErk3Rovjv1U
zuJkuS9UOvG8STyO/DmMMEn8adq992eRTLppqLq3cgktErn4fdzd2vNUNpoH
SgVxlC4X8P7J8eVLIX4QfqjifbERRBO5kPCfKN3oiA05CdI4CfwQf5wcvIB/
4gT+Or98ueFF2Xwkk31vAqDse+M4UjJSmdoXaZJJD5DY9mBcH3rd8O7j5HaW
xNkCfl0mfqQWcZIClktA8kKOsyRIlxsewAovTvY90RXwtyDA8cdh6APMY/Fu
fBwGcgy9yyiDQYV4uFMhGNMN/HPuByH8CYT5eyDTaS9OZnjbT8Y3cPsmTRdq
f3MT38JbwZ3smdc28cbmKInvldyE9pvYbhakN9kIWv4GFE+yCIi+GUSpTCKZ
dmkq8K0QCKRSp//87R730AviUrvNVRPZu0nn4Ybn+Vl6EydIhi78XwCnAPVf
98Qv1IpuMVe8jiM/vfEj9wngtC8+nB6KQ+g1jNNU0m2VJlICsE8HW33xIQIS
JAroKA7xPy/Cuwm9NYZf+3nLjjg95PvxBIYb7A0G2/p3FqXIpR8uDuiG5Bn4
jRDb7v99bLroyUlWRORXRCSaOWj8Gkezmczv/n9FYUnA9O4BmFVYfOxdzJcq
jO8cPD76oUyWwn1AqBy//Xhy0T17++GigMfZe/Ei/iz2+g7c72I1ju9F63/K
UEbxLPEnbQf6/mA43N0qgn+ewRICFngpJzLxU5AALjbqzo/+LsO7QPWS6jyc
BklhGvw7e4sAP5JhKC7l+CaKw3gWSFWcB3EQTRIZiAv/FggV34mL1EHllR9M
fQf47f7TrZ2tEvQnKvFlWKB/FCS0Ov8+wxu9cTz3vChO5oDbHcmG85eHe0AH
/POke9T7LVZyqlQcdedjSWJk33v+H90udAny9XifOk9R8ALMZqne39/3gGo+
iwCg4Cyag3BUKAK68nMKIk/L0u6dH2ay+UHvM65aHoR3g0ahJVoAUFscm17U
BjXLl7sl/IkWGuKAQJMTcUpSWYkDehk6o9dJRovB1mBHdLs/abRhkLOvwHrh
J8AGMG755+MxPLNtvzeGXhBNXV44Pbm4rMd1rJJxLwpU2pvFd5uLJP5NjgHT
RazS7u+ZH6XZvDtOlosUV9niZrkJO0406Q67+VaqCjiXN6sa1LoaQ1pfRz3x
AlBUqQwifZ/X2ZEfBTJEgV56Xmh+2QMhFmeFlpdZNHPuFt4/hPeDSeH1Q5Re
Kr9deB+G/0cQjm/0tmG3FBAlhftloN6CYJRFqPzoN9+9X2jysSfeITsUmnz0
YZ907xeanPTEXYyPgafGN4WGJ9Esrj4stD6HAQMVj/+4DQpNz/0piJrSs3LL
0wDF6I0/k8U5O89GMqo+LTQ/7okz3JKAdmlaHPt4EvvJJK4+L0/hGa2a4ize
JMDFsGxl4Wmh5WkPliAI46A0m6fBOAa2LT0s88HFH3JaYYPbbFR4UIb08rcb
v4jkIVDoNXKo86jQ6h20iuch/B0XqQuMkKI6XHxYaPuLozWYZr/IKL+ZCwot
FvrfSS40PumqFPR2mNfgD9p3tQTpN0qQ87eHx903x+/qhGJFNWpSjgp4nr9+
92SvHs9gES2S3m+LsBf5yjfIzhKp1DVomyC7B5vDQXc43BwOT3tnRy8LoB6I
s2wUBuPuG9DXDwlptQRRNRcvfAXC+n0kDsKZHCU+SMTDeBLgtN9IsFwakcN1
afT8wtLqIQ8WHjGO/adP9uDn0esXg52GuWSR3DMbP+1rwRxwruxYZekNogTe
k7j90eT9W5r/W5r/W5q7gP73kOZDlHIgN/tP6kWAXCRgYYNWO05o9YNt+AT+
s9tbTKYFAfAzS3BxLlWAgjvVEk6ghDuOSLCDHBAXMKFzSWMKEO/i5PSoe3h4
MMh1XFBArRjRr9fquY8W6f0n8PPs58NGcfe9VdozbGkIc+i0hCWCTcVQXORN
G3V53G2re9P7ny8Gw3pE4oWMNMDKn7LYDoNR/Lva9MMZKv83c7V5K+dGwl8b
CV8An5uITdyKdCP4sYaezmC/ByiEwf4C4Khy3sX5x/P+7s5WPRrayQMWquP6
IeSUCjdHYTzanPuwIySb+BuYDvZP/c+1Su6S3viHt9h7AanVrzbyWdE9tMpB
VEVw0G/Qlb4LgtD7ugjCq98bweN/Xu7uDL4jetYHoBBk6Pvwafft7u724dMm
LJtbfG9kzw8uXr1/M2hgVwBnfBvfyWQaxveE9e+ZVCj01ObO3pP+052nO5s3
8X03jbuTmJyT/e52d6Fuu5kCBa+rKVPA81V8L9JYwG5onNlnF28EvS/0+3+r
Q5MxSnx1E98WEcHl8PqXX385O3//8VHz9rvqgky8CyaaNASiABjdJw/peetT
vtju0ao7iMe1MEQiWumO0rKA6GYRU+hUnOlHtE+hjLu4eCu2m+egIgaxB9xZ
HJhfZ+ESAd/Wc9O0Q61cUaVJ4Zv/bebj9flWw26FXrNkOu5y1IQ2qzicbMIw
aZKNaf0MGAHVSz+nheVx4ryE6+Rc0pqjuTmM5+R9E63zl4dt7feq22XLBDmX
ywggUCWSLEEdKT4q68MvEn9SVoXjkUxS94mhyhZKFHSwojO2a92fEznBmEU3
W3CAiPyxT7efbOk/nzwZ7u2XW94sR0kw6U4k+vr2Pa/b7Qp/BKTxgc28y5tA
ibmcgxgJ1DhTSioBSo0KRsAqczAup8HYZxLGUyNnOsIP5mCJAlH9MEQpBMIE
9NsEJc8EA2whB9uIT3aH4s1omULHoJnemHAbDKoU6P+q570HhdyO6S8WoR6S
ZipFAKfST7NEikDlY7KccxUwo076C5WF3MM7CXM5QThSGPpOMmBiweonBsRg
iHGwACMtBRILFfwhvVYYAHxlXabdY9rNg8kklJ7n/YCO1CSeMIshKaV4yDmb
xGkMhoT4iOYLwIdCu/VJe9Wv2ojgPQgQWPGZYgKDtElBIIhIphjxQ1JPYU7Q
ABDAzT4gom6EwnGkGMew6AkcMQagQdFGNVrJ5A5lUpAA9y9gD4qTufDFhp2L
DTHJaO7ub8CmAmoBXSI5i8FWSqUmj1BZAHPYgTHmiwxuU+QMOycNlWiJg5n+
40h2FaCCBJ5naeaHtLAAJj27Pbtr5TyxMPTB0Cco28R0SgL00NwwTIfGAVCB
W6BDmjN8T/oAe4W/xBhYcCRFtkBqDv41GApmRrepisHsCKJJANIbISUeBiVk
fItMS2jA6ypnWpyoMJgDRSbcbX+XuwWsbswzZsE5AAPvpyKYWyaHJilyCqwZ
s1SKQ1ZpA9y3cp243dS1R4gfXCxjeD1QoMq33hy/a/c4Zu6ultxE6MAo4zAj
7xOSEgNN3RE5qBw7CJrZJmLqzwPg7PLCEi0lpfhUH0+66ohPaOPgv+SNwj/I
9XbFfPCJbJ2rdgcnOopTnGvpKxwoMF4mgMkhySTjCUCgsyTBVWIj487EEe/t
7nR2tnfEC57akxSpiPOYkBULvRCjTmh5APdlKD6hWU4mMQvuYI8nAVRBHDrz
rbWX04lMxlRDjWCeEkDAl7ilBSmuPhjkQrtAFdHBhgpB1iDB2qLkIsXFNQb2
1eQmW/eqjfyawWTKCCWJnktAAweowOugBaiPJAsph7RIR/kZuQjXCIKFSRAw
MqwdWPjcPcgefAaPMAxF4SRQVwlE6DWRi9CHsbT1iWIjHxUZfZrRVqDlIrby
Zz4qBAR6epPAXkFzkKLOjVEtABCXjRZU8GgR34OUykJh1oKWaYniiboPwlCM
oKNbBwxp/RQ9vW1O4nGG7OVsnQiCXaL3/lKJG9wecWeoLEgUTP4YhoZtFuXs
io3zHtBHkgWgtUxIKM9iAIknwdcSBR2Ble0N1jHM7iiDDQTWRi6yerh/HcbR
Hc4LMjtO1pGcBlFAv3k7wx4wfUSJjXcfLi4xZQX/Fafv6e/z458/nJwfH+Hf
F68O3r61f3j6DbCJPrw9yv/KWx6+f/fu+PSIG8NdUbjlbbw7+HWDV/jG+7PL
k/enB283eD24lMcly1SgXA9gNETPVx6oO+MkGDF7vjg8+9//qz8Uf/75H7DV
gqX79MsX/WOv/2QIP+5hY+LR4ggkB//EfdADOSv9BHsBtQPmbAHiIcQ9SIHE
iO9Bo5EJCucfPyFlrvbF89F40R/+pG8gwoWbhmaFm0Sz6p1KYyZiza2aYSw1
C/dLlC7Ce/Br4behu3Pz+d9ASEjR7e/97SdSgc4Ms1/EYWZVbWR40HXg/hxe
+kGcynvaby5IxtogvOdxRCNmMZdLYWu2i2kSz4VVkEj8aqUL5xm0lPvaZmVG
AR6D167ptevF7+MNvU/D/xI5DUGQGGlb4C7gB3pDCzBiLUSE8DjGNAoQo8B9
oI/CInNxkZ/R1QwCr/B2CZ2eABMetZsOD4yqOKncOFAYo0KGC39Ff2zhZLwK
MCVKBFNLSyOJna1lfAM7LJHHtxLJURoRk2imGEzsprIF8B7OSwWGQrVG0UqJ
qnQBdHB7JBDlBLZPBi1egIQEMUTafJLJDi63RK4CG95E8fUwWFVAKlCcwr7B
Yh57IrYwI26AjixD3FCJmRY+WlxIrApqaIU4otuvCl4aAcae4X5kJbqjToAp
9nwazGDufnruJ6Tcw5JiOMWfYMWdgpE4+Qcm43FK3jO4pyTyKqhnLkA9etym
RmNgQrNpGR1qe7i3tzvcZ9NTHM8X6fJZw6vD3a29p7trvbq7u7fXH+ztr/Pq
090tELrrvLrXfzpo6vXzYGen/7QBueKrSQiPdwwepav4apzeGC1cnP2cM11/
f+1XB9VXZTruNQzvvDqRUz8L08YXBSwW//eM1oXl0uf9Xg8Njm7/J+zji/el
yJ/Pvo6LgK0fx0iNoA2GGrSHOezr+iiy3lf2UeDJr+ujyKxr9rGSi9fsYyV7
r9nHSr7/xj4Gj+hj5Up5uI+Hl5BdbZWVAiwPi+X5phG/zze1QPY83CX2EaeW
G6hr661qo5F4G6yyNhJGP0ek4c9RfMd+B8w918ZHHLHPJIZxjK3j2u2OOUTa
QWXnQaeGMm4Pf4Jb2GgpfstAOZiQgg9ahM97IhqxaFOR6ySeaidHw3Cg5B5E
jBhT5yDC7gNtmxZ2a/YN5BYsYQpKGDMuKPYK3pCoPpCBeIMWYRWTkVzG0YQ6
cHZOtmIwTi/Rv0aKyxNCg2hmsxThtjbM2PAEsDiybAA1dlygWG8glwo7dGpV
rkNyqb2SYRjnildHO82gy1kQ0TQWlbwOT2sEdiDQPEVTlazfnHKkdBACZe6s
1xGQqR0JT1dR52HnH6u76vlWYb+ovo4KTU0Lu8Rg5dTRoGnpXNDUIgXrCBdJ
OTHuA6tildQp9vvKKpSMdYd9d7Cx6SlTlSmzJoZtYueHdPh7zK4u2RZoJG9Y
E+IazfEN1jzvLaRrT4gF4HK5cAyTa8xeNrOghVtxyBra274epHiifUpNZlGJ
znj+oeBxqF1pVT2hndsrJeupbgqIArmhUqK60f3tOiTgkUzaax+TQi4o45ti
EC+OKtZc/bTICOQXTwi7wK8x7tLaAvBXXZs/YixF7G7t7oofOcg39z9fTxN/
hlbhdSijWXrT6jd0U9Mcg9EZpv5RAKq1swqAuubZAj2OcnJN+plq9ZtR0M33
hoNBRzx52n9qOwlmEQVRrnOJ3upv13ZkOxlaGDIlr1WSLlr94QPks813nuwO
TfMbCdMyAkuo1V+JvUuBncGWae44u69DDKxcm0jBtYlTwKNWfxf61s2fbG/1
XdyBemOZpBzPktdpMMfoyRwQ2isAZEZ/ujswzbVsLDQH/mz1n1ZRMaMPdizw
mvcqzQc1s1jTfIE7RTRrDZoYrqb57t6ObQ4zzqGaa1gzreGqXmrmHeYtXJJg
ag0H6y0ct3nOuncc8VKtYT3P1TYfx/FtIFvDh3mutvlC3V67quM1yD0JENSx
YN3ozoz5+mREgO2fNE6c2zwOJtfTAJ3c0GRvNQZ1wIMWdm29xQRAa1jDcQ3N
69Y78WBrp8J3Nc2tfG3tPMh3q5qjeG6ByG536H5rdwc2l7b3pbg9PKxKVDZm
VprYUy/FHKMveidD7cGv1T1oQ8mVsDWdNuTTT+RdEGcqXLIODftdZZ9Epxhs
fz5GnQAmVrMrnqp8NK3GcHB2juq548zHiQ/1vjgOknE2R20d2qNrGnbdsQzu
TLjGRVEHKHsCg4X3/lKHzDHA4WsfG++kTKUFhkjSEmHypCknxldDLccdVwGA
VA3YN8dJnJsaLbI1mELAUxuHb0+OTy+vXx2/ffv++t3J6fXxPy+v3x6f/uPy
1QZqaYbUxjHruH7ReRkUssjtWwt/gR5VinKZJMIrjhWalLurtnFg6hZEBSYM
Rm/jyFGJjAPRj9LClBHvaVcl3iZqo6IP1kcIjMJTqChuwLaVQ1ntf7akGccZ
sHMeu7R+YGNAAekIV2is0afkoQsO/F/EhAEnHbR05lG7RCEcU9owIIBkYlMa
IdhOUZdTJVB5nv3aWSa2JRNuJC3MFBxZwdsGAqPs1Wmq0NNUYmw2XOarkI3P
HLIOhmCQbs5gOO2aWShuXwt3T7x0OZFYhbMVr3oc+bqg3orIFtzz2obIXddG
4Lgtc6230Tx80A1ctu20OkEEe1Z9TmaS8wr5OL7UQdckdIkxcV5KSrYbXlFs
bSBTGk9DKdqOJJlmeIYVWNVuY8bX/5IGE/2a+I4lMduI1E+MGT8ghZrNL7h4
nldvVYWLaeF5GJkS/3L5xDsGjUH8l/hrvpH9yMMU7iFZnPt1W67zuF4b0S/c
4QsFVe1HDWVXXz95FQTWwI75ELADJB/XgYs7IoAkWb+HMpWgh7Ub11Dibq3G
f+qzBHKSn/P9gsibqV6rk8Nc7dMpgz9+wQnio7XqMVR0+8JO/rVeY7fZR5kE
0yU2/i9KU3wkF4g/XwZRoG7k5MsDVHxuGE2ITwdOchEWzPjxilv+q4SRhxAB
YHUAG752ATBXhacrI17lAP1U99grofJXIU6sHzWKUwmyIb1ZutsYRnC1ZKrS
wVHwsPXE7hTlgX50B+K0FT9Eh60K0owA7Np6H9VhTP6Yk5jOyhfufhji9EPK
GkFYK0P/+cUZ2mai6UQYAJkzItGpUx14ArNyB+/ovfyTQgiTK8fA0ImF10qO
E1kd/NPVdxrcDu0a9cXBr09h+NrN6c99Tu/9z42XZm+xBVzYHf4/fs/i9FlB
+PCtnBU2vnh0XJ8yE/Lw2IH2yHKCcLk8CmkFXHag9gXXL+9rpzWn3qLyPcK9
H/veWBH+2eDULOPT3qv1abeJVbRbHxMP8iQxi4nWHjic8DjFQ/vM9ByCZXcc
hgFw+VgcZiBCBQ2gROv48OjVcduYe+jkGC8GO7tJv7X1eWurjxYy3treG5pb
e/rWzqBvbj3VVqHQQTG+C7ai+Dwc7vGvY3gnhwZlSYrqAxp/BpYiJNPp5EYO
trh9fwuNXbq1vfVkwLf65tZw6+ku3xpYSOjBbn845Afb5l2M9fGtYQGic0na
1gRP4kpxFgeYVV4E5noB7I9OhExJ6uLlYa9H/760w8px9cWXx1tb+OLLY+dF
vA9X2wGhworOmSwLSX0I1THNq69whHTVKzoAql9xiIJxFgtFDgSHf2yPXxym
XR2IO4hKsRvyc6PdwSuB4kvfJyREpS5+ANHwzsl+R2X0TN2CEnWstbd3ON1W
vyfxgOsSjYH7mPNYTHY2nzSwYt6kjMoJG/NohnBUjsyY3GSY1g1ZziAq+f6j
WByB6RRIgZrfnNIsLckiyuzkZELc8bo6hxuhbZ1dvGkzQAbAUjpojTPDye0F
WrvJOzoVh+GyBqAOHxayfFALRvJmaRBiOrYx4zE4TBYrmxnrhBxyO2LVXGmx
qSO5qJXDHgF6ZmvQpngPcdTqiAKr8hRJwD9x6cLPvv5pu+uIFsg19HZV4Wni
91+QbJyg0eBByomO+wzvu+R5onTakA6BkXMnkSqbc2It3OuIja3BBnstaG5G
6LdSSEcTb9uoN1Fcy6+UlvaAmRg1+6cOOP9KYsqldsPUORjQO4OnjCXvqBtb
W2Lw1B2jVeJj+6Tt5pUhTQJUyfAshnYajKTtWif6zTHZ08Z/R1i5LeF1q5uQ
5wIZL829TQ3Ds7Olzo1AM0CyS3vcHqakPvJADbXjwW3bBIOhQGARMK2Qjltb
G8LPZ4HD2DbXseDByfmxQkyYvK2CY2+f3rmQeo2eFF7klNkHwOb0xFoPjCb6
LwEACS1v80E/mQOYmNP+nk6MhLnMyEOiVu6sucb0+uIVBOQkARakKl9vgHq+
0jpa+QtsBsZEzin90HckFuqtxRoYLJQwxUJRuNDsaZ3SKjbSewXEOseTUiqa
8imjuzi80/nqWrw/vJxxkkexXvnuYkWUa6ZLmcMF+P55jga+jqi807P6EsXx
JPBnYF6LVn06hXYYbSOkxfNS1rgwh8WsIUYDYWrJSOJWJEnWWdFVMwe5f7Wc
CrzK8bSm38l4m04wwx7YJi886XbD7ifbqDAX9m73K31Czhw91o1QAORxjWuc
Mo/rwHEufHVD9ko80Ny6QLr00zgudCvzs9yqu/Z0lPo/lfcXfCjlMkD3/Te2
9ryLbKTQYwXcWOauevZqnNaiA66M6GNdkd/CeCuAXPcqIvPYDh7PvqWJqjBS
Eyd9NSPVMsNq94kjjh/jNiHDiIX8ucRohDlUzdtk4zmPE9zR69qpsYz8JIh5
k+AjqnV6IOk+dIIXzSvH16JVWBDYuClvlHNlNqraEG10INUTOtbFigwYTAme
mztqW2U43y1NVBhsKx0ZTOQ4nkVgrVBqpaMo6ZNt47FcpBTuynshDBjBXPM2
+4wDJAc78p4BKB2sbd7ze+JEd0RZcQ2KtLZ4rBVQAmMd/b9jfVt6gw4dfaGg
lnMwdafftpY6637EbThVbiBZkzyL6ijX00aRQ2bQiRYxCLh8NydkibUMZ2nE
mbESADuemwwzIpJayDHuw3k4/OLVQXews4uTaHJyiTTGozDs4XEZVwHpWBXD
dgsK6Tg150haG6Gc+eOlyX7Bs24MCv6ln+mDidfB5FqC7oZP+Mj1NR25dt7E
KH6i357TyXZzRC53J2+0GX6thdfFIgvI5TYzOR+Vi2ubjRg3FEyON3RU0zk5
95g2MVA136fAPJhiSbzwsLKZr1U95zEGhJnQ+mx77UmgfMHhwiHLB1Nac07h
xi5T6e7QL406M5AAs47dRRREmuWUPTpcYThtbJiVZRnCLEDNJFURR5Bh1jes
OkkieX+dFcYH0/Cs7GRde5xVa5vngQ2q9RBWO3qII6rMVRDTKaeo0BI1oxnb
cSWAPe1Gc/w9q/aMijPIGgn6RB7jS+afW8oCcdSvDgpL4KuNt2bDgZ6vDFs/
Im5tTIhiy0adrla5eLTuBleF1x/s43lJPynAVVDj1tBLvwsO36aCfrsS+s1W
EF1fbQqVW69lD9XNY1mXfVCbfXiyqoM80jJaq4sHFOJSGLGqTzxGTeagRXmD
0XlP2u2yQmOBXYtc5nP0cD0s1lnpzCIVgxCn8/0FnRdl4L3xeBZPntgdx+xq
SRZKHQAv6AYJKCAJ5QHmw5odUQlz0B0H4Cg7qwPjONHbQLklIYyeTB32plag
8KLTeo4HdGEvXmAsrayVFAV2W2dr2QQhR8thlBMsbY8exZTUstLJHD6FpJUW
3cIPE+lPluwepnJekwf1b53uCQM5UdhCMHfYXiPRyw3hav/ptT60mWdwVfhm
ZSSh3uqy/j+fnbmFwFAzmp3c/cdqDFcXqqhLNj2gxfobvYAaDpOJJtufYoKt
37wM2jrB0vFzs25NWhXexm6Ygxs1K2s0PqxPGcOmBp9iP6tVGGHOyOVrSx+G
U3lSo44tkJ5OJK2j3l8aHeQme7TRgc5FK5TROWFC06J7vXFQG1+osSDylBj0
ArwnLD8A3xziMc5WMebb5oV5znbX2yDCIhqHeY0gp+ortWw7i2mWL59PXH+W
Pb0mfNhYakhx/Viqf6Pr6vS5fFAfowLm9KGuu1OMJ+tkZkr+puFzA6R0thKb
9zuD7UFna6vPZ/nbOoNal5pSubLYkN/KmmadkomiBhcj/ouaZsGD/zUaqJ6u
V5yLcrhuLornrU5VIRrqBJe5KRzlZmhXqmnoJHMcH/iMOLC2byINj02yGqva
XZkqQ4UKQ8Y8XYAyQ0PUZIXnpTuqNUF4b8zMjjzF+mqfTP3LK2PUujUfqdwU
Pe0gBdhq44x/eJudYCvIxpEtTTUXlWcceV/ZVDnVOyrnAkhpsJhsgAhDLQ8n
OpptCHYWFJnkU3OVwKsS9zqquCPoThqju9p2a8rttgaoE0xqPCVB3PBP5gb8
mWNGkdoZBeQsMDXi6gFgUp3xkJvE9eR3igSuBRGvuupK9byDOjalHAadJJJK
lRZCc80HOh8dkrPOTDdd26lW2smrduUCMOebVVlvWpppJi0nhDCDU3kpYkoi
Ql56hqurmUPrY9KTJ1RbaZ+X5GDnStP0IpuDYkyeikNdaYyEtzmDhBRGejkO
r8LREWhXyZh30hoqRS9teont0D0XU+iq46hwndz/3SmedurUHU5iwtek6fco
MZFi0IhV8VgtgFdWRag6psrd2Car0WRZFElTQwzHb7JGSSN26pXK6Nigqz3h
zZoilR3h0syUYpCnMmKyP/KxQ2OGgpNpDQw1dW9Ezbl5/YTVzTFQhEWeX2K6
CpNqvSriMEaRRUgJxLPgnHZmy4LVsYdD1fKirJ3hPExedwDdrURUmIjyKfcs
YeVMUM2KvNIchmSO7TpEJj/W5WTp0QcqJ+t5NTdLu0RNFdor1gRMMSlXsGK+
GzMjHvrRdUEXRdBc6nuAX5xQzk0suHe3vKjRenNtg8+H8XxV6+vZk2i4ULoW
ZUCOcevp44WNLa1Iq9QORWmh95Ucw2JFz1xcK60XpAy80aEPufakrlolplk0
ZqtcJ8vUzUax6ii54Gl8j0cg+yhc5r7nYqKdpRvq+L7KS7xOdCYZ/KELwVL2
si096pYpc/th8niGK7g2rzIFevWMs+jKTZ96mDpGPTR+CuukCJcuoLXweSb6
RQVl/PwIUR0NTTIilku09RSRkFM+8Sn1JhU6DIHkGZFb2vOjZaH2KlVtJIsW
y7trt4cRMO7KxjyeMNVJ8s62yNlglPU/QmdI1MUwD1dIq9EU0Wkxx29pIrXv
gWbeyZvjuwFotdKU9tRFock78l38zvqy7ueaA1OiemJKD9R0Mko/xoNP+WQX
oo8PeP2+xRv8zaej+Pqr62x/7BGphmu9o0501Z13EojOI447NVKfThw9+shT
zemphw4ePdzR+ienqm3Z0f3Vx6e4v3XPUNFlfdH6zeKhqS+eaDw09cWuibpD
U3i5PP/p+M2HFs4Yb5WmvEjNm3y1aOe3DNtuXz3CrV4djJ2/j6LnV0Bgrx80
U+t8P63H0nGhR/DnD7zTEQ5KXByfHnERHDQ0PHiqZWLtGMW258eHxycfj93m
5iJaQdPrnF7tq8KM2IGaIHkURZpBsh3Vna/Dyzlj1/TiQ4GTgzycsJaeSWlE
pijsQfbZBl7oy9x5GEZnh3oelw3NSxuxooHRehO9RkuUlG7ajEmRmMRcMZQy
tdPYK+jNKzS+Ov1CtGRv1jNHB7nw3RTLur05fldfgw22/PpvCAhzKsLTMSG3
+FugsxSQ63I9Gu021GD97DOZBKKlY9dP2t6qBHtWlmu8LlFMdOoZytokbw6D
qEpGEtAQMw0CJ4vCq7rttb6v4tzfTfanAduN8r9HvbvahTUbub4FVhJwwmcA
g/RhIZYtqjolzs/TOZCamihehd0MLXfa2twEBTojndOSi+eWKIY0lZ4ml5vl
oAnjKhUOOZQLoufmd1XgsT6rBZKAzX4sH0F+b/qvV8O0zJ81ykCHqiuaKJn5
NgDStGlk8momM5+T23Q6W5L4aJJUyMcFCQwNh23HBAZa6fiTs0bNEvXyExiu
r9zUdOpwWWHM7UCTYWxOjtKyKYQUA/wqZs0iwGQuZy5GS8o4w5jLZ/ivt4oA
QKtCbYj69U2eA/pqBIsBmAN3wXuFBe8oifZ4BQtYE5b16EMLxjVwXnzJ0He3
3anL4EnZD+SVugbcOtp5Qt+D0gZ5Sv4nGRBDadjYTPWARDKcamaqPeKa+0Ad
H5HCaidtwe4mj2kM81zPKywJQu3+aeBFz64CHbwuxwFLBrYG2a9Q35mxNp0o
bjaGxFfYQ3iVU3JEU0ZLjWWkb1sJ6V7fZNx8TcbOiqsB8oarLvXH9GNQ/R7k
cu+WOUjXzvhGIvL1rYlDFvDHEHFVP3UEWP+qkOorTLO6MhvfZuHZQhtfTZtS
YYpv66BYw+JrIbI23DrdlJdNYw2OKrRFOB/CYx3T0l7/F+2GD8oo2pWt2BwM
0zFf+5BMh1VC3Kn4aa9er1e8gesnL3tBpQ0vXxzYI+76MpXq7I0vORy6ZJ19
VC7Gy1fhdTFXMy7+io82f3SsC9rA7RF5fWVgtQyGgmuNPis8gsb2c2pGays3
NxXeLQw9M367DGYtjfBiZ2qFWFRpuzxlz4rNvzyrpVtDplLOE/kHaOpUCKrb
sXILr58IW2lX1BbYtXDWqizP1hqgXtsRVlavP2g+Xt1YyBZUF2Re6MZM9wo1
stcw+TTLW/u29/4u3zeQX0tE5Zr0umflxm7xdUNjvFw/Yl35aULd/voiVsCd
06NucdeyrgG9ULnCXpWFXSixXFza5Smg6dKz9EB5Gio40cTFP4iDyA+Xf5Bm
zkb4WRIvYjSG7Id0yl+ZWvAbqPUn0vnMlLJf3qGYr45CkRuDFWV/HmdRmjtI
HB9H3Wfm+r3mc1xIhEt7phpzloLZTQrj3vvJxEJiskkX/AkgsufMR8F0oo0m
Tl3aQkMeh+IILgZIRv74lgakspap+diWrll0MLnzgXlm9IkVvPGj/nAbBa9i
TIXDWkN85sNAjJaFTOZEJPp0NxAyWCjRFfq42IiOoBSeoSuKnVH5hxgNUZ0g
M0Vm0BkVgNoksaoFg3UUKL8WVAyrUWzPsY9ldBckccR2E1fpILIpcYsxaQ5O
3TD5yPmB9COUtSsDA+86z7Xo3+nlA0+kHyr9BSztqdUhTHTEZErb5VSnSsxk
hEfoipNeZT7jdHA4jMfLa7s2swPlPCHfTIxPIIvGIQbeuXRlwcFFZiJ9BgyR
ZfejUVQLvdahrtHKO+fPfI7iz1KZ/E+qyGpjiyuybTxv0NPlY+qDkI2MSmvL
UvRWyoXOSdIfKqz5rCPNrZ6fuX/LbhExTQC6CcaCYxeVlax3+RCnM5dVw586
TK4LrDGTK4e4uExD6+bkBUJZIFgg9oY+KFYTU2Ufkf6kI0dYDcdUI7RUSxU9
NimmwkUqlT6V6XDXkpN3zKJgRZTYdSrm2eX1Y5uB1f+jpeRXF9NJ/eJg/1Jx
TSRylmH4uA7rfDFpDxEhYDBuKiahWEpNqRAGvsTZCDUDdIQp0pCPRLyli32W
an/agrE6d8R8CVZllCCGH44s5IOKlhMbL4TBt3trhxu+cmWulXxnFiudg5xY
93Q1Z6XAcnPKjVNSzk2CoP1YHH1PoXalC6qaSwRdGtbNBe3hKwbyFcNiOqSQ
CXo2KZPIQZy2+zKbdjjRg3qvpL8Qs2LuYrQUIJSc/KsVO4FLRA0sH+DID9jS
RlCmhZ0XNwObdwDAtIWRUawYY6qB3cF+Hcw4w6/9oEi0nSeSYiDwV+3hz0yt
pSsYaeEuY1dq6tKE4uTg9AC/0EmluHytEeJHFWlVJM7HzKt55gujTFaSsMvZ
glRq/E7aD2xoDysIiUBRtWE8JU1L0iSkFxMQP3JFRE48gcfHV3jQJU9MO6Uv
nRcPz3nUaB+/5IGhwEacLBBm6AtzutiU/jPQa2UT5IQp0YiOYPzog1FFq4mr
WtMsHgNQKxLpn3E4R0MpJ0al/Loqj0isMyLWEX2qVB/8XdGwTLdCu29uwd9l
e0wLXULwUU24pOBjmugSgyub8LmOwitcxU8cjFE9DuVkxiEHsNB4fcrJf25M
YT7Jp3QJC/FWLONMHPXE6554IRPUIAI+FHQRzGFKX5tPU+tDNUsQ4HeB/kg7
L6FUwO6r+AteNnZluXmSQ1z3cWVMFTNQ8BH5WMATEMhvcUvHXpAZpyBH0PxB
KcRRQV1qID+hx+IA89TtFs3Sp+dias75wDDvwJBFV9tNPFf6INSRfwcsfYHK
mf9HYAq6Bwl+8h6II1NxlIAmBTYTCDPUHDCf0HyynvYJP5Xl4xZafeSoMH5O
Q/2lUJoR+6BsYD7Xod/Ryej6e9spIaCz7EC0wu6F72jb4Tbx55P4Puom07H4
R5C+ykYYcsNkuhhTlS0aOryHaRLhwj1AX7RF2K5XnXw69dfna+FvPmpSN7mv
4+UYy2ItI/7CEfR6HgNnpuJF4k/oc8QNRP/0+nxreEXkQvDxQ9ZU7GuWYcF7
AIT0P6BZEqRM7rH9pnllQ2gFPdnraJXNvCdGCX0SwXx5mrD9izKaIBBhCUyZ
R5c/NCl8TrJog3PCSZNFhOzONVoChW4iYM40xWVHlTm7Annf+z9eP9nO/50A
AA==

-->

</rfc>
