Provided by: gnutls-doc_3.6.9-5ubuntu1_all bug

NAME

       gnutls_x509_crt_get_authority_info_access - API function

SYNOPSIS

       #include <gnutls/x509.h>

       int gnutls_x509_crt_get_authority_info_access(gnutls_x509_crt_t crt, unsigned int seq, int
       what, gnutls_datum_t * data, unsigned int * critical);

ARGUMENTS

       gnutls_x509_crt_t crt
                   Holds the certificate

       unsigned int seq
                   specifies the sequence number of the access descriptor (0 for the first one, 1
                   for the second etc.)

       int what    what data to get, a gnutls_info_access_what_t type.

       gnutls_datum_t * data
                   output data to be freed with gnutls_free().

       unsigned int * critical
                   pointer  to  output integer that is set to non-zero if the extension is marked
                   as critical (may be NULL)

DESCRIPTION

       Note  that  a  simpler  API  to  access  the  authority   info   data   is   provided   by
       gnutls_x509_aia_get() and gnutls_x509_ext_import_aia().

       This  function  extracts  the  Authority  Information Access (AIA) extension, see RFC 5280
       section  4.2.2.1  for  more  information.   The  AIA  extension  holds   a   sequence   of
       AccessDescription (AD) data.

       The   seq  input  parameter is used to indicate which member of the sequence the caller is
       interested in.  The first member is 0, the second member 1 and so on.  When the  seq value
       is out of bounds, GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE is returned.

       The   type   of   data   returned  in   data  is  specified  via   what  which  should  be
       gnutls_info_access_what_t values.

       If  what is GNUTLS_IA_ACCESSMETHOD_OID then  data will hold the  accessMethod  OID  (e.g.,
       "1.3.6.1.5.5.7.48.1").

       If   what is GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE,  data will hold the accessLocation
       GeneralName type (e.g., "uniformResourceIdentifier").

       If  what is GNUTLS_IA_URI,  data will hold the accessLocation URI data.   Requesting  this
       what    value    leads   to   an   error   if   the   accessLocation   is   not   of   the
       "uniformResourceIdentifier" type.

       If  what is GNUTLS_IA_OCSP_URI,  data will hold the OCSP URI.  Requesting this  what value
       leads  to  an  error  if  the  accessMethod  is  not  1.3.6.1.5.5.7.48.1  aka  OCSP, or if
       accessLocation  is  not  of   the   "uniformResourceIdentifier"   type.   In   that   case
       GNUTLS_E_UNKNOWN_ALGORITHM  will  be  returned,  and   seq  should  be  increased and this
       function called again.

       If  what is GNUTLS_IA_CAISSUERS_URI,  data will hold the caIssuers URI.   Requesting  this
       what  value leads to an error if the accessMethod is not 1.3.6.1.5.5.7.48.2 aka caIssuers,
       or if accessLocation is not of the "uniformResourceIdentifier" type.  In that case  handle
       as in GNUTLS_IA_OCSP_URI.

       More  what values may be allocated in the future as needed.

       If   data is NULL, the function does the same without storing the output data, that is, it
       will set  critical and do error checking as usual.

       The value of the critical flag is returned in * critical .  Supply a NULL  critical if you
       want the function to make sure the extension is non-critical, as required by RFC 5280.

RETURNS

       GNUTLS_E_SUCCESS    on    success,    GNUTLS_E_INVALID_REQUEST    on    invalid    crt   ,
       GNUTLS_E_CONSTRAINT_ERROR if the extension  is  incorrectly  marked  as  critical  (use  a
       non-NULL   critical to override), GNUTLS_E_UNKNOWN_ALGORITHM if the requested OID does not
       match (e.g., when using GNUTLS_IA_OCSP_URI), otherwise a negative error code.

SINCE

       3.0

REPORTING BUGS

       Report bugs to <bugs@gnutls.org>.
       Home page: https://www.gnutls.org

COPYRIGHT

       Copyright © 2001-2019 Free Software Foundation, Inc., and others.
       Copying and distribution of this file, with or without modification, are permitted in  any
       medium without royalty provided the copyright notice and this notice are preserved.

SEE ALSO

       The   full   documentation  for  gnutls  is  maintained  as  a  Texinfo  manual.   If  the
       /usr/share/doc/gnutls/ directory does not contain the HTML form visit

       https://www.gnutls.org/manual/