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