public void Deserialise(Header header, Packet payload) { ShortPacket sp = (ShortPacket)payload; SessionId = StringUtils.ASCIIBytesToString(sp.Data, 1, sp.Data.Length - 1); EventType = (EventType)sp.ShortDatum; }
public void Read_Protected_ResultBytesAreExpected() { //Arrange var messageBytes = Utils.ParseHexString(GetProtectedMessageHex()); var destConnectionId = PacketConnectionId.Empty; var packetNumbers = GetPacketNumbersHex(); var currentPacketNumber = PacketNumber.Parse(Utils.ParseHexString(packetNumbers.Current)); var largestPacketNumber = PacketNumber.Parse(Utils.ParseHexString(packetNumbers.Largest)); var secrets = GetSecrets(); var aead = Cipher.TLS_CHACHA20_POLY1305_SHA256.CreateAead(Utils.ParseHexString(secrets.Iv), Utils.ParseHexString(secrets.Key)); var cipher = Cipher.TLS_CHACHA20_POLY1305_SHA256.CreateCipher(Utils.ParseHexString(secrets.Hp)); //Act var cursor = new MemoryCursor(messageBytes); var result = ShortPacket.TryParseProtectedByConnectionId(aead, cipher, cursor, destConnectionId, largestPacketNumber, out var packet); using (packet.Payload.SetCursor(cursor)) { result &= PingFrame.TryParse(cursor); result &= cursor.IsEnd(); } result &= cursor.IsEnd(); //Assert Assert.True(result); Assert.Equal(destConnectionId, packet.DestinationConnectionId); Assert.Equal(currentPacketNumber, packet.Number); }
public void Deserialise(Header header, Packet payload) { ShortPacket sp = (ShortPacket)payload; _unkData = sp.Data; _unkShortDatum = sp.ShortDatum; }
public void Deserialise(Header header, Packet payload) { ShortPacket sp = (ShortPacket)payload; Debug.Assert(sp.Data.Length == 2); FrameNumber = (sp.Data[1] << 8 & 0xff00) | (sp.Data[0] & 0xff); _unkShortDatum = sp.ShortDatum; }
public void Deserialise(Header header, Packet payload) { ShortPacket p = (ShortPacket)payload; CarId = header.CarId; CarType = header.CarType; BaseShort = p.ShortDatum; BaseData = (p.Data == null) ? String.Empty : StringUtils.ASCIIBytesToString(p.Data); OnDeserialiseComplete(); }
public void TestShortPacket() { Header h = new Header(Input); ShortPacket sp = new ShortPacket(h, Input); Assert.IsTrue(sp.IsComplete); Assert.AreEqual(0, sp.ShortDatum); byte[] testData = new byte[] { 0x02, 0x5f, 0x30, 0x39, 0x30, 0x34, 0x31, 0x39, 0x30, 0x35 }; Assert.AreEqual(10, sp.Data.Length); for (int i = 0; i < 10; ++i) { Assert.AreEqual(testData[i], sp.Data[i]); } }
public void Deserialise(Header header, Packet payload) { ShortPacket sp = (ShortPacket)payload; if (sp.ShortDatum == 1) { int status = int.Parse(StringUtils.ASCIIBytesToString(sp.Data), CultureInfo.InvariantCulture); switch (status) { case 1: Status = Colour.Green; break; case 2: Status = Colour.Yellow; break; case 3: Status = Colour.Yellow; Message = "SCS"; break; case 4: Status = Colour.Yellow; Message = "SCD"; break; case 5: Status = Colour.Red; break; default: throw new DeserialiseException("Unknown track status, status: " + status); } } else { throw new DeserialiseException("Unknown track status, short: " + sp.ShortDatum + ", data: " + HexString.BytesToHex(sp.Data)); } }
public void Write_Protected_ResultBytesAreExpected() { //Arrange var expectedBytes = GetProtectedMessageHex(); var buffer = new byte[PacketBuffer.MaxPacketSize]; var destConnectionId = PacketConnectionId.Empty; var packetNumbers = GetPacketNumbersHex(); var currentPacketNumber = PacketNumber.Parse(Utils.ParseHexString(packetNumbers.Current)); var largestPacketNumber = PacketNumber.Parse(Utils.ParseHexString(packetNumbers.Largest)); var secrets = GetSecrets(); var aead = Cipher.TLS_CHACHA20_POLY1305_SHA256.CreateAead(Utils.ParseHexString(secrets.Iv), Utils.ParseHexString(secrets.Key)); var cipher = Cipher.TLS_CHACHA20_POLY1305_SHA256.CreateCipher(Utils.ParseHexString(secrets.Hp)); //Act var cursor = new MemoryCursor(buffer); using (ShortPacket.StartProtectedWriting(aead, cipher, cursor, destConnectionId, currentPacketNumber, largestPacketNumber)) { PingFrame.Write(cursor); } //Assert Assert.Equal(expectedBytes, Utils.ToHexString(cursor.PeekStart().ToArray()), true); }