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
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 #

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.
Released
June282019

2019 R3 #

This is the first legacy edition release and corresponds to mainstream edition 2019 R3.