| X509_ALGOR_DUP(3) | Library Functions Manual | X509_ALGOR_DUP(3) |
NAME¶
X509_ALGOR_new,
X509_ALGOR_free,
X509_ALGOR_dup,
X509_ALGOR_set0,
X509_ALGOR_get0,
X509_ALGOR_cmp — create,
change, and inspect algorithm identifiers
SYNOPSIS¶
#include
<openssl/x509.h>
X509_ALGOR *
X509_ALGOR_new(void);
void
X509_ALGOR_free(X509_ALGOR
*alg);
X509_ALGOR *
X509_ALGOR_dup(X509_ALGOR
*alg);
int
X509_ALGOR_set0(X509_ALGOR *alg,
ASN1_OBJECT *aobj, int ptype,
void *pval);
void
X509_ALGOR_get0(const ASN1_OBJECT
**paobj, int *pptype, const void
**ppval, const X509_ALGOR *alg);
int
X509_ALGOR_cmp(const X509_ALGOR
*a, const X509_ALGOR *b);
DESCRIPTION¶
An X509_ALGOR object represents an ASN.1 AlgorithmIdentifier structure defined in RFC 5280 section 4.1.1.2. It specifies a cryptographic algorithm by an ASN.1 object identifier (OID) that can be obtained from OBJ_nid2obj(3), together with optional algorithm-specific parameters of the type ASN1_TYPE, see ASN1_TYPE_set(3). X509_ALGOR objects are used by many other objects, for example certificates, certificate revocation lists, and certificate requests.
X509_ALGOR_new()
allocates a new X509_ALGOR object containing the
object that OBJ_nid2obj(3) returns for
NID_undef as the algorithm and
a NULL pointer as the
parameters.
X509_ALGOR_free()
frees alg and any data contained in it. If
alg is NULL, no action
occurs.
X509_ALGOR_dup()
creates a deep copy of alg. It is implemented by
calling ASN1_item_dup(3) with arguments of
X509_ALGOR_it and alg, which
is equivalent to calling i2d_X509_ALGOR(3) and
d2i_X509_ALGOR(3).
X509_ALGOR_set0()
sets the algorithm OID of alg to
aobj and the associated parameter type to
ptype with value pval. If
ptype is V_ASN1_UNDEF, the
parameter is omitted and pval is ignored. If
ptype is zero, pval is ignored
and the existing parameter is left unchanged, or if
alg does not contain a parameter, a new, empty
parameter of type V_ASN1_UNDEF is added. Otherwise
ptype and pval have the same
meaning as the type and value
parameters to ASN1_TYPE_set(3). Ownership of
aobj and, unless it is ignored, of
pval is transferred to alg on
success.
X509_ALGOR_get0()
returns alg's algorithm OID in
*paobj, its parameter type in
*pptype, and its parameter value in
*ppval. Any of paobj,
pptype, and ppval can be
NULL. If pptype is
NULL or if *pptype is
V_ASN1_UNDEF then *ppval's
value is undefined.
X509_ALGOR_cmp()
compares a and b.
RETURN VALUES¶
X509_ALGOR_new() and
X509_ALGOR_dup() return a new
X509_ALGOR object or NULL if
an error occurs.
X509_ALGOR_set0() returns 1 for success or
0 if alg is NULL or memory
allocation fails.
X509_ALGOR_cmp() returns 0 if
a and b have identical encodings
or non-zero otherwise.
SEE ALSO¶
ASN1_TYPE_set(3), d2i_X509_ALGOR(3), EVP_DigestInit(3), OBJ_nid2obj(3), X509_get0_signature(3), X509_new(3), X509_PUBKEY_get0_param(3), X509_signature_dump(3)
STANDARDS¶
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
HISTORY¶
X509_ALGOR_new() and
X509_ALGOR_free() appeared in SSLeay 0.4 or earlier
and have been available since OpenBSD 2.4.
X509_ALGOR_dup() first appeared in SSLeay
0.9.1 and has been available since OpenBSD 2.6.
X509_ALGOR_set0() and
X509_ALGOR_get0() first appeared in OpenSSL 0.9.8h
and have been available since OpenBSD 4.5.
X509_ALGOR_cmp() first appeared in OpenSSL
0.9.8zd, 1.0.0p, and 1.0.1k and has been available since
OpenBSD 4.9.
| March 19, 2024 | Linux 6.4.0-150700.53.19-default |