p->return_size = 0;
if (p->data_type == OSSL_PARAM_INTEGER) {
p->return_size = sizeof(int32_t); /* Minimum expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(int32_t):
*(int32_t *)p->data = val;
}
} else if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER && val >= 0) {
p->return_size = sizeof(uint32_t); /* Minimum expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(uint32_t):
*(uint32_t *)p->data = (uint32_t)val;
}
} else if (p->data_type == OSSL_PARAM_REAL) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(double):
*(double *)p->data = (double)val;
if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
p->return_size = sizeof(uint32_t); /* Minimum expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(uint32_t):
*(uint32_t *)p->data = val;
}
} else if (p->data_type == OSSL_PARAM_INTEGER) {
p->return_size = sizeof(int32_t); /* Minimum expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(int32_t):
if (val <= INT32_MAX) {
}
} else if (p->data_type == OSSL_PARAM_REAL) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(double):
*(double *)p->data = (double)val;
p->return_size = 0;
if (p->data_type == OSSL_PARAM_INTEGER) {
p->return_size = sizeof(int64_t); /* Expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(int32_t):
if (val >= INT32_MIN && val <= INT32_MAX) {
}
} else if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER && val >= 0) {
p->return_size = sizeof(uint64_t); /* Expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(uint32_t):
if (val <= UINT32_MAX) {
}
} else if (p->data_type == OSSL_PARAM_REAL) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(double):
u64 = val < 0 ? -val : val;
if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
p->return_size = sizeof(uint64_t); /* Expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(uint32_t):
if (val <= UINT32_MAX) {
}
} else if (p->data_type == OSSL_PARAM_INTEGER) {
p->return_size = sizeof(int64_t); /* Expected size */
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(int32_t):
if (val <= INT32_MAX) {
bytes = (size_t)BN_num_bytes(val);
p->return_size = bytes;
+ if (p->data == NULL)
+ return 1;
return p->data_size >= bytes
&& BN_bn2nativepad(val, p->data, bytes) >= 0;
}
if (p->data_type == OSSL_PARAM_REAL) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(double):
*(double *)p->data = val;
} else if (p->data_type == OSSL_PARAM_UNSIGNED_INTEGER
&& val == (ossl_uintmax_t)val) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(uint32_t):
if (val >= 0 && val <= UINT32_MAX) {
break; }
} else if (p->data_type == OSSL_PARAM_INTEGER && val == (ossl_intmax_t)val) {
p->return_size = sizeof(double);
+ if (p->data == NULL)
+ return 1;
switch (p->data_size) {
case sizeof(int32_t):
if (val >= INT32_MIN && val <= INT32_MAX) {
unsigned int type)
{
p->return_size = len;
+ if (p->data == NULL)
+ return 1;
if (p->data_type != type || p->data_size < len)
return 0;
OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf,
size_t bsize)
{
+ if (buf != NULL && bsize == 0)
+ bsize = strlen(buf) + 1;
return ossl_param_construct(key, OSSL_PARAM_UTF8_STRING, buf, bsize);
}
p->return_size = len;
if (p->data_type != type)
return 0;
- *(const void **)p->data = val;
+ if (p->data != NULL)
+ *(const void **)p->data = val;
return 1;
}