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 2974 by maya, Thu Apr 26 12:21:24 2007 UTC revision 2975 by yutakapon, Fri Apr 27 12:41:33 2007 UTC
# Line 2420  void SSH_init(PTInstVar pvar) Line 2420  void SSH_init(PTInstVar pvar)
2420          pvar->ask4passwd = 0; // disabled(default) (2006.9.18 maya)          pvar->ask4passwd = 0; // disabled(default) (2006.9.18 maya)
2421          pvar->userauth_retry_count = 0;          pvar->userauth_retry_count = 0;
2422          pvar->decomp_buffer = NULL;          pvar->decomp_buffer = NULL;
2423            pvar->ssh2_authlist = NULL; // (2007.4.27 yutaka)
2424    
2425  }  }
2426    
# Line 2926  void SSH_end(PTInstVar pvar) Line 2927  void SSH_end(PTInstVar pvar)
2927                          buffer_free(pvar->decomp_buffer);                          buffer_free(pvar->decomp_buffer);
2928                          pvar->decomp_buffer = NULL;                          pvar->decomp_buffer = NULL;
2929                  }                  }
2930    
2931                    if (pvar->ssh2_authlist != NULL) { // (2007.4.27 yutaka)
2932                            free(pvar->ssh2_authlist);
2933                            pvar->ssh2_authlist = NULL;
2934                    }
2935          }          }
2936  #endif  #endif
2937    
# Line 6181  static BOOL handle_SSH2_authrequest(PTIn Line 6187  static BOOL handle_SSH2_authrequest(PTIn
6187          }          }
6188          buffer_put_string(msg, s, strlen(s));          buffer_put_string(msg, s, strlen(s));
6189    
6190          if (pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) { // パスワード認証          if (pvar->ssh2_authlist == NULL) { // "none"メソッドの送信
6191                    // 認証リストをサーバから取得する。
6192                    // SSH2_MSG_USERAUTH_FAILUREが返るが、サーバにはログは残らない。
6193                    // (2007.4.27 yutaka)
6194                    s = connect_id;
6195                    buffer_put_string(msg, s, strlen(s));
6196                    s = "none";  // method name
6197                    buffer_put_string(msg, s, strlen(s));
6198    
6199            } else if (pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) { // パスワード認証
6200                  // 初回は keyboard-interactive メソッドでトライする (2005.1.22 yutaka)                  // 初回は keyboard-interactive メソッドでトライする (2005.1.22 yutaka)
6201                  // cf. http://www.openssh.com/txt/draft-ietf-secsh-auth-kbdinteract-02.txt                  // cf. http://www.openssh.com/txt/draft-ietf-secsh-auth-kbdinteract-02.txt
6202    
6203                    // 認証リストに"password"がなければ、keyboard-interactiveでトライする。(2007.4.27 yutaka)
6204                    if (strstr(pvar->ssh2_authlist, "password") == NULL) {
6205                            pvar->settings.ssh2_keyboard_interactive = 1;
6206                            pvar->keyboard_interactive_done = 0;
6207                    }
6208    
6209                  if (pvar->settings.ssh2_keyboard_interactive == 1 &&                  if (pvar->settings.ssh2_keyboard_interactive == 1 &&
6210                          pvar->keyboard_interactive_done == 0) { // keyboard-interactive method                          pvar->keyboard_interactive_done == 0) { // keyboard-interactive method
6211                          pvar->keyboard_interactive_done = 1;                          pvar->keyboard_interactive_done = 1;
# Line 6480  static BOOL handle_SSH2_userauth_success Line 6501  static BOOL handle_SSH2_userauth_success
6501    
6502  static BOOL handle_SSH2_userauth_failure(PTInstVar pvar)  static BOOL handle_SSH2_userauth_failure(PTInstVar pvar)
6503  {  {
6504            int len;
6505            char *data;
6506            char *cstring;
6507            int partial;
6508    
6509            // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード
6510            data = pvar->ssh_state.payload;
6511            // パケットサイズ - (パディングサイズ+1);真のパケットサイズ
6512            len = pvar->ssh_state.payloadlen;
6513    
6514            cstring = buffer_get_string(&data, NULL); // 認証リストの取得
6515            partial = data[0];
6516            data += 1;
6517    
6518            // 認証リストが空の場合はまだログインをしていない。
6519            if (pvar->ssh2_authlist == NULL) {
6520                    pvar->ssh2_authlist = cstring; // 不要になったらフリーすること
6521    
6522                    handle_SSH2_authrequest(pvar); // ログイン処理へ
6523                    return TRUE;
6524            }
6525    
6526          // TCP connection closed          // TCP connection closed
6527          //notify_closed_connection(pvar);          //notify_closed_connection(pvar);
6528    
# Line 7354  static BOOL handle_SSH2_window_adjust(PT Line 7397  static BOOL handle_SSH2_window_adjust(PT
7397    
7398  /*  /*
7399   * $Log: not supported by cvs2svn $   * $Log: not supported by cvs2svn $
7400     * Revision 1.75  2007/04/26 12:21:24  maya
7401     * ssh2_channel_new() の返り値をチェックするように修正した。
7402     *
7403   * Revision 1.74  2007/04/26 11:11:10  maya   * Revision 1.74  2007/04/26 11:11:10  maya
7404   * Fix a bug.   * Fix a bug.
7405   *   *

Legend:
Removed from v.2974  
changed lines
  Added in v.2975

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