Пример #1
0
        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);
        }
Пример #2
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);
     }
 }
Пример #3
0
 private void TransmitPacket(SSH2TransmissionPacket packet) {
     _allowedDataSize -= packet.DataWriter.Length - SSH2TransmissionPacket.INITIAL_OFFSET;
     _connection.TransmitPacket(packet);
 }
Пример #4
0
 private SSH2TransmissionPacket OpenPacket() {
     SSH2TransmissionPacket packet = _packet;
     if (packet == null) {
         packet = _packet = new SSH2TransmissionPacket();
     }
     packet.Open();
     return packet;
 }
Пример #5
0
 internal DataFragment SynchronizedTransmitPacket(SSH2TransmissionPacket packet) {
     lock (_transmitSync) {
         DataFragment data = packet.Close(_tCipher, _param.Random, _tMAC, _tSequence++);
         return _packetReceiver.SendAndWaitResponse(data);
     }
 }
Пример #6
0
 internal void TransmitPacket(SSH2TransmissionPacket packet) {
     lock (_transmitSync) {
         DataFragment data = packet.Close(_tCipher, _param.Random, _tMAC, _tSequence++);
         _stream.Write(data.Data, data.Offset, data.Length);
     }
 }
Пример #7
0
 public KeyExchanger(SSH2Connection con, byte[] sessionID) {
     _connection = con;
     _param = con.Param;
     _cInfo = (SSH2ConnectionInfo)con.ConnectionInfo;
     _sessionID = sessionID;
     _status = Status.INITIAL;
     _packet = new SSH2TransmissionPacket();
 }