def test_mac(self):
     inst = HopOpaqueField()
     inst._pack_flags = create_mock()
     inst._pack_flags.return_value = 0x0e
     inst.exp_time = 0x2a
     inst.ingress_if = 0x0a0
     inst.egress_if = 0xb0c
     inst.mac = bytes.fromhex('012345')
     expected = bytes.fromhex('04 2a 0a0b0c')
     # Call
     ntools.eq_(inst.pack(mac=True), expected)
Exemple #2
0
 def test_no_prev(self, mac):
     inst = HopOpaqueField()
     inst.pack = create_mock()
     pack_mac = bytes.fromhex('02 2a0a 0b0c')
     inst.pack.return_value = pack_mac
     ts = 0x01020304
     expected = b"".join([
         ts.to_bytes(4, "big"),
         pack_mac,
         bytes(7),
     ])
     mac.return_value = "mac_data"
     # Call
     ntools.eq_(inst.calc_mac("key", ts), "mac")
     # Tests
     inst.pack.assert_called_once_with(mac=True)
     mac.assert_called_once_with("key", expected)
Exemple #3
0
 def test_prev(self, mac):
     inst = HopOpaqueField()
     inst.pack = create_mock()
     pack_mac = bytes.fromhex('02 2a0a 0b0c')
     inst.pack.return_value = pack_mac
     prev_pack_mac = bytes.fromhex('10 1112 1314')
     prev = create_mock_full({"pack()": prev_pack_mac})
     ts = 0x01020304
     expected = b"".join([
         ts.to_bytes(4, "big"),
         pack_mac,
         prev_pack_mac[1:],
     ])
     # Call
     inst.calc_mac("key", ts, prev)
     # Tests
     prev.pack.assert_called_once_with()
     mac.assert_called_once_with("key", expected)
 def test_prev(self, cbcmac):
     inst = HopOpaqueField()
     inst.pack = create_mock()
     pack_mac = bytes.fromhex('02 2a 0a0b0c')
     inst.pack.return_value = pack_mac
     prev = create_mock(["mac", "pack"])
     prev.mac = bytes.fromhex('050607')
     prev.pack = create_mock()
     prev_pack_mac = bytes.fromhex('10 11 121314')
     prev.pack.return_value = prev_pack_mac
     ts = 0x01020304
     expected = b"".join([
         pack_mac,
         prev_pack_mac,
         prev.mac,
         ts.to_bytes(4, "big"),
         bytes(inst.MAC_BLOCK_PADDING),
     ])
     # Call
     inst.calc_mac("key", ts, prev)
     # Tests
     prev.pack.assert_called_once_with(mac=True)
     cbcmac.assert_called_once_with("key", expected)