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/kex.c | |
parent | e934ab0816e871253cd3d0538638f0b7cf98c375 (diff) | |
download | libssh-63c3f0e7368c7286a960c65422513850ce192124.tar.gz libssh-63c3f0e7368c7286a960c65422513850ce192124.tar.xz libssh-63c3f0e7368c7286a960c65422513850ce192124.zip |
Implement key re-exchange
Diffstat (limited to 'src/kex.c')
-rw-r--r-- | src/kex.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -276,7 +276,9 @@ SSH_PACKET_CALLBACK(ssh_packet_kexinit){ (void)type; (void)user; memset(strings, 0, sizeof(strings)); - if(session->session_state != SSH_SESSION_STATE_INITIAL_KEX){ + if (session->session_state == SSH_SESSION_STATE_AUTHENTICATED){ + ssh_log(session,SSH_LOG_WARNING, "Other side initiating key re-exchange"); + } else if(session->session_state != SSH_SESSION_STATE_INITIAL_KEX){ ssh_set_error(session,SSH_FATAL,"SSH_KEXINIT received in wrong state"); goto error; } @@ -335,6 +337,7 @@ SSH_PACKET_CALLBACK(ssh_packet_kexinit){ leave_function(); session->session_state=SSH_SESSION_STATE_KEXINIT_RECEIVED; + session->dh_handshake_state=DH_STATE_INIT; session->ssh_connection_callback(session); return SSH_PACKET_USED; error: |