
Adds support for reverse SSH tunnels and new Rebex.IO API.
Features
- All: Added a new set of binaries targeting Microsoft .NET 6.0. Including:
- Microsoft Windows (x64, x86, ARM64).
- Linux (x64, ARM32, ARM64).
- Apple macOS (x64).
- All: Removed several obsolete and deprecated APIs.
- All: Removed support for legacy ISerializable interface from binaries for Microsoft .NET Standard.
- SFTP: Added Settings.EnableChecksumVerification option.
- SFTP: Changed default value of Sftp.Encoding to UTF-8.
- FTP: Added Settings.EnableChecksumVerification option.
- SCP: ScpSettings.EnablePutFilesRemotePathWorkaround is now set to 'false' by default.
- File Server: Added support for incoming tunnels via SSH, also known as reverse port forwarding. Use FileServer.Settings.EnableReverseTunneling to enable this feature.
- File System: Added a set of new classes to Rebex.IO namespace that make it possible to access files and directories in custom file system providers using a simple API that resembles System.IO. The new classes are that are provided by Rebex.FileSystem assembly:
- VFile.
- VDirectory.
- VFile.
- VDirectoryInfo.
- VFileInfo.
- VFileSystemInfo.
- VDriveInfo.
- VFileStream.
- MIME: Changed default charset for MIME text entities to UTF-8.
- SMTP: Disabled deprecated SmtpDelieryEngine.System option.
- Terminal: Changes in Rebex.Terminal assembly:
- Slightly restructured the Rebex.Terminal assembly to accommodate Microsoft's decision to drop support for most of System.Drawing on non-Windows platforms in .NET 6.0.
- TerminalControl, TerminalFont and related classes have been moved to a separate assembly called Rebex.Terminal.Control, along with image-based or font-based functionality previously available in ITerminal and VirtualTerminal classes (these are now available via VirtualTerminalExtensions class with a slightly modified API with TerminalImageFormat instead of TerminalCaptureFormat).
- Split the seldom-used SerialPortChannel class to a dedicated Rebex.Terminal.SerialPort assembly.
- Removed SshTerminalControl and TelnetTerminalControl classes, which extend TerminalControl. If you use these classes, just add the replacement SshTerminalControl.cs or TelnetTerminalControl.cs files to your application - these are available as part of SshSimpleWinFormClient/TelnetSimpleWinFormClient sample apps (VB.NET versions are available as well).
- ZIP: Added ZipArchive.CheckIntegrity() method.
- ZIP: Added ZipArchiveOpenOptions to make it possible to specify options before opening a ZIP file.
- ZIP: Added ZipArchiveOptions.HideItemNamesInLog option to make it possible to hide file and directory paths in a debug log.
- ZIP: Added ZipReader class - The new ZipReader class makes it possible to process ZIP files on-the-fly, without having to parse the ZIP file's items first. You can now read ZIP files and extract items sequentially. Non-seekable streams are supported as well.
- ZIP: Enhanced logging at LogLevel.Debug and LogLevel.Verbose.
- HTTP: Added asynchronous method overloads to WebClient class.
- SSH: ECDSA X.509 certificates in SSH - Added support for 'x509v3-ecdsa-sha2-nistp256', 'x509v3-ecdsa-sha2-nistp384' and 'x509v3-ecdsa-sha2-nistp521' SSH host key and client key algorithms (as specified by RFC 6187).
- TLS: TlsStream class now features a new Stream-based constructor, making it possible to implement TLS 1.3/1.2 on top of any suitable (readable/writable) Stream.