@deftypefun {int} {gnutls_x509_crt_get_extension_info} (gnutls_x509_crt_t @var{cert}, unsigned @var{indx}, void * @var{oid}, size_t * @var{oid_size}, unsigned int * @var{critical}) @var{cert}: should contain a @code{gnutls_x509_crt_t} type @var{indx}: Specifies which extension OID to send. Use (0) to get the first one. @var{oid}: a pointer to a structure to hold the OID @var{oid_size}: initially holds the maximum size of @code{oid} , on return holds actual size of @code{oid} . @var{critical}: output variable with critical flag, may be NULL. This function will return the requested extension OID in the certificate, and the critical flag for it. The extension OID will be stored as a string in the provided buffer. Use @code{gnutls_x509_crt_get_extension()} to extract the data. If the buffer provided is not long enough to hold the output, then @code{oid_size} is updated and @code{GNUTLS_E_SHORT_MEMORY_BUFFER} will be returned. The @code{oid} returned will be null terminated, although @code{oid_size} will not account for the trailing null (the latter is not true for GnuTLS prior to 3.6.0). @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS} (0) is returned, otherwise a negative error code is returned. If you have reached the last extension available @code{GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE} will be returned. @end deftypefun