version 1.12, 2010/11/10 01:33:07 |
version 1.13, 2013/05/17 00:13:13 |
|
|
if (BN_bin2bn(kbuf, kout, shared_secret) == NULL) |
if (BN_bin2bn(kbuf, kout, shared_secret) == NULL) |
fatal("kexdh_client: BN_bin2bn failed"); |
fatal("kexdh_client: BN_bin2bn failed"); |
memset(kbuf, 0, klen); |
memset(kbuf, 0, klen); |
xfree(kbuf); |
free(kbuf); |
|
|
/* calc and verify H */ |
/* calc and verify H */ |
kex_dh_hash( |
kex_dh_hash( |
|
|
shared_secret, |
shared_secret, |
&hash, &hashlen |
&hash, &hashlen |
); |
); |
xfree(server_host_key_blob); |
free(server_host_key_blob); |
BN_clear_free(dh_server_pub); |
BN_clear_free(dh_server_pub); |
DH_free(dh); |
DH_free(dh); |
|
|
if (key_verify(server_host_key, signature, slen, hash, hashlen) != 1) |
if (key_verify(server_host_key, signature, slen, hash, hashlen) != 1) |
fatal("key_verify failed for server_host_key"); |
fatal("key_verify failed for server_host_key"); |
key_free(server_host_key); |
key_free(server_host_key); |
xfree(signature); |
free(signature); |
|
|
/* save session id */ |
/* save session id */ |
if (kex->session_id == NULL) { |
if (kex->session_id == NULL) { |