def test_parse_message(self): actual = SMB2SVHDXOpenDeviceContextRequest() data = b"\x01\x00\x00\x00" \ b"\x01" \ b"\x00\x00\x00" \ b"\xff\xff\xff\xff\xff\xff\xff\xff" \ b"\xff\xff\xff\xff\xff\xff\xff\xff" \ b"\x04\x00\x00\x00" \ b"\x05\x00\x00\x00\x00\x00\x00\x00" \ b"\x10\x00" \ b"\x68\x00\x6f\x00\x73\x00\x74\x00" \ b"\x6e\x00\x61\x00\x6d\x00\x65\x00" data = actual.unpack(data) assert len(actual) == 54 assert data == b"" assert actual['version'].get_value() == 1 assert actual['has_initiator_id'].get_value() assert actual['reserved'].get_value() == b"\x00\x00\x00" assert actual['initiator_id'].get_value() == \ uuid.UUID(bytes=b"\xff" * 16) assert actual['originator_flags'].get_value() == \ SVHDXOriginatorFlags.SVHDX_ORIGINATOR_VHDMP assert actual['open_request_id'].get_value() == 5 assert actual['initiator_host_name_length'].get_value() == 16 assert actual['initiator_host_name'].get_value() == \ "hostname".encode("utf-16-le")
def test_create_message(self): message = SMB2SVHDXOpenDeviceContextRequest() message['initiator_id'] = b"\xff" * 16 message['originator_flags'] = \ SVHDXOriginatorFlags.SVHDX_ORIGINATOR_VHDMP message['open_request_id'] = 5 message['initiator_host_name'] = "hostname".encode('utf-16-le') expected = b"\x01\x00\x00\x00" \ b"\x01" \ b"\x00\x00\x00" \ b"\xff\xff\xff\xff\xff\xff\xff\xff" \ b"\xff\xff\xff\xff\xff\xff\xff\xff" \ b"\x04\x00\x00\x00" \ b"\x05\x00\x00\x00\x00\x00\x00\x00" \ b"\x10\x00" \ b"\x68\x00\x6f\x00\x73\x00\x74\x00" \ b"\x6e\x00\x61\x00\x6d\x00\x65\x00" actual = message.pack() assert len(message) == 54 assert actual == expected