NAME
X509_ALGOR_new
,
X509_ALGOR_free
,
X509_ALGOR_dup
,
X509_ALGOR_set0
,
X509_ALGOR_get0
,
X509_ALGOR_set_md
,
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);
void
X509_ALGOR_set_md
(X509_ALGOR
*alg, const EVP_MD *md);
int
X509_ALGOR_cmp
(const X509_ALGOR
*a, const X509_ALGOR *b);
DESCRIPTION
X509_ALGOR_new
()
allocates and initializes an empty X509_ALGOR object,
representing an ASN.1 AlgorithmIdentifier structure
defined in RFC 5280 section 4.1.1.2. Such objects can specify a cryptographic
algorithm together with algorithm-specific parameters. They are used by many
other objects, for example certificates, certificate revocation lists, and
certificate requests.
X509_ALGOR_free
()
frees alg.
X509_ALGOR_dup
()
copies alg by 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, otherwise ptype and
pval have the same meaning as the
type and value parameters to
ASN1_TYPE_set(3). All the supplied parameters are used internally so
must NOT be
freed after this call.
X509_ALGOR_get0
()
is the inverse of X509_ALGOR_set0
(): it returns the
algorithm OID in *paobj and the associated parameter
in *pptype and *ppval from
alg.
X509_ALGOR_set_md
()
sets alg to appropriate values for the message digest
md.
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 for failure.
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), 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.
X509_ALGOR_set_md
() first appeared in
OpenSSL 1.0.1 and has been available since OpenBSD
5.3.