def test_create_message_subnet(self): message = SockAddrIn() message.set_ipaddress("255.255.255.255") expected = b"\x00\x00" \ b"\xff\xff\xff\xff" \ b"\x00\x00\x00\x00\x00\x00\x00\x00" actual = message.pack() assert len(message) == 14 assert actual == expected
def test_create_message(self): message = SockAddrIn() message.set_ipaddress("10.0.2.15") expected = b"\x00\x00" \ b"\x0a\x00\x02\x0f" \ b"\x00\x00\x00\x00\x00\x00\x00\x00" actual = message.pack() assert len(message) == 14 assert actual == expected
def test_parse_message(self): actual = SockAddrIn() data = b"\x00\x00" \ b"\x0a\x00\x02\x0f" \ b"\x00\x00\x00\x00\x00\x00\x00\x00" actual.unpack(data) assert len(actual) == 14 assert actual['port'].get_value() == 0 assert actual['ipv4_address'].get_value() == b"\x0a\x00\x02\x0f" assert actual['reserved'].get_value() == 0 assert actual.get_ipaddress() == "10.0.2.15"
def test_create_message_ipv4(self): message = SockAddrStorage() message['family'] = SockAddrFamily.INTER_NETWORK sock_addr = SockAddrIn() sock_addr.set_ipaddress("10.0.2.15") message['buffer'] = sock_addr expected = b"\x02\x00" \ b"\x00\x00" \ b"\x0a\x00\x02\x0f" \ b"\x00\x00\x00\x00\x00\x00\x00\x00" expected += b"\x00" * 112 actual = message.pack() assert len(message) == 128 assert actual == expected
def test_create_message(self): addr1 = SockAddrIn() addr1.set_ipaddress("10.0.2.15") sock_addr1 = SockAddrStorage() sock_addr1['family'] = SockAddrFamily.INTER_NETWORK sock_addr1['buffer'] = addr1 msg1 = SMB2NetworkInterfaceInfo() msg1['if_index'] = 2 msg1['link_speed'] = 1000000000 msg1['sock_addr_storage'] = sock_addr1 addr2 = SockAddrIn6() addr2.set_ipaddress("fe80:0000:0000:0000:894a:2dbc:1d9c:2da1") sock_addr2 = SockAddrStorage() sock_addr2['family'] = SockAddrFamily.INTER_NETWORK_V6 sock_addr2['buffer'] = addr2 msg2 = SMB2NetworkInterfaceInfo() msg2['if_index'] = 4 msg2['capability'].set_flag(IfCapability.RSS_CAPABLE) msg2['link_speed'] = 1000000 msg2['sock_addr_storage'] = sock_addr2 expected = b"\x98\x00\x00\x00" \ b"\x02\x00\x00\x00" \ b"\x00\x00\x00\x00" \ b"\x00\x00\x00\x00" \ b"\x00\xca\x9a\x3b\x00\x00\x00\x00" \ b"\x02\x00" \ b"\x00\x00" \ b"\x0a\x00\x02\x0f" \ b"\x00\x00\x00\x00\x00\x00\x00\x00" expected += b"\x00" * 112 expected += b"\x00\x00\x00\x00" \ b"\x04\x00\x00\x00" \ b"\x01\x00\x00\x00" \ b"\x00\x00\x00\x00" \ b"\x40\x42\x0f\x00\x00\x00\x00\x00" \ b"\x17\x00" \ b"\x00\x00" \ b"\x00\x00\x00\x00" \ b"\xfe\x80\x00\x00\x00\x00\x00\x00" \ b"\x89\x4a\x2d\xbc\x1d\x9c\x2d\xa1" \ b"\x00\x00\x00\x00" expected += b"\x00" * 100 actual = SMB2NetworkInterfaceInfo.pack_multiple([msg1, msg2]) assert len(msg1) == 152 assert len(msg2) == 152 assert actual == expected