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')
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