version 1.81, 2001/07/23 09:06:28 |
version 1.82, 2001/08/31 11:46:39 |
|
|
/* hostbased */ |
/* hostbased */ |
Key **keys; |
Key **keys; |
int nkeys; |
int nkeys; |
|
/* kbd-interactive */ |
|
int info_req_seen; |
}; |
}; |
struct Authmethod { |
struct Authmethod { |
char *name; /* string to compare against server's list */ |
char *name; /* string to compare against server's list */ |
|
|
options.preferred_authentications = authmethods_get(); |
options.preferred_authentications = authmethods_get(); |
|
|
/* setup authentication context */ |
/* setup authentication context */ |
|
memset(&authctxt, 0, sizeof(authctxt)); |
authctxt.agent = ssh_get_authentication_connection(); |
authctxt.agent = ssh_get_authentication_connection(); |
authctxt.server_user = server_user; |
authctxt.server_user = server_user; |
authctxt.local_user = local_user; |
authctxt.local_user = local_user; |
|
|
authctxt.authlist = NULL; |
authctxt.authlist = NULL; |
authctxt.keys = keys; |
authctxt.keys = keys; |
authctxt.nkeys = nkeys; |
authctxt.nkeys = nkeys; |
|
authctxt.info_req_seen = 0; |
if (authctxt.method == NULL) |
if (authctxt.method == NULL) |
fatal("ssh_userauth2: internal error: cannot send userauth none request"); |
fatal("ssh_userauth2: internal error: cannot send userauth none request"); |
|
|
|
|
|
|
if (attempt++ >= options.number_of_password_prompts) |
if (attempt++ >= options.number_of_password_prompts) |
return 0; |
return 0; |
|
/* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */ |
|
if (attempt > 1 && !authctxt->info_req_seen) { |
|
debug3("userauth_kbdint: disable: no info_req_seen"); |
|
dispatch_set(SSH2_MSG_USERAUTH_INFO_REQUEST, NULL); |
|
return 0; |
|
} |
|
|
debug2("userauth_kbdint"); |
debug2("userauth_kbdint"); |
packet_start(SSH2_MSG_USERAUTH_REQUEST); |
packet_start(SSH2_MSG_USERAUTH_REQUEST); |
|
|
|
|
if (authctxt == NULL) |
if (authctxt == NULL) |
fatal("input_userauth_info_req: no authentication context"); |
fatal("input_userauth_info_req: no authentication context"); |
|
|
|
authctxt->info_req_seen = 1; |
|
|
name = packet_get_string(NULL); |
name = packet_get_string(NULL); |
inst = packet_get_string(NULL); |
inst = packet_get_string(NULL); |