diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2012-12-23 23:09:50 +0100 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2012-12-23 23:09:50 +0100 |
commit | 63c3f0e7368c7286a960c65422513850ce192124 (patch) | |
tree | 2267e176dac25d4c9e14512282a4723d94a063d6 /src/packet_cb.c | |
parent | e934ab0816e871253cd3d0538638f0b7cf98c375 (diff) | |
download | libssh-63c3f0e7368c7286a960c65422513850ce192124.tar.gz libssh-63c3f0e7368c7286a960c65422513850ce192124.tar.xz libssh-63c3f0e7368c7286a960c65422513850ce192124.zip |
Implement key re-exchange
Diffstat (limited to 'src/packet_cb.c')
-rw-r--r-- | src/packet_cb.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/packet_cb.c b/src/packet_cb.c index dd77dd7c..41d0985c 100644 --- a/src/packet_cb.c +++ b/src/packet_cb.c @@ -179,7 +179,7 @@ SSH_PACKET_CALLBACK(ssh_packet_newkeys){ rc = ssh_pki_signature_verify_blob(session, sig_blob, key, - session->next_crypto->session_id, + session->next_crypto->secret_hash, session->next_crypto->digest_len); /* Set the server public key type for known host checking */ session->next_crypto->server_pubkey_type = key->type_c; @@ -210,6 +210,13 @@ SSH_PACKET_CALLBACK(ssh_packet_newkeys){ ssh_set_error_oom(session); goto error; } + session->next_crypto->session_id = malloc(session->current_crypto->digest_len); + if (session->next_crypto->session_id == NULL) { + ssh_set_error_oom(session); + goto error; + } + memcpy(session->next_crypto->session_id, session->current_crypto->session_id, + session->current_crypto->digest_len); } session->dh_handshake_state = DH_STATE_FINISHED; session->ssh_connection_callback(session); |