diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-20 14:32:26 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-09-20 15:37:23 +0200 |
commit | 4c47719d983ba55b2cacd9c0fe6725081cf33344 (patch) | |
tree | 53282eabf13949dc3ca19cf204abe67e305bc9dd | |
parent | a30d542207122d140be1c3e0f445a1c04aef8a6b (diff) | |
download | libssh-4c47719d983ba55b2cacd9c0fe6725081cf33344.tar.gz libssh-4c47719d983ba55b2cacd9c0fe6725081cf33344.tar.xz libssh-4c47719d983ba55b2cacd9c0fe6725081cf33344.zip |
examples: Reformat authenticaton.c
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | examples/authentication.c | 135 |
1 files changed, 69 insertions, 66 deletions
diff --git a/examples/authentication.c b/examples/authentication.c index b9f70f5b..9e5b94c9 100644 --- a/examples/authentication.c +++ b/examples/authentication.c @@ -24,7 +24,8 @@ clients must be made or how a client should react. #include <libssh/libssh.h> #include "examples_common.h" -int authenticate_kbdint(ssh_session session, const char *password) { +int authenticate_kbdint(ssh_session session, const char *password) +{ int err; err = ssh_userauth_kbdint(session, NULL, NULL); @@ -99,78 +100,80 @@ int authenticate_kbdint(ssh_session session, const char *password) { return err; } -static void error(ssh_session session){ - fprintf(stderr,"Authentication failed: %s\n",ssh_get_error(session)); +static void error(ssh_session session) +{ + fprintf(stderr,"Authentication failed: %s\n",ssh_get_error(session)); } -int authenticate_console(ssh_session session){ - int rc; - int method; - char password[128] = {0}; - char *banner; - - // Try to authenticate - rc = ssh_userauth_none(session, NULL); - if (rc == SSH_AUTH_ERROR) { - error(session); - return rc; - } - - method = ssh_userauth_list(session, NULL); - while (rc != SSH_AUTH_SUCCESS) { - if (method & SSH_AUTH_METHOD_GSSAPI_MIC){ - rc = ssh_userauth_gssapi(session); - if(rc == SSH_AUTH_ERROR) { - error(session); - return rc; - } else if (rc == SSH_AUTH_SUCCESS) { - break; - } - } - // Try to authenticate with public key first - if (method & SSH_AUTH_METHOD_PUBLICKEY) { - rc = ssh_userauth_publickey_auto(session, NULL, NULL); - if (rc == SSH_AUTH_ERROR) { - error(session); - return rc; - } else if (rc == SSH_AUTH_SUCCESS) { - break; - } - } - - // Try to authenticate with keyboard interactive"; - if (method & SSH_AUTH_METHOD_INTERACTIVE) { - rc = authenticate_kbdint(session, NULL); - if (rc == SSH_AUTH_ERROR) { - error(session); +int authenticate_console(ssh_session session) +{ + int rc; + int method; + char password[128] = {0}; + char *banner; + + // Try to authenticate + rc = ssh_userauth_none(session, NULL); + if (rc == SSH_AUTH_ERROR) { + error(session); return rc; - } else if (rc == SSH_AUTH_SUCCESS) { - break; - } } - if (ssh_getpass("Password: ", password, sizeof(password), 0, 0) < 0) { - return SSH_AUTH_ERROR; - } + method = ssh_userauth_list(session, NULL); + while (rc != SSH_AUTH_SUCCESS) { + if (method & SSH_AUTH_METHOD_GSSAPI_MIC){ + rc = ssh_userauth_gssapi(session); + if(rc == SSH_AUTH_ERROR) { + error(session); + return rc; + } else if (rc == SSH_AUTH_SUCCESS) { + break; + } + } + // Try to authenticate with public key first + if (method & SSH_AUTH_METHOD_PUBLICKEY) { + rc = ssh_userauth_publickey_auto(session, NULL, NULL); + if (rc == SSH_AUTH_ERROR) { + error(session); + return rc; + } else if (rc == SSH_AUTH_SUCCESS) { + break; + } + } - // Try to authenticate with password - if (method & SSH_AUTH_METHOD_PASSWORD) { - rc = ssh_userauth_password(session, NULL, password); - if (rc == SSH_AUTH_ERROR) { - error(session); - return rc; - } else if (rc == SSH_AUTH_SUCCESS) { - break; - } + // Try to authenticate with keyboard interactive"; + if (method & SSH_AUTH_METHOD_INTERACTIVE) { + rc = authenticate_kbdint(session, NULL); + if (rc == SSH_AUTH_ERROR) { + error(session); + return rc; + } else if (rc == SSH_AUTH_SUCCESS) { + break; + } + } + + if (ssh_getpass("Password: ", password, sizeof(password), 0, 0) < 0) { + return SSH_AUTH_ERROR; + } + + // Try to authenticate with password + if (method & SSH_AUTH_METHOD_PASSWORD) { + rc = ssh_userauth_password(session, NULL, password); + if (rc == SSH_AUTH_ERROR) { + error(session); + return rc; + } else if (rc == SSH_AUTH_SUCCESS) { + break; + } + } + memset(password, 0, sizeof(password)); } - memset(password, 0, sizeof(password)); - } - banner = ssh_get_issue_banner(session); - if (banner) { - printf("%s\n",banner); - ssh_string_free_char(banner); - } + banner = ssh_get_issue_banner(session); + if (banner) { + printf("%s\n",banner); + ssh_string_free_char(banner); + } - return rc; + return rc; } |