From 2e898497a61ee553c8e67782743feab7b62ae120 Mon Sep 17 00:00:00 2001 From: Pauli Date: Wed, 12 Feb 2025 10:13:36 +1100 Subject: [PATCH] fips: add hybrid KEM algorithms to the FIPS provider Co-Authored-By: Tomas Mraz Reviewed-by: Tim Hudson Reviewed-by: Neil Horman Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/26714) --- providers/fips/fipsprov.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c index 798d776fcdf..2cdfd4f5e55 100644 --- a/providers/fips/fipsprov.c +++ b/providers/fips/fipsprov.c @@ -514,6 +514,14 @@ static const OSSL_ALGORITHM fips_asym_kem[] = { { PROV_NAMES_ML_KEM_512, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_asym_kem_functions }, { PROV_NAMES_ML_KEM_768, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_asym_kem_functions }, { PROV_NAMES_ML_KEM_1024, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_asym_kem_functions }, +# if !defined(OPENSSL_NO_ECX) + { "X25519MLKEM768", FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions }, + { "X448MLKEM1024", FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions }, +# endif +# if !defined(OPENSSL_NO_EC) + { "SecP256r1MLKEM768", FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions }, + { "SecP384r1MLKEM1024", FIPS_DEFAULT_PROPERTIES, ossl_mlx_kem_asym_kem_functions }, +# endif #endif { NULL, NULL, NULL } }; @@ -566,12 +574,24 @@ static const OSSL_ALGORITHM fips_keymgmt[] = { ossl_cmac_legacy_keymgmt_functions, PROV_DESCS_CMAC_SIGN }, #endif #ifndef OPENSSL_NO_ML_KEM - { PROV_NAMES_ML_KEM_512, FIPS_DEFAULT_PROPERTIES, - ossl_ml_kem_512_keymgmt_functions, PROV_DESCS_ML_KEM_512 }, - { PROV_NAMES_ML_KEM_768, FIPS_DEFAULT_PROPERTIES, - ossl_ml_kem_768_keymgmt_functions, PROV_DESCS_ML_KEM_768 }, - { PROV_NAMES_ML_KEM_1024, FIPS_DEFAULT_PROPERTIES, - ossl_ml_kem_1024_keymgmt_functions, PROV_DESCS_ML_KEM_1024 }, + { PROV_NAMES_ML_KEM_512, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_512_keymgmt_functions, + PROV_DESCS_ML_KEM_512 }, + { PROV_NAMES_ML_KEM_768, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_768_keymgmt_functions, + PROV_DESCS_ML_KEM_768 }, + { PROV_NAMES_ML_KEM_1024, FIPS_DEFAULT_PROPERTIES, ossl_ml_kem_1024_keymgmt_functions, + PROV_DESCS_ML_KEM_1024 }, +# if !defined(OPENSSL_NO_ECX) + { PROV_NAMES_X25519MLKEM768, FIPS_DEFAULT_PROPERTIES, ossl_mlx_x25519_kem_kmgmt_functions, + PROV_DESCS_X25519MLKEM768 }, + { PROV_NAMES_X448MLKEM1024, FIPS_DEFAULT_PROPERTIES, ossl_mlx_x448_kem_kmgmt_functions, + PROV_DESCS_X448MLKEM1024 }, +# endif +# if !defined(OPENSSL_NO_EC) + { PROV_NAMES_SecP256r1MLKEM768, FIPS_DEFAULT_PROPERTIES, ossl_mlx_p256_kem_kmgmt_functions, + PROV_DESCS_SecP256r1MLKEM768 }, + { PROV_NAMES_SecP384r1MLKEM1024, FIPS_DEFAULT_PROPERTIES, ossl_mlx_p384_kem_kmgmt_functions, + PROV_DESCS_SecP384r1MLKEM1024 }, +# endif #endif { NULL, NULL, NULL } }; -- 2.47.3