Hi,
I dumped the packet on our box and also captured packet using ethereal and
both gave me the following dump.I was not able to figure out how the n is so
small and what the rest of data is. Looking at the openssh client and server
code this should not happen. This is the third message which I receive from
client.
length = 0000 008c
padding length = 06
messagetype = 1e (SSH2_MSG_KEX_DH_GEX_REQUEST_OLD)
padding = b8 218e c680
0000 008c 061e 0000 0080 2a19 a9e4 05fb
aee2 b107 4fa9 f0c1 83d3 3bf0 15a2 8dc8
a74b 7be1 6cab 817f cffc b835 04f2 0958
850c b2ec dc0a 81de 0929 2d4c 9a6c 17a8
5a81 95bc 657b 0ac0 6a8e 246d 5d03 29c6
abcd e8c7 828f 6f61 d372 eba0 fa7f e38b
76ba b618 6402 a5d9 21cd c844 3913 2dc3
706e 3b7d 68d9 60b5 e4f1 aca1 c922 a347
9a46 2080 d9d1 cfe3 fde1 63b8 218e c680
Thanks,
Abhijeet
-----Original Message-----
From: openssh-unix-dev-admin at mindrot.org
[mailto:openssh-unix-dev-admin at mindrot.org]On Behalf Of Niels Provos
Sent: Thursday, April 11, 2002 8:02 AM
To: openssh-unix-dev at mindrot.org
Subject: Re: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD
Hi,
> length = 0000 008c
> padding length = 06
> messagetype = 1e (SSH2_MSG_KEX_DH_GEX_REQUEST_OLD)
> padding = b8 218e c680
>
> and the next four byte should have the n which is 0000 0080 which is less
> than 1024.
According to the client code, this can never happen.
nbits = dh_estimate(kex->we_need * 8);
if (datafellows & SSH_OLD_DHGEX) {
debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD sent");
/* Old GEX request */
packet_start(SSH2_MSG_KEX_DH_GEX_REQUEST_OLD);
packet_put_int(nbits);
The smallest possible value that dh_estimate returns is 512 bits.
I have no idea why you would see 128. Are you sure that this
is an openssh client that you are talking with?
Niels.
_______________________________________________
openssh-unix-dev at mindrot.org mailing list
http://www.mindrot.org/mailman/listinfo/openssh-unix-dev