libressl-X509at_get_attr - X.501 Attribute array read accessors


X509AT_GET_ATTR(3) Library Functions Manual X509AT_GET_ATTR(3)

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. GNU March 28, 2022 X509AT_GET_ATTR(3)


Updated 2024-01-29 - jenkler.se | uex.se