Mercurial > dropbear
diff svr-kex.c @ 1678:4b4cfc92c5b7
Make server send SSH_MSG_EXT_INFO
Ensure that only valid hostkey algorithms are sent in the first kex guess
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 21 May 2020 23:00:22 +0800 |
parents | ba6fc7afe1c5 |
children | 435cfb9ec96e |
line wrap: on
line diff
--- a/svr-kex.c Thu May 21 22:58:56 2020 +0800 +++ b/svr-kex.c Thu May 21 23:00:22 2020 +0800 @@ -86,6 +86,11 @@ } send_msg_newkeys(); + + if (ses.allow_ext_info) { + send_msg_ext_info(); + } + ses.requirenext = SSH_MSG_NEWKEYS; TRACE(("leave recv_msg_kexdh_init")) } @@ -242,3 +247,19 @@ TRACE(("leave send_msg_kexdh_reply")) } +/* Only used for server-sig-algs on the server side */ +void send_msg_ext_info(void) { + TRACE(("enter send_msg_ext_info")) + + buf_putbyte(ses.writepayload, SSH_MSG_EXT_INFO); + /* nr-extensions */ + buf_putint(ses.writepayload, 1); + + buf_putstring(ses.writepayload, SSH_SERVER_SIG_ALGS, strlen(SSH_SERVER_SIG_ALGS)); + buf_put_algolist_all(ses.writepayload, sigalgs, 1); + + encrypt_packet(); + + TRACE(("leave send_msg_ext_info")) + +}