internal static void DecryptPacket(NetInboundPacketBase msg) { using (RijndaelManaged rm = new RijndaelManaged()) { rm.Key = key; rm.IV = iv; // Decrypt byte[] dbytes = msg.ReadBytes(msg.data.Length - NetOutboundPacket.PacketHeaderSize); dbytes = DecryptBytes(rm, dbytes); // Write new packet msg.data = dbytes; msg.position = 0; msg.HasHeader = false; msg.isEncrypted = false; } }
public static void Decompress(NetInboundPacketBase buffer) { // Pack buffer into a stream using (MemoryStream ms = new MemoryStream()) { int headerSize = buffer.HasHeader ? 4 + NetOutboundPacket.PacketHeaderSize : 4; // Get the original size int msgLength = buffer.ReadInt32(); ms.Write(buffer.data, headerSize, buffer.data.Length - headerSize); // Clear the packet buffer.data = new byte[msgLength]; buffer.position = 0; ms.Position = 0; // Decompress and re-write to the packet using (GZipStream zip = new GZipStream(ms, CompressionMode.Decompress)) zip.Read(buffer.data, 0, msgLength); buffer.isCompressed = false; buffer.HasHeader = false; } }