'Determine if the given message type may be sent while key exchange is
in progress.
@param messageType: The type of message
@type messageType: L{int}
@return: C{True} if the given type of message may be sent while key
exchange is in progress, C{False} if it may not.
@rtype: L{bool}
@see: U{http://tools.ietf.org/html/rfc4253#section-7.1}'

def _allowedKeyExchangeMessageType(self, messageType):

    if (1 <= messageType <= 19):
        return (messageType not in (MSG_SERVICE_REQUEST, MSG_SERVICE_ACCEPT))
    if (20 <= messageType <= 29):
        return (messageType not in (MSG_KEXINIT,))
    return (30 <= messageType <= 49)
