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_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 test_function_logs_normal_data(self) -> None: # Setup settings = Settings() master_key = MasterKey() queues = gen_queue_dict() 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'), P_N_HEADER + bytes(PADDING_LENGTH), True, True, 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'), M_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key)) time.sleep(SLEEP_DELAY) # Test threading.Thread(target=queue_delayer).start() log_writer_loop(queues, settings, self.message_log, unit_test=True) # Teardown tear_queues(queues)
def test_function_log_file_masking_queue_controls_log_file_masking( self) -> None: # Setup settings = Settings(log_file_masking=False, traffic_masking=True) master_key = MasterKey() queues = gen_queue_dict() def queue_delayer() -> None: """Place messages to the logging queue one at a time.""" for p in [ (None, C_S_HEADER + bytes(PADDING_LENGTH), True, False, master_key), (nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), False, False, master_key), (nick_to_pub_key('Alice'), F_S_HEADER + bytes(PADDING_LENGTH), True, True, master_key) ]: queues[LOG_PACKET_QUEUE].put(p) time.sleep(SLEEP_DELAY) queues[LOGFILE_MASKING_QUEUE].put( True) # Start logging of noise packets time.sleep(SLEEP_DELAY) for _ in range(2): queues[LOG_PACKET_QUEUE].put( (nick_to_pub_key('Alice'), F_S_HEADER + bytes(PADDING_LENGTH), True, True, master_key)) time.sleep(SLEEP_DELAY) queues[UNIT_TEST_QUEUE].put(EXIT) time.sleep(SLEEP_DELAY) queues[LOG_PACKET_QUEUE].put( (nick_to_pub_key('Alice'), M_S_HEADER + bytes(PADDING_LENGTH), True, False, 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)