fips: add hybrid KEM algorithms to the FIPS provider

Co-Authored-By: Tomas Mraz <tomas@openssl.org>

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26714)
This commit is contained in:
Pauli 2025-02-12 10:13:36 +11:00 committed by Tomas Mraz
parent b6c5342613
commit 2e898497a6
1 changed files with 26 additions and 6 deletions

View File

@ -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 }
};