From: slontis Date: Tue, 28 Jan 2025 06:25:32 +0000 (+1100) Subject: ML-DSA Updates to encoders required because of changes on the master X-Git-Tag: openssl-3.5.0-alpha1~590 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c83e6c0a2c796f5f733c1956a79cf290fe341ec9;p=thirdparty%2Fopenssl.git ML-DSA Updates to encoders required because of changes on the master branch. Reviewed-by: Tim Hudson Reviewed-by: Tomas Mraz Reviewed-by: Viktor Dukhovni (Merged from https://github.com/openssl/openssl/pull/26575) --- diff --git a/crypto/ml_dsa/ml_dsa_key.c b/crypto/ml_dsa/ml_dsa_key.c index 4f9cd3226cc..5feb2eb3da4 100644 --- a/crypto/ml_dsa/ml_dsa_key.c +++ b/crypto/ml_dsa/ml_dsa_key.c @@ -17,6 +17,7 @@ #include "ml_dsa_params.h" #include "ml_dsa_matrix.h" #include "ml_dsa_hash.h" +#include "internal/encoder.h" /** * @brief Create a new ML_DSA_KEY object diff --git a/providers/implementations/encode_decode/encode_key2any.c b/providers/implementations/encode_decode/encode_key2any.c index d2c4ccaa230..0ca75b9af7e 100644 --- a/providers/implementations/encode_decode/encode_key2any.c +++ b/providers/implementations/encode_decode/encode_key2any.c @@ -848,7 +848,8 @@ static int ecx_pki_priv_to_der(const void *vecxkey, unsigned char **pder, /* ---------------------------------------------------------------------- */ #ifndef OPENSSL_NO_ML_DSA -static int ml_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder) +static int ml_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder, + ossl_unused void *ctx) { const ML_DSA_KEY *key = vkey; size_t publen; @@ -867,7 +868,8 @@ static int ml_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder) return publen; } -static int ml_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder) +static int ml_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder, + ossl_unused void *ctx) { const ML_DSA_KEY *key = vkey; size_t len; @@ -1546,24 +1548,24 @@ MAKE_ENCODER(ec, ec, X9_62, pem); #endif #ifndef OPENSSL_NO_ML_DSA -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, EncryptedPrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, EncryptedPrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, PrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, PrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, SubjectPublicKeyInfo, der); -MAKE_ENCODER(ml_dsa_44, ml_dsa, EVP_PKEY_ML_DSA_44, SubjectPublicKeyInfo, pem); - -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, EncryptedPrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, EncryptedPrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, PrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, PrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, SubjectPublicKeyInfo, der); -MAKE_ENCODER(ml_dsa_65, ml_dsa, EVP_PKEY_ML_DSA_65, SubjectPublicKeyInfo, pem); - -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, EncryptedPrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, EncryptedPrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, PrivateKeyInfo, der); -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, PrivateKeyInfo, pem); -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, SubjectPublicKeyInfo, der); -MAKE_ENCODER(ml_dsa_87, ml_dsa, EVP_PKEY_ML_DSA_87, SubjectPublicKeyInfo, pem); +MAKE_ENCODER(ml_dsa_44, ml_dsa, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_44, ml_dsa, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_44, ml_dsa, PrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_44, ml_dsa, PrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_44, ml_dsa, SubjectPublicKeyInfo, der); +MAKE_ENCODER(ml_dsa_44, ml_dsa, SubjectPublicKeyInfo, pem); + +MAKE_ENCODER(ml_dsa_65, ml_dsa, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_65, ml_dsa, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_65, ml_dsa, PrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_65, ml_dsa, PrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_65, ml_dsa, SubjectPublicKeyInfo, der); +MAKE_ENCODER(ml_dsa_65, ml_dsa, SubjectPublicKeyInfo, pem); + +MAKE_ENCODER(ml_dsa_87, ml_dsa, EncryptedPrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_87, ml_dsa, EncryptedPrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_87, ml_dsa, PrivateKeyInfo, der); +MAKE_ENCODER(ml_dsa_87, ml_dsa, PrivateKeyInfo, pem); +MAKE_ENCODER(ml_dsa_87, ml_dsa, SubjectPublicKeyInfo, der); +MAKE_ENCODER(ml_dsa_87, ml_dsa, SubjectPublicKeyInfo, pem); #endif /* OPENSSL_NO_ML_DSA */ diff --git a/providers/implementations/encode_decode/encode_key2text.c b/providers/implementations/encode_decode/encode_key2text.c index 574dad142f7..9db121f551b 100644 --- a/providers/implementations/encode_decode/encode_key2text.c +++ b/providers/implementations/encode_decode/encode_key2text.c @@ -593,6 +593,7 @@ static int ml_dsa_to_text(BIO *out, const void *key, int selection) { return ossl_ml_dsa_to_text(out, (ML_DSA_KEY *)key, selection); } +#endif /* OPENSSL_NO_ML_DSA */ /* ---------------------------------------------------------------------- */ static void *key2text_newctx(void *provctx)