| 5126 |
case KEX_DH_GRP1_SHA1: |
case KEX_DH_GRP1_SHA1: |
| 5127 |
case KEX_DH_GRP14_SHA1: |
case KEX_DH_GRP14_SHA1: |
| 5128 |
case KEX_DH_GRP14_SHA256: |
case KEX_DH_GRP14_SHA256: |
| 5129 |
case KEX_DH_GRP15_SHA256: |
case KEX_DH_GRP16_SHA512: |
| 5130 |
case KEX_DH_GRP16_SHA256: |
case KEX_DH_GRP18_SHA512: |
| 5131 |
SSH2_dh_kex_init(pvar); |
SSH2_dh_kex_init(pvar); |
| 5132 |
break; |
break; |
| 5133 |
case KEX_DH_GEX_SHA1: |
case KEX_DH_GEX_SHA1: |
| 5157 |
|
|
| 5158 |
|
|
| 5159 |
// |
// |
| 5160 |
// KEX_DH_GRP1_SHA1 or KEX_DH_GRP14_SHA1 |
// 固定 DH Groups (RFC 4253, draft-baushke-ssh-dh-group-sha2-04) |
| 5161 |
// |
// |
| 5162 |
static void SSH2_dh_kex_init(PTInstVar pvar) |
static void SSH2_dh_kex_init(PTInstVar pvar) |
| 5163 |
{ |
{ |
| 5175 |
case KEX_DH_GRP14_SHA256: |
case KEX_DH_GRP14_SHA256: |
| 5176 |
dh = dh_new_group14(); |
dh = dh_new_group14(); |
| 5177 |
break; |
break; |
| 5178 |
case KEX_DH_GRP15_SHA256: |
case KEX_DH_GRP16_SHA512: |
|
dh = dh_new_group15(); |
|
|
break; |
|
|
case KEX_DH_GRP16_SHA256: |
|
| 5179 |
dh = dh_new_group16(); |
dh = dh_new_group16(); |
| 5180 |
break; |
break; |
| 5181 |
|
case KEX_DH_GRP18_SHA512: |
| 5182 |
|
dh = dh_new_group18(); |
| 5183 |
|
break; |
| 5184 |
default: |
default: |
| 5185 |
goto error; |
goto error; |
| 5186 |
} |
} |
| 5227 |
|
|
| 5228 |
|
|
| 5229 |
// |
// |
| 5230 |
// KEX_DH_GEX_SHA1 or KEX_DH_GEX_SHA256 |
// DH-GEX (RFC 4419) |
|
// |
|
|
// cf. Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol |
|
|
// (draft-ietf-secsh-dh-group-exchange-04.txt) |
|
| 5231 |
// |
// |
| 5232 |
|
|
| 5233 |
static void SSH2_dh_gex_kex_init(PTInstVar pvar) |
static void SSH2_dh_gex_kex_init(PTInstVar pvar) |
| 6249 |
case KEX_DH_GRP1_SHA1: |
case KEX_DH_GRP1_SHA1: |
| 6250 |
case KEX_DH_GRP14_SHA1: |
case KEX_DH_GRP14_SHA1: |
| 6251 |
case KEX_DH_GRP14_SHA256: |
case KEX_DH_GRP14_SHA256: |
| 6252 |
case KEX_DH_GRP15_SHA256: |
case KEX_DH_GRP16_SHA512: |
| 6253 |
case KEX_DH_GRP16_SHA256: |
case KEX_DH_GRP18_SHA512: |
| 6254 |
handle_SSH2_dh_kex_reply(pvar); |
handle_SSH2_dh_kex_reply(pvar); |
| 6255 |
break; |
break; |
| 6256 |
case KEX_DH_GEX_SHA1: |
case KEX_DH_GEX_SHA1: |