Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

libssh2_userauth_keyboard_interactive_ex(3) [debian man page]

libssh2_userauth_keyboard_interactive_ex(3)			  libssh2 manual		       libssh2_userauth_keyboard_interactive_ex(3)

NAME
libssh2_userauth_keyboard_interactive_ex - authenticate a session using keyboard-interactive authentication SYNOPSIS
#include <libssh2.h> int libssh2_userauth_keyboard_interactive_ex(LIBSSH2_SESSION *session, const char *username, unsigned int username_len, LIBSSH2_USERAUTH_KBDINT_RESPONSE_FUNC(*response_callback)); DESCRIPTION
session - Session instance as returned by libssh2_session_init_ex(3). username - Name of user to attempt keyboard-interactive authentication for. username_len - Length of username parameter. response_callback - As authentication proceeds, the host issues several (1 or more) challenges and requires responses. This callback will be called at this moment. The callback is responsible to obtain responses for the challenges, fill the provided data structure and then return control. Responses will be sent to the host. String values will be free(3)ed by the library. The callback prototype must match this: void response(const char *name, int name_len, const char *instruction, int instruction_len, int num_prompts, const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts, LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses, void **abstract); Attempts keyboard-interactive (challenge/response) authentication. Note that many SSH servers will always issue a single "password" challenge, requesting actual password as response, but it is not required by the protocol, and various authentication schemes, such as smartcard authentication may use keyboard-interactive authentication type too. 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. ERRORS
LIBSSH2_ERROR_ALLOC - An internal memory allocation call failed. LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket. IBSSH2_ERROR_AUTHENTICATION_FAILED - failed, invalid username/password or public/private key. SEE ALSO
libssh2_session_init_ex(3) libssh2 0.19 8 Mar 2008 libssh2_userauth_keyboard_interactive_ex(3)

Check Out this Related Man Page

NE_SET_SERVER_AUTH(3)						neon API reference					     NE_SET_SERVER_AUTH(3)

NAME
ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth - register authentication callbacks SYNOPSIS
#include <ne_auth.h> typedef int (*ne_auth_creds)(void *userdata, const char *realm, int attempt, char *username, char *password); void ne_set_server_auth(ne_session *session, ne_auth_creds callback, void *userdata); void ne_set_proxy_auth(ne_session *session, ne_auth_creds callback, void *userdata); void ne_forget_auth(ne_session *session); DESCRIPTION
The ne_auth_creds function type defines a callback which is invoked when a server or proxy server requires user authentication for a particular request. The realm string is supplied by the server. The attempt is a counter giving the number of times the request has been retried with different authentication credentials. The first time the callback is invoked for a particular request, attempt will be zero. To retry the request using new authentication credentials, the callback should return zero, and the username and password buffers must contain NUL-terminated strings. The NE_ABUFSIZ constant gives the size of these buffers. Tip If you only wish to allow the user one attempt to enter credentials, use the value of the attempt parameter as the return value of the callback. To abort the request, the callback should return a non-zero value; in which case the contents of the username and password buffers are ignored. The ne_forget_auth function can be used to discard the cached authentication credentials. EXAMPLES
/* Function which prompts for a line of user input: */ extern char *prompt_for(const char *prompt); static int my_auth(void *userdata, const char *realm, int attempts, char *username, char *password) { strncpy(username, prompt_for("Username: "), NE_ABUFSIZ); strncpy(password, prompt_for("Password: "), NE_ABUFSIZ); return attempts; } int main(...) { ne_session *sess = ne_session_create(...); ne_set_server_auth(sess, my_auth, NULL); /* ... */ } AUTHOR
Joe Orton <neon@lists.manyfish.co.uk> Author. COPYRIGHT
neon 0.30.0 31 July 2013 NE_SET_SERVER_AUTH(3)
Man Page