Release notes for Rebex SFTP for .NET/.NET CF
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.
- Cryptography: Fixed a bug in TransformFinalBlock method of Rebex.Security.Cryptography ciphers that caused interoperability issues with CryptoStream.
- Cryptography: Fixed PKCS#7 padding check in built-in ciphers.
- Cryptography: Added EncodingTools class that adds support for all the charsets needed on all platforms.
- Cryptography: Added auto-detection of a bug in unpatched .NET 3.5's AesCryptoServiceProvider object.
- Cryptography: Implicit ObjectIdentifier(string) constructor added.
- Cryptography: Fixed CryptoHelper.CreateAlgorithm to return CSP version of SHA-2 hash algorithms when available.
- Cryptography: Fixed CertificateFinder property behavior to keep old certificates if no certificates are found by the new finder.
- Cryptography: Server certificate verification routine now allows certificats with '*.domain.net' names to be used for 'domain.net' in addition to '*.domain.net'.
- Cryptography: Fixed a bug in private key decryption routine which failed with keys encrypted with PKCS #12 key derivation algorithm.
- 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.
- SCP: Added connected-check to Scp object methods.
- SCP: Changed default SCP upload packet size from 32KB to 8KB (the former size was too big for some servers).
- SCP: Added workaround for SCP in OpenSSH 4.x that doesn't accept quoted paths.
- SFTP: Added Sftp.Settings.RestoreDateTime property to make it possible to restore source date/time on target.
- SFTP: Removed unused SftpBatchTransferOperation.FileDataBlockProcessed value.
- SFTP: Changed Sftp.PutFile(..., string, long, long) behavior to truncate remote path when zero remote offset is specified (corresponds to Sftp.PutFile(..., string) behavior). Added Sftp.Settings.DisablePutFileZeroOffsetTruncate option to force old behavior.
- SFTP: Fixed ActionOnExistingFiles.ResumeIfPossible behaviour to skip existing files if already transferred.
- SFTP: Multi-file operation events always report absolute paths.
- SFTP: Enhanced source path checking in multi-file operations.
- SFTP: Fixed argument checks in GetStream/GetUploadStream/GetDownloadStream methods.
- SFTP: Added Rename value to ActionOnExistingFiles enum (used in Upload/Download methods).
- SFTP: Events Traversing, TransferProgressChanged, DeleteProgressChanged and ProblemDetected added into Sftp to make it possible to get notified about significant actions and to be able to react to a problem in multi-file operations.
- 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).
- Cryptography: Fixed local/UTC time comparison in Certificate.IsTimeValid.
- Cryptography: Added implicit conversion between Certificate object and X509Certificate/X509Certificate2 objects.
- Cryptography: Enhanced compatibility with Mono on non-Windows platforms - Certificate validation now works!
- Cryptography: Support for saving .PFX/.P12 files added to Certificate.Save method.
- Cryptography: Added new overloads of Certificate.Associate that make it possible to permanently bind the private key to the certificate.
- Cryptography: Added Certificate.FriendlyName property.
- Cryptography: Fixed Certificate.SignHash method which used to fail on .NET 2.0 when an associated key was used for MD5SHA1 signature generation.
- Cryptography: Fixed MD5Managed.HashSize property which used to return 0.
- Cryptography: Certificate.HasPrivateKey code in .NET CF version changed to behave identically to .NET version.
- Networking: UseLargeBuffers option added into IFtpSettings.
- SFTP: Added support for POSIX rename ('email@example.com' extension).
- SFTP: Fixed a bug in Sftp.GetFiles which caused an ArgumentOutOfRangeException on some servers.
- SFTP: SftpItem uses UTC time for range checks (previously there were problems with times close to 1970-01-01).
- SFTP: Added Download/Upload(string, string) method overload.
- SFTP: Added Sftp.GetItems(string, ...) methods.
- SSH Core: Ssh.AuthenticationRequest event added (supports advanced keyboard-interactive variants).
- SSH Core: Added support for hmac-sha1-96 and hmac-md5-96 MAC algorithms.
- 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.
- Cryptography: Faster Blowfish and Twofish algorithms.
- Cryptography: SubjectPublicKeyInfo.Load method now supports binary keys.
- Cryptography: Removed lots of CryptoApi dependencies from Certificate code.
- Cryptography: 4096-bit DSA keys (used by some SSH servers) are no longer rejected.
- Cryptography: Diffie-Hellman and DSA algorithms fall back to managed ModPow calculation on .NET CF with missing "Enhanced DSA and Diffie-Hellman" CSPs.
- Cryptography: Added Certificate.Associate(PrivateKeyInfo) method.
- Cryptography: Certificates associated with a private key using Associate method now support MD5SHA1 hash algoritm and suitable for TLS/SSL client certificate authentication.
- Cryptography: Certificate.Save and Certificate.SavePrivateKey methods added, along with a corresponding variant of Certificate.LoadDerWithKey.
- Cryptography: 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.
- Cryptography: Added ObjectIdentifier.ToArray(bool useDer) method.
- Cryptography: CertificateChain.LoadP7b method added (used for loading .P7B certificate chains).
- Networking: Socket.NoDelay is used by default in non-CF version of Rebex components.
- SFTP: Auto-resume capability added for PutFiles/GetFiles methods.
- SFTP: Added workarounds for another SFTP server 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: Added workaround for ChangeDirectory problems with WS_FTP server.
- SFTP: OpenSSH on a Unix-like OS is now detected properly.
- SFTP: Fixed a bug in PutFiles method that caused incorrect behavior when a root-based masked path was specified.
- SFTP: Changing Sftp's or Scp's LogWriter now changes the underlying SshSession's LogWriter as well.
- SFTP: Added SftpOptions.UseSmallPackets option that reportedly solves speed issues in some rare circumstances.
- SFTP: It's now possible to call Sftp.Login again if it fails.
- SFTP: Added TryPasswordFirst option to try "password" authentication first and "publickey" later (by default, the opposite order is used).
- SFTP: New values related to Upload, Download, Delete and GetItems methods added to SftpBatchTransferOperation enum.
- SFTP: String comparison methods use StringComparison.Ordinal.
- SFTP: New Download, Upload, Delete and GetItems methods added to Sftp object (along with associated enums and classes).
- SFTP: Added Sftp.Settings property that replaces and extends Sftp.Options.
- SFTP: Sftp object implements IFtp interface to make it easier to write code which works with both FTP and SFTP.
- SSH Core: Added SshParameters.PreferredHostKeyAlgorithm property.
- SSH Core: Added SshChannel.PassEnvironmentVariable method.
- SSH Core: Fixed NullReferenceException during simultaneous channel close/read.
- SSH Core: Fixed a deadlock that may have occured when using multiple SSH channels from multiple threads.
- SSH Core: Fixed a race condition that may have occured when sending and reading from a single SSH channel at the same time.
- SSH Core: Removed SshParameters.Options property because it was ignored and only present by mistake.
- SSH Core: Added SshParameters.SetEncryptionAlgorithms method to specify exact list and order of allowed SSH ciphers. Corresponding GetEncryptionAlgorithms method added as well.
- 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 2.0.4086.0 #
(build number 4086)
- 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 #
(build number 4060)
- Cryptography: 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).
- Cryptography: Added CertificateChain.Save method to save the chain in .p7b format.
- Cryptography: Fixed a bug in DistinguishedName object that caused the elementes of string representation of DNs to be reversed.
- Cryptography: Added CryptoHelper.ForceManagedAes flag as a workaround to .NET's leaking AesCryptoServiceProvider.
- ProxySocket: Added a new ILogWriter implementation that logs all messages to .NET's System.Diagnostics.Trace.
- 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.
- 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.
- 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.
- SSH Core: Updated SFTP to detect, read and skip unexpected malformed packets which used to throw a "Message with invalid length xxx was received." exception when trying to login.
2010-07-20 Version 2.0.3854.0 #
(build number 3854)
- 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: 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 #
(build number 3793)
- All: Packages for .NET 4.0 and Visual Studio 2010 now available.
- 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 #
(build number 3723)
- Cryptography: Added Certificate.LoadDerWithKey method to make it possible to easily load certificates with private keys in external file (Unix-style).
- Cryptography: Support for PKCS #7 EnvelopedData encrypted using RC2 with effective key length not equal to key data length.
- Cryptography: Fixed a bug in EnvelopedData class that cause a NullReferenceException to be raised when unsupported encryption algorithm is encoutered.
- Cryptography: Internal ModPow method optimized.
- Cryptography: Key generation support removed from RSAManaged a DSAManaged. No part of any of our components ever used it at it was prohibitively slow anyway.
- 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.
- 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.
2009-10-27 Version 2.0.3588.0 #
(build number 3588)
- Cryptography: Certificate's CRL distribution point list can be accessed using GetCrlDistributionPoints method.
- 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.
- 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.
2009-07-17 Version 2.0.3484.0 #
(build number 3484)
- 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 #
(build number 3479)
- Cryptography: .PFX/P12 private key file loading support for Windows Mobile 5 and newer.
- Cryptography: Added support for signatures based on SHA-2 (SHA-256, SHA-384 and SHA-512).
- Cryptography: If .NET 3.5 is available, a new and much faster AES implementation is used instead of RijndaelManaged.
- Cryptography: Behavior of certificate finders in CMS/PKCS #7 was enhanced - embedded certificates are always searched now.
- 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.
2009-05-20 Version 2.0.3428.0 #
(build number 3428)
- SCP: Compatibility enhancements in Scp object's PutFile method.
- SCP: Added a workaround for Bitvise's SCP that closes the SCP channel too early.
- 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.
- 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 #
(build number 3333)
- Cryptography: CertificateStore.FindCertificate overloads that accept DistinguishedName now search for certificates signed by intermediate CAs as well.
- Cryptography: Enhanced treatment of empty passwords in the PFX loader.
- Cryptography: 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.
- Cryptography: Fixed a bug in DiffeHellmanManaged.ImportParameters method that made it impossible to import key with all parameters filled.
- ProxySocket: Fixed a bug in Socks4/Socks5 proxy code that made it impossible to use FTP in active mode with these proxies.
- SCP: Scp.Logger renamed to Scp.LogWriter to match the other objects including Sftp.
- SCP: Fixed improper handling of the first success response.
- SFTP: Detection of GlobalScape server enhanced to properly detect more versions.
- 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.
2009-01-14 Version 2.0.3300.0 #
(build number 3300)
- Cryptography: Added support for reading and setting private key comment.
- Cryptography: Added RootCertificate and LeafCertificate properties to CertificateChain class.
- Cryptography: Added GetCommonName method to DistinguishedName class.
- Cryptography: Added IEnumerator support to CertificateChain.
- Cryptography: Added Equals method to DistinguishedName class.
- Cryptography: Fixed a bug in OID decoding routine that cased it to occasionally hang on roken input data.
- Cryptography: Added new Certificate.LoadPfx to make it possible to load keys into machine store.
- Cryptography: Fixed a problem in Certificate.Decrypt method that made the decryption fail with some rare certificates.
- Cryptography: 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.
- SCP: Added Scp class to make it possible to tranfer files using the legacy SCP protocol.
- SCP: Added enhanced logging capabilities.
- 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.
- 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.
2008-07-24 Version 1.5.3127.0 #
(build number 3127)
- 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 #
(build number 3087)
- 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.
- 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.
2007-12-06 Version 1.5.2896.0 #
(build number 2896)
- All: Packages for .NET 3.5 and Visual Studio 2008 now available.
2007-11-11 Version 1.5.2871.0 #
(build number 2871)
- Cryptography: Added support for loading PuTTY private keys.
- 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: Added support for loading PuTTY private keys.
2007-08-30 Version 1.5.2800.0 #
(build number 2800)
- Cryptography: Added support for Blowfish and Twofish ciphers.
- Cryptography: Added new CertificateIssuer class for certificate creation.
- Cryptography: Added new CertificateChain-based certificate finder.
- Cryptography: Certificate revocation list is now available in EnvelopedData and SignedData classes.
- Cryptography: When the CertificateFinder property is changed in EnvelopedData and SignedData Certificate, the new finder is now immediately used to find any missing certificates.
- Cryptography: Several serialization bugs in EnvelopedData and SignedData classes were fixed.
- Cryptography: Certificate class has a new Extensions property that makes the extension collection accessible.
- Cryptography: Various other changes that do not affect the FTP protocol.
- 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.
- SFTP: Added support for authentication using both username/password and public key at the same time.
- SSH: Added support for Blowfish and Twofish ciphers.
- SSH: Added support for authentication using both username/password and public key at the same time.
2007-05-24 Version 1.5.2700.0 #
(build number 2700)
- Cryptography: CertificateFinder can now be changed even after an EnvelopedData or SignedData has been loaded.
- 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 #
(build number 2666)
- 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 #
(build number 2621)
- SFTP: IPv6 support with .NET Framework 1.1/2.0/3.0 and .NET Compact Framework 2.0.
- SSH: Fingerprint property added to SshPrivateKey class.
2007-01-11 Version 1.0.2567.0 #
(build number 2567)
- Cryptography: Added PrivateKeyInfo class and an ability to load and save private keys.
- Cryptography: Fixed a bug in DSAManaged class that made impossible to use keys of some sizes.
- Cryptography: Random big integer generator optimized.
- Cryptography: Several typos in documentation fixed.
- SFTP: 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 RSA and DSA public key authentication.
- 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.
2006-12-12 Version 1.0.2537.0 #
(build number 2537)
- SFTP: Initial public release.
- Cryptography: Fixed a bug in DSAManaged class that made impossible to use keys of less common sizes.
- Cryptography: Several new methods.
- ProxySocket: Added support for NTLM authentication through HTTP CONNECT proxies.
- Cryptography: A PKCS#7 parser and encoder added.
- Cryptography: Several new methods added to Certificate and CertificateStore classes.
- Cryptography: Several new methods and classes added.
- Cryptography: Internal ASN.1 parser replaced by a recent version.
- Cryptography: Fixed a bug in RSA signature format for MD5 and SHA-1.
- ProxySocket: Fixed a bug that caused the proxy password to be ignored (since build 2305).
- Cryptography: GetSubjectKeyIdentifier method added to Certificate class.
- Cryptography: Added several missing argument checks.
- Cryptography: Certificates other than RSA and DSS now load as well.
- Cryptography: Fixed a bug that caused the Certificate.Decrypt method to return an array of wrong length.
- Cryptography: Various changes in Rebex Security to make Secure FTP for .NET completely compatible with 64bit version of .NET Framework 2.0.
- Cryptography: CertificateChain enhanced to allow certificate validation using local machine chain engine in addition to current user chain engine.
- Cryptography: CertificateStore constructor now accepts certificate store location, making it possible to use local machine store and others.
- Cryptography: CertificateStore class now cleans all unmanaged resources when disposed.
- Cryptography: Certificate, CertificateChain, CertificateException, DistinguishedName, TlsCipher and TlsException classes are serializable.
- ProxySocket: ProxySocketException, FtpProxy classes are serializable.
- ProxySocket: Fixed a bug in Socks5 authentication code (incorrect version in authentication messages).
- 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.
- 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.
- ProxySocket: Enhancement in Available property of the ProxySocket class.
- ProxySocket: Fixed a bug in synchronous methods of the ProxySocket that caused them to hang.
- ProxySocket: Assembly divided into two parts: FTP and Proxy Socket.