Пример #1
0
 def test_full(self, p_cls):
     msg = p_cls.new_message.return_value
     pcbms = []
     for i in range(3):
         pcbms.append(create_mock_full({"p": "pcbm %d" % i}))
     exts = []
     exts.append(
         create_mock_full({
             "EXT_TYPE": ASMExtType.ROUTING_POLICY,
             "p": {
                 "polType": RoutingPolType.ALLOW_AS,
                 "itf": 0,
                 "isdases": [_ISD_AS1]
             }
         }))
     # Call
     ASMarking.from_values(_ISD_AS1,
                           2,
                           3,
                           pcbms,
                           "root",
                           "mtu",
                           exts,
                           ifid_size=14)
     # Tests
     p_cls.new_message.assert_called_once_with(isdas=_ISD_AS1,
                                               trcVer=2,
                                               certVer=3,
                                               ifIDSize=14,
                                               hashTreeRoot="root",
                                               mtu="mtu")
     msg.init.assert_called_once_with("hops", 3)
     for i, pcbm in enumerate(msg.pcbms):
         ntools.eq_("pcbm %d" % i, pcbm)
Пример #2
0
 def test_9(self):
     pcbms = []
     for i in range(3):
         pcbms.append(
             create_mock_full({"sig_pack()": bytes("pcbm %i" % i,
                                                   "ascii")}))
     inst = ASMarking(
         create_mock_full({
             "isdas": _ISD_AS1,
             "trcVer": 2,
             "certVer": 3,
             "ifIDSize": 4,
             "hashTreeRoot": b"root",
             "mtu": 1482,
             "chain": b"chain"
         }))
     inst.iter_pcbms = create_mock_full(return_value=pcbms)
     expected = b"".join([
         _ISD_AS1_BYTES,
         bytes.fromhex("00000002 00000003 04"), b"pcbm 0", b"pcbm 1",
         b"pcbm 2", b"root",
         bytes.fromhex("05ca"), b"chain"
     ])
     # Call
     ntools.eq_(inst.sig_pack(8), expected)
Пример #3
0
 def test_full(self, p_cls):
     msg = p_cls.new_message.return_value
     pcbms = []
     for i in range(3):
         pcbms.append(create_mock_full({"p": "pcbm %d" % i}))
     cchain = create_mock_full({"pack()": "cchain"})
     # Call
     ASMarking.from_values(_ISD_AS1,
                           2,
                           3,
                           pcbms,
                           "root",
                           "mtu",
                           cchain,
                           ifid_size=14)
     # Tests
     p_cls.new_message.assert_called_once_with(isdas=_ISD_AS1,
                                               trcVer=2,
                                               certVer=3,
                                               ifIDSize=14,
                                               hashTreeRoot="root",
                                               mtu="mtu",
                                               chain="cchain")
     msg.init.assert_called_once_with("pcbms", 3)
     for i, pcbm in enumerate(msg.pcbms):
         ntools.eq_("pcbm %d" % i, pcbm)
Пример #4
0
 def test(self):
     pcbms = []
     for i in range(3):
         pcbms.append(
             create_mock_full(
                 {"sig_pack5()": bytes("pcbm %i" % i, "ascii")}))
     rpe = create_mock_full({"routingPolicy": bytes("exts", "ascii")})
     inst = ASMarking(
         create_mock_full({
             "isdas": _ISD_AS1,
             "trcVer": 2,
             "certVer": 3,
             "ifIDSize": 4,
             "hashTreeRoot": b"root",
             "mtu": 1482,
             "exts": rpe
         }))
     inst.iter_pcbms = create_mock_full(return_value=pcbms)
     sgp3 = create_mock_full({"sig_pack3()": bytes("exts", "ascii")})
     inst.routing_pol_ext = create_mock_full(return_value=sgp3)
     expected = b"".join([
         _ISD_AS1_BYTES,
         bytes.fromhex("00000002 00000003 04"), b"pcbm 0", b"pcbm 1",
         b"pcbm 2", b"root",
         bytes.fromhex("05ca"), b"exts"
     ])
     # Call
     ntools.eq_(inst.sig_pack8(), expected)
Пример #5
0
 def test_full(self, p_cls):
     msg = p_cls.new_message.return_value
     pcbms = []
     for i in range(3):
         pcbms.append(create_mock_full({"p": "pcbm %d" % i}))
     cchain = create_mock_full({"pack()": "cchain"})
     revs = []
     for i in range(2):
         revs.append(create_mock_full({"pack()": "rev %d" % i}))
     # Call
     ASMarking.from_values("isdas",
                           2,
                           3,
                           pcbms,
                           "eg rev token",
                           "mtu",
                           cchain,
                           ifid_size=14,
                           rev_infos=revs)
     # Tests
     p_cls.new_message.assert_called_once_with(isdas="isdas",
                                               trcVer=2,
                                               certVer=3,
                                               ifIDSize=14,
                                               egRevToken="eg rev token",
                                               mtu="mtu",
                                               chain="cchain")
     msg.init.assert_called_once_with("pcbms", 3)
     msg.exts.init.assert_called_once_with("revInfos", 2)
     for i, pcbm in enumerate(msg.pcbms):
         ntools.eq_("pcbm %d" % i, pcbm)
     for i, rev in enumerate(msg.exts.revInfos):
         ntools.eq_("rev %d" % i, rev)
Пример #6
0
 def test_9(self):
     pcbms = []
     for i in range(3):
         pcbms.append(
             create_mock_full({"sig_pack()": bytes("pcbm %i" % i,
                                                   "ascii")}))
     exts = create_mock_full({"revInfos": [b"rev0", b"rev1"]})
     inst = ASMarking(
         create_mock_full({
             "isdas": "isdas",
             "trcVer": 2,
             "certVer": 3,
             "ifIDSize": 4,
             "egRevToken": b"eg rev",
             "exts": exts,
             "mtu": 1482,
             "chain": b"chain",
         }))
     inst.iter_pcbms = create_mock_full(return_value=pcbms)
     expected = b"".join([
         b"isdas",
         bytes.fromhex("00000002 00000003 04"), b"pcbm 0", b"pcbm 1",
         b"pcbm 2", b"eg rev", b"rev0", b"rev1",
         bytes.fromhex("05ca"), b"chain"
     ])
     # Call
     ntools.eq_(inst.sig_pack(9), expected)
Пример #7
0
 def _create_asm(self, in_if, out_if, ts, prev_hof):
     pcbms = list(self._create_pcbms(in_if, out_if, ts, prev_hof))
     if not pcbms:
         return None
     chain = self._get_my_cert()
     _, cert_ver = chain.get_leaf_isd_as_ver()
     return ASMarking.from_values(self.addr.isd_as,
                                  self._get_my_trc().version, cert_ver,
                                  pcbms, self.topology.mtu)
Пример #8
0
 def _create_asm(self, in_if, out_if, ts, prev_hof):
     pcbms = list(self._create_pcbms(in_if, out_if, ts, prev_hof))
     exts = self._create_asm_exts()
     chain = self._get_my_cert()
     _, cert_ver = chain.get_leaf_isd_as_ver()
     return ASMarking.from_values(self.addr.isd_as,
                                  self._get_my_trc().version, cert_ver,
                                  pcbms, self._get_if_rev_token(out_if),
                                  self.topology.mtu, chain, **exts)