<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kwiatkowski-tls-ecdhe-mlkem-03" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="ECDHE-MLKEM">Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-kwiatkowski-tls-ecdhe-mlkem-03"/>
    <author initials="K." surname="Kwiatkowski" fullname="Kris Kwiatkowski">
      <organization>PQShield</organization>
      <address>
        <email>kris@amongbytes.com</email>
      </address>
    </author>
    <author initials="P." surname="Kampanakis" fullname="Panos Kampanakis">
      <organization>AWS</organization>
      <address>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <author initials="D." surname="Stebila" fullname="Douglas Stebila">
      <organization>University of Waterloo</organization>
      <address>
        <email>dstebila@waterloo.ca</email>
      </address>
    </author>
    <date year="2024" month="December" day="25"/>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>ECDH</keyword>
    <keyword>hybrid</keyword>
    <keyword>ML-KEM</keyword>
    <keyword>post-quantum</keyword>
    <keyword>x25519</keyword>
    <abstract>
      <?line 65?>

<t>This draft defines three hybrid key agreements for TLS 1.3: X25519MLKEM768,
SecP256r1MLKEM768, and SecP384r1MLKEM1024 which combine
a post-quantum KEM with an elliptic curve Diffie-Hellman (ECDHE).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://post-quantum-cryptography.github.io/draft-kwiatkowski-tls-ecdhe-mlkem/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-kwiatkowski-tls-ecdhe-mlkem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group 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/post-quantum-cryptography/draft-kwiatkowski-tls-ecdhe-mlkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>ML-KEM is a key encapsulation method (KEM) defined in the <xref target="FIPS203"/>. It is designed to
withstand cryptanalytic attacks from quantum computers.</t>
        <t>This document introduces three new supported groups for hybrid post-quantum key
agreements in TLS 1.3: the X25519MLKEM768, SecP256r1MLKEM768,
and SecP384r1MLKEM1024 which combine ML-KEM with ECDH
in the manner of <xref target="hybrid"/>.</t>
        <t>The first one uses X25519 <xref target="rfc7748"/> and is an update to X25519Kyber768Draft00 <xref target="xyber"/>, the
most widely deployed PQ/T hybrid combiner for TLS v1.3 deployed in 2024.</t>
        <t>The second one uses secp256r1 (NIST P-256) <xref target="ECDSA"/> <xref target="DSS"/>. The
goal of this group is to support a use case that requires both shared secrets to be generated by
FIPS-approved mechanisms.</t>
        <t>The third one uses secp384r1 (NIST P-384) <xref target="ECDSA"/> <xref target="DSS"/>.
The goal of this group is to provide support for high security environments
that require use of FIPS-approved mechanisms.</t>
        <t>All constructions aim to provide a FIPS-approved key-establishment scheme (as per <xref target="SP56C"/>).</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="negotiated-groups">
      <name>Negotiated Groups</name>
      <t>All groups enable the derivation of TLS session keys using FIPS-approved schemes. NIST's
special publication 800-56Cr2 <xref target="SP56C"/> approves the usage of HKDF
<xref target="HKDF"/> with two distinct shared secrets, with the condition that the first one is computed by
a FIPS-approved key-establishment scheme. FIPS also requires a certified implementation
of the scheme, which will remain more ubiqutous for secp256r1 in the coming years.</t>
      <t>For this reason we put the ML-KEM shared secret first in X25519MLKEM768,
and the ECDH shared secret first in SecP256r1MLKEM768 and SecP384r1MLKEM1024.</t>
      <t>Note: The group name X25519MLKEM768 does not adhere to the naming convention outlined in
<xref section="3.2" sectionFormat="of" target="hybrid"/>. Specifically, the order of shares in the concatenation has been
reversed. This is due to historical reasons.</t>
      <section anchor="construction">
        <name>Construction</name>
        <section anchor="client-share">
          <name>Client share</name>
          <t>When the X25519MLKEM768 group is negotiated, the client's key_exchange value
is the concatenation of the client's ML-KEM-768 encapsulation key
and the client's X25519 ephemeral share.
The size of the client share is 1216 bytes (1184 bytes for the ML-KEM part and 32 bytes for X25519).</t>
          <t>When the SecP256r1MLKEM768 group is negotiated, the client's key_exchange value
is the concatenation of the secp256r1 ephemeral share and ML-KEM-768 encapsulation key.
The ECDHE share is the serialized value of the uncompressed ECDH point representation as
defined  in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>. The size of the client share is 1249 bytes
(65 bytes for the secp256r1 part and 1184 bytes for ML-KEM).</t>
          <t>When the SecP384r1MLKEM1024 group is negotiated, the client's key_exchange value
