INFO: Release history of Rebex components for .NET Compact Framework
These releases are only available for the legacy edition of Rebex components for .NET Compact Framework:
- Released
- March032021
R5.0 #
List of changes in build 7726 from 2021-03-03:
- All: Changed release naming scheme ('R5.0' instead of '2019 R3.8').
- SSH: Fixed format of SshPublicKey.GetPublicKey() response for public keys initialized from PublicKeyInfo or AsymmetricAlgorithm.
- TLS Core: Added SslSettings.SslPreferredHashAlgorithm and TlsParameters.PreferredHashAlgorithm options to make it possible to force specific hash algorithm for RSA signatures in TLS 1.2.
- Networking: Optimized timeout infrastructure in ProxySocket.Connect (previously caused strange behavior on high load).
- Cryptography: No longer needlessly detecting CNG "TRUNCATE" support (.NET CF 3.9 only).
- Released
- February102021
2019 R3.7 #
List of changes in build 7712 from 2021-02-10:
- TLS Core: Added SslSettings.SetPreferredSuites/GetPreferredSuites methods to make it possible to specify client-side TLS cipher preference.
- Cryptography: Fixed memory leak in RSA signature verification.
- Cryptography: Optimized memory usage in symmetric encryption transformations based on Windows CNG API (.NET CF 3.9 only).
- Released
- November032020
2019 R3.6 #
List of changes in build 7613 from 2020-11-03:
- HTTP: Added HttpRequest.CookieContainer and HttpResponse.Cookies properties.
- HTTP: Improved TLS session cache behavior in scenarios with load balancing servers.
- HTTP: Enhanced authentication to only attempt to use NTLM, Kerberos or Negotiate if the OS is configured to supports them.
- HTTP: Fixed possible NullReferenceException in Cookie parser if the received cookie contains particular corrupted value.
- FTP: Fixed culture-specific handling of DateTime in Ftp.SetFileDateTime method.
- FTP: Closing currently connecting sockets when Dispose method is called.
- SMTP: Closing currently connecting sockets when Dispose method is called.
- POP3: Closing currently connecting sockets when Dispose method is called.
- IMAP: Closing currently connecting sockets when Dispose method is called.
- EWS: Added a check to EwsFolderId(EwsSpecialFolder, string) constructor to make sure the specified mailbox is not empty.
- EWS: Added EwsFolderInfo.UnreadItemCount property.
- EWS: Added EwsSearchParameter.HasFlag search parameter (enabled searching by flag).
- EWS: Added support for searching by custom "X-" headers.
- EWS: Added support for Sensitivity header.
- EWS: Added Ews.Settings.ExpectContinueSizeThreshold option.
- EWS: Using EWS X-AnchorMailbox HTTP header to maintain mailbox affinity.
- MSG: Fixed error message that occurs when a 2GB limit for Outlook MSG files is exceeded.
- SSH Shell: Added Ssh.TunnelError event for handling tunnel errors.
- File Server: Added workarounds for incompatibilities in SSH renegotiation with JSCH, SSH.NET and very old OpenSSH.
- File Server: Enhanced FileServer infrastructure API to make it possible to start SFTP/SSH session on a pre-connected Socket.
- File Server: Enhanced virtual shell's mkdir command to support '-p' option.
- File Server: Fixed algorithm support check when adding an Ed25519 key to FileServer.Keys collection.
- Networking: Restored missing NetworkSession.InstanceId property.
- TLS Core: Fixed concurrent access in server-side TLS session cache.
- TLS Core: Fixed normalization of premaster secret in server-side ECDH calculations in TLS.
- TLS Core: Updated TlsCipherSuite.Secure/Weak/Fast enum values. Updated TlsParameters.AllowedSuite default.
- Security: Fixed behavior of XtsStream.CanSeek and CanRead properties.
- Cryptography: Added built-in support for Ed25519 algorithm.
- Cryptography: Added Rebex.Security.Cryptography.AesGcm class (equivalent to .NET 5.0's AesGcm class).
- Cryptography: Added SetOtherNames/GetOtherNames methods to CertificateInfo class ('Other Name' support in SANs).
- Cryptography: AsymmetricKeyAlgorithm.ImportKey method can initialize Ed25519 key from seed (in addition to private key).
- Cryptography: AsymmetricKeyAlgorithm.Register method made thread-safe.
- Cryptography: Deprecated CryptoHelper.ForceManagedAes property.
- Cryptography: Enhanced compatibility with unsupported legacy versions of CryptoAPI.
- Cryptography: Enhanced SignedData.Load(Stream) and EnvelopedData.Load(Stream) methods to support Base64-encoded format (PEM) as well.
- Cryptography: Enhanced workaround for RSA CSPs with lack of SHA-2 support.
- Cryptography: Added Ed25519 support to Certificate class. (Not yet supported by the built-in certificate validator).
- Cryptography: Fixed handling of non-content data in Certificate(byte[]) constructor and CertificateChain.LoadP7b(Stream) / CertificateRevocationList.Load(Stream) methods.
- Cryptography: Fixed parsing of constructed primitive ASN.1 types with more than two layers of nesting.
- Cryptography: Fixed version number in PKCS #10 CertificationRequest structure.
- Common: Added SspiAuthentication.IsSupported method.
- Common: Optimized internal cancellation infrastructure.
- Released
- July142020
2019 R3.5 #
List of changes in build 7491 from 2020-07-14:
- FTP: Added FtpExtensions.ExtendedPassiveMode (enables EPSV if supported by the server).
- SFTP: Added workaround for misbehaving SSH_FXP_STAT on DataPowerSSH servers (SftpSettings.EnableBrokenDirectoryStatWorkaround option).
- File Server: Added support for anonymous authentication.
- File Server: Fixed handling of unknown SSH packets received before authentication.
- File Server: Changed SSH cipher info logging style (unified with client-side SSH).
- File Server: Workaround for very old OpenSSH 4.x/5.x clients that refuse to accept data packets while SSH renegotiation is in progress.
- File Server: Added FileServerSettings.EnableEventsForFailedTransfers option.
- File Server: Added ServerSession.Cipher property to make it possible to determine SSH ciphers used by each session.
- File Server: Added support for AEAD encryption ciphers ('aes128-gcm@openssh.com', 'aes256-gcm@openssh.com' and 'chacha20-poly1305@openssh.com').
- File Server: Added support for encrypt-then-MAC ciphers ('hmac-sha2-256-etm@openssh.com' and 'hmac-sha2-512-etm@openssh.com').
- File Server: Enhanced handling of 'pty-req' and 'window-change' SSH channel requests - wrong values are rejected.
- File Server: Enhanced ShellModule class to make it possible to implement custom SSH subsystems.
- File Server: Fixed client authentication using X.509 certificates.
- File Server: Fixed handling of unknown SSH packets.
- File Server: Virtual shell now treats the line-feed character as end-of-line indicator in addion to carriage-return character.
- Mail: Added MailSettings.AllowOversizedLines option.
- Mail: Added MailSettings.DoNotTrimHeaderValues property.
- Mail: Added ParsingHeader event to MailMessage and MimeEntity, making it possible to custom-process headers on input.
- POP3: Added OAuth 2.0 authentication support.
- IMAP: Added workaround for Office365 servers that do not properly handle OAuth 2.0 tokens sent as IMAP literals.
- EWS: Fixed parsing of SOAP messages with 'xsd:any' elements.
- SSH Shell: When TerminalOptions.LocalEcho is enabled, echo opcode is requested on SSH channel.
- SSH Shell: Added LocalEndPoint and RemoteEndPoint properties to SshTunnel class.
- Terminal: Improved TerminalControl.Bind method behavior to prevent needless locking.
- HTTP: Fixed HTTP request retry behavior. Retry request is not initiated when failed request already started sending the request body.
- SSH: Enhanced legacy group exchange autodetection.
- SSH: Added new properties to SshCipher to make it possible to determine IDs of active ciphers.
- SSH: Added workaround for a weakness in legacy CBC ciphers.
- TLS Core: Added TlsSocket.ApplicationProtocol property to make it possible to determine protocol negotiated using ALPN extension.
- TLS Core: Always preferring RSA/SHA-2 for client certificate authentication in TLS.
- TLS Core: Disabled ciphers based on AES/CBC and SHA-2 in legacy versions of TLS (they are only specified by TLS).
- TLS Core: Fixed server name handling for TlsSocket instances created from an already-connected Socket.
- TLS Core: Fixed TlsException.Status to return ConnectionClosed for connection-closed errors.
- TLS Core: Fixed TlsException.Status to return Timeout for timeout errors.
- TLS Core: Fixed TlsSocket.ClientCertificate that returned an empty chain instead of null in some scenarios.
- TLS Core: No longer sending 'internal error' alert to remote end on timeout.
- TLS Core: Fixed behavior of server-side DoNotCacheSessions option (which previously led to connection failures).
- TLS Core: Improved TLS exception reporting.
- TLS Core: Logging improvements.
- TLS Core: Unified TlsSocket.Cipher property behavior across TLS versions.
- TLS: Added TlsParameters.CertificateChainMode property.
- TLS: An error is reported when trying to use one of deprecated methods via TlsServerSocket.
- TLS: Fixed error messages reported on client certificate validation to properly refer to client certificate.
- TLS: Added TlsServerSocket class. Provides server-side TLS 1.2, 1.1 and 1.0 support.
- TLS: Fixed TlsClientSocket.EndConnect method.
- Cryptography: Memory usage optimizations in CNG layer.
- Cryptography: Optimized disposing of temporary keys in Certificate class.
- Cryptography: Added ContentInfo.ToStream() method.
- Cryptography: Enhanced Certificate.LoadDerWithKey to support RSASSA-PSS and RSAES-OAEP for RSA keys.
- Cryptography: Fixed AsymmetricKeyAlgorithm.GenerateDiffieHellmanParameters slowness (only affected the previous release).
- Cryptography: Improved AsymmetricKeyAlgorithm to support RSASSA-PSS and RSAES-OAEP with keys loaded via ImportKey method.
- Cryptography: Optimized Certificate and CertificateChain class to only consume native resources when needed.
- Cryptography: Optimized CNG handles cleanup.
- WebSocket: Enhanced keep-alive logic. Pings are now send from Poll method as well if appropriate.
- ZIP: Added workaround for empty file names in GZIP files.
- Released
- March272020
2019 R3.4 #
List of changes in build 7350 from 2020-03-27:
- All: Fixed several occurences of culture-sensitive string formatting.
- All: Fixed several occurrences of wrong synchronization context.
- SFTP: Fixed an issue in GetItems() method that caused file system items with an unknown type to not be filtered according to the specified mask.
- SFTP: Fixed a possible deadlock when adjusting SSH channel window size during SSH renegotiation.
- SFTP: Fixed handling of symbolic link source paths in non-recursive multi-file operation.
- SFTP: Unified GetConnectState() behavior with mainstream platforms.
- FTP: Fixed an issue in GetItems() method that caused file system items with an unknown type to not be filtered according to the specified mask.
- FTP: Fixed transfer aborting logic that caused data connection sockets to remain unclosed in some scenarios.
- FTP: Using TLS version of the control connection when negotiation the data connection.
- FTP: Fixed handling of symbolic link source paths in non-recursive multi-file operation.
- FTP: Unified GetConnectState() behavior with mainstream platforms.
- File Server: Added support for 'curve25519-sha256' key exchange cipher (equivalent to already-supported 'curve25519-sha256@libssh.org'). (Needs a plugin.)
- File Server: Added support for 'check-file' SFTP extension, making it possible to calculate hashes of remote files.
- File Server: Added FileServer.Settings.MaxIdleDuration and IgnoreKeepAlive to make it possible to easily force closure of idle sessions.
- File Server: Fixed a renegotiation issue that could lead to decryption error.
- File Server: Fixed FileServer.Stop() method to no longer faiil with 'The specified socket is already in use' error in rare scenarios.
- File Server: Fixed partial authentication message processing to ensure no authentication method is used twice during a single authentication session.
- File Server: Fixed reporting of writable permissions for read-only files.
- Mail: No longer throwing an exception when parsing invalid UUEncoded data.
- SMTP: Added workaround for a bug in .NET 4.0 which triggers an exception when sending email via SmtpDeliveryEngine.System with SmtpDeliveryMethod.PickupDirectory method if no host is specified.
- POP3: Improved handling of Exchange-style domain+login+mailbox usernames.
- IMAP: Improved handling of Exchange-style domain+login+mailbox usernames.
- IMAP: Added workaround for IMAP servers with incomplete COPYUID responses.
- Terminal: Added workaround to terminal Unbind method for SSH servers that don't properly respond to SSH_MSG_CHANNEL_CLOSE and caused the method to block until timed out.
- HTTP: Improved selection logic of client certificates in HttpRequest.ClientCertificates collection.
- HTTP: Added GetHeaders methods representing HEAD request to WebClient class.
- HTTP: Added missing ResponseHeaders property to WebClient class.
- Networking: Added missing 'buffer' argument check to some Send/Receive methods in ProxySocket/TlsSocket.
- Networking: Fixed unhandled ObjectDisposedException or misleading SocketException when ProxySocket.Connect aborted due to timeout.
- Networking: Fixed rare race condition in TLS and SSH internals.
- TLS: First release of Rebex TLS component.
- TLS Core: Fixed breaking changes in the behavior of seldom-used parts of TlsSocket API.
- TLS Core: Improved TLS logging.
- TLS Core: Added support for ChaCha20-Poly1305 cipher suites to TLS.
- TLS Core: Fixed behavior of TlsSocket methods after Dispose has been called.
- TLS Core: Fixed behavior of TlsSocket.Shutdown.
- TLS Core: Improved argument checks in TlsSocket base class.
- SSH: Fixed possible deadlock during SSH renegotiation (client-side).
- SSH: Added a workaround for a bug introduced in OpenSSH 8.0 that rejects 'sender channel' numbers in the upper half of uint32 range.
- SSH: Added SshEncryptionMode.AEAD (to replace SshEncryptionMode.GCM).
- SSH: Added support for ChaCha20-Poly1305 AEAD cipher ('chacha20-poly1305@openssh.com') to SSH client.
- SSH: Added support for 'curve25519-sha256' key exchange cipher (equivalent to already-supported 'curve25519-sha256@libssh.org'). (Needs a plugin.)
- SSH: Enhanced performance of ChaCha20-Poly1305 cipher ('chacha20-poly1305@openssh.com') in SSH client.
- SSH: Fixed possible deadlock in SSH client when processing incoming EOF packet while waiting for remote receive buffer size to increase.
- Cryptography: Added workaround for bad RSA/PSS signature algorithm identifiers with missing parameters.
- Cryptography: Enhanced 'Invalid key format' error message when loading a private key.
- Cryptography: Fixed serial number handling in CertificateIssuer to conform to RFC 5280 constraints.
- Cryptography: Added workaround for RSA signatures shorter than the key size.
- Cryptography: Fixed AsymmetricKeyAlgorithm.GetRawPublicKey() key format when RSA via MS CNG is in use (only supported on .NET Compact Framework 3.9).
- Cryptography: Enhanced error message when a Diffie-Hellman key that is too large is encountered.
- ZIP: Fixed an issue in GetItems() method that caused file system items with an unknown type to not be filtered according to the specified mask.
- ZIP: Fixed handling of symbolic link source paths in non-recursive multi-file operation.
- Common: Internal optimizations.
- Released
- October292019
2019 R3.3 #
List of changes in build 7242 from 2019-10-29:
- SFTP: Improved behavior of stream-based PutFile methods with DisableProgressPercentage (stream length is no longer determined).
- FTP: Improved behavior of stream-based PutFile methods with DisableProgressPercentage (stream length is no longer determined).
- File Server: Enhanced handling of exceptions in custom events.
- File Server: Enhanced normalization of Windows-like paths (only applies to AcceptWindowsPaths option).
- File Server: Fixed timing out of not-yet-authenticated sessions.
- Mail: Added workaround for TNEF messages with invalid attachment media types.
- MIME: Added workaround for a mix of RFC 2231 and MIME-style parameter encoding.
- MSG: Fixed handling of end-of-line sequences in MSG properties.
- HTTP: Fixed port handling in HTTP session caching.
- HTTP: Fixed WebException.Status and Message for errors related to DNS resolving, proxies and TLS.
- SSH: Fixed ECDH via CNG on .NET Compact Framework 3.9.
- TLS Core: Enabled ECDH via CNG on .NET Compact Framework 3.9.
- TLS Core: Added TlsBulkCipherMode.AEAD (to replace TlsBulkCipherMode.GCM).
- TLS Core: Removed support for two legacy unsecure anonymous ciphers (DH_anon_EXPORT_WITH_DES40_CBC_SHA and DH_anon_EXPORT_WITH_RC4_40_MD5).
- Cryptography: Added PkcsBase.LoadSignedOrEnvelopedData method (a replacement for deprecated PkcsBase.Load).
- Cryptography: Optimized memory usage when loading CRLs from cache in the built-in custom certificate validator on .NET Compact Framework.
- WebSocket: Optimized operation with KeepAliveInterval of 0.
- Common: Fixed possible ArgumentOutOfRangeException in custom .NET Compact Framework thread pool.
- Common: Fixed possible crash on .NET Compact Framework 3.5 when SSPI single sign-on is attempted.
- SFTP: Added Settings.PreferInteractiveAuthentication option (prefer 'keyboard-interactive' to 'password' authentication).
- SCP: Added Settings.PreferInteractiveAuthentication option (prefer 'keyboard-interactive' to 'password' authentication).
- File Server: Added FileServerUser constructors that accept FileSystemProvider.
- File Server: More common forms of ungraceful session termination are no longer logged as errors at LogLevel.Error.
- Mail: Disabled Attachment.DisplayName normalization (only FileName should have been normalized).
- Mail: Enhanced TNEF (winmail.dat) parser to detect embedded resources.
- SSH Shell: Added Settings.PreferInteractiveAuthentication option (prefer 'keyboard-interactive' to 'password' authentication).
- SSH Shell: Added Ssh.StartSocksServer method (starts a local SOCKS5 proxy server that tunnels connections through SSH).
- Terminal: Fixed VirtualTerminal.SetScreenSize to notify the server.
- HTTP: Fixed an issue in cachable HTTP session detection that prevented sessions from being cached in some scenarios.
- SSH: Added SshGssApiCredentials.AccountName property to make it possible to specify an account name to be passed to the SSH server.
- SSH: Added workaround for legacy WS_FTP 7.x servers that encode long SSH packets improperly.
- SSH: Fixed SshChannel.SendEof method not to send EOF when channel has already been closed.
- Common: Optimized internal Task infrastructure on old .NET platforms.
- Released
- August222019
2019 R3.1 #
This legacy edition release corresponds to mainstream edition release 2019 R3.1.
List of changes in build 7174 from 2019-08-22:
- SFTP: Improved logging of single-item SSH_FXP_NAME responses.
- FTP: Added workaround for occasional '451 Transfer aborted' observed with Pure-FTPd.
- FTP: Added workaround for Pure-FTPd's nonconvencial responses.
- FTP: Enhanced PutFileUnique to be compatible with Pure-FTPd's STOU command response.
- FTP: Transfer aborting made compatible with Pure-FTPd.
- File Server: Enhanced log to include enumerated item count when directory has been enumerated.
- Telnet: Fixed occasional logging of multiple "Received 0 byte(s) of data" messages.
- Terminal: Added check which limits color indices received from server to 256 colors to prevent an exception.
- TLS Core: Modified TlsVersion.Any to only include TLS 1.0, 1.1 and 1.2.