• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1+ BFD
2
3= BFD, basic instantiation
4
5from scapy.contrib.bfd import *
6a = UDP(sport=3784, dport=3784)/BFD()
7assert raw(a) == b'\x0e\xc8\x0e\xc8\x00 \x00\x00 \xc0\x03\x18\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00'
8
9= BFD - dissection
10
11assert BFD in UDP(raw(a))
12
13= BFD with OptionalAuth [Simple Password Auth]  [dissection]
14p = UDP(b'\x04\x00\x0e\xc8\x00\x29\x72\x31\x20\x44\x05\x21\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x01\x09\x02\x73\x65\x63\x72\x65\x74\x4e\x0a\x90\x40')
15assert(isinstance(p[1], BFD))
16assert(p[1].len == 33)
17assert(isinstance(p[2], OptionalAuth))
18assert(p[2].auth_type == 1)
19assert(p[2].auth_len == 9)
20
21= BFD with OptionalAuth [Keyed MD5 Auth]  [dissection]
22p = UDP(b'\x04\x00\x0e\xc8\x00\x38\x6a\xcc\x20\x44\x05\x30\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x02\x18\x02\x00\x00\x00\x00\x05\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x3c\xc3\xf8\x21')
23assert(isinstance(p[1], BFD))
24assert(p[1].len == 48)
25assert(isinstance(p[2], OptionalAuth))
26assert(p[2].auth_type ==2)
27assert(p[2].auth_len == 24)
28
29= BFD with OptionalAuth [Meticulous Keyed SHA1 Auth]  [dissection]
30p = UDP(b'\x04\x00\x0e\xc8\x00\x3c\x37\x8a\x20\x44\x05\x34\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0f\x42\x40\x00\x0f\x42\x40\x00\x00\x00\x00\x05\x1c\x02\x00\x00\x00\x00\x05\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\xea\x6d\x1f\x21')
31assert(isinstance(p[1], BFD))
32assert(p[1].len == 52)
33assert(isinstance(p[2], OptionalAuth))
34assert(p[2].auth_type ==5)
35assert(p[2].auth_len == 28)
36
37= BFD with OptionalAuth [Simple Password Auth]  [Build]
38p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=1))
39assert raw(p) == b'\x0e\xc8\x0e\xc8\x00+\x00\x00 \xc4\x03#\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x01\x0b\x01password'
40
41= BFD with OptionalAuth [Keyed MD5 Auth]  [Build]
42p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=2))
43assert raw(p) == b'\x0e\xc8\x0e\xc8\x008\x00\x00 \xc4\x030\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x02\x18\x01\x00\x00\x00\x00\x00_M\xcc;Z\xa7e\xd6\x1d\x83\'\xde\xb8\x82\xcf\x99'
44
45= BFD with OptionalAuth [Meticulous Keyed SHA1 Auth]  [Build]
46p = UDP(sport=3784, dport=3784)/BFD(flags="A", optional_auth=OptionalAuth(auth_type=5))
47assert raw(p) == b'\x0e\xc8\x0e\xc8\x00<\x00\x00 \xc4\x034\x11\x11\x11\x11"""";\x9a\xca\x00;\x9a\xca\x00;\x9a\xca\x00\x05\x1c\x01\x00\x00\x00\x00\x00[\xaaa\xe4\xc9\xb9??\x06\x82%\x0bl\xf83\x1b~\xe6\x8f\xd8'