is the concatenation of the secp384r1 ephemeral share and the ML-KEM-1024
encapsulation key. The ECDH share is serialised value of the uncompressed ECDH point
represenation as defined in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>. The size of the
client share is 1665 bytes (97 bytes for the secp384r1 and the 1568 for the ML-KEM).</t>
        </section>
        <section anchor="server-share">
          <name>Server share</name>
          <t>When the X25519MLKEM768 group is negotiated, the server's key exchange
value is the concatenation of an ML-KEM ciphertext returned from encapsulation
to the client's encapsulation key, and the server's ephemeral X25519 share.
The size of the server share is 1120 bytes (1088 bytes for the ML-KEM part and 32 bytes for X25519).</t>
          <t>When the SecP256r1MLKEM768 group is negotiated, the server's key exchange
value is the concatenation of the server's ephemeral secp256r1 share encoded
in the same way as the client share and an ML-KEM ciphertext returned from encapsulation
to the client's encapsulation key. The size of the server share is 1153 bytes (1088 bytes
for the ML-KEM part and 65 bytes for secp256r1).</t>
          <t>When the SecP384r1MLKEM1024 group is negotiated, the server's key exchange
value is the concatenation of the server's ephemeral secp384r1 share
encoded in the same way as the client share and an ML-KEM ciphertext returned
from encapsulation to the client's encapsulation key. The size of the server
share is 1665 bytes (1568 bytes for the ML-KEM part and 97 bytes for
secp384r1)</t>
          <t>For all groups, the server <bcp14>MUST</bcp14> perform the encapsulation key check
described in Section 7.2 of <xref target="FIPS203"/> on the client's encapsulation
key, and abort with an illegal_parameter alert if it fails.</t>
          <t>For all groups, the client <bcp14>MUST</bcp14> check if the ciphertext length matches
the selected group, and abort with an illegal_parameter alert if it fails.
If ML-KEM decapsulation fails for any other reason, the connection <bcp14>MUST</bcp14>
be aborted with an internal_error alert.</t>
          <t>For all groups, both client and server <bcp14>MUST</bcp14> process the ECDH part
as described in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>, including all validity checks,
and abort with an illegal_parameter alert if it fails.</t>
        </section>
        <section anchor="shared-secret">
          <name>Shared secret</name>
          <t>For X25519MLKEM768, the shared secret is the concatenation of the ML-KEM
shared secret and the X25519 shared secret. The shared secret is 64 bytes
(32 bytes for each part).</t>
          <t>For SecP256r1MLKEM768, the shared secret is the concatenation of the
ECDHE and ML-KEM shared secret. The ECDHE shared secret is the x-coordinate of the ECDH
shared secret elliptic curve point represented as an octet string as
defined in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>.
The size of the shared secret is 64 bytes (32 bytes for each part).</t>
          <t>For SecP384r1MLKEM1024, the shared secret is the concatenation of the
ECDHE and ML-KEM shared secret. The ECDHE shared secret is the x-coordinate of the ECDH
shared secret elliptic curve point represented as an octet string as
defined in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>.
The size of the shared secret is 80 bytes (48 bytes for the ECDH part and
32 bytes for the ML-KEM part).</t>
          <t>For all groups, both client and server <bcp14>MUST</bcp14> calculate the ECDH part of the
shared secret as described in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>, including
the shared secret check as described in Section 5.7.1.2 of <xref target="SP56A"/>
or the all-zero shared secret check (depending on the curve), and abort the
connection with an illegal_parameter alert if it fails.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations as those described in <xref target="hybrid"/> apply to the approach used by this document.
The security analysis relies crucially on the TLS 1.3 message transcript, and one cannot assume a similar
hybridisation is secure in other protocols.</t>
      <t>Implementers are encouraged to use implementations resistant to side-channel attacks,
