Rebex SFTP for .NET Release History
2011-03-09 Version 2.0.4086.0 #
- SSH Core: Added workaround for old SSH servers that miscalulate HMAC-SHA1 keys.
- SSH Core: Added SshParameters.AuthenticationMethods to make it possible to only enable desired authentication methods.
- SSH Core: SendEof method added to SshChannel to make it possible to achieve plink-like functionality.
- SSH Core: Fixed a bug in SSH channel window size adjustment code which could cause a timeout on servers which send oversized packets.
- SSH Core: Fixed a bug that prevented SSH key renegotiation requests from being processed, resulting in a timeout.
- SSH Core: Abort flag checking messages removed from Debug log.
2011-02-11 Version 2.0.4060.0 #
- SFTP: Bandwidth throttling support in Rebex SFTP through Sftp object's MaxUploadSpeed/MaxDownloadSpeed properties.
- SFTP: SetFileDateTime in SFTP v4 is now compatible with WS_FTP.
- SFTP: Sftp object's AbortTransfer method now properly cancels operations that are just about to start as well.
- SFTP: Added SftpItemComparer class to ease sorting of SftpItemCollection items.
- SFTP: Added workarounds to Sftp.GetStream method SFTP servers that don't support the Append mode.
- SFTP: BytesTotal and ProgressPercentage properties added to Sftp.TransferProgress event arguments.
- SFTP: Added workarounds for several SFTP servers where SSH_FXP_STAT and SSH_FXP_REALPATH commands (used by many Rebex SFTP methods) don't always work (for aliased directories, for example).
- SFTP: Sftp.PutFiles method (in ThrowExceptionOnLinks mode) correctly detects the links in Windows 7 which were not detected previously.
- SFTP: Added a workaround for SFTP server that sent duplicate filenames in their listings.
- SCP: GetFiles and PutFiles methods added to Scp object to make it possible to transfer multiple files or a whole directory tree in one call.
- SSH Core: AuthenticationRequest event added to make it possible to deal with all kinds of "keyboard-interactive" authentication prompts.
- SSH Core: Fixed a possible race condition that might have occured when using the same SshSession intance from multiple threads.
- SSH Core: Enhanced automated "keyboard-interactive" authentication to support more variants of password prompt.
- SSH Core: Fixed a bug in ZLIB decompression routines.
- SSH Core: SshSession.Encoding property added.
- SSH Core: Added SshOptions.WaitForServerWelcomeMessage option.
- 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 2.0.3854.0 #
- SFTP: Added Sftp.GetStream method that makes it possible to open a readable/writable/seekable stream of a remote file.
- SFTP: Sftp class inherits from NetworkSession base class that implements some common properties.
- SFTP: Added SftpOption.UseReadWriteModeForDownloads.
- SFTP: Added ProtocolVersion property to Sftp class.
- SFTP: SftpItemCollection.GetEnumerator is now an implementation of IEnumerable<SftpItem>.
- SFTP: Fixed a DateTime range check in SftpAttributes.Modified and .Created which was performed before the conversion to UTC.
- SFTP: Better error handling in GetFiles/PutFiles methods.
- SSH Core: In FIPS-only mode, a CryptoAPI implementation of AES is used if available.
- SSH Core: Added support for aes*-ctr and 3des-ctr ciphers.
- SSH Core: SshSession class inherits from NetworkSession base class that implements some common properties.
- SSH Core: SshChannel.ExtendedDataReceived event added to make it possible to receive extended data.
2010-05-20 Version 2.0.3793.0 #
- SFTP: Fixed a bug that caused "/" local path argument of PutFiles/GetFiles methods to be treated as current directory.
- SFTP: Added Sftp.Bind and Scp.Bind method to make it possible to bind the SFTP or SCP object to existing SSH session.
- SFTP: A full local path is passed in SftpBatchTransferProgressEventArgs.
- SFTP: SftpTransferProgressEventArgs now contain RemotePath and LocalPath when available.
- SFTP: SftpBatchTransferException is now serializable.
- SFTP: Queued data packets are no longer written to the output stream after download operation has been aborted.
- SSH Core: Added a workaround for a server that announces support for "password" authentication but requires "keyboard-interactive" instead.
- SSH Core: Fixed a bug in ZLIB compression routines that caused compatibility problems with GlobalScape and BitVise servers when compression was enabled.
- SSH Core: Fixed a bug that caused SSH session to hang if a broken (incomplete) SSH packet arrived (rare).
2010-03-11 Version 2.0.3723.0 #
- SFTP: A more meaningful exception is thrown when a directory path is passed to Sftp.GetFile method instead of file path.
- SFTP: Added support for getting and setting file creating date (only works with servers that support SFTP v4).
- SFTP: Fixed SSH_FXP_READ packet logging code that caused some packets not to appear in the communication log.
- SFTP: Added a workaround for servers where SSH_FXP_STAT command doesn't work correctly on directories.
- SFTP: Fixed a bug in GetFile method that caused it to hang if length was specified.
- SFTP: Added SftpBatchTransferOptions.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.
- SFTP: Fixed PutFiles method to accept all kinds of root paths (such as "c:", "c:/", or "c:\" - previously, only "c:\." worked).
- SFTP: SftpTransferProgressEventArgs.BytesPerSecond property added that contains the estimated current speed.
- SFTP: HierarchyRetrieve events are no longer raised when only a single file is transferred.
- SFTP: Added experimental SftpOptions.UseLargeBuffers to use larger internal buffers (doesn't seem to make substantial difference on most systems).
- SFTP: Data-block-receiving routines optimized to write directly to the output stream without a round-trip through a temporary buffer.
- SFTP: Fixed a bug that made it impossible to call Sftp.GetFiles method on a root directory.
- SFTP: Sftp.TransferProgress event is called less often on high-speed connections now (several times per second is sufficient).
- SSH Core: Added SshFingerprint.Compute and SshFingerprint.FromBase64String methods to make it possible to easily calculate a fingerprint of the supplied public key.
- SSH Core: ZLIB compression is now switched off by default (caused problems with some servers).
- SSH Core: Client KEX_INIT packet is sent without waiting for the server side one (this is the only proper behavior).
- SSH Core: Added SshSession.KeepAlive method to make it possible to periodically "ping" the SSH connection to keep it working and detect failures.
- 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.
2009-10-27 Version 2.0.3588.0 #
- SFTP: SFTP v4 support added.
- SFTP: Fixed a bug in CreateDirectory/ChangeDirectory workaround for CoreFTP.
- SFTP: Added workaround for ProFTPd's mod_sftpd SSH_FXP_REALPATH command that fails for newly created directories.
- SSH Core: Fixed a bug in ArcFour cipher implementation that made it unusable.
- SSH Core: Fixed a bug that caused an SSH welcome message to be parsed incorrectly when split accross multiple packets.
- SSH Core: Added support for ZLIB transfer compression.
- 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-17 Version 2.0.3484.0 #
- SSH Core: Fixed a bug in GSSAPI authentication that caused it to work improperly in 32bit .NET Framework.
2009-07-13 Version 2.0.3479.0 #
- SFTP: IEnumerable<T> support added to collections for .NET 2.0 and higher.
- SSH Core: Support for GSSAPI authentication (gssapi-with-mic) added. Kerberos (not on .NET CF) and NTLM mechanisms are supported. MS SSPI is used as an underlying authentication provider.
- SSH Core: SshFingerprint class extended to support multiple hash algorithms.
- SSH Core: Added BannerReceived event that ca be used to receive banner messages sent by the server.
- SSH Core: Added FingerprintCheck event as an alternative way to check server fingerprint.
- SSH Core: Support for authentication using both username/password and public key at the same time made compatible with Maverick SSHD server.
- 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.
2009-05-20 Version 2.0.3428.0 #
- SFTP: Added support for transfer compression through a plugged-in library.
- SFTP: Upload and download speed enhanced a lot using the pipelining approach.
- SFTP: UTF-8 encoding is used by default for WS_FTP server.
- SFTP: Upload and download buffer size changed from 32K to 28K because the original size resulted in two packets being sent.
- SFTP: Fixed a misleading error message that occurs when both password and public key authentication is required by the server but the clients only supply one of the credentials.
- SFTP: Added several workarounds for CoreFTP server's SFTP implementation that suffers from numerous bugs such as missing file attributes or half-working SSH_FXP_REALPATH command.
- SFTP: 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.
- SCP: Compatibility enhancements in Scp object's PutFile method.
- SCP: Added a workaround for Bitvise's SCP that closes the SCP channel too early.
- SSH Core: Added FIPS 140-2 compliant mode that is automatically enabled on systems where only compliant algorithms are allowed.
- SSH Core: Added a new exception status - PasswordChangeRequired - that is used when a password change is required before authentication can be successfully completed.
2009-02-19 Version 2.0.3333.0 #
- SFTP: Detection of GlobalScape server enhanced to properly detect more versions.
- SCP: Scp.Logger renamed to Scp.LogWriter to match the other objects including Sftp.
- SCP: Fixed improper handling of the first success response.
- SSH Core: Banner message is now logged when using the LogWriter fuctionality.
- SSH Core: Added workaround for badly-formed DSA signature produced by SSH Secure Shell 3.1.0 (and possibly other versions).
- SSH Core: Added a workaround to the Compact Framework version for VanDyke VShell server that sends primes that are one bit longer than expected.
- 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 2.0.3300.0 #
- SFTP: Added PutFiles and GetFiles method to make it possible to transfer multiple files easily by transfering a whole directory tree or use wildcards.
- SFTP: Setting ServerType property to Unix now causes '\' not to be treated as a directory separator for the remote server.
- SFTP: A better exception is now thrown by a method that has been terminated by calling Dispose from another thread.
- SFTP: Packages for .NET Compact Framework 3.5 added.
- SFTP: Asynchronous operations now use a thread pool.
- SFTP: Asynchronous method threads are now named.
- SCP: Added Scp class to make it possible to tranfer files using the legacy SCP protocol.
- SCP: Added enhanced logging capabilities.
- SSH Core: Added support for saving PuTTY private keys.
- SSH Core: Added ChangePassword method to SshSession class to make it possible to change user password.
- SSH Core: Added support for servers that don't require a password.
- SSH Core: Fixed a bug in SshSession that caused problems when multiple channels through the same SSH session were used at the same time.
- 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.
2008-07-24 Version 1.5.3127.0 #
- SFTP: GetList, GetRawList and GetNameList enhanced to support wildcards. However, they are processed at the client side because SFTP can't do that at the protocol level.
- SSH Core: Fixed a problem in RSA private key reader that caused an error with some keys.
- SSH Core: Enhanced packet reader to support oversized SSH packets.
2008-06-14 Version 1.5.3087.0
- SFTP: Enhanced initial folder detection to be compatible with more servers.
- SFTP: Added detection for FTP and SSL servers that are often mistaken with SFTP to produce better exception messages.
- SFTP: Fixed incorrect ChangeDirectory method behavior with empty path argument.
- SFTP: Fixed a problem that caused SftpException.Status property to have a incorrect value in some cases.
- SFTP: Added hostname validity checking to Connect method.
- SFTP: Added experimental support for CR/CRLF conversion of text files.
- SSH: Fixed an internal static method that was not thread safe.
- SSH: PuTTY keys with no password are now supported as well (previously, only PuTTY keys with passwords worked).
- SSH: Added SSH tunneling capabilities.
- 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.
2007-12-06 Version 1.5.2896.0
- All: Packages for .NET 3.5 and Visual Studio 2008 now available.
2007-11-11 Version 1.5.2871.0
- SFTP: Fixed a bug in GetInfo and GetFileLength methods that caused an invalid length to be reported for files larger than 4GB.
- SSH: Changed the authentication routine to be compatible with servers that require a banner message to be sent to the client.
- SSH: Fixed a bug in block receiving code that occured when a block of certain invalid length was received.
- SSH/Security: Added support for loading PuTTY private keys.
2007-08-30 Version 1.5.2800.0
- SFTP/SSH/Security: Added support for Blowfish and Twofish ciphers.
- SFTP/SSH: Added support for authentication using both username/password and public key at the same time.
- SFTP: Default command and response encoding changed to Encoding.Default instead of standard UTF-8, because a survey of SFTP servers showed that none of them in fact uses UTF-8.
- Security: Various other changes that do not affect the SFTP protocol.
2007-05-24 Version 1.5.2700.0
- SFTP: 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.
- SFTP: Response receive buffer enlarged to support messages that are slightly over the maximum allowed length, and better error reporting for those that are too large.
- SFTP: Added another workaround for WeOnlyDo's wodFTPD (FreeFtpD) server that is unable to report the correct file datetime if the local and remote time zones are not the same.
2007-04-20 Version 1.3.2666.0
- SFTP: Added SetFileDateTime method.
- SFTP: Added FileExists and DirectoryExists methods.
- SFTP: Added workaround to GetInfo method for WeOnlyDo SFTP server that reports missing files as access denied.
- SFTP: GetConnectionState no longer fails on disconnected objects.
- SFTP: Added GetUploadStream and GetDownloadStream methods for stream-based remote file access.
- SSH: Client no longer announces key exchange and encryption methods that are not supported on its current platform.
- SSH: Speed drop caused by ineffective data receiving loop was fixed.
- SSH: Fixed a bug that caused any extra key-exchange to fall.
2007-03-06 Version 1.0.2621.0
- SFTP: IPv6 support with .NET Framework 1.1 and 2.0/3.0.
- SSH: Fingerprint property added to SshPrivateKey class.
- Samples: Key Generator application added.
- Samples: Public key authentication support added to WinFormClient sample.
- Samples: WinFormClient is now Vista-compatible.
2007-01-11 Version 1.0.2567.0
- SFTP/SSH: Added support for RSA and DSA public key authentication.
- SFTP: Added workaround for ShellFTP server that has a bad habit of dropping SSH sessions after the SFTP session is closed.
- SSH: Added support for Diffie-Hellman Group Exchange authentication (RFC 4419).
- SSH: Fixed a bug that caused Timeout value to be ignored when waiting for the server's initial message.
- SSH: SshFingerprint class made serializable.
- 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-14 Version 1.0.2537.0