]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
kmac: avoid using ossl_prov_digest_load_from_params()
authorPauli <ppzgs1@gmail.com>
Thu, 28 Aug 2025 04:48:51 +0000 (14:48 +1000)
committerPauli <ppzgs1@gmail.com>
Wed, 3 Sep 2025 00:26:24 +0000 (10:26 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28361)

providers/implementations/macs/kmac_prov.c.in

index 14d9d53b6d425600400ab8d2bb75d1b5c4f5c3f5..a1cf8ea2bb8715c7d6b2747f30df9376767e5e4d 100644 (file)
@@ -189,15 +189,24 @@ static struct kmac_data_st *kmac_new(void *provctx)
     return kctx;
 }
 
+#define kmac_new_list
+
+{- produce_param_decoder('kmac_new',
+                         (['MAC_PARAM_DIGEST',     'digest', 'utf8_string'],
+                          ['MAC_PARAM_PROPERTIES', 'propq',  'utf8_string'],
+                          ['ALG_PARAM_ENGINE',     'engine', 'utf8_string', 'hidden'],
+                         )); -}
+
 static void *kmac_fetch_new(void *provctx, const OSSL_PARAM *params)
 {
     struct kmac_data_st *kctx = kmac_new(provctx);
+    struct kmac_new_st p;
     int md_size;
 
-    if (kctx == NULL)
+    if (kctx == NULL || !kmac_new_decoder(params, &p))
         return 0;
-    if (!ossl_prov_digest_load_from_params(&kctx->digest, params,
-                                      PROV_LIBCTX_OF(provctx))) {
+    if (!ossl_prov_digest_load(&kctx->digest, p.digest, p.propq, p.engine,
+                               PROV_LIBCTX_OF(provctx))) {
         kmac_free(kctx);
         return 0;
     }