Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }