The examples are also updated to have correct terminators.
doc/man3/OSSL_PARAM.pod is deliberately written with no help from the
constructor macros described in OSSL_PARAM_int.pod. Therefore, use of
OSSL_PARAM_END isn't shown directly here, only leaving a link to its
man-page to indicate that there is that option.
Fixes #11280
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/13478)
However, if the I<responder> can handle multiple elements with the
same key, those elements must be handled in the order they are in.
However, if the I<responder> can handle multiple elements with the
same key, those elements must be handled in the order they are in.
+An B<OSSL_PARAM> array must have a terminating element, where I<key>
+is NULL. The usual full terminating template is:
+
+ { NULL, 0, NULL, 0, 0 }
+
+This can also be specified using L<OSSL_PARAM_END(3)>.
+
=head2 B<OSSL_PARAM> fields
=over 4
=head2 B<OSSL_PARAM> fields
=over 4
The identity of the parameter in the form of a string.
The identity of the parameter in the form of a string.
+In an B<OSSL_PARAM> array, an item with this field set to NULL is
+considered a terminating item.
+
=item I<data_type>
The I<data_type> is a value that describes the type and organization of
=item I<data_type>
The I<data_type> is a value that describes the type and organization of
OSSL_PARAM set[] = {
{ "foo", OSSL_PARAM_UTF8_STRING_PTR, &foo, foo_l, 0 },
{ "bar", OSSL_PARAM_UTF8_STRING, &bar, sizeof(bar), 0 },
OSSL_PARAM set[] = {
{ "foo", OSSL_PARAM_UTF8_STRING_PTR, &foo, foo_l, 0 },
{ "bar", OSSL_PARAM_UTF8_STRING, &bar, sizeof(bar), 0 },
- { NULL, 0, NULL, 0, NULL }
+ { NULL, 0, NULL, 0, 0 }
OSSL_PARAM request[] = {
{ "foo", OSSL_PARAM_UTF8_STRING_PTR, &foo, 0 /*irrelevant*/, 0 },
{ "bar", OSSL_PARAM_UTF8_STRING, &bar, sizeof(bar), 0 },
OSSL_PARAM request[] = {
{ "foo", OSSL_PARAM_UTF8_STRING_PTR, &foo, 0 /*irrelevant*/, 0 },
{ "bar", OSSL_PARAM_UTF8_STRING, &bar, sizeof(bar), 0 },
- { NULL, 0, NULL, 0, NULL }
+ { NULL, 0, NULL, 0, 0 }
};
A I<responder> that receives this array (as I<params> in this example)
};
A I<responder> that receives this array (as I<params> in this example)