2012-11-01 Version 2012 R3 #
(build number 4700)
- All: Added .NET 4.x-style task-based asynchronous methods to objects previously using .NET 1.x-style Begin/End asynchronous pattern.
- All: Asynchronous method events are raised using the current synchronization context for the asynchronous operation.
- All: Added options to force the old-style event behavior (not using the current synchronization context).
- All: Added Rebex.Legacy namespace to .NET 4.x builds to allow compiling code that uses old-style asynchronous methods.
- All: Added official support for Visual Studio 2012.
- All: Fixed P/Invokes in NTLM/Kerberos code.
- All: AddRange method added to file item collections.
- All: FIPS 140-2 compliant mode enhancements.
- All: Fixed certificate validation issue on Windows XP and Windows Server 2003.
- All: Added Certificate.Thumbprint property.
- All: Fixed a bug in certificate chain building routine that caused it to ignore additional stores in some cases.
- FTP: Added Ftp.Settings.As400ListingDateFormat property to make it possible to specify AS/400 listing date format.
- FTP: Added Ftp.Settings.UploadCommand to make it possible to specify a different upload command to be used instead of STOR.
- FTP: Removed deprecated Ftp.SetTransferType and Ftp.Logoff methods.
- FTP: Removed unused FtpBatchTransferOperation.FileDataBlockProcessed value.
- FTP: FtpException.Response is now set for some OperationFailure errors as well.
- FTP: Ftp.DirectoryExists/FileExists methods enhanced to support more servers.
- FTP: Added a support for "cdir" field on MLST command results (fixed NullReferenceException in GetFileDateTime method with some FTP servers).
- FTP: Added Ftp.Settings.UseLegacyPaths flag to enable old-style path reporting in multi-file operation events.
- FTP: Fixed ActionOnExistingFiles.ResumeIfPossible behaviour to skip existing files if already transferred.
- FTP: Multi-file operation events always report absolute paths.
- FTP: Enhanced source path checking in multi-file operations.
- FTP: Fixed a bug in AS/400 listing parser that caused the last modified datetime to be parsed incorrectly.
- FTP: Added simplified Connect method overload with SslMode argument.
- FTP: FtpBatchTransferException object was made redundant (its properties were moved to FtpException).
- FTP: Added Ftp.Settings.RestoreDateTime property to make it possible to restore source date/time on target.
- FTP: Fixed argument checks in GetUploadStream/GetDownloadStream methods.
- FTP: Added Rename value to ActionOnExistingFiles enum (used in Upload/Download methods).
- FTP: Events Traversing, TransferProgressChanged, DeleteProgressChanged and ProblemDetected added into Ftp to make it possible to get notified about significant actions and to be able to react to a problem in multi-file operations.
- FTP: Added Ftp.Settings.SslReuseSessions option to make it possible to disable TLS/SSL session reusing for data transfers.
- Networking: NetworkSessionException is now the base class for all network protocol exceptions.
- Networking: Task-based asynchronous methods added to IFtp interface.
- Networking: Removed several Socket.Available calls, resulting in higher speed and Windows Azure compatibility.
- Networking: Events Traversing, TransferProgressChanged, DeleteProgressChanged and ProblemDetected added into IFtp to make it possible to get notified about significant actions and to be able to react to a problem in multi-file operations.
- Security: Fixed a bug in TransformFinalBlock method of Rebex.Security.Cryptography ciphers that caused interoperability issues with CryptoStream.
- Security: Fixed PKCS#7 padding check in built-in ciphers.
- Security: Added EncodingTools class that adds support for all the charsets needed on all platforms.
- Security: Added auto-detection of a bug in unpatched .NET 3.5's AesCryptoServiceProvider object.
- Security: Implicit ObjectIdentifier(string) constructor added.
- Security: Fixed CryptoHelper.CreateAlgorithm to return CSP version of SHA-2 hash algorithms when available.
- Security: Fixed CertificateFinder property behavior to keep old certificates if no certificates are found by the new finder.
- Security: Server certificate verification routine now allows certificats with '*.domain.net' names to be used for 'domain.net' in addition to '*.domain.net'.
- Security: Fixed a bug in private key decryption routine which failed with keys encrypted with PKCS #12 key derivation algorithm.
- SSH: Better error message for unsuccessful keboard-interactive fallback workaround.
- SSH: Enhanced "Invalid decoder state" error reporting.
- SSH: Added support for diffie-hellman-group-exchange-sha256 key exchange algorithm.
- SSH: Added SshPublicKey class, SshSession.ServerKey property and FingerprintCheck.ServerKey property (to make it possible to determine server host key in addition to fingerprint).
- SSL: Fixed a bug in server-side TLS/SSL that caused it to fail when session resuming was enabled.
- SSL: Fixed TlsException serialization that failed for some errors.
- SSL: Fixed a bug that caused problems with TLS/SSL in FIPS-only mode.
2012-06-10 Version 2012 R2 #
(build number 4546)
- All: Added FileSet.Flatten option (makes it possible to ignore source directory structure and copy all files into single target directory).
- All: Enhanced error reporting of file-path-based methods.
- All: Added LocalItem and LocalItemCollection classes (used by FileSet.GetLocalItems method).
- FTP/SSL: Fixed FtpProxy serialization where Encoding was omitted.
- FTP: Added support for "double-login" FTP proxy servers.
- FTP: Added Ftp.GetItems(string, ...) methods.
- FTP: Link resolving code enhanced to better handle FTP servers on Un*x-like platforms.
- FTP: Added support for additional MLSD attributes (creation time, Unix mode/owner/group and Windows file attributes).
- FTP: Added support for OPTS UTF8 on RaidenFTPD server.
- FTP: Added Download/Upload(string, string) method overload.
- FTP: Added support for common names with '*' wildcard to CertificateChain.Validate.
- FTP: Added support for instances of MS FTP 7.5 which request hostname.
- FTP: MLST is now used in Ftp.GetFileDateTime by default.
- FTP: Added workaround to SetFileDateTime that checks whether the correct time was set and fixes it if it was not.
- FTP: Compatibility enhancements in multifile methods.
- Networking: UseLargeBuffers option added into IFtpSettings.
- Security: Fixed local/UTC time comparison in Certificate.IsTimeValid.
- Security: Added implicit conversion between Certificate object and X509Certificate/X509Certificate2 objects.
- Security: Enhanced compatibility with Mono on non-Windows platforms - Certificate validation now works!
- Security: Support for saving .PFX/.P12 files added to Certificate.Save method.
- Security: Added new overloads of Certificate.Associate that make it possible to permanently bind the private key to the certificate.
- Security: Added Certificate.FriendlyName property.
- Security: Fixed Certificate.SignHash method which used to fail on .NET 2.0 when an associated key was used for MD5SHA1 signature generation.
- Security: Fixed MD5Managed.HashSize property which used to return 0.
- Security: Certificate.HasPrivateKey code in .NET CF version changed to behave identically to .NET version.
- SSH: Added SshPrivateKey(AsymmetricAlgorithm) constructor that makes it possible to initialize it from RSACryptoServiceProvider/DSACryptoServiceProvider (useful for SmartCard-based keys).
- SSH: Fixed wrong handling of large remote SSH channel window sizes (used by mod_sftp server).
- SSH: Client certificate authentication added (compatible with VanDyke VShell server).
- SSH: ZLIB support announced even when not preferred (without that, we were unable to connect to servers that refuse uncompressed sessions).
- SSH: Fixed a bug that causes a misleading error to be reported on immediately-closed connections.
- SSH: Added workaround for mod_sftp/0.9.7 which occasionally produces broken DSA signatures.
- SSL: Fixed a misleading error message which was reported when certificate revocation status could not be checked.
- SSL: When ProtocolVersion error occurs, data received prior to it is logged.
2012-03-05 Version 2012 R1 #
(build number 4444)
- All: SecurityRuleSet.Level2 is used for .NET 4.0 binaries.
- All: Added a Stream.Flush() call after each Stream.Seek() or Stream.Position call in .NET Compact Framework (workaround for .NET CF FileStream bug).
- All: Fixed a bug in TraceLogWriter that caused an additional newline to be written at the end of each message.
- All: Added FileSystemItem and FileSystemItemCollection classes.
- All: Better readability in Verbose-level logs.
- All: Thread ID added to all log messages.
- FTP/SSL: Added a workaround for GlobalScape servers that used to ignore the last packet in some circumstances.
- FTP: Auto-resume capability added for PutFiles/GetFiles methods.
- FTP: Fixed a bug in handling some NOOP responses.
- FTP: DoNotDetectFeatures option now turns off server feature detection completely, not only the one using the FEAT command.
- FTP: Fixed a bug in PutFiles method that caused incorrect behavior when a root-based masked path was specified.
- FTP: Better GlobalScape server detection.
- FTP: Ftp.GetFile called with non-zeru localOffset creates the local file if it doesn't exists.
- FTP: String comparison methods use StringComparison.Ordinal.
- FTP: GetList/GetRawList methods log the list content at Debug log level.
- FTP: Added workaround to GetFiles method for servers that return full paths in file listings.
- FTP: New values related to Upload, Download, Delete and GetItems methods added to FtpBatchTransferOperation enum.
- FTP: Added a workaround for servers that append a dot to their SIZE response.
- FTP: Fixed date parsing in 24h DOS-like file listings.
- FTP: Fixed problems with synchronization when EnableMultipleBlockingCalls option is enabled.
- FTP: FTP no longer attempts to resume TLS/SSL session for data connection when TlsOptions.DoNotCacheSessions option is used.
- FTP: New Download, Upload, Delete and GetItems methods added to Ftp object (along with associated enums and classes).
- FTP: Added Ftp.Settings property that replaces and extends Ftp.Options.
- FTP: Ftp object implements IFtp interface to make it easier to write code which works with both FTP and SFTP.
- Networking: Socket.NoDelay is used by default in non-CF version of Rebex components.
- Security: Faster Blowfish and Twofish algorithms.
- Security: SubjectPublicKeyInfo.Load method now supports binary keys.
- Security: Removed lots of CryptoApi dependencies from Certificate code.
- Security: 4096-bit DSA keys (used by some SSH servers) are no longer rejected.
- Security: Diffie-Hellman and DSA algorithms fall back to managed ModPow calculation on .NET CF with missing "Enhanced DSA and Diffie-Hellman" CSPs.
- Security: Added Certificate.Associate(PrivateKeyInfo) method.
- Security: Certificates associated with a private key using Associate method now support MD5SHA1 hash algoritm and suitable for TLS/SSL client certificate authentication.
- Security: Certificate.Save and Certificate.SavePrivateKey methods added, along with a corresponding variant of Certificate.LoadDerWithKey.
- Security: PKCS #7 writer changed to use a more compatible variant of EncryptedContent in EncryptedContentInfo structure. This solves interoperability issues with Entrust CSP and signed messages.
- Security: Added ObjectIdentifier.ToArray(bool useDer) method.
- Security: CertificateChain.LoadP7b method added (used for loading .P7B certificate chains).
- SSH: Fixed error handling in SshSession.OpenTcpIpTunnel method that caused troubles when multiple channels were active at the same time.
- SSH: SshChannel no longer attempts to adjust window size after the channel has been closed.
- SSL: Fixed non-working TlsSocket.BeginSend and BeginReceive methods.
2011-03-09 Version 3.0.4086.0 #
(build number 4086)
- FTP: Missing end-of-data blocks in are ignored in MODE Z transfers (some FTP servers failed to send them).
- FTP: GetList, GetRawList and GetNameList methods with empty arguments now behave like their parameter-less variants.
2011-02-11 Version 3.0.4060.0 #
(build number 4060)
- FTP: Group, Owner and Permissions properties added to FtpItem class.
- FTP: Added support for Transnet FTP Gateway's list format.
- FTP: BytesTotal and ProgressPercentage properties added to Ftp.TransferProgress event arguments.
- FTP: Added a new overload for the Login method that accepts account in addition to username and password.
- FTP: Added FtpOptions.ForceListHiddenFiles option to force using "LIST -la" instead of "LIST" command to retrieve file and directory listings.
- FTP: Fixed a bug that caused a list parser to failed for symlinks with missing target path.
- FTP: Added support for Tandem Guardian FTP server list format.
- FTP: FtpItemComparer class added to ease sorting of FtpList items.
- FTP: Enabling FtpOptions.EnableControlConnectionFlushing option doesn't cause a noticable slowdown now.
- FTP: Ftp.PutFiles method (in ThrowExceptionOnLinks mode) correctly detects the links in Windows 7 which were
not detected previously.
- FTP: Added a workaround for servers that advertise MLST support but report a "Can't check for file existence" error later.
- FTP: Ftp.IsAuthenticated property added to make it easily possible to skip calling Ftp.Login method for users already authenticated using a certificate.
- FTP: Fixed a bug in ZLIB decompression routines.
- FTP: Fixed improper TLS/SSL session reusing. FtpOptions.FtpReuseControlConnectionSession option added to make it possible to re-use the control connection session for subsequent data connections as well.
- FTP: Support for IBM AS/400 FTP listing format added.
- FTP: Added workaround for FTP servers which don't properly end the ZLIB stream when MODE Z is used.
- ProxySocket: Added a new ILogWriter implementation that logs all messages to .NET's System.Diagnostics.Trace.
- Security: Added a new overload of SshPrivateKey.Save to make it possible to save keys in SSLEay/OpenSSH format (in addition to PuTTY .ppk and PKCS #8 formats).
- Security: Added CertificateChain.Save method to save the chain in .p7b format.
- Security: Fixed a bug in DistinguishedName object that caused the elementes of string representation of DNs to be reversed.
- Security: Added CryptoHelper.ForceManagedAes flag as a workaround to .NET's leaking AesCryptoServiceProvider.
2010-07-20 Version 3.0.3854.0 #
(build number 3854)
- FTP/SSL: Added FIPS 140-2 compliant mode that is automatically enabled on systems where only compliant algorithms are allowed.
- FTP: Ftp class inherits from NetworkSession base class that implements some common properties.
- FTP: Added a workaround for an FTP server with broken MLST output.
- FTP: SITE command is no longer used to detect MS IIS FTP 7.x because it caused problems to some firewalls.
- FTP: FtpList.GetEnumerator is now an implementation of IEnumerable<FtpItem>.
- FTP: Better error handling in GetFiles/PutFiles methods.
2010-05-20 Version 3.0.3793.0 #
(build number 3793)
- All: Packages for .NET 4.0 and Visual Studio 2010 now available.
- FTP/SSL: Added support for Tumbleweed's SSL-like encrypted tunnel encryption.
- FTP/SSL: Useless pre-authentication feature check in implicit SSL mode removed.
- FTP: A more meaningful exception is raised when a premature OK response is received while still uploading data.
- FTP: Information about invalid data IP address detection is now written to the log.
- FTP: Fixed a bug that caused "/" local path argument of PutFiles/GetFiles methods to be treated as current directory.
- FTP: More information is logged when a FTP connection is broken.
- FTP: A full local path is passed in FtpBatchTransferProgressEventArgs.
- FTP: Added experimental FtpOptions.UseLargeBuffers to use larger internal buffers (doesn't seem to make substantial difference on most systems).
- FTP: Fixed a bug in PRET command implementation that caused problems with DrFTPd servers.
- FTP: FtpTransferProgressEventArgs now contain RemotePath and LocalPath when available.
- FTP: FtpBatchTransferException is now serializable.
- FTP: On .NET Compact Framework, SO_LINGER option is enabled for data sockets.
2010-03-11 Version 3.0.3723.0 #
(build number 3723)
- FTP/SSL: Added Ftp.DefaultImplicitSslPort constant.
- FTP: Maximum allowed UploadBufferLength changed from 64KB to 16MB.
- FTP: Ftp.Connect method no longer throws UriFormatException when invalid proxy hostname is specified.
- FTP: Added support for OTC S/KEY(tm) (One-Time Password System) authentication according to RFC 2289 (optionally used by Serv-U FTP Server). (S/KEY is a trademark of Bellcore.)
- FTP: Added FtpBatchTransferOptions.XCopy batch transfer mode. This is an alternative form of FtpBatchTransferOptions.Recursive that traverses all subdirectories but only transfers files that match the specified mask.
- FTP: New Ftp.DataAddress property to make it possible to specify active mode IP address transmitted to the FTP server.
- FTP: FtpTransferProgressEventArgs.BytesPerSecond property added that contains the estimated current speed.
- FTP: HierarchyRetrieve events are no longer raised when only a single file is transferred.
- FTP: A more meaningful exception is thrown when a directory path is passed to Ftp.GetFile method instead of file path.
- FTP: Ftp.TransferProgress event is called less often on high-speed connections now (several times per second is sufficient).
- FTP: FtpOptions.SendDataAsynchronously is deprecated and ignored.
- FTP: Fixed PutFiles method to accept all kinds of root paths (such as "c:", "c:/", or "c:\" - previously, only "c:\." worked).
- ProxySocket: The underscore character is now allowed in hostnames (this is non-standard, but used by Windows).
- ProxySocket: FileLogWriter is capable of logging into a single file from multiple applications now.
- ProxySocket: ProxySocket.Send behavior changed to always send all the data or fail.
- Security: Added Certificate.LoadDerWithKey method to make it possible to easily load certificates with private keys in external file (Unix-style).
- Security: Support for PKCS #7 EnvelopedData encrypted using RC2 with effective key length not equal to key data length.
- Security: Fixed a bug in EnvelopedData class that cause a NullReferenceException to be raised when unsupported encryption algorithm is encoutered.
- Security: Internal ModPow method optimized.
- Security: Key generation support removed from RSAManaged a DSAManaged. No part of any of our components ever used it at it was prohibitively slow anyway.
- TLS/SSL: TlsSocket.SessionID is deprecated because its global cache was unsuitable for most applications. TlsSocket.Session (and the associated TlsSession class) should be used instead.
2009-10-27 Version 3.0.3588.0 #
(build number 3588)
- FTP: Added a workaround for bad PASV implementation at ftp-edi.pubnet.org.
- FTP: Enhanced MODE Z support.
- FTP: CCC command no longer actively sends close_notify TLS message by default.
- FTP: Fixed a bug in proxy code that caused data transfers to fail when using HTTP CONNECT proxy with NTLM authentication.
- FTP: Added FtpOptions.ConnectPassiveLater option - makes the passive mode transfer initialize the connection only after the LIST/NLST/RETR/STOR commands are sent (instead of after PASV).
- ProxySocket: Proxy object now has Encoding property that makes it possible to specify character set to be used for parsing server responses.
- ProxySocket: ProxySocketException.ErrorCode property now returns HTTP and Socket4/Socks5 error codes when available.
- ProxySocket: SspiAuthentication and GssApiProvider classes added that provide GSSAPI/SSPI functionality.
- Security: Certificate's CRL distribution point list can be accessed using GetCrlDistributionPoints method.
2009-07-13 Version 3.0.3479.0 #
(build number 3479)
- FTP: Added automated UTF-8 detection on modern FTP servers.
- FTP: Listing parser enhanced to support some non-English month names that sometimes occur in file listings of broken servers.
- FTP: Fixed a bug that might cause an active FTP connection to immediately time out when executed on an existing but idle connection.
- FTP: IEnumerable<T> support added to collections for .NET 2.0 and higher.
- FTP: Ftp.CopyToAnotherServer method can now handle Abort requests.
- FTP: Bandwidth throttling functionality slowed down the transfer too much when a limited but high speed was requested.
- Security: .PFX/P12 private key file loading support for Windows Mobile 5 and newer.
- Security: Added support for signatures based on SHA-2 (SHA-256, SHA-384 and SHA-512).
- Security: If .NET 3.5 is available, a new and much faster AES implementation is used instead of RijndaelManaged.
- Security: Behavior of certificate finders in CMS/PKCS #7 was enhanced - embedded certificates are always searched now.
- TLS/SSL: Enhanced logging of certificate-related actions during the TLS/SSL negotiation.
2009-05-20 Version 3.0.3428.0 #
(build number 3428)
- FTP: Fixed a bug in GetRemoteChecksum method that caused it not to work for filenames that contain space characters.
- FTP: Disposing Ftp object from another thread while an operation is in progress no longer causes NullReferenceException and other similar errors to occur in the operation thread.
- FTP: Better URL handling in the Connect method (although it is hostname-only by design, lot of users actually pass URLs to it).
- FTP: Enhanced logging of incoming connection in active mode.
- FTP: Added a workaround for WS_FTP that requires MLST/MLSD arguments to be quoted if they contain spaces.
- FTP: Added FtpException.Transferred property as a replacement for the misspelled FtpException.Transfered property.
- FTP: Fixed a bug that caused FtpException's BytesTransferred property not to be set for exceptions thrown by asynchronous methods.
- FTP: Fixed a bug in MODE B transfer mode that might cause an improper block length to be received in rare circumstances.
- FTP: Fixed a bug in GetFiles and PutFiles method that caused a wrong path to be used when a filename only was specified or when a root path was specified.
- TLS/SSL: Exception thrown by the certificate verifier because of certificate hostname mismatch is more descriptive.
- TLS/SSL: Added a workaround for vsftpd that occasionally leaks unencrypted error messages while TLS/SSL is in use, which causes an error when the client tries to decode them as proper TLS/SSL messages.
- TLS/SSL: Fixed a bug that could cause a deadlock when closing a socket from one thread that is currently sending data using another thread.
- TLS/SSL: Fixed possible NullReferenceException in TlsSocket class.
- TLS/SSL: BeginSend and BeginReceive methods work again.
2009-02-19 Version 3.0.3333.0 #
(build number 3333)
- FTP/SSL: When client certificate authentication is done with Tumbleweed FTP server, an automated login attempt is performed.
- FTP: Asynchronous operations now use a thread pool.
- FTP: FileExists and DirectoryExists methods modified to return the result for "." and "/" arguments instantly without asking the server.
- FTP: Fixed a workaround for problem with local IP address announced by the server when connecting through ActiveSync to an FTP server that runs on the same machine.
- FTP: KeepAliveDuringTransfer option made compatible with more FTP servers.
- ProxySocket: Fixed a bug in Socks4/Socks5 proxy code that made it impossible to use FTP in active mode with these proxies.
- Security: CertificateStore.FindCertificate overloads that accept DistinguishedName now search for certificates signed by intermediate CAs as well.
- Security: Enhanced treatment of empty passwords in the PFX loader.
- Security: Certificates with SubjectAlternativeName extension marked as critical are now treated as not having any e-mail address assigned to them if no e-mail address is found in the extension data.
- Security: Fixed a bug in DiffeHellmanManaged.ImportParameters method that made it impossible to import key with all parameters filled.
2009-01-14 Version 3.0.3300.0 #
(build number 3300)
- FTP/SSL: Added workaround for some releases of SecureTransport server - ForceSilentCcc option is enabled automatically.
- FTP/SSL: Fixed a bug in CopyToAnotherServer method that caused it to fail unless SecureTransfers property was set to false.
- FTP: Added PutFiles and GetFiles method to make it possible to transfer multiple files easily by transfering a whole directory tree or use wildcards.
- FTP: Packages for .NET Compact Framework 3.5 added.
- FTP: Transfer compression support added to .NET CF 3.5 build (it has only been available for .NET 2.0 and higher previously).
- FTP: Added enhanced logging capabilities.
- FTP: Added a workaround for Serv-U FTP that ungracefully closes data connection for zero-length files.
- FTP: A better exception is now thrown by a method that has been terminated by calling Dispose from another thread.
- FTP: Substantial transfer speed increase on fast networks.
- FTP: Fixed a bug that caused the KeepAliveDuringTransfer option not to work properly.
- FTP: Asynchronous method threads are now named.
- FTP: Added a workaround for misconfigured FTP servers that send an unusable private network address when initializing a data transfer.
- FTP: Disabled control connection flushing when sending commands because it caused a noticeable slowdown on fast networks.
- FTP: FtpOptions.KeepAliveDuringTransfer option code enhanced by adding the '200 No-operation ...' response to the list of possible NOOP command responses.
- FTP: SetTransferType method changed to behave just like TransferType property and marked obsolete.
- Security: Added support for reading and setting private key comment.
- Security: Added RootCertificate and LeafCertificate properties to CertificateChain class.
- Security: Added GetCommonName method to DistinguishedName class.
- Security: Added IEnumerator support to CertificateChain.
- Security: Added Equals method to DistinguishedName class.
- Security: Fixed a bug in OID decoding routine that cased it to occasionally hang on roken input data.
- Security: Added new Certificate.LoadPfx to make it possible to load keys into machine store.
- Security: Fixed a problem in Certificate.Decrypt method that made the decryption fail with some rare certificates.
- Security: Added Certificate.Associate method to make it possible to associate a RSA/DSA crypto service provider with access to a private key with a certificate.
- TLS/SSL: Anonymous TLS/SSL ciphers are now supported (but disabled by default).
- TLS/SSL: Fixed an internal static method that was not thread safe.
2008-07-24 Version 2.5.3127.0 #
(build number 3127)
- FTP: Fixed a bug introduced in the last release that caused a bad InvalidOperationException to be thrown when FTP server reported an error during upload.
2008-06-14 Version 2.5.3087.0 #
(build number 3087)
- FTP/SSL: Added support for unusual way of data channel SSL initialization used by XFB Gateway FTP Server.
- FTP: Finished property added to FtpTranferProgressEventArgs class.
- FTP: New variants of GetDownloadStream and GetUploadStream added.
- FTP: New tutorial for file transfer resume functionality.
- FTP: Added detection for SFTP and SSH servers that are often mistaken forh SFTP to produce better exception messages. FTP servers in wrong modes are also detected.
- FTP: Fixed a bug that caused the DoNotDetectFeatures option to fail.
- FTP: Added hostname validity checking to Connect method.
- ProxySocket: New ISocket interface to make it possible to easily implement custom transport layers.
- ProxySocket: Fixed an unhandled exception that occured during a failed connection to a proxy specified by an IP address.
- SecureSocket: Fixed a bug that caused data loss when a TLS/SSL connection was closed in a certain way.
2007-12-06 Version 2.5.2896.0 #
(build number 2896)
- All: Packages for .NET 3.5 and Visual Studio 2008 now available.
- FTP: Added support for IBM 4690 file and directory listing format.
- FTP: Fixed several bugs in MODE Z (compressed transfers) code.
- FTP: Fixed several bugs in MODE B (block transfer) code.
- FTP: Fixed a bug that caused an invalid exception to be raised on specific type of transfer failures.
2007-11-11 Version 2.5.2871.0 #
(build number 2871)
- FTP/SSL: Data channel now maintains a separate session from control channel.
- FTP: Support for MODE B (block mode) with MS FTP7 that makes it possible to re-use a single data connection for multiple transfers.
- FTP: Experimental support for MODE Z (data transfer compression) added to .NET 2.0 build.
- FTP: Support for HOST command (multiple virtual FTP hosts on a single IP address). (Disabled by default).
- SecureSocket: Added built-in PFX-based client certificate request handler.
- SecureSocket: Fixed a bug in the negotiation part of the TlsSocket class that caused problems when handling large packets.
- Security: Added support for loading PuTTY private keys.
2007-08-30 Version 2.5.2800.0 #
(build number 2800)
- FTP/SSL: Added FtpOptions.PauseBeforeUploadClose option to enable workaround for a problem of a missing last data block before SSL data channel close.
- FTP/SSL: Added workaround for severeal MS FTP7 Beta problems.
- FTP: Added Bandwidth throttling support - MaxUploadSpeed and MaxDownloadSpeed properties.
- FTP: Added CRC32, MD5 and SHA-1 checksum support - GetSupportedChecksums, CalculateLocalChecksum (static) and GetChecksum methods.
- FTP: GetCurrentDirectory enhanced to support another non-standard reply format.
- FTP: Added FtpOptions.EnableMultipleBlockingCalls option to change the way multiple concurrent calls are handled.
- SecureSocket: Fixed a bug in the server-side TLS/SSL code that caused a SSL2-style ClientHello message to be parsed incorrectly.
- Security: Added support for Blowfish and Twofish ciphers.
- Security: Added new CertificateIssuer class for certificate creation.
- Security: Added new CertificateChain-based certificate finder.
- Security: Certificate revocation list is now available in EnvelopedData and SignedData classes.
- Security: When the CertificateFinder property is changed in EnvelopedData and SignedData Certificate, the new finder is now immediately used to find any missing certificates.
- Security: Several serialization bugs in EnvelopedData and SignedData classes were fixed.
- Security: Certificate class has a new Extensions property that makes the extension collection accessible.
- Security: Various other changes that do not affect the FTP protocol.
2007-05-24 Version 2.5.2700.0 #
(build number 2700)
- FTP/SSL: Added a workaround for occasional problems with uploads to GlobalScape FTP Server using TLS/SSL in .NET CF.
- FTP: Added support for direct server-to-server transfers, also known as FXP! Check out the new CopyToAnotherServer method.
- FTP: Added ListItemReceived event. This makes it possible to display the list items as they are received, to filter them or to abort the transfer based on previously received items.
- FTP: NameList added to FtpListingType.
- FTP: SetTransferType/BeginSetTransferType/EndSetTransferType methods were marked as obsolete. Please use the TransferType property instead.
- FTP: Added support for DrFTPD's PRET command.
- Security: CertificateFinder can now be changed even after an EnvelopedData or SignedData has been loaded.
2007-04-20 Version 2.3.2666.0 #
(build number 2666)
- FTP: Added SetFileDateTime method.
- FTP: Added FileExists and DirectoryExists methods. These simple operations are very hard to achieve using the FTP protocol and we use a combination of several commands to achieve the desired functionality.
- FTP: Added DataPortRange property to specify local data port range for active and passive mode transfers.
- FTP: GetFile/PutFile methods refactored to use the same infrastructure as GetDownloadStream/GetUploadStream methods.
- FTP: GetList method optimized to parse the list on-the-fly, resulting in enhanced speed.
- FTP: Removed unnecessary control channel checking code that caused a noticable slowdown of data transfers.
- FTP: Fixed a bug in MLSD list parser - date/time was treated as local time.
- FTP: In active mode, when waiting for the server to connect, error response is now processed as soon as it arrives, without waiting for the connection attempt to time out.
- FTP: GetConnectionState no longer fails on disconnected objects.
- SecureSocket: Speed drop caused by the data receiving loop introduced in the previous build was fixed.
2007-03-06 Version 2.0.2621.0 #
(build number 2621)
- FTP: Enhanced handling of uploads terminated by the server. More meaningful exceptions are now reported.
- FTP: Compatibility enhancements in download aborting code.
- FTP: Fixed a bug that caused the Close method of the Stream returned by GetDownloadStream to fail with some servers on fast networks.
- FTP: Fixed a minor bug in FtpResponse class.
- FTP: IPv6 support with .NET Framework 1.1/2.0/3.0 and .NET Compact Framework 2.0.
- SecureSocket: New refactored TLS/SSL core introduced.
2007-01-11 Version 2.0.2567.0 #
(build number 2567)
- FTP/SSL: Rebex Secure FTP renamed to Rebex FTP/SSL in order to avoid confusion with Rebex SFTP.
- FTP: Fixed a bug in the Close method of the stream returned by GetUploadStream and GetDownloadStream method.
- Security: Added PrivateKeyInfo class and an ability to load and save private keys.
- Security: Fixed a bug in DSAManaged class that made impossible to use keys of some sizes.
- Security: Random big integer generator optimized.
- Security: Several typos in documentation fixed.
2006-12-12 Version 2.0.2537.0 #
(build number 2537)
- FTP: Fixed bad ArgumentExceptions in Ftp.Connect and FtpList.GetFiles methods.
2006-11-27 Version 2.0.2522.0 #
(build number 2522)
- FTP: GetUploadStream/GetDownloadStream methods optimized. They no longer use a background thread and should be faster and more reliable.
- SecureSocket: Fixed a bug in the Compact Framework version that caused an unnecessary slowdown when using SSL/TLS.
2006-10-18 Version 2.0.2482.0 #
(build number 2482)
- FTP/SSL: The workaround for legacy FTP servers that don't understand 'PBSZ' command was extended to cover sessions explicitly secured using 'AUTH SSL' command. It only used to apply to implicitly secured FTP sessions.
- FTP: Default transfer mode is now binary.
- FTP: Added setter to TransferType property, making SetTransferType method obsolete.
- FTP: Added CheckConnectionState/GetConnectionState methods to check the state of the connection without sending any command to the server.
- FTP: MLSD file and directory listing parser is now able to parse legacy mlst-05 style listings.
- FTP: Added UploadBufferLength property to manipulate the size of the upload bufffer.
- FTP: Added a workaround to the CF version for a transfer problem that often occurs when using ActiveSync to connected to a FTP server running on the same machine as ActiveSync. This makes the IgnorePassiveModeAddress option unnecessary in these cases.
- Security: Fixed a bug in DSAManaged class that made impossible to use keys of less common sizes.
2006-09-15 Version 2.0.2449.0 #
(build number 2449)
- FTP/SSL: Fixed a minor bug in WinFormClient sample that made it possible for ClearCommandChannel command to be called for unsecured connections.
- FTP: Fixed a bug in the VB.NET version of WinFormGet sample that made it fail in .NET 2.0.
2006-09-05 Version 2.0.2439.0 #
(build number 2439)
- ProxySocket: Added support for NTLM authentication through HTTP CONNECT proxies.
- SecureSocket: Several TLS/SSL optimization changes.
- Security: Several new methods.
2006-08-25 Version 2.0.2428.0 #
(build number 2428)
- FTP/SSL: Fixed a bug in the finalizer that could cause an exception when the Ftp object using TLS/SSL was finalized.
- FTP/SSL: Added workaround for FileZilla FTP server. FileZilla FTP server is seriously broken and reports an error with 25-50% probability when an upload using TLS/SSL is finished. (This also happens when its own FTP client is used.)
- FTP: Fixed a bug that made the VMS file and directory listing parser fail in rare circumstances.
- FTP: Added IgnorePassiveModeAddress option as a workaround for FTP servers or firewalls that instruct the client to connect to an unaccessible IP address when initializing passive mode data connection.
- SecureSocket: Fixed a bug that could cause a failure or timeout on extremely fast connections.
- Security: A PKCS#7 parser and encoder added.
- Security: Several new methods added to Certificate and CertificateStore classes.
2006-07-10 Version 2.0.2382.0 #
(build number 2382)
- FTP: File and directory listings parser was optimized, it is now much faster.
- FTP: SupportedExtensions and EnabledExtensions added to make it possible to determine and enable/disable FTP protocol extensions.
- FTP: Support for MLSD file and directory listings added. GetList now uses this as default on servers that support this extension.
- FTP: The LF character is now treated as an end-of-line marker, just like CRLF sequence, to enable Rebex FTP to work with buggy servers that send LF instead of CRLF.
- ProxySocket: Fixed a bug that caused the proxy password to be ignored (since build 2305).
- SecureSocket: Fixed a bug that caused the connection not to be closed correctly under special circumstances.
- Security: Several new methods and classes added.
- Security: Internal ASN.1 parser replaced by a recent version.
- Security: Fixed a bug in RSA signature format for MD5 and SHA-1.
2006-06-12 Version 2.0.2354 #
(build number 2354)
- FTP/SSL: Added workaround for Nofeel FTP Server in TLS/SSL mode that is unable to handle the final handshake message and first block of data in the same packet.
- FTP: Server feature detection added (the FEAT command). Can be disabled using DoNotDetectFeatures option for complete compatibility with previous versions.
- SecureSocket: Fixed a bug that caused the connection not to be closed correctly if the server ignores TLS/SSL close notifications.
- Security: GetSubjectKeyIdentifier method added to Certificate class.
- Security: Added several missing argument checks.
- Security: Certificates other than RSA and DSS now load as well.
2006-04-24 Version 2.0.2305.0 #
(build number 2305)
- FTP/SSL: A .NET Compact Framework version of Rebex FTP/SSL is now available as well.
- FTP: Version numbering scheme changed.
- FTP: DefaultPort constant with a value of 21 added to Ftp class.
- FTP: Custom directory list parser is now allowed to set the FtpItem to null, which causes the line not to be parsed.
- FTP: Internal asynchronous methods framework upgraded to the latest version.
- FTP: Several missing connection state checks added.
- FTP: Most ArgumentExceptions enhanced and some missing added.
- FTP: Overall code beautification.
- FTP: Added TimeoutAsynchronousMethods option to make asynchronous methods optionally time out in the same way the synchronous methods do. (By default, only synchronous methods time out.)
- FTP: Size of sent blocks in .NET Compact Framework changed to 1460, which seems to be more compatible.
- FTP: ResumableClient sample added to Compact Framework version.
- SecureSocket: Changes for compatibility with .NET Compact Framework's implementation of System.Net.Sockets.
2005-11-14 Version 184.108.40.206 #
(build number 19)
- FTP/SSL: Fixed a missing Data property in FtpTlsDebugEventArgs class.
- FTP/SSL: Added ForceSilentCcc option to deal with buggy FTP servers that have a habit of not sending CloseNotify messages while shutdowning SSL after a response to CCC command.
- FTP/SSL: Fixed a bug that caused the Connect or Secure method to close the connection if the FTP server replies to AUTH SSL command by an obsolete 3xx response.
- FTP/SSL: BeginClearCommand method now actually returns the IAsyncResult.
- FTP/SSL: TlsDebug event is now being called from the same thread that the current operation runs in.
- FTP: FtpException is now based on Exception instead of InvalidOperationException.
- FTP: FtpList is now serializable.
- FTP: Fixed a bug that caused the PutUniqueFile method to throw an exception.
- FTP: Added several COM-interop related attributes to some classes to allow basic FTP functionality to be used through COM.
- FTP: Disconnect method changed to not throw an exception unless another operation is in progress to reflect the way most people use this method.
- FTP: Added KeepAliveDuringTransferInterval property to allow specifying the interval for KeepAliveDuringTransfer option.
- FTP: Behavior of Begin.../End... methods changed so that a call to End... is required after an end of the operation prior to additional calls to Begin... methods.
- FTP: Ftp properties IsSecured, TlsSocket, LocalEndPoint and RemoreEndPoint now LocalEndPoint and RemoreEndPoint now throw InvalidOperationException when not connected.
- FTP: Added SendDataAsynchronously option to upload data using BeginSend/EndSend instead of Send to deal with hanging Send on some Windows Mobile devices.
- FTP: The component and samples support .NET 2.0 and Visual Studio .NET 2005.
- SecureSocket: Added new TlsDebugEventType UnexpectedException for easier handling of unexpected exceptions thrown from inside the SSL/TLS code.
- SecureSocket: Added SilentUnprotect option to enable shutdown of SSL channel without sending the CloseNotify message. Needed to deal with buggy SSL implementations.
- SecureSocket: Added DoNotBufferDate option for enhanced control over the SSL channel.
- SecureSocket: Minor internal changes towards the forthcoming Compact Framework support.
- Security: Fixed a bug that caused the Certificate.Decrypt method to return an array of wrong length.
2005-07-29 Version 220.127.116.11 #
(build number 18)
- FTP/SSL: Added ClearCommandChannel method to revert from protected to unprotected control channel.
- FTP/SSL: Component doesn't assume anything about the protection state upon connection, which makes it compatible with Covalent FTP Server.
- FTP: Enhancements in unix file list parser to support more variants of unix file listings.
- FTP: Added KeepAliveDuringTransfer option to deal with buggy firewalls that have a habit of terminating idle control connection during long file transfers.
- FTP: FtpWebRequest.GetResponse now returns an empty response for FTP upload instead of throwing an exception.
- FTP: Compact Framework FTP running on full .NET now sends TCP signals with ABOR command during transfer.
- FTP: Removed workaround for ActiveSync (prior to build 4034) bug from the CF version that made it impossible to close data connections successfully.
- FTP: Changes to enable C# 2.0 compilation with no warnings.
- FTP: Trial version for .NET Compact Framework now works with .NET CF 2.0.
- FTP: Exception handling code in several places cleaned a bit. Other minorchanges. Few lines of unnecessary code removed.
- FTP: 'Cannot change state' exception messages modified to be more understandable.
- FTP: Fixed a bug that caused the component not to detect closed control connection in some cases.
- FTP: Asynchronous method framework enhanced to allow null arguments to be passed to asynchronous Ftp methods.
- FTP: FtpException, ProxySocketException, FtpProxy, FtpItem and FtpList classes are serializable.
- ProxySocket: ProxySocketException, FtpProxy classes are serializable.
- SecureSocket: Added TlsSocket.Unprotect method to allow reverting back from TLS to unencrypted socket.
- Security: Various changes in Rebex Security to make Secure FTP for .NET completely compatible with 64bit version of .NET Framework 2.0.
- Security: CertificateChain enhanced to allow certificate validation using local machine chain engine in addition to current user chain engine.
- Security: CertificateStore constructor now accepts certificate store location, making it possible to use local machine store and others.
- Security: CertificateStore class now cleans all unmanaged resources when disposed.
- Security: Certificate, CertificateChain, CertificateException, DistinguishedName, TlsCipher and TlsException classes are serializable.
2004-12-08 Version 18.104.22.168 #
(build number 17)
- FTP/SSL: First release of FTP over TLS/SSL.
2004-11-10 Version 22.214.171.124 #
(build number 16)
- FTP: Fixed a bug that caused Timeout exception to be thrown instead of OperationAborted exception in special circumstances.
- FTP: List parser understands a rare variant of Unix directory listing with interchanged month and day parts.
- FTP: Ftp.Disconnect method always closes the connection, even if the object is not in ready state.
- ProxySocket: Fixed a bug in Socks5 authentication code (incorrect version in authentication messages).
2004-09-23 Version 126.96.36.199 #
(build number 15)
- FTP: Fixed a bug that caused the component to remain in a wrong state when disconnected by the server.
2004-09-01 Version 188.8.131.52 #
(build number 14)
- FTP: Underlying locking/unlocking/async/aborting code fixed to get rid of 'Another operation is pending' exception after timeouts.
- FTP: Abort method can be called at any time, even inside callbacks.
- FTP: ChangeDirectory accepts an empty path.
- FTP: Assembly have been marked as CLS-compliant.
- ProxySocket: Fixed a bug in ProxySocket's Accept method that could cause active mode transfers to hang under rare circumstances with some servers
- ProxySocket: Assembly have been marked as CLS-compliant.
2004-04-02 Version 184.108.40.206 #
(build number 13)
- FTP: Added a new override for Ftp.GetList method to allow arguments.
- FTP: Added a new property BytesSinceLastEvent to TransferProgress event. It contains the number of bytes transfered since the last call.
- FTP: Enhancements in file transfer routines, allowing higher transfer rate on high-speed connections.
- FTP: All references to obsolete IPAddress.Address in Socks4/Socks5 and FTP code replaced either with calls to ProxySocket.GetAddressLong or ProxySocket.GetAddressBytes.
- FTP: All references to DateTime.Now.Ticks replaced by more appropriate Environment.TickCount.
- FTP: Logoff method was renamed to Reinitialize and a new empty Logoff method was added to solve the confusion it caused.
- FTP: Fixed a bug that caused TransferProgress event not to be raised with FtpTransferState.None when the transfer is finished.
- FTP: Fixed problems in trial version key check on PocketPC 2003 emulator.
- ProxySocket: Lots of changes and improvements to the proxy code.
- ProxySocket: GetAddressLong and GetAddressBytes methods added to ProxySocket class to overcome differences between .NET 1.0 and 1.1.
2003-11-24 Version 220.127.116.11 #
(build number 11)
- FTP: Fixed a bug that caused trial version not to work in ASP.NET with impersonation enabled.
- ProxySocket: Enhancement in Available property of the ProxySocket class.
2003-11-07 Version 18.104.22.168 #
(build number 10)
- FTP: New overloads for Sort method added to FtpList.
- FTP: Corrected the Version property of the Ftp class that returned wrong version number.
- FTP: No IP addresses are resolved using DNS now.
- ProxySocket: Fixed a bug in synchronous methods of the ProxySocket that caused them to hang.
2003-11-01 Version 22.214.171.124 #
(build number 9)
- FTP: Tested with <a href='http://www.go-mono.com'>Mono 0.28</a>.
- FTP: Event handlers can now also be used for FtpWebRequest.
- FTP: Fixed a bug that could cause a file transfer to fail with some servers and hang under certain circumstances.
- FTP: Fixed a bug in FTP stream code that caused an exception to be thrown if the transfer was too fast.
- FTP: More characters are now allowed in remote paths (better interoperability with VMS).
- FTP: Fixed a bug that caused Ftp class to become unusable if unable to open a local file during asynchronous PutFile or GetFile.
- FTP: Few missing error messages fixed.
- FTP: Minor fixes in FtpProxy class.
- FTP: Server compatibility enhancements in data transfer and aborting code.
- ProxySocket: Assembly divided into two parts: FTP and Proxy Socket.
2003-09-01 Version 126.96.36.199 #
(build number 8)
- FTP: New overloads for GetNameList and GetRawList methods added.
2003-08-28 Version 188.8.131.52 #
(build number 7)
- FTP: Many enhancements in the underlying proxy code.
- FTP: Abort command is more reliable.
- FTP: Large number of smaller cosmetic changes in the code.
- FTP: Changes towards better portability.
2003-08-20 Version 184.108.40.206 #
(build number 6)
- FTP: Fixed a bug in HttpConnect proxy code that caused the beginning of the data stream to be discarded under certain circumstances.
2003-08-14 Version 220.127.116.11 #
(build number 5)
- FTP: Fixed a bug that caused timeout with Microsoft ISA server (Socks4a + active mode only).
- FTP: Fixed a misspelled error id (Socked.Timeout instead of Socket.Timeout) in proxy code. It caused the misspelled id to be used as an exception message instead of the real description.
- FTP: Compatibility enhancements of Abort code - now compatible withGlobalScape FTP Server.
2003-08-12 Version 18.104.22.168 #
(build number 4)
- FTP: Minor bug fixed in EPLF list parser (invalid handling of dates > 2038).
- FTP: Fixed a bug that caused an unexpected exception to be thrown when calling Ftp.Connect with an empty hostname.
2003-07-03 Version 22.214.171.124 #
(build number 2)
- FTP: Server compatibility enhancements in file transfer aborting code. (There were problems with WarFTPd and some older versions of Serv-U.)
- FTP: Ftp.Disconnect method now does not throw exception if an error is encountered.
- FTP: Fixed a bug in Unix list parser that caused an exception while parsing ftp://ftp.netscape.com/dev/.
- FTP: Fixed a bug in Socks4/Socks5 proxy code that caused an exception to be thrown for some IP addresses.
- FTP: Removed few lines of unused code in HTTP proxy code.
- FTP: Default character encoding is now Encoding.Default instead of Encoding.ASCII.
- FTP: Several bugfixes in WinFormClient sample.
- FTP: ConsoleClient code sample now supports resuming aborted transfers and uploading directory trees.
2003-04-14 Version 126.96.36.199 #
(build number 1)