X509V3_PARSE_LIST(3)

NAME
X509V3_parse_list, X509V3_conf_free - create and destroy CONF_VALUE objects

SYNOPSIS
libcrypto
#include <openssl/x509v3.h>
STACK_OF(CONF_VALUE) *
X509V3_parse_list(const char *string);
void
X509V3_conf_free(CONF_VALUE *conf);

DESCRIPTION
X509V3_parse_list() parses the string and allocates an array of CONF_VALUE objects according to the following rules.

1.  The string is split into fields at comma (‘’), characters.

2.  If a field contains a colon (‘’): character, the part before the colon is regarded as a name and the part after the first colon as the associated value. Otherwise, the whole field is regarded as the name and NULL is used as the associated value.

3.  For each name and each value, leading and trailing whitespace as defined by isspace(3) is ignored.

4.  Parsing ends when a NUL, carriage return, or newline character is encountered.

A new, empty STACK_OF(CONF_VALUE) is allocated and for each parsed name, one CONF_VALUE structure containing the optional value is pushed onto it.

X509V3_conf_free() releases all memory used by conf. If conf is NULL, no action occurs.

The typical way to release the memory returned from X509V3_parse_list() is by calling sk_CONF_VALUE_pop_free() on it, passing a pointer to the function X509V3_conf_free() as the second argument.

RETURN VALUES
X509V3_parse_list() returns the new STACK_OF(CONF_VALUE) object or NULL if an error occurs, in particular if there isn't any name, if the name before a colon or after a comma is empty, if the value after a colon is empty, or if memory allocation fails.

SEE ALSO
isspace(3), sk_pop_free(3), STACK_OF(3), v2i_ASN1_BIT_STRING(3)

HISTORY
X509V3_parse_list() and X509V3_conf_free() first appeared in OpenSSL 0.9.2 and have been available since OpenBSD 2.6.