private int _requiredResponseCount; //for keyboard-interactive authentication internal SSH2Connection(SSHConnectionParameter param, AbstractGranadosSocket strm, ISSHConnectionEventReceiver r, string serverversion, string clientversion) : base(param, strm, r) { _cInfo = new SSH2ConnectionInfo(); _cInfo._serverVersionString = serverversion; _cInfo._clientVersionString = clientversion; _packetReceiver = new SynchronizedPacketReceiver(this); _packetBuilder = new SSH2PacketBuilder(_packetReceiver); _transmissionPacket = new SSH2TransmissionPacket(); _transmissionImage = new DataFragment(null, 0, 0); }
internal void TransmitRawPayload(byte[] payload) { lock(this) { SSH2TransmissionPacket p = new SSH2TransmissionPacket(); SSH2DataWriter wr = p.Open(); wr.Write(payload); p.Close(_tCipher, _param.Random, _tMAC, _tSequence++, _transmissionImage); _stream.Write(_transmissionImage.Data, _transmissionImage.Offset, _transmissionImage.Length); } }
private void TransmitPacket(SSH2TransmissionPacket packet) { _allowedDataSize -= packet.DataWriter.Length - SSH2TransmissionPacket.INITIAL_OFFSET; _connection.TransmitPacket(packet); }
private SSH2TransmissionPacket OpenPacket() { SSH2TransmissionPacket packet = _packet; if (packet == null) { packet = _packet = new SSH2TransmissionPacket(); } packet.Open(); return packet; }
internal DataFragment SynchronizedTransmitPacket(SSH2TransmissionPacket packet) { lock (_transmitSync) { DataFragment data = packet.Close(_tCipher, _param.Random, _tMAC, _tSequence++); return _packetReceiver.SendAndWaitResponse(data); } }
internal void TransmitPacket(SSH2TransmissionPacket packet) { lock (_transmitSync) { DataFragment data = packet.Close(_tCipher, _param.Random, _tMAC, _tSequence++); _stream.Write(data.Data, data.Offset, data.Length); } }
public KeyExchanger(SSH2Connection con, byte[] sessionID) { _connection = con; _param = con.Param; _cInfo = (SSH2ConnectionInfo)con.ConnectionInfo; _sessionID = sessionID; _status = Status.INITIAL; _packet = new SSH2TransmissionPacket(); }