[TLS] Re: WG Last Call: draft-ietf-tls-mlkem-05 (Ends 2026-02-27)

Viktor Dukhovni <ietf-dane@dukhovni.org> Tue, 24 February 2026 01:01 UTC

Return-Path: <ietf-dane@dukhovni.org>
X-Original-To: tls@mail2.ietf.org
Delivered-To: tls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id CABE0BCA3ECA for <tls@mail2.ietf.org>; Mon, 23 Feb 2026 17:01:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.398
X-Spam-Level:
X-Spam-Status: No, score=-4.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=dukhovni.org
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lQ1G2iXx9Pys for <tls@mail2.ietf.org>; Mon, 23 Feb 2026 17:01:53 -0800 (PST)
Received: from chardros.imrryr.org (chardros.imrryr.org [144.6.86.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 4B9E8BCA3EC4 for <tls@ietf.org>; Mon, 23 Feb 2026 17:01:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=dukhovni.org; i=@dukhovni.org; q=dns/txt; s=f8320d6e; t=1771894904; h=date : from : to : subject : message-id : reply-to : references : mime-version : content-type : in-reply-to : content-transfer-encoding : from; bh=wix0HS7DSYj6W26VwT1wnG63Gacb8S55UpFRrx6JNQw=; b=EDS4mkRW2dsPq9FRwfiCbo0FnvS7jzVUT0POXmiw9/ytMHQZVyUnNYCW5KXCQ680edbuw 2K7K6ZRvj3OUEcw7ZkzKf234/M5qn9AgP0AnTcbaVByc5h6mTcRC14qSuhZc6mT9d+U+SFo 5j8L3JKV/9Y/D5hCJu0B8DI7IDa24bE=
Received: by chardros.imrryr.org (Postfix, from userid 1000) id 29C09938E14; Tue, 24 Feb 2026 12:01:44 +1100 (AEDT)
Date: Tue, 24 Feb 2026 12:01:43 +1100
From: Viktor Dukhovni <ietf-dane@dukhovni.org>
To: tls@ietf.org
Message-ID: <aZz4d1YYbcKwqeCU@chardros.imrryr.org>
Mail-Followup-To: tls@ietf.org
References: <CAOgPGoDLVqAVesWjrrD9ZR8HMkqQVLMp69vOkXPkk87MzcsOSw@mail.gmail.com> <cfca185b-bfdc-4815-83ec-9c759bf4f7dd@kavula.fi>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <cfca185b-bfdc-4815-83ec-9c759bf4f7dd@kavula.fi>
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: EZIY23SE7JLQCBS2OXEBQOEOKBU6LQUZ
X-Message-ID-Hash: EZIY23SE7JLQCBS2OXEBQOEOKBU6LQUZ
X-MailFrom: ietf-dane@dukhovni.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Reply-To: tls@ietf.org
Subject: [TLS] Re: WG Last Call: draft-ietf-tls-mlkem-05 (Ends 2026-02-27)
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/AKdC2BRYjlhzN3yeLo7dcFf09LM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>

On Mon, Feb 23, 2026 at 04:27:11PM +0200, Marc Penninga wrote:
> Hi,
> 
> I support publication of this document. As has been remarked before, the code points have already been allocated so the question is really only whether we want to document them.
> 
> I think that OpenSSL's decision, as described by Viktor, to include
> pure ML-KEM but hide it behind a compiler flag, is the right choice:
> that way it's available for people who need it and won't bother anyone
> else. I guess that other TLS libraries and web browsers will take the
> same approach.

For the record, sorry if my earlier post was unclear, the ML-KEM-only
groups are not *by default* disabled at compile time, though a user
building OpenSSL from source can choose to do that.

Rather, the default *runtime configuration* does not include these among
either the server's or the client's supported groups.  To use these,
both the server and the client (if both are OpenSSL) have to choose
non-default supported group settings:

    $ openssl s_server -tls1_3 -enable_server_rpk -cert apps/server.pem -groups mlkem768 \
        -accept 12345  -naccept 1 -brief
    Protocol version: TLSv1.3
    Client cipher list: TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
    Ciphersuite: TLS_AES_256_GCM_SHA384
    Signature Algorithms: mldsa65:mldsa87:mldsa44:ecdsa_secp256r1_sha256:ecdsa_secp384r1_sha384:ecdsa_secp521r1_sha512:ed25519:ed448:ecdsa_brainpoolP256r1tls13_sha256:ecdsa_brainpoolP384r1tls13_sha384:ecdsa_brainpoolP512r1tls13_sha512:rsa_pss_pss_sha256:rsa_pss_pss_sha384:rsa_pss_pss_sha512:rsa_pss_rsae_sha256:rsa_pss_rsae_sha384:rsa_pss_rsae_sha512:rsa_pkcs1_sha256:rsa_pkcs1_sha384:rsa_pkcs1_sha512:sm2sig_sm3
    Own signature type: rsa_pss_rsae_sha256
    No peer certificate or raw public key
    Supported groups: MLKEM768
    Peer Temp Key: ML-KEM-768

    $ openssl s_client -tls1_3 -expected-rpks apps/server.pem -groups mlkem768 \
        -connect 127.0.0.1:12345 -servername localhost -brief </dev/null
    Connecting to 127.0.0.1
    CONNECTION ESTABLISHED
    Protocol version: TLSv1.3
    Ciphersuite: TLS_AES_256_GCM_SHA384
    Peer used raw public key
    Signature type: rsa_pss_rsae_sha256
    Verification: OK
    DANE TLSA 3 1 0 ...a9f0a16595938d0203010001 matched the peer raw public key
    Negotiated TLS1.3 group: MLKEM768
    DONE

-- 
    Viktor.  🇺🇦 Слава Україні!