diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-01-23 20:08:25 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-01-24 13:55:05 +0100 |
commit | f3685f0f731434d8c94454fc12cebe1b5a0bdbb1 (patch) | |
tree | 6998603af818871df5390274deb8717a88ef180e | |
parent | 50a119dd0ac55763f965ba1660c132c2f58ed167 (diff) | |
download | libssh-f3685f0f731434d8c94454fc12cebe1b5a0bdbb1.tar.gz libssh-f3685f0f731434d8c94454fc12cebe1b5a0bdbb1.tar.xz libssh-f3685f0f731434d8c94454fc12cebe1b5a0bdbb1.zip |
examples: Use ssh_getpass().
-rw-r--r-- | examples/authentication.c | 15 | ||||
-rw-r--r-- | examples/sample.c | 5 |
2 files changed, 15 insertions, 5 deletions
diff --git a/examples/authentication.c b/examples/authentication.c index eb75504..66efce2 100644 --- a/examples/authentication.c +++ b/examples/authentication.c @@ -80,7 +80,12 @@ int authenticate_kbdint(ssh_session session, const char *password) { if (password && strstr(prompt, "Password:")) { answer = password; } else { - answer = getpass(prompt); + buffer[0] = '\0'; + + if (ssh_getpass(prompt, buffer, sizeof(buffer), 0, 0) < 0) { + return SSH_AUTH_ERROR; + } + answer = buffer; } if (ssh_userauth_kbdint_setanswer(session, i, answer) < 0) { return SSH_AUTH_ERROR; @@ -100,7 +105,7 @@ static void error(ssh_session session){ int authenticate_console(ssh_session session){ int rc; int method; - char *password; + char password[128] = {0}; char *banner; // Try to authenticate @@ -112,7 +117,6 @@ int authenticate_console(ssh_session session){ method = ssh_auth_list(session); while (rc != SSH_AUTH_SUCCESS) { - // Try to authenticate with public key first if (method & SSH_AUTH_METHOD_PUBLICKEY) { rc = ssh_userauth_autopubkey(session, NULL); @@ -135,7 +139,10 @@ int authenticate_console(ssh_session session){ } } - password=getpass("Password: "); + 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); diff --git a/examples/sample.c b/examples/sample.c index 8f86f56..c7fec6c 100644 --- a/examples/sample.c +++ b/examples/sample.c @@ -58,7 +58,10 @@ static int auth_callback(const char *prompt, char *buf, size_t len, *ptr = '\0'; } } else { - answer = getpass(prompt); + if (ssh_getpass(prompt, buf, len, 0, 0) < 0) { + return -1; + } + return 0; } if (answer == NULL) { |