コード例 #1
0
ファイル: test_gateway.py プロジェクト: xprog12/tfc
    def test_detect_errors(self, *_: Any) -> None:
        gateway = Gateway(operation=RX, local_test=False, dd_sockets=False)
        packet = b'packet'

        # Test BLAKE2b based checksum
        gateway.settings.session_serial_error_correction = 0
        self.assertEqual(
            gateway.detect_errors(gateway.add_error_correction(packet)),
            packet)

        # Test unrecoverable error raises FR
        self.assert_se("Warning! Received packet had an invalid checksum.",
                       gateway.detect_errors, 300 * b'a')

        # Test Reed-Solomon erasure code
        gateway.settings.session_serial_error_correction = 5
        gateway.rs = RSCodec(gateway.settings.session_serial_error_correction)
        self.assertEqual(
            gateway.detect_errors(gateway.add_error_correction(packet)),
            packet)

        # Test unrecoverable error raises FR
        self.assert_se(
            "Error: Reed-Solomon failed to correct errors in the received packet.",
            gateway.detect_errors, 300 * b'a')
コード例 #2
0
ファイル: test_gateway.py プロジェクト: XorgX304/tfc
    def test_detect_errors(self, *_: Any) -> None:
        gateway = Gateway(operation=RX,
                          local_test=False,
                          dd_sockets=False,
                          qubes=False)
        packet = b'packet'

        # Test BLAKE2b based checksum
        gateway.settings.session_serial_error_correction = 0
        self.assertEqual(
            gateway.detect_errors(gateway.add_error_correction(packet)),
            packet)

        # Test unrecoverable error raises SoftError
        self.assert_se("Warning! Received packet had an invalid checksum.",
                       gateway.detect_errors, 300 * b'a')

        # Test Reed-Solomon erasure code
        gateway.settings.session_serial_error_correction = 5
        gateway.rs = RSCodec(gateway.settings.session_serial_error_correction)
        self.assertEqual(
            gateway.detect_errors(gateway.add_error_correction(packet)),
            packet)

        # Test unrecoverable error raises SoftError
        self.assert_se(
            "Error: Reed-Solomon failed to correct errors in the received packet.",
            gateway.detect_errors, 300 * b'a')

        # Qubes

        # Test with B58 encoding
        gateway.settings.qubes = True
        packet_with_error_correction = base64.b85encode(
            gateway.add_error_correction(packet))
        self.assertEqual(gateway.detect_errors(packet_with_error_correction),
                         packet)

        # Test invalid B85 encoding raises SoftError
        packet_with_error_correction = base64.b85encode(
            gateway.add_error_correction(packet))
        packet_with_error_correction += b'\x00'
        self.assert_se("Error: Received packet had invalid Base85 encoding.",
                       gateway.detect_errors, packet_with_error_correction)
        gateway.settings.qubes = False