public void Test2() { var keys = new byte[] { 0xA3, 0x45, 0x34, 0x68, 0x98, 0x01, 0x2A, 0xBF, 0xCD, 0xBE, 0x34, 0x56, 0x78, 0xBF, 0xEA, 0x32, 0x12, 0xAE, 0x34, 0x21, 0x45, 0x78, 0x98, 0x50 }; var macCalc = new TrippleDesMacCalculator(keys); macCalc.RandomA = new byte[] { 0x1F, 0xD3, 0xA1, 0xCE, 0x7B, 0x87, 0xE9, 0xB0 }; macCalc.RandomB = new byte[] { 0x0F, 0x95, 0xEF, 0x4A, 0x66, 0x25, 0xA9, 0x0D }; macCalc.UpdateSessionKeys(); var destAddr = new byte[] { 0x8a, 0xc0, 0x02 }; var text2 = new byte[] { 0x00, 0x1B /*L*/, 0x8a, 0xc0, 0x02 /*DA*/, 0xc5 /*ETY+MTI+DF*/, 0x8a, 0xc0, 0x01 /*SA*/, 01 /*SaF*/ }; var data = text2.Concat(macCalc.RandomA).Concat(macCalc.RandomB).Concat(destAddr).ToArray(); // Text2|RandA|RandB var macActual = macCalc.CalcMac(data); var macExpected = new byte[] { 0xa6, 0x86, 0x33, 0x93, 0xb9, 0x3b, 0x51, 0x0d }; CollectionAssert.AreEqual(macExpected, macActual); }
public void Test4() { var keys = new byte[] { 0xA3, 0x45, 0x34, 0x68, 0x98, 0x01, 0x2A, 0xBF, 0xCD, 0xBE, 0x34, 0x56, 0x78, 0xBF, 0xEA, 0x32, 0x12, 0xAE, 0x34, 0x21, 0x45, 0x78, 0x98, 0x50 }; var macCalc = new TrippleDesMacCalculator(keys); macCalc.RandomA = new byte[] { 0x1F, 0xD3, 0xA1, 0xCE, 0x7B, 0x87, 0xE9, 0xB0 }; macCalc.RandomB = new byte[] { 0x0F, 0x95, 0xEF, 0x4A, 0x66, 0x25, 0xA9, 0x0D }; macCalc.UpdateSessionKeys(); var text5 = new byte[] { 0x00, 0x14 /*L*/, 0x8a, 0xc0, 0x01 /*DA*/, 0x06 /*ETY+MTI+DF*/ }; var data = text5.Concat(macCalc.RandomB).Concat(macCalc.RandomA).ToArray(); // Text5|RandB|RandA var macActual = macCalc.CalcMac(data); var macExpected = new byte[] { 0x2e, 0x93, 0x89, 0x47, 0x97, 0xec, 0x28, 0x74 }; CollectionAssert.AreEqual(macExpected, macActual); }