Develop and Download Open Source Software

Browse Subversion Repository

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

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

revision 9208 by nmaya, Sat Apr 17 06:15:51 2021 UTC revision 9209 by nmaya, Sat Apr 17 06:32:42 2021 UTC
# Line 191  static void uninit_TTSSH(PTInstVar pvar) Line 191  static void uninit_TTSSH(PTInstVar pvar)
191    
192          ssh_heartbeat_lock_finalize();          ssh_heartbeat_lock_finalize();
193    
194          EVP_CIPHER_CTX_free(pvar->evpcip[MODE_IN]);          cipher_free_SSH2(pvar->evpcip[MODE_IN]);
195          EVP_CIPHER_CTX_free(pvar->evpcip[MODE_OUT]);          cipher_free_SSH2(pvar->evpcip[MODE_OUT]);
196  }  }
197    
198  static void PASCAL TTXInit(PTTSet ts, PComVar cv)  static void PASCAL TTXInit(PTTSet ts, PComVar cv)
# Line 645  static void write_ssh_options(PTInstVar Line 645  static void write_ssh_options(PTInstVar
645    
646          // Remember password (2006.8.5 yutaka)          // Remember password (2006.8.5 yutaka)
647          WritePrivateProfileString("TTSSH", "RememberPassword",          WritePrivateProfileString("TTSSH", "RememberPassword",
648              settings->remember_password ? "1" : "0",                                    settings->remember_password ? "1" : "0",
649              fileName);                                    fileName);
650    
651          // 初回の認証ダイアログでサポートされているメソッドをチェックし、          // 初回の認証ダイアログでサポートされているメソッドをチェックし、
652          // 無効なメソッドをグレイアウトする (2007.9.24 maya)          // 無効なメソッドをグレイアウトする (2007.9.24 maya)
# Line 1146  static void PASCAL TTXOpenTCP(TTXSockHoo Line 1146  static void PASCAL TTXOpenTCP(TTXSockHoo
1146                  FWDUI_open(pvar);                  FWDUI_open(pvar);
1147    
1148                  // 設定を myproposal に反映するのは、接続直前のここだけ。 (2006.6.26 maya)                  // 設定を myproposal に反映するのは、接続直前のここだけ。 (2006.6.26 maya)
                 SSH2_update_cipher_myproposal(pvar);  
