public Msg4Send(ushort id, uint meta, uint src, MsgBody msgBody, byte sendKey) { uint offset = (uint)msgBody.Offset; byte b = 0; if (sendKey == 255) { for (int i = 0; i < offset; i++) { b = (byte)(b ^ msgBody.Buffer[i]); } } else { for (int j = 0; j < offset; j++) { b = (byte)(b ^ msgBody.Buffer[j]); msgBody.Buffer[j] ^= sendKey; } } _io = 0; _buffer = new byte[15 + offset]; MsgHdr msgHdr = new MsgHdr(offset, id, b, meta, src); byte[] array = msgHdr.ToArray(); Array.Copy(array, _buffer, array.Length); Array.Copy(msgBody.Buffer, 0L, _buffer, array.Length, offset); }
static ISteamSerializableHeader ReadHeader(uint rawEMsg, Stream stream) { ISteamSerializableHeader header; if (MsgUtil.IsProtoBuf(rawEMsg)) { header = new MsgHdrProtoBuf(); } else { switch (rawEMsg) { case (uint)EMsg.ChannelEncryptRequest: case (uint)EMsg.ChannelEncryptResponse: case (uint)EMsg.ChannelEncryptResult: header = new MsgHdr(); break; default: header = new ExtendedClientMsgHdr(); break; } } header.Deserialize(stream); return(header); }
public Msg4Recv(byte[] src) { _io = 0; _hdr = new MsgHdr(); _buffer = new byte[src.Length]; Array.Copy(src, _buffer, src.Length); }
/// <summary> /// Initializes a new instance of the <see cref="PacketMsg"/> class. /// </summary> /// <param name="eMsg">The network message type for this packet message.</param> /// <param name="data">The data.</param> public PacketMsg(EMsg eMsg, byte[] data) { MsgType = eMsg; payload = data; MsgHdr msgHdr = new MsgHdr(); // deserialize the header to get our hands on the job ids using (MemoryStream ms = new MemoryStream(data)) { msgHdr.Deserialize(ms); } TargetJobID = msgHdr.TargetJobID; SourceJobID = msgHdr.SourceJobID; }
/// <summary> /// Initializes a new instance of the <see cref="PacketMsg"/> class. /// </summary> /// <param name="eMsg">The network message type for this packet message.</param> /// <param name="data">The data.</param> public PacketMsg(EMsg eMsg, byte[] data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } MsgType = eMsg; payload = data; Header = new MsgHdr(); // deserialize the header to get our hands on the job ids using MemoryStream ms = new MemoryStream(data); Header.Deserialize(ms); BodyOffset = ms.Position; }
public void GetPacketMsgReturnsPacketMsgForCryptoHandshake() { var messages = new[] { EMsg.ChannelEncryptRequest, EMsg.ChannelEncryptResponse, EMsg.ChannelEncryptResult }; foreach (var emsg in messages) { var msgHdr = new MsgHdr { Msg = emsg }; var data = Serialize(msgHdr); var packetMsg = CMClient.GetPacketMsg(data); Assert.IsAssignableFrom <PacketMsg>(packetMsg); } }
/// <summary> /// Initializes a new instance of the <see cref="PacketMsg"/> class. /// </summary> /// <param name="eMsg">The network message type for this packet message.</param> /// <param name="data">The data.</param> public PacketMsg(EMsg eMsg, byte[] data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } MsgType = eMsg; payload = data; MsgHdr msgHdr = new MsgHdr(); // deserialize the header to get our hands on the job ids using (MemoryStream ms = new MemoryStream(data)) { msgHdr.Deserialize(ms); } TargetJobID = msgHdr.TargetJobID; SourceJobID = msgHdr.SourceJobID; }
public Msg4Recv() { _io = 0; _hdr = new MsgHdr(); _buffer = new byte[4092]; }