X509_OBJECT_get_type
,
X509_OBJECT_new
,
X509_OBJECT_up_ref_count
,
X509_OBJECT_free_contents
,
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
#include <openssl/x509_vfy.h>
X509_LOOKUP_TYPE
X509_OBJECT_get_type
(const X509_OBJECT
*obj);
X509_OBJECT *
X509_OBJECT_new
(void);
int
X509_OBJECT_up_ref_count
(X509_OBJECT
*obj);
void
X509_OBJECT_free_contents
(X509_OBJECT
*obj);
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);
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 or an X509_CRL
certificate revocation list,
X509_OBJECT_up_ref_count
() increments the reference
count of that inner object by 1. Otherwise, no action occurs.
If obj contains an
X509 certificate,
X509_OBJECT_free_contents
() 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. Otherwise, no action occurs.
X509_OBJECT_free_contents
() does not free
obj itself.
X509_OBJECT_free
() calls
X509_OBJECT_free_contents
() and 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.
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_up_ref_count
() returns 1 on
success and 0 on failure.
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.
X509_OBJECT_up_ref_count
() and
X509_OBJECT_free_contents
() first appeared in SSLeay
0.8.0 and have been available since OpenBSD 2.4.
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.