It was a long nice evening, but I found a problem =)))
It's only with dropbear & curve25519-sha...@libssh.org kex algo.

See logs from original libssh from master with dropbear
(samplesshd-cb_server_from_dropbear_client_original.log):
[2015/01/28 21:15:37.870161, 3] ssh_packet_process:  Dispatching handler
for packet type 30
[2015/01/28 21:15:37.870200, 3] ssh_packet_kexdh_init:  Received
SSH_MSG_KEXDH_INIT
[2015/01/28 21:15:37.913360, 2] ssh_server_curve25519_init:
 SSH_MSG_KEX_ECDH_REPLY sent
[2015/01/28 21:15:37.913389, 2] ssh_server_curve25519_init:
 SSH_MSG_NEWKEYS sent
[2015/01/28 21:15:37.916199, 3] ssh_packet_process:  Dispatching handler
for packet type 30
[2015/01/28 21:15:37.916205, 3] ssh_packet_kexdh_init:  Received
SSH_MSG_KEXDH_INIT
[2015/01/28 21:15:37.916211, 1] ssh_packet_kexdh_init:  Invalid state for
SSH_MSG_KEXDH_INIT (!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
[2015/01/28 21:15:37.916228, 3] ssh_packet_process:  Dispatching handler
for packet type 21
[2015/01/28 21:15:37.916234, 2] ssh_packet_newkeys:  Received
SSH_MSG_NEWKEYS

So, libssh received SSH_MSG_KEXDH_INIT packet twice!
It seems a bug in dropbear!

Let's see logs from original libssh from master with
openssh (samplesshd-cb_server_from_openssh_client_original.log):
[2015/01/28 21:14:34.509147, 3] ssh_packet_process:  Dispatching handler
for packet type 30
[2015/01/28 21:14:34.509154, 3] ssh_packet_kexdh_init:  Received
SSH_MSG_KEXDH_INIT
[2015/01/28 21:14:34.544184, 2] ssh_server_curve25519_init:
 SSH_MSG_KEX_ECDH_REPLY sent
[2015/01/28 21:14:34.544235, 2] ssh_server_curve25519_init:
 SSH_MSG_NEWKEYS sent
[2015/01/28 21:14:34.559318, 3] ssh_packet_process:  Dispatching handler
for packet type 21
[2015/01/28 21:14:34.559346, 2] ssh_packet_newkeys:  Received
SSH_MSG_NEWKEYS

I fixed this in my code. I just don't set session->session_state =
SSH_SESSION_STATE_ERROR; as in original code.
Logs and new patch (on fresh master) are attached!

P.S. pkd_hello works fine. All tests have been passed successfully.

Attachment: patch_and_logs.tar.bz2
Description: BZip2 compressed data

Reply via email to