aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-09-20 14:32:26 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-09-20 15:37:23 +0200
commit4c47719d983ba55b2cacd9c0fe6725081cf33344 (patch)
tree53282eabf13949dc3ca19cf204abe67e305bc9dd
parenta30d542207122d140be1c3e0f445a1c04aef8a6b (diff)
downloadlibssh-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.c135
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;
}