Manual Page Result
0
Command: X509_OBJECT_get0_X509 | Section: 3 | Source: OpenBSD | File: X509_OBJECT_get0_X509.3
X509_OBJECT_GET0_X509(3) FreeBSD Library Functions Manual
NAME
X509_OBJECT_get_type, X509_OBJECT_new, X509_OBJECT_free,
X509_OBJECT_get0_X509, X509_OBJECT_get0_X509_CRL,
X509_OBJECT_idx_by_subject, X509_OBJECT_retrieve_by_subject,
X509_OBJECT_retrieve_match - certificate, CRL, private key, and string
wrapper for certificate stores
SYNOPSIS
#include <openssl/x509_vfy.h>
X509_LOOKUP_TYPE
X509_OBJECT_get_type(const X509_OBJECT *obj);
X509_OBJECT *
X509_OBJECT_new(void);
void
X509_OBJECT_free(X509_OBJECT *obj);
X509 *
X509_OBJECT_get0_X509(const X509_OBJECT *obj);
X509_CRL *
X509_OBJECT_get0_X509_CRL(X509_OBJECT *obj);
int
X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *stack,
X509_LOOKUP_TYPE type, X509_NAME *name);
X509_OBJECT *
X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *stack,
X509_LOOKUP_TYPE type, X509_NAME *name);
X509_OBJECT *
X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *stack,
X509_OBJECT *obj);
DESCRIPTION
The X509_OBJECT structure is a shallow wrapper around one X509
certificate object or one X509_CRL certificate revocation list object.
The type of object stored at any given time can be inspected with
X509_OBJECT_get_type().
Each X509_STORE object uses one stack of X509_OBJECT structures as its
main storage area.
X509_OBJECT_new() allocates a new X509_OBJECT structure. It sets the
object type to X509_LU_NONE and the pointer to the certificate or CRL to
NULL.
If obj contains an X509 certificate, X509_OBJECT_free() calls
X509_free(3) on that inner object. If obj contains an X509_CRL
certificate revocation list, it calls X509_CRL_free(3) on that inner
list. X509_OBJECT_free() then frees the storage used for the obj itself.
If type is X509_LU_X509, X509_OBJECT_idx_by_subject() and
X509_OBJECT_retrieve_by_subject() search the given stack for a
certificate with the subject name. If type is X509_LU_CRL, they search
for a certificate revocation list with the issuer name instead.
If obj contains a certificate, X509_OBJECT_retrieve_match() searches the
given stack for a certificate with a matching subject name; if it
contains a certificate revocation list, it searches for a certificate
revocation list with a matching issuer name instead; otherwise, it
searches for an X509_OBJECT with a matching type.
RETURN VALUES
X509_OBJECT_get_type() returns X509_LU_X509 if obj contains a
certificate, X509_LU_CRL if it contains a certificate revocation list, or
X509_LU_NONE if it contains neither.
X509_OBJECT_new() returns the new object or NULL if memory allocation
fails.
X509_OBJECT_get0_X509() returns an internal pointer to the certificate
contained in obj or NULL if obj is NULL or contains no certificate.
X509_OBJECT_get0_X509_CRL() returns an internal pointer to the
certificate revocation list contained in obj or NULL if obj is NULL or
contains no certificate revocation list.
X509_OBJECT_idx_by_subject() returns the zero-based index of the first
matching certificate or revocation list in the stack or -1 if type is
neither X509_LU_X509 nor X509_LU_CRL or if no match is found.
X509_OBJECT_retrieve_by_subject() returns the first matching certificate
or revocation list in the stack or NULL if type is neither X509_LU_X509
nor X509_LU_CRL or if no match is found.
X509_OBJECT_retrieve_match() returns the first matching X509_OBJECT or
NULL if stack or obj is NULL or no match is found.
SEE ALSO
STACK_OF(3), X509_CRL_new(3), X509_LOOKUP_new(3), X509_NAME_new(3),
X509_new(3), X509_STORE_get0_objects(3), X509_STORE_get_by_subject(3),
X509_STORE_load_locations(3), X509_STORE_new(3)
HISTORY
X509_OBJECT_idx_by_subject(), X509_OBJECT_retrieve_by_subject(), and
X509_OBJECT_retrieve_match() first appeared in OpenSSL 0.9.6 and have
been available since OpenBSD 2.9.
X509_OBJECT_get_type(), X509_OBJECT_get0_X509(), and
X509_OBJECT_get0_X509_CRL() first appeared in OpenSSL 1.1.0 and have been
available since OpenBSD 6.3.
X509_OBJECT_new() and X509_OBJECT_free() first appeared in OpenSSL 1.1.0
and have been available since OpenBSD 7.1.
FreeBSD 14.1-RELEASE-p8 March 8, 2025 FreeBSD 14.1-RELEASE-p8