]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
fips: mark X448MLKEM1024 as non-approved
authorDimitri John Ledkov <dimitri.ledkov@surgut.co.uk>
Wed, 15 Apr 2026 23:57:15 +0000 (00:57 +0100)
committerNikola Pajkovsky <nikolap@openssl.org>
Mon, 20 Apr 2026 10:07:45 +0000 (12:07 +0200)
The [FIPS 140-3I.G.](https://csrc.nist.gov/csrc/media/Projects/cryptographic-module-validation-program/documents/fips%20140-3/FIPS%20140-3%20IG.pdf)
Section D.S Key Encapsulation Mechanisms have been substantially
update on April 9, 2026.

It now explicitely lists that hybrid mechanisms must be fixed
combinations with both portions being in boundary, and the intent
should be to use them with an approved combiner such as HKDF as part
of a protocol. With the combinations from the
https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem
explicitely mentioned that they can reach appoved or allowed claims.

Note that consensus for TLS group for X448MLKEM1024 failed to reach on
the [pqc forum](https://mailarchive.ietf.org/arch/browse/tls/?gbt=1&index=YIHJrbWVPdXIr8q57nsEUUmuaIo) and is not part of the
https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem. And there
are no other protocols defined that use this hybrid with an approved
combiner.

Also on https://test.openquantumsafe.org/ there is x448_mlkem768 but
no X448MLKEM1024.

To avoid any confusion, it is best to mark this hybrid as non-approved
going forward. It is likely also worthfile to deprecate X448MLKEM1024
altogether.

Fixes: https://github.com/openssl/openssl/pull/26220
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
MergeDate: Mon Apr 20 10:08:09 2026
(Merged from https://github.com/openssl/openssl/pull/30856)

providers/fips/fipsprov.c

index e16c9135923a21236d948a0233f75a3e466ad35d..fe8507f1799ab03fa074eb4f69069795ccb4dc94 100644 (file)
@@ -587,7 +587,7 @@ static const OSSL_ALGORITHM fips_asym_kem[] = {
     { PROV_NAMES_ML_KEM_1024, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_asym_kem_functions },
 #if !defined(OPENSSL_NO_ECX)
     { PROV_NAMES_X25519MLKEM768, FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions },
-    { PROV_NAMES_X448MLKEM1024, FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions },
+    { PROV_NAMES_X448MLKEM1024, FIPS_UNAPPROVED_PROPERTIES, ossl_mlx_kem_asym_kem_functions },
 #endif
 #if !defined(OPENSSL_NO_EC)
     { PROV_NAMES_SecP256r1MLKEM768, FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions },