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)); }
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); }