| 5392 |
} |
} |
| 5393 |
|
|
| 5394 |
// サーバが保証すべき最低限のビット数を求める(we_needはバイト)。 |
// サーバが保証すべき最低限のビット数を求める(we_needはバイト)。 |
| 5395 |
if (pvar->settings.GexMinimalGroupSize < GEX_GRP_MINSIZE) { |
if (pvar->settings.GexMinimalGroupSize < GEX_GRP_LIMIT_MIN) { |
| 5396 |
min = GEX_GRP_MINSIZE; |
min = GEX_GRP_LIMIT_MIN; |
| 5397 |
} |
} |
| 5398 |
else if (pvar->settings.GexMinimalGroupSize > GEX_GRP_MAXSIZE) { |
else if (pvar->settings.GexMinimalGroupSize > GEX_GRP_LIMIT_MAX) { |
| 5399 |
min = GEX_GRP_MAXSIZE; |
min = GEX_GRP_LIMIT_MAX; |
| 5400 |
} |
} |
| 5401 |
else { |
else { |
| 5402 |
min = pvar->settings.GexMinimalGroupSize; |
min = pvar->settings.GexMinimalGroupSize; |
| 5403 |
} |
} |
| 5404 |
max = GEX_GRP_MAXSIZE; |
max = GEX_GRP_LIMIT_MAX; |
| 5405 |
bits = dh_estimate(pvar->we_need * 8); |
bits = dh_estimate(pvar->we_need * 8); |
| 5406 |
if (bits < min) { |
if (bits < min) { |
| 5407 |
bits = min; |
bits = min; |
| 5485 |
pvar->kexgex_min, pvar->kexgex_bits, pvar->kexgex_max, BN_num_bits(p)); |
pvar->kexgex_min, pvar->kexgex_bits, pvar->kexgex_max, BN_num_bits(p)); |
| 5486 |
|
|
| 5487 |
// |
// |
| 5488 |
// (1) < GEX_GRP_MINSIZE <= (2) < kexgex_min <= (3) < kexgex_bits <= (4) <= kexgex_max < (5) <= GEX_GRP_MAXSIZE < (6) |
// (1) < GEX_GRP_LIMIT_MIN <= (2) < kexgex_min <= (3) < kexgex_bits <= (4) <= kexgex_max < (5) <= GEX_GRP_LIMIT_MAX < (6) |
| 5489 |
// |
// |
| 5490 |
if (grp_bits < GEX_GRP_MINSIZE || grp_bits > GEX_GRP_MAXSIZE) { |
if (grp_bits < GEX_GRP_LIMIT_MIN || grp_bits > GEX_GRP_LIMIT_MAX) { |
| 5491 |
// (1), (6) プロトコルで認められている範囲(1024 <= grp_bits <= 8192)の外。強制切断。 |
// (1), (6) プロトコルで認められている範囲(1024 <= grp_bits <= 8192)の外。強制切断。 |
| 5492 |
UTIL_get_lang_msg("MSG_SSH_GEX_SIZE_OUTOFRANGE", pvar, |
UTIL_get_lang_msg("MSG_SSH_GEX_SIZE_OUTOFRANGE", pvar, |
| 5493 |
"Received group size is out of range: %d"); |
"Received group size is out of range: %d"); |
| 5516 |
} |
} |
| 5517 |
else { |
else { |
| 5518 |
// (5) こちらの設定した最大値より大きい。確認ダイアログを出す。 |
// (5) こちらの設定した最大値より大きい。確認ダイアログを出す。 |
| 5519 |
// ただし現状では kexgex_max == GEX_GRP_MAXSIZE(8192) である為この状況になる事は無い。 |
// ただし現状では kexgex_max == GEX_GRP_LIMIT_MAX(8192) である為この状況になる事は無い。 |
| 5520 |
logprintf(LOG_LEVEL_WARNING, |
logprintf(LOG_LEVEL_WARNING, |
| 5521 |
"DH-GEX: grp_bits(%d) > kexgex_max(%d)", grp_bits, pvar->kexgex_max); |
"DH-GEX: grp_bits(%d) > kexgex_max(%d)", grp_bits, pvar->kexgex_max); |
| 5522 |
UTIL_get_lang_msg("MSG_SSH_GEX_SIZE_LARGER", pvar, |
UTIL_get_lang_msg("MSG_SSH_GEX_SIZE_LARGER", pvar, |