// encode will bin invoked in write with synchronization. public void encode(Packet packet) { //System.Console.WriteLine("encode: "+packet.buffer.buffer[5]); //System.Console.WriteLine(" "+packet.buffer.index); //if(packet.buffer.buffer[5]==96){ //Thread.dumpStack(); //} if(deflater!=null) { packet.buffer.index=deflater.compress(packet.buffer.buffer, 5, packet.buffer.index); } if(c2scipher!=null) { packet.padding(c2scipher.getIVSize()); int pad=packet.buffer.buffer[4]; lock(random) { random.fill(packet.buffer.buffer, packet.buffer.index-pad, pad); } } else { packet.padding(8); } byte[] mac=null; if(c2smac!=null) { c2smac.update(seqo); c2smac.update(packet.buffer.buffer, 0, packet.buffer.index); mac=c2smac.doFinal(); } if(c2scipher!=null) { byte[] buf=packet.buffer.buffer; c2scipher.update(buf, 0, packet.buffer.index, buf, 0); } if(mac!=null) { packet.buffer.putByte(mac); } }
// encode will bin invoked in write with synchronization. public void encode(Packet packet) { if (deflater != null) { packet.buffer.index = deflater.compress(packet.buffer.buffer, 5, packet.buffer.index); } if (c2scipher != null) { packet.padding(c2scipher.getIVSize()); int pad = packet.buffer.buffer[4]; lock (random) { random.fill(packet.buffer.buffer, packet.buffer.index - pad, pad); } } else { packet.padding(8); } byte[] mac = null; if (c2smac != null) { c2smac.update(seqo); c2smac.update(packet.buffer.buffer, 0, packet.buffer.index); mac = c2smac.doFinal(); } if (c2scipher != null) { byte[] buf = packet.buffer.buffer; c2scipher.update(buf, 0, packet.buffer.index, buf, 0); } if (mac != null) { packet.buffer.putByte(mac); } }