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 7027 by doda, Thu Jan 25 12:22:02 2018 UTC revision 7028 by doda, Thu Jan 25 12:22:05 2018 UTC
# Line 5375  error:; Line 5375  error:;
5375    
5376    
5377    
5378  //  /*
5379  // DH-GEX (RFC 4419)   * DH-GEX (RFC 4419)
5380  //   *
5381     * SSH_MSG_KEY_DH_GEX_REQUEST:
5382     *   byte    SSH_MSG_KEY_DH_GEX_REQUEST (34)
5383     *   uint32  min, minimal size in bits of an acceptable group
5384     *   uint32  n, preferred size in bits of the group the server will send
5385     *   uint32  max, maximal size in bits of an acceptable group
5386     */
5387    
5388  static void SSH2_dh_gex_kex_init(PTInstVar pvar)  static void SSH2_dh_gex_kex_init(PTInstVar pvar)
5389  {  {
# Line 5391  static void SSH2_dh_gex_kex_init(PTInstV Line 5397  static void SSH2_dh_gex_kex_init(PTInstV
5397                  goto error;                  goto error;
5398          }          }
5399    
5400          // サーバが保証すべき最低限のビット数を求める(we_needはバイト)。          // サーバに要求する group size の min, n(preferred), max を決定する。
5401          if (pvar->settings.GexMinimalGroupSize < GEX_GRP_LIMIT_MIN) {          if (pvar->settings.GexMinimalGroupSize == 0) {
5402                    // 0 (未設定) だった時は最新の推奨値を使う
5403                    min = GEX_GRP_DEFAULT_MIN;
5404            }
5405            else if (pvar->settings.GexMinimalGroupSize < GEX_GRP_LIMIT_MIN) {
5406                  min = GEX_GRP_LIMIT_MIN;                  min = GEX_GRP_LIMIT_MIN;
5407                    logprintf(LOG_LEVEL_NOTICE,
5408                            __FUNCTION__ ": small GexMinimalGroupSize is too small (%d), use minimum limit (%sd)",
5409                            pvar->settings.GexMinimalGroupSize, GEX_GRP_LIMIT_MIN);
5410          }          }
5411          else if (pvar->settings.GexMinimalGroupSize > GEX_GRP_LIMIT_MAX) {          else if (pvar->settings.GexMinimalGroupSize > GEX_GRP_LIMIT_MAX) {
5412                  min = GEX_GRP_LIMIT_MAX;                  min = GEX_GRP_LIMIT_MAX;
5413                    logprintf(LOG_LEVEL_NOTICE,
5414                            __FUNCTION__ ": small GexMinimalGroupSize is too larse (%d), use maximum limit (%sd)",
5415                            pvar->settings.GexMinimalGroupSize, GEX_GRP_LIMIT_MAX);
5416          }          }
5417          else {          else {
5418                  min = pvar->settings.GexMinimalGroupSize;                  min = pvar->settings.GexMinimalGroupSize;
5419          }          }
5420    
5421            // max は常に上限いっぱい
5422          max = GEX_GRP_LIMIT_MAX;          max = GEX_GRP_LIMIT_MAX;
5423    
5424            // preferred は使用する各暗号要素の鍵長/ブロック長のうち、最大のものを使う
5425          bits = dh_estimate(pvar->we_need * 8);          bits = dh_estimate(pvar->we_need * 8);
5426          if (bits < min) {          if (bits < min) {
5427                  bits = min;                  bits = min;

Legend:
Removed from v.7027  
changed lines
  Added in v.7028

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