]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Clear the kex-specific context in ssh->pkt_ctx for every new key
authorSimon Tatham <anakin@pobox.com>
Sat, 8 Jan 2005 13:28:41 +0000 (13:28 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 8 Jan 2005 13:28:41 +0000 (13:28 +0000)
exchange. Without doing this, after we have done one specific-group
DH exchange (group1 or group14), ssh2_pkt_type _always_ translates
30 and 31 as KEXDH_INIT and KEXDH_REPLY, making a subsequent
group-exchange kex look rather strange in an SSH packet log.

[originally from svn r5081]

ssh.c

diff --git a/ssh.c b/ssh.c
index 736c1fb1d653bf32edfef4dbe8fd2fb686c2a0e8..3ca48c5dd0cae531c4da908e757416e6f44bb7f7 100644 (file)
--- a/ssh.c
+++ b/ssh.c
  */
 #define SSH2_PKTCTX_DHGROUP          0x0001
 #define SSH2_PKTCTX_DHGEX            0x0002
+#define SSH2_PKTCTX_KEX_MASK         0x000F
 #define SSH2_PKTCTX_PUBLICKEY        0x0010
 #define SSH2_PKTCTX_PASSWORD         0x0020
 #define SSH2_PKTCTX_KBDINTER         0x0040
@@ -4675,6 +4676,7 @@ static int do_ssh2_transport(Ssh ssh, unsigned char *in, int inlen,
        s->maclist = macs, s->nmacs = lenof(macs);
 
   begin_key_exchange:
+    ssh->pkt_ctx &= ~SSH2_PKTCTX_KEX_MASK;
     {
        int i, j, commalist_started;