return p != NULL && p->return_size != OSSL_PARAM_UNMODIFIED;
}
-void OSSL_PARAM_set_unmodified(OSSL_PARAM *p)
+void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p)
{
if (p != NULL)
- p->return_size = OSSL_PARAM_UNMODIFIED;
+ while (p->key != NULL)
+ p++->return_size = OSSL_PARAM_UNMODIFIED;
}
int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val)
{
size_t sz;
- if (val == NULL || p == NULL || p->data_type != type)
+ if ((val == NULL && used_len == NULL) || p == NULL || p->data_type != type)
return 0;
sz = p->data_size;
if (p->data == NULL)
return 0;
+ if (val == NULL)
+ return 1;
+
if (*val == NULL) {
char *const q = OPENSSL_malloc(sz);