Commit 8f99bcdbb8 for openssl.org

commit 8f99bcdbb80103b7cbdc4269c607142549e2d678
Author: Simo Sorce <simo@redhat.com>
Date:   Tue Apr 15 15:42:22 2025 -0400

    Advertize signature setting in settable_ctx fn

    Signed-off-by: Simo Sorce <simo@redhat.com>

    Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
    Reviewed-by: Tomas Mraz <tomas@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/27342)

diff --git a/providers/implementations/signature/ml_dsa_sig.c b/providers/implementations/signature/ml_dsa_sig.c
index 63c5b7fecb..c649110adc 100644
--- a/providers/implementations/signature/ml_dsa_sig.c
+++ b/providers/implementations/signature/ml_dsa_sig.c
@@ -418,19 +418,32 @@ static int ml_dsa_set_ctx_params(void *vctx, const OSSL_PARAM params[])
     return 1;
 }

+#define MLDSA_COMMON_SETTABLE_CTX_PARAMS                                   \
+    OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_CONTEXT_STRING, NULL, 0), \
+    OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_TEST_ENTROPY, NULL, 0),   \
+    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_DETERMINISTIC, 0),                 \
+    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MU, 0),                            \
+    OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING, 0),              \
+    OSSL_PARAM_END
+
 static const OSSL_PARAM *ml_dsa_settable_ctx_params(void *vctx,
                                                     ossl_unused void *provctx)
 {
+    PROV_ML_DSA_CTX *pctx = (PROV_ML_DSA_CTX *)vctx;
+
     static const OSSL_PARAM settable_ctx_params[] = {
-        OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_CONTEXT_STRING, NULL, 0),
-        OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_TEST_ENTROPY, NULL, 0),
-        OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_DETERMINISTIC, 0),
-        OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MU, 0),
-        OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING, 0),
-        OSSL_PARAM_END
+        MLDSA_COMMON_SETTABLE_CTX_PARAMS
+    };
+
+    static const OSSL_PARAM settable_verifymsg_ctx_params[] = {
+        OSSL_PARAM_octet_string(OSSL_SIGNATURE_PARAM_SIGNATURE, NULL, 0),
+        MLDSA_COMMON_SETTABLE_CTX_PARAMS
     };

-    return settable_ctx_params;
+    if (pctx != NULL && pctx->operation == EVP_PKEY_OP_VERIFYMSG)
+        return settable_verifymsg_ctx_params;
+    else
+        return settable_ctx_params;
 }

 static const OSSL_PARAM known_gettable_ctx_params[] = {