X509_INFO *X509_INFO_new();
void X509_INFO_free(a)
X509_INFO *a;
void ERR_load_X509_strings();
typedef struct X509_info_st
{
X509 *x509;
X509_CRL *crl;
X509_PKEY *x_pkey;
EVP_CIPHER_INFO enc_cipher;
int enc_len;
char *enc_data;
int references;
} X509_INFO;
You can use this to manipulate blobs that could be one of three things, a certificate, a crl, or a private key. If you don't know which you are getting in advance, use this structure to deal with it and read/write it to a file.
So far, the structure is used only in apps/crl2p7.c, to read a file that can have a pile of crls, certs and private keys; after they are read in only the crls are kept and the rest are thrown away.
X509_INFO_new creates a new X509_INFO structure and returns a pointer to it, or NULL on error.
X509_INFO_free frees a.
Thw read and write functions (PEM_X509_INFO_read, PEM_X509_INFO_read_bio, and PEM_X509_INFO_write_bio) are described in the read/write PEM-formatted data man page.
This function is part of the error handling library.
ERR_load_X509_strings initializes arrays for the error-handling library with messages specific to the X509 library. Call this before using any X509 routines in your code.