.\" $Id: libssh2_userauth_password_ex.3,v 1.2 2009/03/17 10:34:27 bagder Exp $
.\"
.TH libssh2_userauth_password_ex 3 "1 Jun 2007" "libssh2 0.15" "libssh2 manual"
.SH NAME
libssh2_userauth_password_ex - authenticate a session with username and password
.SH SYNOPSIS
#include <libssh2.h>

int
libssh2_userauth_password_ex(LIBSSH2_SESSION *session, const char *username, unsigned int username_len, const char *password, unsigned int password_len, LIBSSH2_PASSWD_CHANGEREQ_FUNC((*passwd_change_cb)));

int
libssh2_userauth_password(LIBSSH2_SESSION *session, const char *username, const char *password);

.SH DESCRIPTION
\fIsession\fP - Session instance as returned by 
.BR libssh2_session_init_ex(3)

\fIusername\fP - Name of user to attempt plain password authentication for.

\fIusername_len\fP - Length of username parameter.

\fIpassword\fP - Password to use for authenticating username.

\fIpassword_len\fP - Length of password parameter.

\fIpasswd_change_cb\fP - If the host accepts authentication but 
requests that the password be changed, this callback will be issued. 
If no callback is defined, but server required password change, 
authentication will fail.

Attempt basic password authentication. Note that many SSH servers 
which appear to support ordinary password authentication actually have 
it disabled and use Keyboard Interactive authentication (routed via 
PAM or another authentication backed) instead.

.SH RETURN VALUE
Return 0 on success or negative on failure.  It returns
LIBSSH2_ERROR_EAGAIN when it would otherwise block. While
LIBSSH2_ERROR_EAGAIN is a negative number, it isn't really a failure per se.

.SH ERRORS
\fILIBSSH2_ERROR_ALLOC\fP -  An internal memory allocation call failed.

\fILIBSSH2_ERROR_SOCKET_SEND\fP - Unable to send data on socket.

\fILIBSSH2_ERROR_PASSWORD_EXPIRED\fP - 

.SH SEE ALSO
.BR libssh2_session_init_ex(3)
