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

            var rawData   = packet.GetValueRaw(0); // получаем зашифрованный пакет
            var decrypted = XProtocolEncryptor.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 = XProtocolEncryptor.Encrypt(rawBytes); // шифруем его

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

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

            return(p);
        }