1149                  SSH2_update_kex_myproposal(pvar);                  SSH2_update_kex_myproposal(pvar);
1150                  SSH2_update_host_key_myproposal(pvar);                  SSH2_update_host_key_myproposal(pvar);
1151                    SSH2_update_cipher_myproposal(pvar);
1152                  SSH2_update_hmac_myproposal(pvar);                  SSH2_update_hmac_myproposal(pvar);
1153                  SSH2_update_compression_myproposal(pvar);                  SSH2_update_compression_myproposal(pvar);
1154          }          }
# Line 1652  hostssh_enabled: Line 1652  hostssh_enabled:
1652  static void UTIL_SetDialogFont()  static void UTIL_SetDialogFont()
1653  {  {
1654          SetDialogFont(pvar->ts->DialogFontName, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet,          SetDialogFont(pvar->ts->DialogFontName, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet,
1655                                    pvar->ts->UILanguageFile, "TTSSH", "DLG_TAHOMA_FONT");                        pvar->ts->UILanguageFile, "TTSSH", "DLG_TAHOMA_FONT");
1656  }  }
1657    
1658  static BOOL PASCAL TTXGetHostName(HWND parent, PGetHNRec rec)  static BOOL PASCAL TTXGetHostName(HWND parent, PGetHNRec rec)
1659  {  {
1660          SetDialogFont(pvar->ts->DialogFontName, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet,          SetDialogFont(pvar->ts->DialogFontName, pvar->ts->DialogFontPoint, pvar->ts->DialogFontCharSet,
1661                                    pvar->ts->UILanguageFile, "TTSSH", "DLG_SYSTEM_FONT");                        pvar->ts->UILanguageFile, "TTSSH", "DLG_SYSTEM_FONT");
1662          return (BOOL) DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_HOSTDLG),          return (BOOL) DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_HOSTDLG),
1663                                       parent, TTXHostDlg, (LPARAM)rec);                                       parent, TTXHostDlg, (LPARAM)rec);
1664  }  }
# Line 2706  static void init_setup_dlg(PTInstVar pva Line 2706  static void init_setup_dlg(PTInstVar pva
2706                  int index = pvar->settings.KexOrder[i] - '0';                  int index = pvar->settings.KexOrder[i] - '0';
2707                  char *name = NULL;                  char *name = NULL;
2708    
2709                  if (index == 0) {                  if (index == 0) {
2710                          UTIL_get_lang_msg("DLG_SSHSETUP_KEX_BORDER", pvar,                          UTIL_get_lang_msg("DLG_SSHSETUP_KEX_BORDER", pvar,
2711                                                            "<KEXs below this line are disabled>");                                            "<KEXs below this line are disabled>");
2712                          name = pvar->ts->UIMsg;                          name = pvar->ts->UIMsg;
2713                  } else {                  } else {
2714                          name = get_kex_algorithm_name(index);                          name = get_kex_algorithm_name(index);
# Line 2727  static void init_setup_dlg(PTInstVar pva Line 2727  static void init_setup_dlg(PTInstVar pva
2727                  int index = pvar->settings.HostKeyOrder[i] - '0';                  int index = pvar->settings.HostKeyOrder[i] - '0';
2728                  char *name = NULL;                  char *name = NULL;
2729    
2730                  if (index == 0) {                  if (index == 0) {
2731                          UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY_BORDER", pvar,                          UTIL_get_lang_msg("DLG_SSHSETUP_HOST_KEY_BORDER", pvar,
2732                                                            "<Host Keys below this line are disabled>");                                            "<Host Keys below this line are disabled>");
2733                          name = pvar->ts->UIMsg;                          name = pvar->ts->UIMsg;
2734                  } else {                  } else {
2735                          name = get_ssh_keytype_name(index);                          name = get_ssh_keytype_name(index);
# Line 2748  static void init_setup_dlg(PTInstVar pva Line 2748  static void init_setup_dlg(PTInstVar pva
2748                  int index = pvar->settings.MacOrder[i] - '0';                  int index = pvar->settings.MacOrder[i] - '0';
2749                  char *name = NULL;                  char *name = NULL;
2750    
2751                  if (index == 0) {                  if (index == 0) {
2752                          UTIL_get_lang_msg("DLG_SSHSETUP_MAC_BORDER", pvar,                          UTIL_get_lang_msg("DLG_SSHSETUP_MAC_BORDER", pvar,
2753                                                            "<MACs below this line are disabled>");                                            "<MACs below this line are disabled>");
2754                          name = pvar->ts->UIMsg;                          name = pvar->ts->UIMsg;
2755                  } else {                  } else {
2756                          name = get_ssh2_mac_name_by_id(index);                          name = get_ssh2_mac_name_by_id(index);
# Line 2769  static void init_setup_dlg(PTInstVar pva Line 2769  static void init_setup_dlg(PTInstVar pva
2769                  int index = pvar->settings.CompOrder[i] - '0';                  int index = pvar->settings.CompOrder[i] - '0';
2770                  char *name = NULL;                  char *name = NULL;
2771    
2772                  if (index == 0) {                  if (index == 0) {
2773                          UTIL_get_lang_msg("DLG_SSHSETUP_COMP_BORDER", pvar,                          UTIL_get_lang_msg("DLG_SSHSETUP_COMP_BORDER", pvar,
2774                                                            "<Compression methods below this line are disabled>");                                            "<Compression methods below this line are disabled>");
2775                          name = pvar->ts->UIMsg;                          name = pvar->ts->UIMsg;
2776                  } else {                  } else {
2777                          name = get_ssh2_comp_name(index);                          name = get_ssh2_comp_name(index);
# Line 3216  static void choose_read_only_file(HWND d Line 3216  static void choose_read_only_file(HWND d
3216  }  }
3217    
3218  static INT_PTR CALLBACK TTXSetupDlg(HWND dlg, UINT msg, WPARAM wParam,  static INT_PTR CALLBACK TTXSetupDlg(HWND dlg, UINT msg, WPARAM wParam,
3219                                                                          LPARAM lParam)                                      LPARAM lParam)
3220  {  {
3221          switch (msg) {          switch (msg) {
3222          case WM_INITDIALOG:          case WM_INITDIALOG:
# Line 3585  static int ssh1_3des_init(EVP_CIPHER_CTX Line 3585  static int ssh1_3des_init(EVP_CIPHER_CTX
3585                  else                  else
3586                          k1 += 16;                          k1 += 16;
3587          }          }
         EVP_CIPHER_CTX_init(c->k1);  
         EVP_CIPHER_CTX_init(c->k2);  
         EVP_CIPHER_CTX_init(c->k3);  
3588          if (EVP_CipherInit(c->k1, EVP_des_cbc(), k1, NULL, enc) == 0 ||          if (EVP_CipherInit(c->k1, EVP_des_cbc(), k1, NULL, enc) == 0 ||
3589                  EVP_CipherInit(c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 ||                  EVP_CipherInit(c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 ||
3590                  EVP_CipherInit(c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) {                  EVP_CipherInit(c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) {
# Line 3622  static int ssh1_3des_cleanup(EVP_CIPHER_ Line 3619  static int ssh1_3des_cleanup(EVP_CIPHER_
3619          struct ssh1_3des_ctx *c;          struct ssh1_3des_ctx *c;
3620    
3621          if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) {          if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) {
3622                  EVP_CIPHER_CTX_cleanup(c->k1);                  EVP_CIPHER_CTX_free(c->k1);
3623                  EVP_CIPHER_CTX_cleanup(c->k2);                  EVP_CIPHER_CTX_free(c->k2);
3624                  EVP_CIPHER_CTX_cleanup(c->k3);                  EVP_CIPHER_CTX_free(c->k3);
3625                  SecureZeroMemory(c, sizeof(*c));                  SecureZeroMemory(c, sizeof(*c));
3626                  free(c);                  free(c);
3627                  EVP_CIPHER_CTX_set_app_data(ctx, NULL);                  EVP_CIPHER_CTX_set_app_data(ctx, NULL);
# Line 4083  static void save_bcrypt_private_key(char Line 4080  static void save_bcrypt_private_key(char
4080          // 暗号化の準備          // 暗号化の準備
4081          // TODO: OpenSSH 6.5では -Z オプションで、暗号化アルゴリズムを指定可能だが、          // TODO: OpenSSH 6.5では -Z オプションで、暗号化アルゴリズムを指定可能だが、
4082          // ここでは"AES256-CBC"に固定とする。          // ここでは"AES256-CBC"に固定とする。
4083          cipher_init_SSH2(cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT,          cipher_init_SSH2(cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT,
4084                  get_cipher_EVP_CIPHER(cipher), 0, 0, pvar);                           get_cipher_EVP_CIPHER(cipher), 0, 0, pvar);
4085          SecureZeroMemory(key, keylen + ivlen);          SecureZeroMemory(key, keylen + ivlen);
4086          free(key);          free(key);
4087    
# Line 4132  static void save_bcrypt_private_key(char Line 4129  static void save_bcrypt_private_key(char
4129                  //free(decrypted);                  //free(decrypted);
4130                  //goto error;                  //goto error;
4131          }          }
4132          cipher_cleanup_SSH2(cipher_ctx);          cipher_free_SSH2(cipher_ctx);
4133    
4134          len = 2 * buffer_len(encoded);          len = 2 * buffer_len(encoded);
4135          cp = malloc(len);          cp = malloc(len);
# Line 4182  ed25519_error: Line 4179  ed25519_error:
4179          buffer_free(kdf);          buffer_free(kdf);
4180          buffer_free(encoded);          buffer_free(encoded);
4181          buffer_free(blob);          buffer_free(blob);
   
         if (cipher_ctx) {  
                 EVP_CIPHER_CTX_free(cipher_ctx);  
         }  
4182  }  }
4183    
4184  static INT_PTR CALLBACK TTXKeyGenerator(HWND dlg, UINT msg, WPARAM wParam,  static INT_PTR CALLBACK TTXKeyGenerator(HWND dlg, UINT msg, WPARAM wParam,
4185                                                                                  LPARAM lParam)                                          LPARAM lParam)
4186  {  {
4187          static ssh_keytype key_type;          static ssh_keytype key_type;
4188          static int saved_key_bits;          static int saved_key_bits;
# Line 4891  public_error: Line 4884  public_error:
4884                                  if (EVP_Cipher(cipher_ctx, wrapped, buffer_ptr(b), len) == 0) {                                  if (EVP_Cipher(cipher_ctx, wrapped, buffer_ptr(b), len) == 0) {
4885                                          goto error;                                          goto error;
4886                                  }                                  }
                                 if (EVP_CIPHER_CTX_cleanup(cipher_ctx) == 0) {  
                                         goto error;  
                                 }  
4887    
4888                                  buffer_append(enc, wrapped, len);                                  buffer_append(enc, wrapped, len);
4889    
# Line 4914  public_error: Line 4904  public_error:
4904  error:;  error:;
4905                                  buffer_free(b);                                  buffer_free(b);
4906                                  buffer_free(enc);                                  buffer_free(enc);
4907                                  if (cipher_ctx) {                                  cipher_free_SSH2(cipher_ctx);
                                         EVP_CIPHER_CTX_free(cipher_ctx);  
                                 }  
4908    
4909                          } else if (private_key.type == KEY_ED25519) { // SSH2 ED25519                          } else if (private_key.type == KEY_ED25519) { // SSH2 ED25519
4910                                  save_bcrypt_private_key(buf, filename, comment, dlg, pvar, rounds);                                  save_bcrypt_private_key(buf, filename, comment, dlg, pvar, rounds);
4911    
4912                          } else { // SSH2 RSA, DSA, ECDSA                                                  } else { // SSH2 RSA, DSA, ECDSA
4913                                  int len;                                  int len;
4914                                  FILE *fp;                                  FILE *fp;
4915                                  const EVP_CIPHER *cipher;                                  const EVP_CIPHER *cipher;
# Line 5082  static int PASCAL TTXProcessCommand(HWND Line 5070  static int PASCAL TTXProcessCommand(HWND
5070                          pvar->showing_err = TRUE;                          pvar->showing_err = TRUE;
5071                          pvar->err_msg = NULL;                          pvar->err_msg = NULL;
5072                          MessageBox(NULL, msg, "TTSSH",                          MessageBox(NULL, msg, "TTSSH",
5073                                             MB_TASKMODAL | MB_ICONEXCLAMATION);                                     MB_TASKMODAL | MB_ICONEXCLAMATION);
5074                          free(msg);                          free(msg);
5075                          pvar->showing_err = FALSE;                          pvar->showing_err = FALSE;
5076    

Legend:
Removed from v.9208  
changed lines
  Added in v.9209

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