| 135 |
static BOOL handle_SSH2_dh_common_reply(PTInstVar pvar); |
static BOOL handle_SSH2_dh_common_reply(PTInstVar pvar); |
| 136 |
static BOOL handle_SSH2_dh_gex_reply(PTInstVar pvar); |
static BOOL handle_SSH2_dh_gex_reply(PTInstVar pvar); |
| 137 |
static BOOL handle_SSH2_newkeys(PTInstVar pvar); |
static BOOL handle_SSH2_newkeys(PTInstVar pvar); |
| 138 |
static BOOL handle_SSH2_authrequest(PTInstVar pvar); |
static BOOL handle_SSH2_service_accept(PTInstVar pvar); |
| 139 |
static BOOL handle_SSH2_userauth_success(PTInstVar pvar); |
static BOOL handle_SSH2_userauth_success(PTInstVar pvar); |
| 140 |
static BOOL handle_SSH2_userauth_failure(PTInstVar pvar); |
static BOOL handle_SSH2_userauth_failure(PTInstVar pvar); |
| 141 |
static BOOL handle_SSH2_userauth_banner(PTInstVar pvar); |
static BOOL handle_SSH2_userauth_banner(PTInstVar pvar); |
| 1638 |
enque_handler(pvar, SSH2_MSG_KEXDH_REPLY, handle_SSH2_dh_common_reply); |
enque_handler(pvar, SSH2_MSG_KEXDH_REPLY, handle_SSH2_dh_common_reply); |
| 1639 |
enque_handler(pvar, SSH2_MSG_KEX_DH_GEX_REPLY, handle_SSH2_dh_gex_reply); |
enque_handler(pvar, SSH2_MSG_KEX_DH_GEX_REPLY, handle_SSH2_dh_gex_reply); |
| 1640 |
enque_handler(pvar, SSH2_MSG_NEWKEYS, handle_SSH2_newkeys); |
enque_handler(pvar, SSH2_MSG_NEWKEYS, handle_SSH2_newkeys); |
| 1641 |
enque_handler(pvar, SSH2_MSG_SERVICE_ACCEPT, handle_SSH2_authrequest); |
enque_handler(pvar, SSH2_MSG_SERVICE_ACCEPT, handle_SSH2_service_accept); |
| 1642 |
enque_handler(pvar, SSH2_MSG_USERAUTH_SUCCESS, handle_SSH2_userauth_success); |
enque_handler(pvar, SSH2_MSG_USERAUTH_SUCCESS, handle_SSH2_userauth_success); |
| 1643 |
enque_handler(pvar, SSH2_MSG_USERAUTH_FAILURE, handle_SSH2_userauth_failure); |
enque_handler(pvar, SSH2_MSG_USERAUTH_FAILURE, handle_SSH2_userauth_failure); |
| 1644 |
enque_handler(pvar, SSH2_MSG_USERAUTH_BANNER, handle_SSH2_userauth_banner); |
enque_handler(pvar, SSH2_MSG_USERAUTH_BANNER, handle_SSH2_userauth_banner); |
| 6595 |
return TRUE; |
return TRUE; |
| 6596 |
} |
} |
| 6597 |
|
|
| 6598 |
|
static BOOL handle_SSH2_service_accept(PTInstVar pvar) |
| 6599 |
|
{ |
| 6600 |
|
char *data, *s, tmp[100]; |
| 6601 |
|
|
| 6602 |
|
// 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード |
| 6603 |
|
data = pvar->ssh_state.payload; |
| 6604 |
|
|
| 6605 |
|
s = buffer_get_string(&data, NULL); |
| 6606 |
|
_snprintf(tmp, sizeof(tmp), "SSH2_MSG_SERVICE_ACCEPT is received. service name=%s", s); |
| 6607 |
|
notify_verbose_message(pvar, tmp, LOG_LEVEL_VERBOSE); |
| 6608 |
|
|
| 6609 |
|
return do_SSH2_authrequest(pvar); |
| 6610 |
|
} |
| 6611 |
|
|
| 6612 |
// ユーザ認証パケットの構築 |
// ユーザ認証パケットの構築 |
| 6613 |
static BOOL handle_SSH2_authrequest(PTInstVar pvar) |
BOOL do_SSH2_authrequest(PTInstVar pvar) |
| 6614 |
{ |
{ |
| 6615 |
buffer_t *msg = NULL; |
buffer_t *msg = NULL; |
| 6616 |
char *s, *username; |
char *s, *username; |
| 6618 |
int len; |
int len; |
| 6619 |
char *connect_id = "ssh-connection"; |
char *connect_id = "ssh-connection"; |
| 6620 |
|
|
|
notify_verbose_message(pvar, "SSH2_MSG_SERVICE_ACCEPT is received.", LOG_LEVEL_VERBOSE); |
|
|
|
|
| 6621 |
msg = buffer_init(); |
msg = buffer_init(); |
| 6622 |
if (msg == NULL) { |
if (msg == NULL) { |
| 6623 |
// TODO: error check |
// TODO: error check |
| 7050 |
if (!pvar->session_settings.CheckAuthListFirst || |
if (!pvar->session_settings.CheckAuthListFirst || |
| 7051 |
pvar->ssh2_autologin == 1) { |
pvar->ssh2_autologin == 1) { |
| 7052 |
// まず none で試行して返ってきたところなので、実際のログイン処理へ |
// まず none で試行して返ってきたところなので、実際のログイン処理へ |
| 7053 |
handle_SSH2_authrequest(pvar); |
do_SSH2_authrequest(pvar); |
| 7054 |
} |
} |
| 7055 |
else { |
else { |
| 7056 |
// TIS 用に OK を押すタイマーを仕掛ける |
// TIS 用に OK を押すタイマーを仕掛ける |
| 7067 |
SendMessage(pvar->auth_state.auth_dialog, WM_COMMAND, IDOK, 0); |
SendMessage(pvar->auth_state.auth_dialog, WM_COMMAND, IDOK, 0); |
| 7068 |
} |
} |
| 7069 |
else { |
else { |
| 7070 |
handle_SSH2_authrequest(pvar); |
do_SSH2_authrequest(pvar); |
| 7071 |
} |
} |
| 7072 |
#endif |
#endif |
| 7073 |
return TRUE; |
return TRUE; |
| 7090 |
} |
} |
| 7091 |
else { |
else { |
| 7092 |
// まだ鍵がある |
// まだ鍵がある |
| 7093 |
handle_SSH2_authrequest(pvar); |
do_SSH2_authrequest(pvar); |
| 7094 |
return TRUE; |
return TRUE; |
| 7095 |
} |
} |
| 7096 |
} |
} |