]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Advertize signature setting in settable_ctx fn
authorSimo Sorce <simo@redhat.com>
Tue, 15 Apr 2025 19:42:22 +0000 (15:42 -0400)
committerTomas Mraz <tomas@openssl.org>
Wed, 23 Apr 2025 11:35:03 +0000 (13:35 +0200)
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)

providers/implementations/signature/ml_dsa_sig.c

index 63c5b7fecb4c37524f0644b08ffc30b61ebd87f7..c649110adc26017c03d9b8984cb128a335f1b94a 100644 (file)
@@ -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[] = {