especially those that can be applied by remote attackers.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers three new entries to the TLS Supported Groups registry, according
to the procedures in <xref section="6" sectionFormat="of" target="tlsiana"/>. These identifiers are to be used with the final,
ratified by NIST, version of ML-KEM which is specified in <xref target="FIPS203"/>.</t>
      <section anchor="secp256r1mlkem768">
        <name>SecP256r1MLKEM768</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4587 (0x11EB)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>SecP256r1MLKEM768</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining secp256r1 ECDH with ML-KEM-768</t>
          </dd>
        </dl>
      </section>
      <section anchor="x25519mlkem768">
        <name>X25519MLKEM768</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4588 (0x11EC)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>X25519MLKEM768</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining X25519 ECDH with ML-KEM-768</t>
          </dd>
        </dl>
      </section>
      <section anchor="secp384r1mlkem1024">
        <name>SecP384r1MLKEM1024</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4589 (0x11ED)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>SecP384r1MLKEM1024</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining secp384r1 ECDH with ML-KEM-1024</t>
          </dd>
        </dl>
      </section>
      <section anchor="obsoleted-supported-groups">
        <name>Obsoleted Supported Groups</name>
        <t>This document obsoletes 25497 and 25498 in the TLS Supported Groups registry.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="FIPS203">
          <front>
            <title>Module-lattice-based key-encapsulation mechanism standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="SP56A">
          <front>
            <title>Recommendation for pair-wise key-establishment schemes using discrete logarithm cryptography</title>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Allen Roginsky" initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author fullname="Apostol Vassilev" initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author fullname="Richard Davis" initials="R." surname="Davis">
              <organization/>
            </author>
            <date month="April" year="2018"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-56ar3"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="SP56C">
          <front>
            <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Richard Davis" initials="R." surname="Davis">
              <organization/>
            </author>
            <date month="August" year="2020"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-56cr2"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="xyber">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <date day="24" month="September" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum key
   exchange for TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tls-westerbaan-xyber768d00-03"/>
        </reference>
        <reference anchor="hybrid">
          <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</organization>
            </author>
            <date day="7" month="October" year="2024"/>
            <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 all but one of the component algorithms is broken.
   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.

   Discussion of this work is encouraged to happen on the TLS IETF
   mailing list tls@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dstebila/draft-ietf-tls-hybrid-design.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-11"/>
        </reference>
        <reference anchor="tlsiana">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="3" month="November" year="2024"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   recommended column of the selected TLS registries and adds a
   "Comments" column to all active registries.

   This document updates the following RFCs: 3749, 5077, 4680, 5246,
   5705, 5878, 6520, 7301, and 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-10"/>
        </reference>
        <reference anchor="HKDF">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk">
              <organization/>
            </author>
            <author fullname="P. Eronen" initials="P." surname="Eronen">
              <organization/>
            </author>
            <date month="May" year="2010"/>
          </front>
          <seriesInfo name="DOI" value="10.17487/rfc5869"/>
          <refcontent>RFC Editor</refcontent>
        </reference>
        <reference anchor="ECDSA">
          <front>
            <title>Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
            <author>
              <organization>American National Standards Institute</organization>
            </author>
            <date year="2005" month="November"/>
          </front>
          <seriesInfo name="ANSI" value="ANS X9.62-2005"/>
        </reference>
        <reference anchor="DSS">
          <front>
            <title>Recommendations for Discrete Logarithm-based Cryptography:: Elliptic Curve Domain Parameters</title>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Dustin Moody" initials="D." surname="Moody">
              <organization/>
            </author>
            <author fullname="Andrew Regenscheid" initials="A." surname="Regenscheid">
              <organization/>
            </author>
            <author fullname="Angela Robinson" initials="A." surname="Robinson">
              <organization/>
            </author>
            <author fullname="Karen Randall" initials="K." surname="Randall">
              <organization/>
            </author>
            <date month="February" year="2023"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-186"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
      </references>
    </references>
    <?line 295?>

<section anchor="change-log">
      <name>Change log</name>
      <ul spacing="normal">
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-03:
          </t>
          <ul spacing="normal">
            <li>
              <t>Adds P-384 combined with ML-KEM-1024</t>
            </li>
            <li>
              <t>Adds text that describes error-handling and outlines how the client and server must ensure the integrity of the key exchange process.</t>
            </li>
            <li>
              <t>Adds note on the incompatibility of the codepoint name X25519MLKEM768 with <xref target="hybrid"/>.</t>
            </li>
            <li>
              <t>Various cosmetic changes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-02:
          </t>
          <ul spacing="normal">
            <li>
              <t>Adds section that mentions supported groups that this document obsoletes.</t>
            </li>
            <li>
              <t>Fix a reference to encapsulation in the FIPS 203.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-01:
          </t>
          <ul spacing="normal">
            <li>
              <t>Add X25519MLKEM768</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-00:
          </t>
          <ul spacing="normal">
            <li>
              <t>Change Kyber name to ML-KEM</t>
            </li>
            <li>
              <t>Swap reference to I-D.cfrg-schwabe-kyber with FIPS-203</t>
            </li>
            <li>
              <t>Change codepoint. New value is equal to old value + 1.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-kyber-01: Fix size of key shares generated by the client and the server</t>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-kyber-00: updates following IANA review</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
BQnneqNvY70U/wu+PX6dCysAAA==

-->

</rfc>
