@deftypefun {int} {gnutls_x509_crq_get_subject_alt_name} (gnutls_x509_crq_t @var{crq}, unsigned int @var{seq}, void * @var{ret}, size_t * @var{ret_size}, unsigned int * @var{ret_type}, unsigned int * @var{critical}) @var{crq}: should contain a @code{gnutls_x509_crq_t} type @var{seq}: specifies the sequence number of the alt name, 0 for the first one, 1 for the second etc. @var{ret}: is the place where the alternative name will be copied to @var{ret_size}: holds the size of ret. @var{ret_type}: holds the @code{gnutls_x509_subject_alt_name_t} name type @var{critical}: will be non-zero if the extension is marked as critical (may be null) This function will return the alternative names, contained in the given certificate. It is the same as @code{gnutls_x509_crq_get_subject_alt_name()} except for the fact that it will return the type of the alternative name in @code{ret_type} even if the function fails for some reason (i.e. the buffer provided is not enough). @strong{Returns:} the alternative subject name type on success, one of the enumerated @code{gnutls_x509_subject_alt_name_t} . It will return @code{GNUTLS_E_SHORT_MEMORY_BUFFER} if @code{ret_size} is not large enough to hold the value. In that case @code{ret_size} will be updated with the required size. If the certificate request does not have an Alternative name with the specified sequence number then @code{GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE} is returned. @strong{Since:} 2.8.0 @end deftypefun