Clear the kex-specific context in ssh->pkt_ctx for every new key
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 8 Jan 2005 13:28:41 +0000 (13:28 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
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.

git-svn-id: svn://svn.tartarus.org/sgt/putty@5081 cda61777-01e9-0310-a592-d414129be87e

ssh.c

diff --git a/ssh.c b/ssh.c
index 736c1fb..3ca48c5 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;