public byte[] CalcAu3MAC(MaslAu3Frame frame, uint destAddress) { using (var memStream = new MemoryStream(30)) { // L memStream.WriteByte(0x00); memStream.WriteByte(0x14); // DA memStream.WriteByte((byte)((destAddress >> 16) & 0xFF)); memStream.WriteByte((byte)((destAddress >> 8) & 0xFF)); memStream.WriteByte((byte)((destAddress) & 0xFF)); // ETY+MTI+DF memStream.WriteByte(frame.GetHeaderByte()); // RB + RA memStream.Write(_macCalc.RandomB, 0, _macCalc.RandomB.Length); memStream.Write(_macCalc.RandomA, 0, _macCalc.RandomA.Length); var mac = _macCalc.CalcMac(memStream.ToArray()); return(mac); } }
public byte[] BuildAu3Packet() { var frame = new MaslAu3Frame(); frame.MAC = this.CalcAu3MAC(frame, _rsspEndPoint.RemoteID); return(frame.GetBytes()); }
public void Test1() { var mac = new byte[] { 0x2e, 0x93, 0x89, 0x47, 0x97, 0xec, 0x28, 0x74 }; var frame1 = new MaslAu3Frame(); frame1.MAC = mac; var bytes = frame1.GetBytes(); var frame2 = new MaslAu3Frame(); frame2.ParseBytes(bytes, 0, bytes.Length); Assert.AreEqual(frame1.DeviceType, frame2.DeviceType); Assert.AreEqual(frame1.Direction, frame2.Direction); Assert.AreEqual(frame1.FrameType, frame2.FrameType); CollectionAssert.AreEqual(frame1.MAC, frame2.MAC); }
public override void HandleAu3Frame(MaslAu3Frame frame) { throw new SequenceIntegrityException(); }
public override void HandleAu3Frame(MaslAu3Frame frame) { throw new NotArObtainedAfterAu3Exception(); }
public override void HandleAu3Frame(MaslAu3Frame frame) { throw new MaslException(MaslErrorCode.SequenceIntegrityFailure); }
public virtual void HandleAu3Frame(MaslAu3Frame frame) { LogUtility.Error(string.Format("{0}: {1}.{2} not implement!", this.Context.RsspEP.ID, this.GetType().Name, new StackFrame(0).GetMethod().Name.Split('.').Last())); }