Subject: data during rekey?

From: der Mouse <[email-masked]>
Date: Mon, 1 Dec 2003 20:18:36 -0500 (EST)

transport-17 says that

   Implementations MUST NOT accept any other messages after key exchange
   before receiving SSH_MSG_NEWKEYS.

But what about _during_ key exchange?  That is, after KEXINIT but
before the last message of the key exchange?  Must all packets from
KEXINIT through NEWKEYS be transport layer, or is it permissible to
exchange higher-layer packets during that interval?  (Obviously this
can't be done for the first key exchange, but it makes sense when
rekeying.)

Also, when the draft says that an implementation mustn't "accept"
messages, what should it do if any are received?  Silently drop them?
Or is this a protocol error on the part of the host who sent them, to
be treated however the receiver handles protocol errors?

I'll be happy to write the new text for the draft, once I know what it
should say. :-)

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       [email-masked]
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

---

From: [email-masked] (Niels Möller)
Date: 02 Dec 2003 09:29:11 +0100

der Mouse <[email-masked]> writes:

> But what about _during_ key exchange?

In the message sequence, in each direction, the only messages allowed
between SSH_MSG_KEXINIT and SSH_MSG_NEWKEYS are keyexchange messages,
SSH_MSG_IGNORE, SSH_MSG_DEBUG and SSH_MSG_DISCONNECT. Sending any
other message type is a protocol error.

> I'll be happy to write the new text for the draft, once I know what it

This issue was discussed some year ago, please consult the list
archive.

/Niels