void *cbarg)
{
DH *dh = keydata;
- OSSL_PARAM_BLD tmpl;
+ OSSL_PARAM_BLD *tmpl;
OSSL_PARAM *params = NULL;
int ok = 1;
if (dh == NULL)
return 0;
- OSSL_PARAM_BLD_init(&tmpl);
+ tmpl = OSSL_PARAM_BLD_new();
+ if (tmpl == NULL)
+ return 0;
if ((selection & OSSL_KEYMGMT_SELECT_ALL_PARAMETERS) != 0)
- ok = ok && domparams_to_params(dh, &tmpl);
+ ok = ok && domparams_to_params(dh, tmpl);
if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0)
- ok = ok && key_to_params(dh, &tmpl);
+ ok = ok && key_to_params(dh, tmpl);
if (!ok
- || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL)
+ || (params = OSSL_PARAM_BLD_to_param(tmpl)) == NULL) {
+ OSSL_PARAM_BLD_free(tmpl);
return 0;
+ }
+ OSSL_PARAM_BLD_free(tmpl);
ok = param_cb(params, cbarg);
- OSSL_PARAM_BLD_free(params);
+ OSSL_PARAM_BLD_free_params(params);
return ok;
}