| 7218 |
|
|
| 7219 |
static BOOL CALLBACK passwd_change_dialog(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) |
static BOOL CALLBACK passwd_change_dialog(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) |
| 7220 |
{ |
{ |
| 7221 |
|
char old_passwd[PASSWD_MAXLEN]; |
| 7222 |
|
char new_passwd[PASSWD_MAXLEN]; |
| 7223 |
char retype_passwd[PASSWD_MAXLEN]; |
char retype_passwd[PASSWD_MAXLEN]; |
| 7224 |
static struct change_password *cp; |
static struct change_password *cp; |
| 7225 |
LOGFONT logfont; |
LOGFONT logfont; |
| 7264 |
UTIL_get_lang_msg("DLG_PASSCHG_CONFIRMPASSWD", pvar, uimsg); |
UTIL_get_lang_msg("DLG_PASSCHG_CONFIRMPASSWD", pvar, uimsg); |
| 7265 |
SetDlgItemText(dlg, IDC_CONFIRM_PASSWD_LABEL, pvar->ts->UIMsg); |
SetDlgItemText(dlg, IDC_CONFIRM_PASSWD_LABEL, pvar->ts->UIMsg); |
| 7266 |
|
|
| 7267 |
return TRUE; |
SetFocus(GetDlgItem(dlg, IDC_OLD_PASSWD)); |
| 7268 |
|
|
| 7269 |
|
return FALSE; |
| 7270 |
|
|
| 7271 |
case WM_COMMAND: |
case WM_COMMAND: |
| 7272 |
switch (LOWORD(wParam)) { |
switch (LOWORD(wParam)) { |
| 7273 |
case IDOK: |
case IDOK: |
| 7274 |
SendMessage(GetDlgItem(dlg, IDC_OLD_PASSWD), WM_GETTEXT , sizeof(cp->passwd), (LPARAM)cp->passwd); |
SendMessage(GetDlgItem(dlg, IDC_OLD_PASSWD), WM_GETTEXT , sizeof(old_passwd), (LPARAM)old_passwd); |
| 7275 |
SendMessage(GetDlgItem(dlg, IDC_NEW_PASSWD), WM_GETTEXT , sizeof(cp->new_passwd), (LPARAM)cp->new_passwd); |
SendMessage(GetDlgItem(dlg, IDC_NEW_PASSWD), WM_GETTEXT , sizeof(new_passwd), (LPARAM)new_passwd); |
| 7276 |
SendMessage(GetDlgItem(dlg, IDC_CONFIRM_PASSWD), WM_GETTEXT , sizeof(retype_passwd), (LPARAM)retype_passwd); |
SendMessage(GetDlgItem(dlg, IDC_CONFIRM_PASSWD), WM_GETTEXT , sizeof(retype_passwd), (LPARAM)retype_passwd); |
| 7277 |
|
|
| 7278 |
if (strcmp(cp->new_passwd, retype_passwd) == 0) { |
if (strcmp(new_passwd, retype_passwd) == 1) { |
| 7279 |
EndDialog(dlg, 1); // dialog close |
UTIL_get_lang_msg("MSG_PASSCHG_MISMATCH", pvar, "Mismatch; try again."); |
| 7280 |
|
MessageBox(NULL, pvar->ts->UIMsg, "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 7281 |
|
return FALSE; |
| 7282 |
|
} |
| 7283 |
|
|
| 7284 |
|
if (old_passwd[0] == 0 || new_passwd[0] == 0) { |
| 7285 |
|
// ダイアログを開いてすぐに Return を押してしまった時の対策の為、 |
| 7286 |
|
// とりあえず空パスワードをはじいておく。 |
| 7287 |
|
return FALSE; |
| 7288 |
|
} |
| 7289 |
|
|
| 7290 |
|
strncpy_s(cp->passwd, sizeof(cp->passwd), old_passwd, _TRUNCATE); |
| 7291 |
|
strncpy_s(cp->new_passwd, sizeof(cp->new_passwd), new_passwd, _TRUNCATE); |
| 7292 |
|
|
| 7293 |
if (DlgChgPassFont != NULL) { |
EndDialog(dlg, 1); // dialog close |
| 7294 |
DeleteObject(DlgChgPassFont); |
|
| 7295 |
DlgChgPassFont = NULL; |
if (DlgChgPassFont != NULL) { |
| 7296 |
} |
DeleteObject(DlgChgPassFont); |
| 7297 |
|
DlgChgPassFont = NULL; |
| 7298 |
return TRUE; |
} |
| 7299 |
} |
|
| 7300 |
UTIL_get_lang_msg("MSG_PASSCHG_MISMATCH", pvar, "Mismatch; try again."); |
return TRUE; |
|
MessageBox(NULL, pvar->ts->UIMsg, "ERROR", MB_OK | MB_ICONEXCLAMATION); |
|
|
return FALSE; |
|
| 7301 |
|
|
| 7302 |
case IDCANCEL: |
case IDCANCEL: |
| 7303 |
|
// 接続を切る |
| 7304 |
|
notify_closed_connection(pvar, "authentication cancelled"); |
| 7305 |
EndDialog(dlg, 0); // dialog close |
EndDialog(dlg, 0); // dialog close |
| 7306 |
|
|
| 7307 |
if (DlgChgPassFont != NULL) { |
if (DlgChgPassFont != NULL) { |
| 7318 |
|
|
| 7319 |
BOOL handle_SSH2_userauth_passwd_changereq(PTInstVar pvar) |
BOOL handle_SSH2_userauth_passwd_changereq(PTInstVar pvar) |
| 7320 |
{ |
{ |
| 7321 |
int len; |
int len, ret; |
| 7322 |
char *data; |
char *data; |
| 7323 |
buffer_t *msg = NULL; |
buffer_t *msg = NULL; |
| 7324 |
char *s, *username; |
char *s, *username; |
| 7330 |
|
|
| 7331 |
notify_verbose_message(pvar, "SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ was received.", LOG_LEVEL_VERBOSE); |
notify_verbose_message(pvar, "SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ was received.", LOG_LEVEL_VERBOSE); |
| 7332 |
|
|
| 7333 |
|
memset(&cp, 0, sizeof(cp)); |
| 7334 |
cp.pvar = pvar; |
cp.pvar = pvar; |
| 7335 |
DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHPASSWD_INPUT), pvar->cv->HWin, passwd_change_dialog, (LPARAM)&cp); |
ret = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHPASSWD_INPUT), pvar->cv->HWin, passwd_change_dialog, (LPARAM)&cp); |
| 7336 |
|
|
| 7337 |
|
if (ret == -1) { |
| 7338 |
|
logprintf(pvar, LOG_LEVEL_WARNING, __FUNCTION__ "%s: DialogBoxParam failed."); |
| 7339 |
|
return FALSE; |
| 7340 |
|
} |
| 7341 |
|
else if (ret == 0) { |
| 7342 |
|
logprintf(pvar, LOG_LEVEL_NOTICE, __FUNCTION__ "%s: dialog cancelled."); |
| 7343 |
|
return FALSE; |
| 7344 |
|
} |
| 7345 |
|
|
| 7346 |
// 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード |
// 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード |
| 7347 |
data = pvar->ssh_state.payload; |
data = pvar->ssh_state.payload; |