コード例 #1
0
ファイル: test_db_logs.py プロジェクト: gtog/tfc
    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)
コード例 #2
0
    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()
コード例 #3
0
    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)
コード例 #4
0
ファイル: test_db_logs.py プロジェクト: savg110/tfc
    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)