Rebex .NET components R6.3: Optimizations and improvements

  |   Lukas Pokorny

R6.3 is a maintenence release that resolves minor issues and brings several improvements and optimizations.

Disabled HTTPS->HTTP redirect downgrading by default

Redirect downgrading from secure HTTPS to unsecure HTTPS is now disabled by default in WebClient and HttpRequest classes. This is actually a breaking change, but the original behavior could be considered a security vulnerability, which we would rather fix. To restore the previous (unsecure) behavior, disable AllowRedirectDowngrade option in WebClient.Settings or HttpRequestCreator.Settings.

Open-remote-file-first in SFTP and FTP

When downloading a file using SFTP or FTP protocols, the local file is created first, before attempting to start the download. However, this turned out to be problematic - if the remote file does not exist or can not be downloaded, an existing local file is truncated first, and then an exception is thrown.

In most scenarios, this might not be an issue. In other scenarios, this behavior can now be changed by enabling Settings.GetFileOpenRemoteFirst option in Sftp, Ftp or FileTransferClient classes.

Experimental support for .NET MAUI

This release aims to be compatible with the latest .NET MAUI preview. However, please note that .NET 6.0's Multi-platform App UI is still a pre-release product, which means that support for it is still experimental and there are no warranties. If you notice any bugs or incompatibilities in Rebex libraries on .NET MAUI preview, please let us know!

Optimizations

We further optimized our TLS 1.3 library, improved Poly1305 internals, slighty optimized ChaCha20 implementation in .NET Core 3.1 / .NET 5.0/6.0 on ARM with Advanced NEON SIMD, and reduced overhead in CNG/BCrypt interop layer.

And more...

For a detailed list of changes, see the release history.