A list of strings representing the message authentication codes (hashes)
supported, in order from most-preferred to least. Both this and
supportedCiphers can include 'none' to use no encryption or authentication,
but that must be done manually,

Sends a packet. If it's been set up, compress the data, encrypt it, and
authenticate it before sending. If key exchange is in progress and the
message is not part of key exchange, queue it to be sent later.

The current protocol state with respect to key exchange. This is either
_KEY_EXCHANGE_NONE if no key exchange is in progress (and
returns to this value after any key exchange completqes),
_KEY_EXCHANGE_REQUESTED if this side of the connection
initiated a key exchange, and _KEY_EXCHANGE_PROGRESSING if the
other side of the connection initiated a key exchange.
_KEY_EXCHANGE_NONE is the initial value (however SSH
connections begin with key exchange, so it will quickly change to another
state).

Whenever _keyExchangeState is not
_KEY_EXCHANGE_NONE, this is a list of pending
messages which were passed to sendPacket
but could not be sent because it is not legal to send them while a key
exchange is in progress. When the key exchange completes, another attempt
is made to send these messages.