NAME
X509at_get_attr,
X509at_get_attr_count,
X509at_get_attr_by_OBJ,
X509at_get_attr_by_NID,
X509at_get0_data_by_OBJ —
X.501 Attribute array read
accessors
SYNOPSIS
#include
<openssl/x509.h>
X509_ATTRIBUTE *
X509at_get_attr(const
STACK_OF(X509_ATTRIBUTE) *attrs, int index);
int
X509at_get_attr_count(const
STACK_OF(X509_ATTRIBUTE) *attrs);
int
X509at_get_attr_by_OBJ(const
STACK_OF(X509_ATTRIBUTE) *attrs, const ASN1_OBJECT
*obj, int start_after);
int
X509at_get_attr_by_NID(const
STACK_OF(X509_ATTRIBUTE) *attrs, int nid,
int start_after);
void *
X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE)
*attrs, const ASN1_OBJECT *obj,
int start_after, int type);
DESCRIPTION
These functions retrieve information from the
attrs array of X.501 Attribute objects. They all fail
if attrs is a NULL
pointer.
X509at_get_attr()
returns the array element at the zero-based index. It
fails if the index is negative or greater than or
equal to the number of objects in the array.
X509at_get_attr_count()
returns the number of objects currently stored in the array.
The three remaining functions search
the array starting after the index start_after. They
fail if no matching object is found.
X509at_get0_data_by_OBJ()
also fails if the data is not of the requested
type.
Additionally, the
start_after argument of
X509at_get0_data_by_OBJ()
is interpreted in a special way. If start_after is -2
or smaller, X509at_get0_data_by_OBJ() also fails if
attrs contains more than one matching object. If
start_after is -3 or smaller, it also fails unless the
matching object contains exactly one value.
RETURN VALUES
X509at_get_attr() returns an internal
pointer or NULL on failure.
X509at_get_attr_count() returns the number
of array elements or -1 on failure.
X509at_get_attr_by_OBJ() and
X509at_get_attr_by_NID() return the index of the
first object in the array that has an index greater than
start_after and a type matching
obj or nid, respectively, or -1
on failure. In addition, X509at_get_attr_by_NID()
returns -2 if
OBJ_nid2obj(3) fails on the requested
nid.
X509at_get0_data_by_OBJ() returns an
internal pointer to the data contained in the value of the first object that
has an index greater than start_after and a type
matching obj, or NULL on
failure.
SEE ALSO
EVP_PKEY_get_attr(3), OBJ_nid2obj(3), PKCS8_pkey_get0_attrs(3), STACK_OF(3), X509_ATTRIBUTE_get0_data(3), X509_ATTRIBUTE_new(3), X509_REQ_get_attr(3), X509at_add1_attr(3)
HISTORY
X509at_get_attr(),
X509at_get_attr_count(),
X509at_get_attr_by_OBJ(), and
X509at_get_attr_by_NID() first appeared in OpenSSL
0.9.5 and have been available since OpenBSD 2.7.
X509at_get0_data_by_OBJ() first appeared
in OpenSSL 0.9.8h and has been available since OpenBSD
4.5.