示例#1
0
        private static XPacket DecryptPacket(XPacket packet)
        {
            if (!packet.HasField(0))
            {
                return(null); // Зашифрованные данные должны быть в 0 поле
            }

            var rawData   = packet.GetValueRaw(0); // получаем зашифрованный пакет
            var decrypted = XProtocolEncryption.Decrypt(rawData);

            return(Parse(decrypted, true));
        }
示例#2
0
        public static XPacket EncryptPacket(XPacket packet)
        {
            if (packet == null)
            {
                return(null); // Нам попросту нечего шифровать
            }

            var rawBytes  = packet.ToPacket();                     // получаем пакет в байтах
            var encrypted = XProtocolEncryption.Encrypt(rawBytes); // шифруем его

            var p = Create(0, 0);                                  // создаем пакет

            p.SetValueRaw(0, encrypted);                           // записываем данные
            p.ChangeHeaders = true;                                // помечаем, что нам нужен другой заголовок

            return(p);
        }