| 5125 |
switch (pvar->kex_type) { |
switch (pvar->kex_type) { |
| 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: |
| 5129 |
|
case KEX_DH_GRP15_SHA256: |
| 5130 |
|
case KEX_DH_GRP16_SHA256: |
| 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: |
| 5167 |
int len; |
int len; |
| 5168 |
|
|
| 5169 |
// Diffie-Hellman key agreement |
// Diffie-Hellman key agreement |
| 5170 |
if (pvar->kex_type == KEX_DH_GRP1_SHA1) { |
switch (pvar->kex_type) { |
| 5171 |
|
case KEX_DH_GRP1_SHA1: |
| 5172 |
dh = dh_new_group1(); |
dh = dh_new_group1(); |
| 5173 |
} else if (pvar->kex_type == KEX_DH_GRP14_SHA1) { |
break; |
| 5174 |
|
case KEX_DH_GRP14_SHA1: |
| 5175 |
|
case KEX_DH_GRP14_SHA256: |
| 5176 |
dh = dh_new_group14(); |
dh = dh_new_group14(); |
| 5177 |
} else { |
break; |
| 5178 |
|
case KEX_DH_GRP15_SHA256: |
| 5179 |
|
dh = dh_new_group15(); |
| 5180 |
|
break; |
| 5181 |
|
case KEX_DH_GRP16_SHA256: |
| 5182 |
|
dh = dh_new_group16(); |
| 5183 |
|
break; |
| 5184 |
|
default: |
| 5185 |
goto error; |
goto error; |
| 5186 |
} |
} |
| 5187 |
|
|
| 5638 |
|
|
| 5639 |
// ハッシュの計算 |
// ハッシュの計算 |
| 5640 |
/* calc and verify H */ |
/* calc and verify H */ |
| 5641 |
hash = kex_dh_hash(pvar->client_version_string, |
hash = kex_dh_hash(get_kex_algorithm_EVP_MD(pvar->kex_type), |
| 5642 |
|
pvar->client_version_string, |
| 5643 |
pvar->server_version_string, |
pvar->server_version_string, |
| 5644 |
buffer_ptr(pvar->my_kex), buffer_len(pvar->my_kex), |
buffer_ptr(pvar->my_kex), buffer_len(pvar->my_kex), |
| 5645 |
buffer_ptr(pvar->peer_kex), buffer_len(pvar->peer_kex), |
buffer_ptr(pvar->peer_kex), buffer_len(pvar->peer_kex), |
| 6251 |
switch (pvar->kex_type) { |
switch (pvar->kex_type) { |
| 6252 |
case KEX_DH_GRP1_SHA1: |
case KEX_DH_GRP1_SHA1: |
| 6253 |
case KEX_DH_GRP14_SHA1: |
case KEX_DH_GRP14_SHA1: |
| 6254 |
|
case KEX_DH_GRP14_SHA256: |
| 6255 |
|
case KEX_DH_GRP15_SHA256: |
| 6256 |
|
case KEX_DH_GRP16_SHA256: |
| 6257 |
handle_SSH2_dh_kex_reply(pvar); |
handle_SSH2_dh_kex_reply(pvar); |
| 6258 |
break; |
break; |
| 6259 |
case KEX_DH_GEX_SHA1: |
case KEX_DH_GEX_SHA1: |