version 1.15, 2019/01/21 09:55:52 |
version 1.16, 2019/01/21 10:07:22 |
|
|
size_t klen = 0, hashlen; |
size_t klen = 0, hashlen; |
int r; |
int r; |
|
|
if (kex->verify_host_key == NULL) { |
|
r = SSH_ERR_INVALID_ARGUMENT; |
|
goto out; |
|
} |
|
group = kex->ec_group; |
group = kex->ec_group; |
client_key = kex->ec_client_key; |
client_key = kex->ec_client_key; |
|
|
|
|
(r = sshkey_from_blob(server_host_key_blob, sbloblen, |
(r = sshkey_from_blob(server_host_key_blob, sbloblen, |
&server_host_key)) != 0) |
&server_host_key)) != 0) |
goto out; |
goto out; |
if (server_host_key->type != kex->hostkey_type || |
if ((r = kex_verify_host_key(ssh, server_host_key)) != 0) |
(kex->hostkey_type == KEY_ECDSA && |
|
server_host_key->ecdsa_nid != kex->hostkey_nid)) { |
|
r = SSH_ERR_KEY_TYPE_MISMATCH; |
|
goto out; |
goto out; |
} |
|
if (kex->verify_host_key(server_host_key, ssh) == -1) { |
|
r = SSH_ERR_SIGNATURE_INVALID; |
|
goto out; |
|
} |
|
|
|
/* Q_S, server public key */ |
/* Q_S, server public key */ |
/* signed H */ |
/* signed H */ |