def setUp(self): self.old_key = MasterKey() self.new_key = MasterKey(master_key=os.urandom(32)) self.settings = Settings() self.o_struct_pack = struct.pack self.time = datetime.fromtimestamp(struct.unpack('<L', binascii.unhexlify('08ceae02'))[0]).strftime('%H:%M') struct.pack = lambda *_: binascii.unhexlify('08ceae02')
def setUp(self): self.unittest_dir = cd_unittest() self.old_key = MasterKey() self.new_key = MasterKey(master_key=os.urandom(SYMMETRIC_KEY_LENGTH)) self.settings = Settings() self.tmp_file_name = f"{DIR_USER_DATA}{self.settings.software_operation}_logs_temp" self.time = STATIC_TIMESTAMP
def setUp(self): self.master_key = MasterKey() self.settings = Settings() self.keylist = KeyList(MasterKey(), Settings()) self.keylist.keysets = [ create_keyset(n, store_f=self.keylist.store_keys) for n in ['Alice', 'Bob', 'Charlie'] ] self.keylist.store_keys()
def setUp(self) -> None: """Pre-test actions.""" self.unit_test_dir = cd_unit_test() self.old_master_key = MasterKey() self.new_master_key = MasterKey(master_key=os.urandom(SYMMETRIC_KEY_LENGTH)) self.settings = Settings() self.tmp_file_name = f"{DIR_USER_DATA}{self.settings.software_operation}_logs_temp" self.time = STATIC_TIMESTAMP self.log_file = f'{DIR_USER_DATA}{self.settings.software_operation}_logs' self.message_log = MessageLog(self.log_file, self.old_master_key.master_key)
def test_invalid_group_message_header(self): # Setup message = b'testgroup' ts = datetime.datetime.now() apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, message, header=GROUP_MESSAGE_HEADER) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertFR("Received an invalid group message.", process_message, ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)
def test_group_remove_member_msg(self): # Setup message = b'testgroup' + US_BYTE + b'*****@*****.**' + US_BYTE + b'*****@*****.**' ts = datetime.datetime.now() apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, message, header=GROUP_MSG_MEMBER_RM_HEADER) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown cleanup()
def setUp(self): self.unittest_dir = cd_unittest() self.win_name = nick_to_pub_key("Alice") self.contact_list = ContactList() self.group_list = GroupList() self.settings = Settings() self.master_key = MasterKey()
def setUp(self): self.contact_list = ContactList(nicks=['Alice']) self.group_list = GroupList() self.settings = Settings() self.queues = gen_queue_dict() self.master_key = MasterKey() self.args = self.contact_list, self.group_list, self.settings, self.queues, self.settings
def test_add_contact(self): tx_fingerprint = FINGERPRINT_LENGTH * b'\x03' rx_fingerprint = FINGERPRINT_LENGTH * b'\x04' self.assertIsNone( self.contact_list.add_contact( nick_to_pub_key('Faye'), 'Faye', tx_fingerprint, rx_fingerprint, KEX_STATUS_UNVERIFIED, self.settings.log_messages_by_default, self.settings.accept_files_by_default, self.settings.show_notifications_by_default)) # Test new contact was stored by loading # the database from file to another object contact_list2 = ContactList(MasterKey(), Settings()) faye = contact_list2.get_contact_by_pub_key(nick_to_pub_key('Faye')) self.assertEqual(len(self.contact_list), len(self.real_contact_list) + 1) self.assertIsInstance(faye, Contact) self.assertEqual(faye.tx_fingerprint, tx_fingerprint) self.assertEqual(faye.rx_fingerprint, rx_fingerprint) self.assertEqual(faye.kex_status, KEX_STATUS_UNVERIFIED) self.assertEqual(faye.log_messages, self.settings.log_messages_by_default) self.assertEqual(faye.file_reception, self.settings.accept_files_by_default) self.assertEqual(faye.notifications, self.settings.show_notifications_by_default)
def setUp(self): self.unittest_dir = cd_unittest() self.msg = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu.") self.ts = datetime.now() self.master_key = MasterKey() self.settings = Settings(log_file_masking=True) self.file_name = f'{DIR_USER_DATA}{self.settings.software_operation}_logs' self.contact_list = ContactList(nicks=['Alice', 'Bob', 'Charlie', LOCAL_ID]) self.key_list = KeyList( nicks=['Alice', 'Bob', 'Charlie', LOCAL_ID]) self.group_list = GroupList( groups=['test_group']) self.packet_list = PacketList(contact_list=self.contact_list, settings=self.settings) self.window_list = WindowList(contact_list=self.contact_list, settings=self.settings, group_list=self.group_list, packet_list=self.packet_list) self.group_id = group_name_to_group_id('test_group') self.file_keys = dict() self.group_list.get_group('test_group').log_messages = True self.args = (self.window_list, self.packet_list, self.contact_list, self.key_list, self.group_list, self.settings, self.master_key, self.file_keys) ensure_dir(DIR_USER_DATA)
def test_file(self): # Setup ts = datetime.datetime.now() apct_list = self.create_file_apct() contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown shutil.rmtree('received_files/')
def test_function_logs_traffic_masking_data(self): # Setup settings = Settings(log_file_placeholder_data=False, logfile_masking=True, session_traffic_masking=True) master_key = MasterKey() queues = {LOG_PACKET_QUEUE: Queue(), UNITTEST_QUEUE: Queue()} def queue_delayer(): """Place messages to queue one at a time.""" for p in [(False, False, M_S_HEADER + bytes(PADDING_LEN), '*****@*****.**', settings, master_key), # Do not log message (boolean) (True, False, C_S_HEADER + bytes(PADDING_LEN), None, settings, master_key), # Do not log command (True, True, F_S_HEADER + bytes(PADDING_LEN), '*****@*****.**', settings, master_key), # Log placeholder data (True, False, M_S_HEADER + bytes(PADDING_LEN), '*****@*****.**', settings, master_key)]: # Log message (boolean) time.sleep(0.1) queues[LOG_PACKET_QUEUE].put(p) time.sleep(0.1) queues[UNITTEST_QUEUE].put(EXIT) time.sleep(0.1) queues[LOG_PACKET_QUEUE].put((True, True, P_N_HEADER + bytes(PADDING_LEN), '*****@*****.**', settings, master_key)) # Log noise packet # Test threading.Thread(target=queue_delayer).start() log_writer_loop(queues, unittest=True) self.assertEqual(os.path.getsize(f'{DIR_USER_DATA}ut_logs'), 3*LOG_ENTRY_LENGTH) # Teardown for key in queues: while not queues[key].empty(): queues[key].get() time.sleep(0.1) queues[key].close()
def setUp(self): self.msg = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu.").encode() self.ts = datetime.now() self.master_key = MasterKey() self.settings = Settings(logfile_masking=True) self.contact_list = ContactList(nicks=['Alice', 'Bob', 'Charlie', LOCAL_ID]) self.key_list = KeyList( nicks=['Alice', 'Bob', 'Charlie', LOCAL_ID]) self.group_list = GroupList( groups=['testgroup']) self.packet_list = PacketList(contact_list=self.contact_list, settings=self.settings) self.window_list = WindowList(contact_list=self.contact_list, settings=self.settings, group_list=self.group_list, packet_list=self.packet_list) self.group_list.get_group('testgroup').log_messages = True for account in self.contact_list.get_list_of_accounts(): keyset = self.key_list.get_keyset(account) keyset.tx_harac = 1 keyset.rx_harac = 1 keyset.tx_hek = KEY_LENGTH * b'\x01' keyset.rx_hek = KEY_LENGTH * b'\x01' keyset.tx_key = KEY_LENGTH * b'\x01' keyset.rx_key = KEY_LENGTH * b'\x01' self.message = b'testgroup' + US_BYTE + b'*****@*****.**' + US_BYTE + b'*****@*****.**'
def test_function_logs_traffic_masking_data(self) -> None: # Setup settings = Settings(log_file_masking=True, traffic_masking=False) master_key = MasterKey() queues = gen_queue_dict() queues[TRAFFIC_MASKING_QUEUE].put(True) def queue_delayer() -> None: """Place messages to the logging queue one at a time.""" for p in [(nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), False, False, master_key), (None, C_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key), (nick_to_pub_key('Alice'), F_S_HEADER + bytes(PADDING_LENGTH), True, True, master_key), (nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key)]: queues[LOG_PACKET_QUEUE].put(p) time.sleep(SLEEP_DELAY) queues[UNIT_TEST_QUEUE].put(EXIT) time.sleep(SLEEP_DELAY) queues[LOG_PACKET_QUEUE].put( (nick_to_pub_key('Alice'), P_N_HEADER + bytes(PADDING_LENGTH), True, True, master_key)) time.sleep(SLEEP_DELAY) # Test threading.Thread(target=queue_delayer).start() self.assertIsNone(log_writer_loop(queues, settings, self.message_log, unit_test=True)) # Teardown tear_queues(queues)
def setUp(self): self.masterkey = MasterKey() self.settings = Settings() self.window = RxWindow(type=WIN_TYPE_CONTACT, uid='*****@*****.**', name='Alice') self.contact_list = ContactList(self.masterkey, self.settings) self.contact_list.contacts = list(map(create_contact, ['Alice', 'Charlie'])) self.time = datetime.fromtimestamp(struct.unpack('<L', binascii.unhexlify('08ceae02'))[0]).strftime('%H:%M') self.group_list = GroupList(groups=['test_group']) group = self.group_list.get_group('test_group') group.members = self.contact_list.contacts self.o_struct = struct.pack struct.pack = lambda *_: binascii.unhexlify('08ceae02') self.msg = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu.").encode()
def test_lw_process(self): # Setup cleanup() m_queue = multiprocessing.Queue() lwp = multiprocessing.Process(target=log_writer, args=(m_queue,)) lwp.start() time.sleep(0.1) settings = Settings() master_key = MasterKey() m_queue.put((P_N_HEADER + bytes(255), '*****@*****.**', settings, master_key)) m_queue.put((M_S_HEADER + bytes(255), '*****@*****.**', settings, master_key)) m_queue.put((F_S_HEADER + bytes(255), '*****@*****.**', settings, master_key)) time.sleep(0.2) lwp.terminate() # Test self.assertTrue(os.path.isfile(f'{DIR_USER_DATA}/ut_logs')) entry_size = 24 + 4 + 1 + 1024 + 1 + 255 + 16 self.assertTrue(os.path.getsize(f'{DIR_USER_DATA}/ut_logs') % entry_size == 0) # Teardown cleanup()
def test_invalid_window_raises_fr(self): # Setup message = b'testgroup' ts = datetime.datetime.now() timestamp = double_to_bytes(time.time() * 1000) header = GROUP_MESSAGE_HEADER + timestamp + b'test_group' + US_BYTE apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, message, header=header) contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertFR("Received message to unknown group.", process_message, ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key) # Teardown cleanup()
def setUp(self): self.unittest_dir = cd_unittest() self.master_key = MasterKey() self.settings = Settings() self.window = RxWindow(type=WIN_TYPE_CONTACT, uid=nick_to_pub_key('Alice'), name='Alice', type_print='contact') self.contact_list = ContactList(self.master_key, self.settings) self.contact_list.contacts = list( map(create_contact, ['Alice', 'Charlie'])) self.time = STATIC_TIMESTAMP self.group_list = GroupList(groups=['test_group']) self.group = self.group_list.get_group('test_group') self.group.members = self.contact_list.contacts self.args = self.window, self.contact_list, self.group_list, self.settings, self.master_key self.msg = ( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu." )
def test_group_msg(self): # Setup ts = datetime.datetime.now() apct_list = self.create_message_apct(ORIGIN_CONTACT_HEADER, b'testmessage', group_name=b'testgroup') contact_list = ContactList(nicks=['Alice', 'Bob', 'local']) key_list = KeyList(nicks=['Alice', 'Bob', 'local']) keyset = key_list.get_keyset('*****@*****.**') keyset.rx_harac = 1 keyset.rx_key = 32 * b'\x01' keyset.rx_hek = 32 * b'\x01' group_list = GroupList(groups=['testgroup']) group = group_list.get_group('testgroup') group.log_messages = True settings = Settings() packet_list = PacketList(contact_list=contact_list, settings=settings) window_list = WindowList(contact_list=contact_list, group_list=group_list, packet_list=packet_list, settings=settings) master_key = MasterKey() # Test for p in apct_list: self.assertIsNone( process_message(ts, p, window_list, packet_list, contact_list, key_list, group_list, settings, master_key)) # Teardown cleanup()
def setUp(self): self.c_queue = Queue() self.contact_list = ContactList(nicks=['Alice']) self.settings = Settings() self.master_key = MasterKey() self.o_input = builtins.input builtins.input = lambda _: 'Yes'
def test_function(self): # Setup master_key = MasterKey() settings = Settings() ts = datetime.datetime.now() o_getpass = getpass.getpass window_list = WindowList() contact_list = ContactList() group_list = GroupList() key_list = KeyList() getpass.getpass = lambda x: 'a' write_log_entry(F_S_HEADER + bytes(255), '*****@*****.**', settings, master_key) # Test self.assertEqual(master_key.master_key, bytes(32)) self.assertIsNone( change_master_key(ts, window_list, contact_list, group_list, key_list, settings, master_key)) self.assertNotEqual(master_key.master_key, bytes(32)) # Teardown getpass.getpass = o_getpass cleanup()
def test_function_logs_traffic_masking_data(self): # Setup settings = Settings(log_file_masking=True, traffic_masking=False) master_key = MasterKey() queues = gen_queue_dict() queues[TRAFFIC_MASKING_QUEUE].put(True) def queue_delayer(): """Place messages to queue one at a time.""" for p in [(nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), False, False, master_key), (None, C_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key), (nick_to_pub_key('Alice'), F_S_HEADER + bytes(PADDING_LENGTH), True, True, master_key), (nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key)]: queues[LOG_PACKET_QUEUE].put(p) time.sleep(0.02) queues[UNITTEST_QUEUE].put(EXIT) time.sleep(0.02) queues[LOG_PACKET_QUEUE].put( (nick_to_pub_key('Alice'), P_N_HEADER + bytes(PADDING_LENGTH), True, True, master_key)) time.sleep(0.02) # Test threading.Thread(target=queue_delayer).start() log_writer_loop(queues, settings, unittest=True) self.assertEqual(os.path.getsize(f'{DIR_USER_DATA}{settings.software_operation}_logs'), 3*LOG_ENTRY_LENGTH) # Teardown tear_queues(queues)
def test_add_contact(self): # Setup contact1 = Contact('*****@*****.**', '*****@*****.**', 'Alice', 32 * b'\x01', 32 * b'\x02', True, True, True) contact2 = Contact('*****@*****.**', '*****@*****.**', 'Charlie', 32 * b'\x01', 32 * b'\x02', True, True, True) settings = Settings(software_operation='ut', m_number_of_accnts=20) master_k = MasterKey() contact_l = ContactList(master_k, settings) contact_l.contacts = [contact1, contact2] contact_l.add_contact('*****@*****.**', '*****@*****.**', 'Alice', 32 * b'\x03', 32 * b'\x04', True, True, True) contact_l.add_contact('*****@*****.**', '*****@*****.**', 'David', 32 * b'\x03', 32 * b'\x04', True, True, True) contact_l2 = ContactList(master_k, settings) c_alice = contact_l2.get_contact('Alice') c_david = contact_l2.get_contact('David') # Test self.assertIsInstance(c_alice, Contact) self.assertIsInstance(c_david, Contact) self.assertEqual(c_alice.tx_fingerprint, 32 * b'\x03') self.assertEqual(c_david.tx_fingerprint, 32 * b'\x03')
def setUp(self) -> None: """Pre-test actions.""" self.unit_test_dir = cd_unit_test() self.master_key = MasterKey() self.settings = Settings() self.time = STATIC_TIMESTAMP self.contact_list = ContactList(self.master_key, self.settings) self.group_list = GroupList(groups=['test_group']) self.file_name = f'{DIR_USER_DATA}{self.settings.software_operation}_logs' self.tmp_file_name = self.file_name + "_temp" self.tfc_log_database = MessageLog(self.file_name, self.master_key.master_key) self.args = self.contact_list, self.group_list, self.settings, self.master_key self.msg = ( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis" " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu" "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma" "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el" "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic" "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r" "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali" "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris" "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti" "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu." )
def setUp(self): self.unittest_dir = cd_unittest() self.master_key = MasterKey() self.settings = Settings() self.file_name = f'{DIR_USER_DATA}{self.settings.software_operation}_groups' self.contact_list = ContactList(self.master_key, self.settings) self.group_list = GroupList(self.master_key, self.settings, self.contact_list) self.nicks = [ 'Alice', 'Bob', 'Charlie', 'David', 'Eric', 'Fido', 'Guido', 'Heidi', 'Ivan', 'Joana', 'Karol' ] self.group_names = [ 'test_group_1', 'test_group_2', 'test_group_3', 'test_group_4', 'test_group_5', 'test_group_6', 'test_group_7', 'test_group_8', 'test_group_9', 'test_group_10', 'test_group_11' ] members = list(map(create_contact, self.nicks)) self.contact_list.contacts = members self.group_list.groups = \ [Group(name =name, group_id =group_name_to_group_id(name), log_messages =False, notifications=False, members =members, settings =self.settings, store_groups =self.group_list.store_groups) for name in self.group_names] self.single_member_data_len = ( GROUP_STATIC_LENGTH + self.settings.max_number_of_group_members * ONION_SERVICE_PUBLIC_KEY_LENGTH)
def setUp(self): self.master_key = MasterKey() self.settings = Settings() self.contact_list = ContactList(self.master_key, self.settings) self.contact_list.contacts = list( map(create_contact, ['Alice', 'Benny', 'Charlie', 'David', 'Eric']))
def test_txm_command(self): # Setup user_input = UserInput("passwd tx") contact_list = ContactList() group_list = GroupList() settings = Settings() queues = {COMMAND_PACKET_QUEUE: Queue(), KEY_MANAGEMENT_QUEUE: Queue()} master_key = MasterKey() o_getpass = getpass.getpass getpass.getpass = lambda x: 'a' # Test self.assertIsNone( change_master_key(user_input, contact_list, group_list, settings, queues, master_key)) # Teardown while not queues[COMMAND_PACKET_QUEUE].empty(): queues[COMMAND_PACKET_QUEUE].get() while not queues[KEY_MANAGEMENT_QUEUE].empty(): queues[KEY_MANAGEMENT_QUEUE].get() getpass.getpass = o_getpass time.sleep(0.2) cleanup()
def test_change_master_key(self, _: Any) -> None: # Setup key = SYMMETRIC_KEY_LENGTH * b'\x01' master_key2 = MasterKey(master_key=key) queues = gen_queue_dict() def queue_delayer() -> None: """Place packet to the key management queue after timer runs out.""" time.sleep(0.1) queues[KEY_MANAGEMENT_QUEUE].put(master_key2.master_key) threading.Thread(target=queue_delayer).start() # Test that the new key is different from the existing one self.assertNotEqual(key, self.master_key.master_key) # Change the master key self.assertIsNone(self.keylist.change_master_key(queues)) # Test that the master key was changed self.assertEqual(self.keylist.master_key.master_key, key) self.assertEqual(self.keylist.database.database_key, key) self.assertEqual(queues[KEY_MGMT_ACK_QUEUE].get(), KDB_HALT_ACK_HEADER) self.assertEqual(queues[KEY_MGMT_ACK_QUEUE].get(), key)
def setUp(self) -> None: """Pre-test actions.""" self.unit_test_dir = cd_unit_test() self.master_key = MasterKey() self.settings = Settings() self.log_file = f'{DIR_USER_DATA}{self.settings.software_operation}_logs' self.tfc_log_database = MessageLog(self.log_file, self.master_key.master_key)
def setUp(self): self.settings = Settings(disable_gui_dialog=True) self.gateway = Gateway() self.contact_list = ContactList() self.group_list = GroupList() self.master_key = MasterKey() self.onion_service = OnionService() self.queues = gen_queue_dict()