From d72eb8f6db779f4873b6c86488ae998c1f3e6f59 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sat, 8 Jan 2005 13:28:41 +0000 Subject: [PATCH] Clear the kex-specific context in ssh->pkt_ctx for every new key 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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ssh.c b/ssh.c index 736c1fb1..3ca48c5d 100644 --- a/ssh.c +++ b/ssh.c @@ -106,6 +106,7 @@ */ #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;