The certificate structure should be initialized using gnutls_x509_crt_init, and a certificate structure can be imported using gnutls_x509_crt_import.
int gnutls_x509_crt_init (gnutls_x509_crt_t * cert)
int gnutls_x509_crt_import (gnutls_x509_crt_t cert, const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format)
void gnutls_x509_crt_deinit (gnutls_x509_crt_t cert)
In several functions an array of certificates is required. To assist in initialization and import the following two functions are provided.
int gnutls_x509_crt_list_import (gnutls_x509_crt_t * certs, unsigned int * cert_max, const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format, unsigned int flags)
int gnutls_x509_crt_list_import2 (gnutls_x509_crt_t ** certs, unsigned int * size, const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format, unsigned int flags)
In all cases after use a certificate must be deinitialized using gnutls_x509_crt_deinit.
Note that although the functions above apply to
gnutls_x509_crt_t structure, similar functions
exist for the CRL structure