From: Pauli Date: Tue, 11 Feb 2025 23:13:36 +0000 (+1100) Subject: fips: add hybrid KEM algorithms to the FIPS provider X-Git-Tag: openssl-3.5.0-alpha1~499 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e898497a61ee553c8e67782743feab7b62ae120;p=thirdparty%2Fopenssl.git 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) --- 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 } };