Exemplo n.º 1
0
        public void OnData(byte[] data, int offset, int length)
        {
            _buffer.Write(data, offset, length);
            int expectedLength = SSHUtil.ReadInt32(_buffer.UnderlyingBuffer, 0);

            if (expectedLength + 4 <= _buffer.Length)
            {
                SSH2DataReader        r  = new SSH2DataReader(new DataFragment(_buffer.UnderlyingBuffer, 4, _buffer.Length - 4));
                AgentForwadPacketType pt = (AgentForwadPacketType)r.ReadByte();
                //remaining len-1
                _buffer.SetOffset(0);

                switch (pt)
                {
                case AgentForwadPacketType.SSH2_AGENTC_REQUEST_IDENTITIES:
                    SendKeyList();
                    break;

                case AgentForwadPacketType.SSH2_AGENTC_SIGN_REQUEST:
                    SendSign(r);
                    break;

                default:
                    //Debug.WriteLine("Unknown agent packet " + pt.ToString());
                    TransmitWriter(OpenWriter(AgentForwadPacketType.SSH_AGENT_FAILURE));
                    break;
                }
            }
        }
Exemplo n.º 2
0
        //writer util
        private SSH2DataWriter OpenWriter(AgentForwadPacketType pt)
        {
            SSH2DataWriter wr = new SSH2DataWriter();

            wr.WriteInt32(0); //length field
            wr.WriteByte((byte)pt);
            return(wr);
        }
Exemplo n.º 3
0
 //writer util
 private SSH2DataWriter OpenWriter(AgentForwadPacketType pt) {
     SSH2DataWriter wr = new SSH2DataWriter();
     wr.WriteInt32(0); //length field
     wr.WriteByte((byte)pt);
     return wr;
 }