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 4327 by maya, Sun Feb 20 03:29:43 2011 UTC revision 4367 by yutakapon, Sat Mar 5 14:52:45 2011 UTC
# Line 4169  void SSH2_update_cipher_myproposal(PTIns Line 4169  void SSH2_update_cipher_myproposal(PTIns
4169  void SSH2_update_compression_myproposal(PTInstVar pvar)  void SSH2_update_compression_myproposal(PTInstVar pvar)
4170  {  {
4171          static char buf[128]; // TODO: malloc()にすべき          static char buf[128]; // TODO: malloc()にすべき
4172            int index;
4173            int len, i;
4174    
4175          // 通信中には呼ばれないはずだが、念のため。(2006.6.26 maya)          // 通信中には呼ばれないはずだが、念のため。(2006.6.26 maya)
4176          if (pvar->socket != INVALID_SOCKET) {          if (pvar->socket != INVALID_SOCKET) {
# Line 4177  void SSH2_update_compression_myproposal( Line 4179  void SSH2_update_compression_myproposal(
4179    
4180          // 圧縮レベルに応じて、myproposal[]を書き換える。(2005.7.9 yutaka)          // 圧縮レベルに応じて、myproposal[]を書き換える。(2005.7.9 yutaka)
4181          buf[0] = '\0';          buf[0] = '\0';
4182          if (pvar->settings.CompressionLevel > 0) {          for (i = 0 ; pvar->settings.CompOrder[i] != 0 ; i++) {
4183                  // 将来的に圧縮アルゴリズムの優先度をユーザが変えられるようにする。                  index = pvar->settings.CompOrder[i] - '0';
4184                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, "zlib@openssh.com,zlib,none");                  if (index == COMP_NONE) // disabled line
4185                            break;
4186                    strncat_s(buf, sizeof(buf), ssh_comps[index].name, _TRUNCATE);
4187                    strncat_s(buf, sizeof(buf), ",", _TRUNCATE);
4188          }          }
4189          else {          len = strlen(buf);
4190            buf[len - 1] = '\0';  // get rid of comma
4191    
4192            // 圧縮指定がない場合は、圧縮レベルを無条件にゼロにする。
4193            if (buf[0] == '\0') {
4194                    pvar->settings.CompressionLevel = 0;
4195            }
4196    
4197            if (pvar->settings.CompressionLevel == 0) {
4198                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, KEX_DEFAULT_COMP);                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, KEX_DEFAULT_COMP);
4199          }          }
4200          if (buf[0] != '\0') {          if (buf[0] != '\0') {
# Line 4190  void SSH2_update_compression_myproposal( Line 4203  void SSH2_update_compression_myproposal(
4203          }          }
4204  }  }
4205    
4206    // KEXアルゴリズム優先順位に応じて、myproposal[]を書き換える。
4207    // (2011.2.28 yutaka)
4208    void SSH2_update_kex_myproposal(PTInstVar pvar)
4209    {
4210            static char buf[256]; // TODO: malloc()にすべき
4211            int index;
4212            int len, i;
4213    
4214            // 通信中には呼ばれないはずだが、念のため。(2006.6.26 maya)
4215            if (pvar->socket != INVALID_SOCKET) {
4216                    return;
4217            }
4218    
4219            buf[0] = '\0';
4220            for (i = 0 ; pvar->settings.KexOrder[i] != 0 ; i++) {
4221                    index = pvar->settings.KexOrder[i] - '0';
4222                    if (index == KEX_DH_NONE) // disabled line
4223                            break;
4224                    strncat_s(buf, sizeof(buf), ssh2_kex_algorithms[index].name, _TRUNCATE);
4225                    strncat_s(buf, sizeof(buf), ",", _TRUNCATE);
4226            }
4227            len = strlen(buf);
4228            buf[len - 1] = '\0';  // get rid of comma
4229            myproposal[PROPOSAL_KEX_ALGS] = buf;
4230    }
4231    
4232    // Host Keyアルゴリズム優先順位に応じて、myproposal[]を書き換える。
4233    // (2011.2.28 yutaka)
4234    void SSH2_update_host_key_myproposal(PTInstVar pvar)
4235    {
4236            static char buf[256]; // TODO: malloc()にすべき
4237            int index;
4238            int len, i;
4239    
4240            // 通信中には呼ばれないはずだが、念のため。(2006.6.26 maya)
4241            if (pvar->socket != INVALID_SOCKET) {
4242                    return;
4243            }
4244    
4245            buf[0] = '\0';
4246            for (i = 0 ; pvar->settings.HostKeyOrder[i] != 0 ; i++) {
4247                    index = pvar->settings.HostKeyOrder[i] - '0';
4248                    if (index == KEY_NONE) // disabled line
4249                            break;
4250                    strncat_s(buf, sizeof(buf), ssh2_host_key[index].name, _TRUNCATE);
4251                    strncat_s(buf, sizeof(buf), ",", _TRUNCATE);
4252            }
4253            len = strlen(buf);
4254            buf[len - 1] = '\0';  // get rid of comma
4255            myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = buf;
4256    }
4257    
4258    // H-MACアルゴリズム優先順位に応じて、myproposal[]を書き換える。
4259    // (2011.2.28 yutaka)
4260    void SSH2_update_hmac_myproposal(PTInstVar pvar)
4261    {
4262            static char buf[256]; // TODO: malloc()にすべき
4263            int index;
4264            int len, i;
4265    
4266            // 通信中には呼ばれないはずだが、念のため。(2006.6.26 maya)
4267            if (pvar->socket != INVALID_SOCKET) {
4268                    return;
4269            }
4270    
4271            buf[0] = '\0';
4272            for (i = 0 ; pvar->settings.MacOrder[i] != 0 ; i++) {
4273                    index = pvar->settings.MacOrder[i] - '0';
4274                    if (index == HMAC_NONE) // disabled line
4275                            break;
4276                    strncat_s(buf, sizeof(buf), ssh2_macs[index].name, _TRUNCATE);
4277                    strncat_s(buf, sizeof(buf), ",", _TRUNCATE);
4278            }
4279            len = strlen(buf);
4280            buf[len - 1] = '\0';  // get rid of comma
4281            myproposal[PROPOSAL_MAC_ALGS_CTOS] = buf;
4282            myproposal[PROPOSAL_MAC_ALGS_STOC] = buf;
4283    }
4284    
4285  // クライアントからサーバへのキー交換開始要求  // クライアントからサーバへのキー交換開始要求
4286  void SSH2_send_kexinit(PTInstVar pvar)  void SSH2_send_kexinit(PTInstVar pvar)

Legend:
Removed from v.4327  
changed lines
  Added in v.4367

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