<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wagner-tls-keysharepqc-06" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="keyshare">New Key Share Extension for Classic McEliece Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-wagner-tls-keysharepqc-06"/>
    <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>
    <date year="2025" month="June" day="18"/>
    <area/>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>key share</keyword>
    <keyword>Classic McEliece</keyword>
    <abstract>
      <?line 276?>

<t>RFC 8446 is modified to where another key share extension is introduced to accommodate both public keys and ciphertexts in ClientHello and ServerHello messages for post-quantum algorithms that have large public keys, including algorithms of the code-based cryptographic scheme 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 280?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Large public key algorithms, including the code-based cryptographic algorithm family Classic McEliece (see <xref target="NIST"/>, <xref target="DJB25"/>, <xref target="RJM78"/>, and <xref target="OQS24"/>), cannot be easily implemented in Transport Layer Security (TLS) Protocol Version 1.3 ([RF8446]) 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"/>). Therefore, this document proposes a new key share that has a higher limit and is utilized in ClientHello and ServerHello messages, which is a modification of <xref target="RFC8446"/>. For example, if a Classic McEliece algorithm is requested in a TLS 1.3 key exchange, this new key share extension will be constructed. However, if a classical algorithm is requested for key exchange, a normal key share extension is constructed. 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>
    </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="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 classicmceliece6688128:      Empty;
          case classicmceliece6960119:      Empty;
          case classicmceliece8192128:      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 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 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>
      <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.

Figure 1: Full TLS Handshake with "key_share_pqc" extension.

]]></artwork>
    </section>
    <section anchor="namedgroup-addition-for-classic-mceliece">
      <name>NamedGroup Addition for Classic McEliece</name>
      <t>The values for Classic McEliece algorithms are added below in the NamedGroup struct that originates from <xref target="RFC8446"/>:</t>
      <artwork><![CDATA[

    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>
      <t>Note: An RLCE algorithm is also added above. See Section 7 for more information discussing this RLCE algorithm.</t>
    </section>
    <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>
      <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


Figure 2: A Classic McEliece algorithm used with Resumption PSK.

]]></artwork>
    </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 (X448 for example as proven in the TLS implementation), 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>
      <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

Figure 3: A Classic McEliece algorithm used in a Hello Retry Request scenario.

]]></artwork>
      <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="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 anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The new "key_share_pqc" extension <bcp14>MUST NOT</bcp14> be used with 0-RTT, as this subjects the server to replay attacks of multiple large ClientHello messages (see <xref target="RFC8446"/> and an example of a replay attack of several ClientHello messages in <xref target="HN23"/>). If this extension were to be used with 0-RTT, the server may receive duplicated ClientHello messages where each of them contain a large public key of a Classic McEliece algorithm in each ClientHello's "key_share_pqc" extension, which will not only cause resource exhaustion on the server (see Section 8.2 in <xref target="RFC8446"/>), but memory utilization will rise quickly than noted in <xref target="MEA23"/> and will cause the client-hello recording defense mechanism (see Section 8.2 in <xref target="RFC8446"/> and <xref target="MEA23"/>) to be used as a Denial-of-Service attack on the server. Therefore, 0-RTT and the use of the "early_data" extension <bcp14>MUST NOT</bcp14> be used with the "key_share_pqc" extension.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>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 <xref target="TLSE"/>):</t>
      <t>Extension Name: key_share_pqc</t>
      <t>Value: TBD</t>
      <t>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 (see <xref target="TLSP"/>):</t>
      <t>Description: classicmceliece6688128</t>
      <t>Value: TBD</t>
      <t>Description: classicmceliece6960119</t>
      <t>Value: TBD</t>
      <t>Description: classicmceliece8192128</t>
      <t>Value: TBD</t>
      <t>Description: rlcel5</t>
      <t>Value: TBD</t>
    </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, and to limit the amount of Classic McEliece variants for this record. 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>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446" target="https://datatracker.ietf.org/doc/html/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="Eric Rescorla">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="TLSE" target="https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml">
          <front>
            <title>Transport Layer Security (TLS) Extensions</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="TLSP" target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </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="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="MEA23" target="https://ieeexplore.ieee.org/document/10278190">
          <front>
            <title>Replay Attack in TLS 1.3 0-RTT Handshake: Countermeasure Techniques</title>
            <author initials="M. E." surname="Abdelhafez" fullname="M.E Abdelhafez">
              <organization/>
            </author>
            <author initials="S." surname="Ramadass" fullname="Sureswaran Ramadass">
              <organization/>
            </author>
            <author initials="M. S. M." surname="Gismallab" fullname="Mohammed S. M. Gismallab">
              <organization/>
            </author>
            <date>n.d.</date>
          </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="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="HN23" target="https://medium.com/@hnasr/the-danger-of-0-rtt-a815d2b99ac6">
          <front>
            <title>The danger of TLS Zero RTT</title>
            <author initials="H." surname="Nasser" fullname="Hussein Nasser">
              <organization/>
            </author>
            <date year="2023"/>
          </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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
bJgKBG51AAA=

-->

</rfc>
