



@deftypefun {int} {gnutls_certificate_verify_peers3} (gnutls_session_t @var{session}, const char* @var{hostname}, unsigned int * @var{status})
@var{session}: is a gnutls session

@var{hostname}: is the expected name of the peer; may be @code{NULL} 

@var{status}: is the output of the verification

This function will verify the peer's certificate and its name and 
return its status (trusted, invalid etc.).  The value of  @code{status} will
be one or more of the gnutls_certificate_status_t flags
bitwise or'd or zero if the certificate is trusted. Note that verification 
failure does not imply a negative return value. Only the  @code{status} is updated.

If the  @code{hostname} provided is non-NULL then this function will compare
the hostname in the certificate against the given. If they do not match 
the @code{GNUTLS_CERT_UNEXPECTED_OWNER}  status flag will be set.

If available the OCSP Certificate Status extension will be
utilized by this function.

To avoid denial of service attacks some
default upper limits regarding the certificate key size and chain
size are set. To override them use @code{gnutls_certificate_set_verify_limits()} .

@strong{Returns:} a negative error code on error and @code{GNUTLS_E_SUCCESS}  (0) on success.

@strong{Since:} 3.1.4
@end deftypefun
