diff options
-rw-r--r-- | tests/torture.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tests/torture.c b/tests/torture.c index afbd3dc..b1d5bf6 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -47,17 +47,25 @@ static int _torture_auth_kbdint(ssh_session session, err = ssh_userauth_kbdint(session, NULL, NULL); + if (ssh_userauth_kbdint_getnprompts(session) != 1) { + return SSH_AUTH_ERROR; + } + prompt = ssh_userauth_kbdint_getprompt(session, 0, &echo); if (prompt == NULL) { return SSH_AUTH_ERROR; } - if (password && strstr(prompt, "Password:")) { - if (ssh_userauth_kbdint_setanswer(session, 0, password) < 0) { + if (ssh_userauth_kbdint_setanswer(session, 0, password) < 0) { + return SSH_AUTH_ERROR; + } + err = ssh_userauth_kbdint(session, NULL, NULL); + if (err == SSH_AUTH_INFO) { + if (ssh_userauth_kbdint_getnprompts(session) != 0) { return SSH_AUTH_ERROR; } + err = ssh_userauth_kbdint(session, NULL, NULL); } - err = ssh_userauth_kbdint(session, NULL, NULL); return err; } |