<?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-ietf-tls-ecdhe-mlkem-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ECDHE-MLKEM">Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ecdhe-mlkem-02"/>
    <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="2025" month="November" day="17"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>ECDH</keyword>
    <keyword>hybrid</keyword>
    <keyword>ML-KEM</keyword>
    <keyword>post-quantum</keyword>
    <keyword>x25519</keyword>
    <abstract>
      <?line 58?>

<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://tlswg.github.io/draft-ietf-tls-ecdhe-mlkem/draft-ietf-tls-ecdhe-mlkem.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-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/tlswg/draft-ietf-tls-ecdhe-mlkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>ML-KEM is a key encapsulation method (KEM) defined in the <xref target="NIST-FIPS-203"/>. It is designed to
withstand cryptanalytic attacks from quantum computers.</t>
      <t>The <xref target="hybrid"/> document defines a framework for combining traditional key exchanges with next-generation key
exchange in TLS 1.3. The goal of this approach is to provide security against both classical and quantum
adversaries while maintaining compatibility with existing infrastructure and protocols.</t>
      <t>This document applies the framework to ML-KEM, a key encapsulation mechanism defined in <xref target="NIST-FIPS-203"/>,
and specifies code points for the hybrid groups.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <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"/>. Any of the hybrid groups
specified in this document may be implemented in a FIPS approved way as discussed in <xref target="discussion"/>.</t>
      <ul spacing="normal">
        <li>
          <t>The first one uses X25519 <xref target="rfc7748"/>, is widely deployed, and often serves as the most practical choice for a single PQ/T hybrid combiner in TLS 1.3.</t>
        </li>
        <li>
          <t>The second group uses secp256r1 (NIST P-256). This group supports use cases that require both shared secrets to be generated by FIPS-approved mechanisms.</t>
        </li>
        <li>
          <t>The third group uses secp384r1 (NIST P-384). This group is intended for high-security environments that require FIPS-approved mechanisms with an increased security margin.</t>
        </li>
      </ul>
      <t>Key establishment using NIST curves is outlined in Section 6.1.1.2 of <xref target="KEYAGREEMENT"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The <xref target="hybrid"/> document defines "traditional" algorithms as those that are already widely adopted and "next-generation" algorithms
as those that are not yet widely adopted, such as post-quantum algorithms. In this document, ECDH using Curve25519, P-256, or
P-384 is considered traditional, while ML-KEM is considered next-generation.</t>
        <t>The <xref target="hybrid"/> document defines a "hybrid" key exchange as one that combines a traditional key exchange with a next-generation key
exchange. This document uses the term "hybrid" in the same way.</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>
      <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>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>
        <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 serialized 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 part and 1568 for 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="NIST-FIPS-203"/> 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
all-zero shared secret check for X25519, and abort the connection with an
illegal_parameter alert if it fails.</t>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <ul spacing="normal">
        <li>
          <t><strong>FIPS-compliance</strong>. All groups defined in this document permit FIPS-approved key derivation as per <xref target="NIST-SP-800-56C"/>
and <xref target="NIST-SP-800-135"/>. NIST's special publication 800-56Cr2 <xref target="NIST-SP-800-56C"/> 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 ubiquitous for secp256r1 in the coming years. For
this reason we put the ML-KEM shared secret first in X25519MLKEM768, and the ECDH shared secret
first in SecP256r1MLKEM768 and SecP384r1MLKEM1024. This means that for SecP256r1MLKEM768 and SecP384r1MLKEM1024,
the ECDH implementation must be certified whereas the ML-KEM implementation does not require certification. In
contrast, for X25519MLKEM768, the ML-KEM implementation must be certified.</t>
        </li>
        <li>
          <t><strong>SP800-227 compliance</strong>. The NIST Special Publication 800-227 <xref target="NIST-SP-800-227"/> provides general guidance on the design and use of key-encapsulation mechanisms, including hybrid constructions. The key agreements defined in this document follow the principles described in Section 4.6 of <xref target="NIST-SP-800-227"/>, which discusses the combination of post-quantum and classical key-establishment schemes and the use of approved key combiners. In particular, the shared-secret concatenation and HKDF-based derivation used by the TLS 1.3 are consistent with the composite-KEM constructions and key-combiner recommendations outlined in Sections 4.6.1 and 4.6.2 of <xref target="NIST-SP-800-227"/>. Section 4.6.3 of <xref target="NIST-SP-800-227"/> further provides relevant security considerations for hybrid KEM designs underlying the approach used in this document.</t>
        </li>
      </ul>
    </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>
      <t>All groups defined in this document use and generate fixed-length public keys, ciphertexts,
and shared secrets, which complies with the requirements described in <xref section="6" sectionFormat="of" target="hybrid"/>.</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="NIST-FIPS-203"/>.</t>
      <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="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="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>Experimental code points for pre-standard versions of Kyber786 were added to the TLS registry as X25519Kyber768Draft00 (25497) and SecP256r1Kyber768Draft00 (25498). This document obsoletes these entries. IANA is instructed to modify the recommended field to 'D' and update the reference to add [ this RFC ].  The comment fields for 25497 and 25498 are updated to "Pre-standards version of Kyber768. Obsoleted by [this RFC]"</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="NIST-FIPS-203">
          <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="NIST-SP-800-56C">
          <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="NIST-SP-800-135">
          <front>
            <title>Recommendation for existing application-specific key derivation functions</title>
            <author fullname="Q H Dang" initials="Q." surname="Dang">
              <organization/>
            </author>
            <date year="2011"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-135r1"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="NIST-SP-800-227">
          <front>
            <title>Recommendations for Key-Encapsulation Mechanisms</title>
            <author fullname="Gorjan Alagic" initials="G." surname="Alagic">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-227"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="KEYAGREEMENT">
          <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="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="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 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>
        <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="21" month="July" year="2025"/>
            <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
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates RFC 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-15"/>
        </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>
      </references>
    </references>
    <?line 304?>

<section anchor="change-log">
      <name>Change log</name>
      <ul spacing="normal">
        <li>
          <t>draft-ietf-tls-ecdhe-mlkem-01:
          </t>
          <ul spacing="normal">
            <li>
              <t>Alignment with the final version of <xref target="hybrid"/></t>
            </li>
            <li>
              <t>Added new section called Discussion and moved FIPS-compliance and Failures text there.</t>
            </li>
            <li>
              <t>The Construction section has been removed.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-tls-ecdhe-mlkem-00:
          </t>
          <ul spacing="normal">
            <li>
              <t>Change a name of the draft, following adoption by TLS WG</t>
            </li>
            <li>
              <t>Fixes references to the to NIST ECC CDH</t>
            </li>
          </ul>
        </li>
        <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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
tC87Zu/EI6tpeDjhv5YPSi7Z/wDfRkfZ6DUAAA==

-->

</rfc>
