D2I_X509_ALGOR(3) | Library Functions Manual | D2I_X509_ALGOR(3)

# NAME

`d2i_X509_ALGOR`, `i2d_X509_ALGOR`, `d2i_X509_ALGORS`, `i2d_X509_ALGORS` — decode and encode algorithm identifiers

# SYNOPSIS

library “libcrypto”
`#include <openssl/x509.h>`

X509_ALGOR *
`d2i_X509_ALGOR`(X509_ALGOR **val_out, const unsigned char **der_in, long length);

int
`i2d_X509_ALGOR`(X509_ALGOR *val_in, unsigned char **der_out);

X509_ALGORS *
`d2i_X509_ALGORS`(X509_ALGORS **val_out, const unsigned char **der_in, long length);

int
`i2d_X509_ALGORS`(X509_ALGORS *val_in, unsigned char **der_out);

# DESCRIPTION

`d2i_X509_ALGOR`() and `i2d_X509_ALGOR`() decode and encode an ASN.1 AlgorithmIdentifier structure defined in RFC 5280 section 4.1.1.2.

`d2i_X509_ALGORS`() and `i2d_X509_ALGORS`() decode and encode an ASN.1 sequence of AlgorithmIdentifier structures. The data type X509_ALGORS is defined as STACK_OF(X509_ALGOR).

For details about the semantics, examples, caveats, and bugs, see ASN1_item_d2i(3).

# SEE ALSO

ASN1_item_d2i(3), STACK_OF(3), X509_ALGOR_new(3)

# STANDARDS

RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

# HISTORY

`d2i_X509_ALGOR`() and `i2d_X509_ALGOR`() first appeared in SSLeay 0.5.1 and have been available since OpenBSD 2.4.

`d2i_X509_ALGORS`() and `i2d_X509_ALGORS`() first appeared in OpenSSL 0.9.8h and have been available since OpenBSD 4.5.

June 8, 2025 | Debian