Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6722 by doda, Fri May 12 12:43:32 2017 UTC revision 6723 by doda, Fri May 12 12:44:01 2017 UTC
# Line 7218  struct change_password { Line 7218  struct change_password {
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;
# Line 7262  static BOOL CALLBACK passwd_change_dialo Line 7264  static BOOL CALLBACK passwd_change_dialo
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) {
# Line 7302  static BOOL CALLBACK passwd_change_dialo Line 7318  static BOOL CALLBACK passwd_change_dialo
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;
# Line 7314  BOOL handle_SSH2_userauth_passwd_changer Line 7330  BOOL handle_SSH2_userauth_passwd_changer
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;

Legend:
Removed from v.6722  
changed lines
  Added in v.6723

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26