



@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 store the
status in the  @code{status} variable as a bitwise or'd gnutls_certificate_status_t
values or zero if the certificate is trusted. Note that value in  @code{status} is set only when the return value of this function is success (i.e, failure 
to trust a certificate does not imply a negative return value).

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
