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