edtFTPnet/PRO - Secure FTP component for .NET | Free Trial | Pricing

edtFTPnet/PRO revision history

Version Description
Version 12.1.1
(25 March, 2024)
  • Add support for ECDSA server certificates in TLS 1.2 (previously only in TLS 1.3).
Version 12.1.0
(18 March, 2024)
  • Please note that this release requires .NET framework 4.7.2 or .NET Standard 2.0.
  • Replace .NET CORE support with support for .NET standard 2.0.
  • Add support for ECDSA server certificates in TLS.
  • Add support for diffie-hellman-group-15-sha512 to diffie-hellman-group-18-sha512 in SSH key exchange.
  • Fix TLS session resumption, which wasn't working for TLS 1.2 and lower.
  • Fix bug in reading the new OpenSSH format for private keys when no passphrase is used.
Version 12.0.0
(16 June, 2023)
  • Support for TLS 1.3.
  • Fix bug in known_hosts loading for RSA 256 and RSA 512 host keys.
  • Fix bug in PuTTY v 3 private key loading when key is unencrypted.
Version 11.1.1
(26 September, 2022)
  • SSH/SFTP bug fix. If there is an RSA-SHA2-256/512 negotiation with the server, the server sends a list of server-sig-algs that are supported. The client falls over with an Unknown HostKeyAlgorithm error if the server sends an unrecognised algorithm, which is a bug. All it needs to do is skip the unknown algorithm as it parses the list.
Version 11.1.0
(18 August, 2022)
  • Add support for ssh-256-rsa and ssh-512-rsa for client public key authentication for SSH/SFTP.
Version 11.0.0
(24 June, 2022)
  • Add support for ssh-256-rsa and ssh-512-rsa host key authentication for SSH/SFTP.
  • Add support for new PuTTY private key format (version 3).
  • Fix TLS closure issue with Filezilla Server ("The TLS connection was non-properly terminated").
  • Modify obfuscation so that assembly dependencies can be extracted.
Version 10.1.0
(18 February, 2022)
  • Add support for reading ECDSA private keys in PuTTY format.
  • Fix SHA384 issue with TLS.
  • Improve use of authentication exceptions
  • Modify ChangeDirectory for SSH to ignore FXP_STAT errors if directory is successfully opened, to accommodate EFT server changes.
Version 10.0.0
(16 September, 2021)
  • Support new OpenSSH private key format for reading private keys.
  • Support SHA384 in TLS.
  • Fix UseUnencryptedData bug.
  • Introduce MaxQueuedReadRequests to allow switching off pipelining of SSH requests.
Version 9.9.0
(3 March, 2021)
  • Add property to disable the extended master secret security feature for servers that do not support it.
  • Add download workaround for SFTP servers that return a 0 file size (symptom was downloaded files were zero size).
  • Add fix for SFTP servers that cannot cope with pipelined downloads, resulting in downloaded files that are corrupted.
Version 9.8.0
(6 January, 2021)
  • Add support for .NET CORE 3.1.
Version 9.7.0
(28 September, 2020)
  • Add support for ECDSA host keys (ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521).
  • Add support for ECDH SHA2 key exchanges (ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521).
  • Add support for ECDSA private keys (ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521).
Version 9.6.0
(25 October, 2019)
  • Substantially improve download speed for most SFTP transfers. See SSHMaxQueuedReadRequests property.
  • Fix SFTP ConsumeWindowSpace issue.
  • Add TCPBufferSize property. This allows setting of the socket read and write buffer sizes (Windows equivalent to SO_RCVBUF/SO_SNDBUF). The default should generally be used.
Version 9.5.1
(10 September, 2019)
  • Fix issue "The data was not signed by the server certificate" in TLS 1.0/1.1. Only occurred when building with > .NET 4 framework as a target.
  • Fix issue where trial key was not being created correctly.
Version 9.5.0
(15 June, 2019)
  • Add AES Galois Counter Mode (GCM) cipher suites to TLS.
  • Fix issue where exception thrown in HTTP transfer if transferParams set to null.
  • Fix compatibility issue with servers that send a fragmented initial version string.
Version 9.4.0
(14 May, 2019)
  • Now requires .NET 4.0 framework or higher.
  • Add diffie-hellman-group14-sha256 to SSH key exchange.
  • Fix issue with missing PSH flag. Certain devices omit the PSH flag from TCP packets they send and this causes a 500 ms delay in the client recognising data is available.
  • Fix kex exchange bug for SFTP. Replying to SSH_MSG_KEX_DH_GEX_GROUP reply fails with System.IndexOutOfRangeException.
Version 9.3.0
(11 December, 2018)
  • Fixed SFTP issue where sporadic failures occurred in connection, logging 'timed out waiting for packet from handler'.
  • In SSHFTPClient.ChDir, now throw exception if not a directory.
  • Fixed bug in SFTPFileStream.cs (was excecuting Purge twice, disregarding parallel mode usage).
  • Renamed BouncyCastle namespace to prevent clashes.
Version 9.2.0
(12 September, 2018)
  • Added elliptic curve cipher suites (TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA).
Version 9.1.4
(26 July, 2018)
  • Send client SSH version string immediately rather than waiting for server.
  • Fix memory corruption issue in certificate verification.
  • Fix non-ASCII password failure in SFTP/SSH.
Version 9.1.3
(27 October, 2017)
  • Modify reading of FTP replies to trim garbage characters prior to reply code.
  • Deprecate use of SSH_MSG_KEX_DH_GEX_REQUEST_OLD in SSH/SFTP.
  • Fix bug in SOCKS4A proxy code which fails if user name not set.
Version 9.1.2
(13 June 2017)
  • Fix "ConsumeWindowSpace timed out" error in large (1 GB+) transfers.
  • Fix error "Unable to update the dependencies of the project. The dependencies for the object edtFTPnetPRO.dll cannot be determined.". This was due to a new version of our obfuscator, and we've reverted to the previous version, solving the issue.
  • Fix error resulting when server sends corrupted SSH_FXP_STATUS message (Read(21) failed with unexpected EOF: offset=25,length=26)
Version 9.1.1
(8 March 2017)
  • Fix TLS 1.2 issue - now sends the SignatureAlgorithms extension if TLS 1.2 is one of the protocol versions presented by the client. Apparently required for Microsoft IIS. Also added flag to disable this behaviour and only send extension if TLS 1.2 is the minimum version.
  • Fix bug with AssociatePrivateKey.AssociatePrivateKey (could not be called multiple times).
  • Fix msbuild script included with source releases.
Version 9.1.0
(7 December 2016)
  • Add DHE ciphers for TLS (FTPS).
  • Added diffie-hellman-group-exchange-sha1 and diffie-hellman-group-exchange-sha256 to default list of SSH key exchange algorithms (although already supported if set explicitly).
  • Fix client certificate support in TLS 1.2 (i.e. FTPS).
  • Min/Max SSL version added.
  • Fix hanging issue in InvokeCommandSSH.
  • Fix bug where out of order messages sent during SSH rekeying.
  • Transfer integrity checking added for SFTP transfers (using file size).
Version 9.0.0
(2 November 2015)
  • Now supports TLS 1.2.
  • Fixed BeginChangeMode and related methods.
  • Fix to OS400 directory listing parser.
  • Fix bug in FTPClient.DirDetails().
  • Fix SSH hang where window size is less than max packet size.
  • GUI components are obsoleted.
  • Remove Google Docs support as it is obsolete.
  • Remove obsoleted ProFTPConnection and related classes.
Version 8.6.5
(21 March 2015)
  • Fix broken FTPS implicit mode.
  • Fix minor bug in RSA signing.
Version 8.6.4
(14 February 2015)
  • Added lrename and ldelete commands to FTP scripting.
  • Fix HMAC-SHA2-512 compatibility issue with OpenSSH (Diffie-Helman group size).
  • Fix to prevent SSH_MSG_CHANNEL_CLOSE being sent twice.
Version 8.6.3
(18 November 2014)
  • Improve SSL resumption.
  • Sign installer with certificate.
Version 8.6.2
(28 October 2014)
  • By default SSL 3.0 is no longer supported (because of the POODLE vulnerability in SSL 3.0. It can still be enabled via SSLVersion.
  • Added hmac-sha2-256 and hmac-sha2-512 support to SCP/SFTP.
  • In FTP transfers, now only send REST if resume marker > 0.
Version 8.6.1
(23 Sep 2014)
  • Fixed kbi re-entrant bug that causes a loop of authentication attempts.
  • Fixed SFTP bug where an exception wasn't thrown when uploading a file to a non-existent directory.
  • Fixed SFTP problem where an OpenVMS SFTP server wasn't being recognized as SSH.
  • Fixed retry download problem where only one reconnect was made.
  • Fixed "Attempted to read or write protected memory" issue on some 2012 R2 machines using FTPS.
Version 8.6.0
(4 July 2014)
  • Fixed problem with ExampleViewer.
  • Don't force a passphrase to be supplied for private keys.
  • Fixed bug where single line welcome messages don't make it into WelcomeMessage field.
  • Fixed bug where if Close(true) was called, client would still wait for timeout to expire.
  • Don't read SSH_MSG_IGNORE body.
  • Username and Password now sent as UTF-8 so non-ASCII chars can be used.
Version 8.5.0
(5 July 2013)
  • Add SSL session resumption, which is now on by default. Some ProFTPD configurations require it.
  • Fixed memory access violation bug in SSLFTPCertificate.CreateFromPKCS12.
  • Fix Close() bug in SCP.
Version 8.4.0
(28 February 2013)
  • Added UseUnencryptedData property so that unencrypted data channels can be used in FTPS.
  • SecureFTPConnection.Close() now waits till timeoutin SFTP.
  • Fixed bug in recursive operations which failed when given a relative directory with more than one level.
  • Connection identifiers in logs: each line of logging identifies the connection to which it pertains.
Version 8.3.0
(23 July 2012)
  • Add support for SCP transfers.
  • Bugfix - SSLVersion was not being saved in SecureFTPConnection.Save()
  • Added workaround to cope with WinSSHD's buggy SSH_IGNORE_MSG
Version 8.2.0
(5 April 2012)
  • Significant speed improvements for SFTP (especially downloads).
  • In active (PORT) mode, listen on all interfaces.
Version 8.1.0
(24 February 2012)
  • Implemented HTTP DELETE.
  • Improve performance of FTPRemoteFileList for large listings.
  • Modify FTPRemoteFileList so that LIST command does not require an argument.
Version 8.0.0
(6 February 2012)
  • Added FTPFileSystemWatcher, which notifies applications about remote file changes.
  • Added support for Google Docs, which means Google documents can be uploaded and downloaded using edtFTPnet/PRO.
  • Added ResumeNextDownload(long) so that transfers can be resumed at a determined point.
  • Added CreateSymbolicLink to SecureFTPConnection for SFTP.
  • Fix so FTP shell supports filenames with spaces (in double quotes).
  • Fix FTPStatusBar bug where progress section was blanked for uploads.
  • Please note that the .NET 1.1 build remains at 7.4.0 - 8.0.0 is for .NET 2.0 and higher versions of .NET.
Version 7.4.0
(14 June 2011)
  • Added support for EPSV and EPRT for IPv4.
  • Added support for AES encrypted private keys (would receive an error message like 'Algorithm AES-128-CBC not recognized' previously).
  • Return an empty array of features if FEAT returns no features (but is implemented by the server). Tweak array so only actual features are returned.
  • Fix bug when events enabled and server doesn't support SIZE or MDTM
  • Change AutoFeatures property to be false by default.
Version 7.3.1
(7 February 2011)
  • Added support for diffie-helman-group-exchange-sha256 in SFTP.
  • Fixed bug re setting CommandEncoding in SecureFTPConnection.
  • Fixed bug re reading multi-line replies.
Version 7.3.0
(31 January 2011)
  • Support for aes128-ctr, aes192-ctr and aes256-ctr added to SFTP.
  • blowfish-cbc now the default cipher for SFTP if all ciphers are selected.
  • Now supports TLS 1.1 for FTPS.
  • Tweaks to UnixFileParser to support more formats.
  • Fixed bug in active mode FTP/FTPS where zero timeout was not infinite.
  • If server doesn't support REST, resuming simply overwrites rather than failing.
  • Can specify SFTP encoding for filenames when the server is version 3 or less, otherwise UTF-8 is always used as per the standard.
  • Now treats remote window size as uint to prevent integer overflow when server set huge window sizes.
  • Make sure all exceptions are serializable.
  • Fix exception thrown when assigning new ProxySettings object to ProxySettings property.
Version 7.2.0
(31 August 2010)
  • Now distributed as an exe rather than an MSI.
  • Help is now HTML.
  • Fix for making AutoPassiveSubstitution work for proxies.
  • Remove the reliance on XmlSerializer for cloning FTP connection.
  • Fix to make BytesTransferred event work for SFTP ASCII mode transfers.
  • Fix to prevent unnecessary checks for root directory existence when synchronizing.
  • Fix "Unsupported operation" error when sending FXP_OPEN (don't send attributes if FXP_OPEN fails).
  • Fix bug where the attributes sent with FXP_OPEN were being corrupted, potentially resulting in bizarre timestamps on remote files.
  • Allow other processes to read a file that is being uploaded.
  • Default encoding for FTP/FTPS control channel now set to Windows-1252 rather than US-ASCII.
Version 7.1.0
(15 March 2010)
  • Added InvokeCommandSSH, ChangeMode, ChangeOwner and ChangeGroup to SecureFTPConnection.
  • Fixed synchronize so that when StopOnError=false, exceptions that occurred during listing and changing directories are logged and execution continues.
  • In SSHFTPClient, don't let a chmod failure make MkDir fail - just log a warning.
  • FTPConnection now permits UserName to be changed when connected.
  • Fixed bug in ExFTPConnection preventing UserName and Password properties being used for protected URLS for HTTP.
  • Fixed SFTP bug where extended attributes weren't read for SSH_FXP_NAME.
  • Fixed resume download bug where if resume() is called twice, firstly on an existing file, and then when there is no local file, the second download also resumes.
  • Fixed bug where the CloseStreamsAfterTransfer property was not working for the HTTP protocol.
  • Added KillControlChannel() to FTPClient and SSLFTPClient.
Version 7.0.1
(27 November 2009)
  • Fixed CompressionPreferred bug - compression would not turn off without disconnecting.
  • Fixed timeout bug in implict FTPS transfers - if server timed out during a large transfer, control channel would hang.
  • Made sure bandwidth throttler stops immediately when a transfer is cancelled.
  • Stopped first level subdirectories from being created if IncludeSubdirectories was false.
  • Fixed intermittent element-removed exception when cancelling async transfers.
  • Fixed LoggedIn event so works correctly for SFTP.
  • Synchronization cancellation improved (used to be slow with many files).
  • SSH key re-exchange now works correctly during large file transfers.
  • Added DirectoryExists and BeginDirectoryExists.
  • Made sure properties are set to defaults when loading from the file.
  • Added CopyProperties method to copy properties from one connection to another.
  • Improved error logging in synchronization. Improved discrimination between different errors during remote listing part of synchronization.
  • Fixed intermittent error when cancelling asynchronous tasks.
  • FTPRemoteFileList did not show listing on reconnect.
  • Fix Blowfish SFTP bug.
Version 7.0.0
(5 October 2009)
  • Now supports connection pooling - major new feature.
  • Name resolution is not attempted when using proxies.
  • If launching SFTP subsystem fails, tries manual exec.
  • Full file-paths added to event-args where appropriate.
  • Fixed hanging bug related to BytesTransferred event.
  • Configurable server line-terminator for SFTP.
  • Added continue-on-error option to synchronization.
  • Synchronize methods now return result object describing actions.
  • Improved reliability of synchronization.
  • Fixed bug when transferring recursively from/to root directory.
Version 6.5.0
(13 August 2009)
  • Minor OS400 file parsing bug fixes.
  • Now permits banner preceding remote SFTP version string.
  • SFTP transfer speeds optimized (significantly faster).
  • Fixed IndexOutOfRangeException thrown processing SSH_MSG_KEXDH_INIT (verifying the server's public key) when connecting to Globalscape.
Version 6.4.0
(24 June 2009)
  • Added ServerValidationCertificate property so that self-signed server certificates can be used without adding to the CA certificate store.
  • Add Diffie-Hellman Group Exchange method for key exchange.
  • Fix key exchange problem (incorrect hash) which resulted in "Failed to verify key" exception being thrown.
  • Throw an exception in SFTP if creating a directory that already exists.
  • Fix cast exception when EndInvokeSiteCommand is called.
  • Minor file parsing bug fixes.
  • Default server validation is now 'None'.
Version 6.3.2
(4 June 2009)
  • Fixed problem whereby FTP server errors such as 452 are accepted in non-strict reply checking mode.
  • Fixed problem with SSL certificates on x64 machines.
  • Fixed problem whereby an SFTP server was not appending because of the flags sent.
  • Now throws FTPTransferCancelledException when uploads are cancelled in FTP/FTPS.
  • Single dialog for multiple deletions in FTPLocalFileList and FTPRemoteFileList.
  • Don't list directory in FTPLocalFileList when in designer.
  • Stopped occasional exceptions being thrown when listing remote directory in FTPRemoteFileList.
  • Improved FTPStatusBar (added SpeedVisible and FileSizeVisible properties, fixed some defaults).
Version 6.3.1
(15 May 2009)
  • Modify change directory so that SSH_FXP_REALPATH failures don't fail the operation if the directory does exist.
  • Fix FTPS timeout bug that happens when the timeout is set to 0.
Version 6.3.0
(9 April 2009)
  • Add support for MODE Z for FTP and FTPS transfers, enabling on the fly compression when connecting to servers supporting MODE Z.
  • Modified integrity checking for binary FTP transfers to use SIZE if XCRC is not supported.
Version 6.2.0
(12 March 2009)
  • Add ability to throttle transfer rate to a set maximum bytes/sec.
  • Added optional file integrity checking after transfers (uses CRC checks if supported by the server).
  • FTPShell now logs to LocalAppData.
  • edtFTPnetPRO.dll now compiled to 'anycpu' target in .NET 2.0+ version so it can be used on x64.
  • Fixed bug in deserializing ClientCertificate data from *.ftp file.
  • Added diffie-hellman-group14-sha1 key exchange method.
Version 6.1.0
(20 February 2009)
  • Added RollingFileAppender to the logging package.
  • Fix for Korean months in UnixFileParser.
  • Added a MaxLineLength property to FTPMessageView and FTPLogView.
  • Made timeout of 0 work correctly for SFTP (needed -1 previously).
  • If Connect() fails for SFTP, ensure socket is disconnected.
  • RegVSToolbox.exe should no longer fail on x64.
  • Fixed localization problems in FTPSynchronizeView.
Version 6.0.0
(8 December 2008)
  • Added the FTPShell and FTPScript - comprehensive command-line FTP shell and scripting language.
  • Fix bug where on resuming an FTP transfer, the local file gets locked.
  • Add ClientPrivateKeyBytes to SecureFTPConnection (for SFTP private key).
  • Fixed problem where Logger initialization fails with ConfigurationErrorsException because of corrupt configuration file - now ignores this.
  • Added support for BytesTransferred event during directory listings.
  • FTPLocalFileList and FTPRemoteFileList now use Windows shell icons for each file-type.
  • Fixed problem where server replies had embedded \r chars. This meant it was wrongly thought that the reply was complete, when in fact more was to come (resulting in out of order replies further along). Now permit \r\n or \n as EOL - not \r.
  • Fixed problem with Microsoft ISA HTTP proxy (failing because of multiple proxy-authenticate header fields).
  • Fixed bizarre SFTP problem where a corrupt value in HKEY_CURRENT_USER\Control Panel\International\sPositiveSign causes Int32.Parse('0') to throw an exception (while parsing a version number). Can also be fixed by setting the country in Control Panel - Regional to a different country and back again!
  • Ignore errors from FX_STAT while listing directories. Some directories on some servers (such as '/') seem to permit listing but return "File does not exist" when FX_STAT-ed.
Version 5.1.0
(5 September 2008)
  • Now compiled with .NET 2.0, compatible with 2.0, 3.0, 3.5+. Note that .NET 1.1 version is still available too.
  • Fixed "Method not found: Void System.Security.Cryptography.KeyedHashAlgorithm.Finalize()" error with .NET 3.5 SP1.
  • Added FXP support.
  • Added RetryCount & RetryDelay for retrying failed transfers automatically.
  • Added TimeLeftVisible & PercentageVisible to FTPStatusBar.
  • Fixed TransferType bug - if AutoLogin was set to false and TransferType was set before connecting, it defaulted to ASCII.
  • Add DISABLE_CHMOD_AFTER_CREATE_DIR config flag for SSHFTPClient, for disabling setting permissions on a directory that has just been created (on rare occasions problematic).
  • For resuming uploads, now send SIZE prior to establishing data socket.
  • Added TandemFileParser (not autodetect, must be set manually).
  • Fixed SFTP bug where if a directory was supplied to DownloadFile, the remote filename was not appended.
  • Synchronize now creates empty directories.
Version 5.0.6
(7 August 2008)
  • Downloaded & Deleted events were firing twice during multiple download methods.
  • Now supports TLS1 & SSL3 protocols by default for FTPS.
  • Always use AUTH TLS, drop back to AUTH SSL if failure.
  • When first logging in, don't allow failure to change to ServerDirectory to throw an exception.
  • LastTransferCancelled property now set to true if user cancelled the transfer within OnUploading or OnDownloading.
  • Synchronization of local file date in FTPSynchronizer is now done on the main thread.
  • SendAccountInfo added to send the ACCT command independently.
  • Added AccountInfo property to FTPConnection for sending an ACCT string while logging in.
  • Refactored directory listing parsing.
  • Allow overriding of FTPFileList methods for controlling some events.
  • FTPRemoteFileList now uses a different icon for symlinks, and allows navigating them. Also, for SFTP the linked name is now returned from the server.
  • Fix bug applying umask to permissions in SFTP.
  • Use FXF_TRUNC when creating a new file (some servers insist on it).
Version 5.0.5
(22 April 2008)
  • Fixed bug in reading PuTTY RSA private key files.
  • Fixed synchronization problems in Logger re iterating through appenders.
  • Fixed UnauthorizedAccessException when creating existing mutex in FTPControlSocket.
  • Fixed FTPFileTransferEventArgs so that RemotePath and RemoteDirectory return correct results if remote file is specified with a path (absolute or relative).
  • Fixed LocalDirectory property so that it can be set at design-time.
  • Fixed ExFTPConnection.BeginSynchronize, and fixed FTPSynchronizer bug that caused synchronization to fail when SyncLocalDateAfterDownload was set.
  • Added SetLastWriteTime (must be supported by the server).
  • Added FileSegmentStream for uploading segments of a file.
Version 5.0.4
(28 March 2008)
  • Added support for PuTTY private keys for SFTP public key authentication.
  • Fixed bug where ClientPrivateKeyPassphrase property was not used for the private key (used the Password property).
  • Added SynchronizePassiveConnections property for servers that can't cope with multiple clients from the same IP address.
  • Added AccountInfo property to FTPConnection for sending an ACCT string while logging in.
Version 5.0.3
(14 March 2008)
  • Fixed FTPMessageView.MaxMessages setter. Previously would always set to one if an attempt was made to set it to something else.
  • Fixed FTPMessageView bug where Freeze could not be turned off if the window was empty.
  • Fixed FTPMessageView bug where didn't scroll to last line.
  • The directory text-box in FTPLocalFileList and FTPRemoteFileList now support keyboard shortcuts such as Ctrl+C.
  • Make sure FTPSynchronizeView is enabled if already connected to the server when the control is loaded.
  • Now supports HTTP 1.1 proxies.
  • Fixed bug where StrictReplyCodes wasn't being set correctly (so was always strict).
  • Added CommandSent/ReplyReceived events to SSHFTPClient, and implemented pseudo commands & replies.
  • Added PublicKeyAndPassword authentication, added ClientPrivateKeyPassphrase property.
  • Close(true) now closes the data socket unconditionally.
  • Force a WINDOW_ADJUST to be sent after authentication - seems to fix an HMAC error with WS_FTP SFTP server.
  • Made text properties localizable.
Version 5.0.2
(Feb 15 2008)
  • Added FTPConnectionClosedException, thrown when a 421 reply is received.
  • Timeout now applies to SSL handshake. Previously, if the server hung in the handshake it would hang the client.
  • Fixed NullReferenceException that could occur when listing empty directories in SFTP (only for certain SFTP servers).
  • Installer now works to install components in toolbox for Visual Basic 2005.
  • Fixed bug in FTPSynchronizeView.
  • Fixed bug re DeleteIfSourceAbsent in FTPSynchronizer.
  • Added hmac-md5 for SSH.
  • Don't allow an idle time of 0 s.
  • Added customizable DragDrop event for FTPLocalFileList & FTPRemoteFileList.
  • Fix StackOverflowException when dragging large files from FTPRemoteFileList to FTPLocalFileList.
  • Removed trailing slashes from resolved remote paths in SFTP.
Version 5.0.1
(4 January 2008)
  • Make the ExampleViewer more compatible with Vista. Now logs to LocalApplicationData.
  • FileFilters in recursive operations now apply to remote directories.
  • SSH fix for "data exceeds window size" exception.
  • SSH fix to ignore failed chmod after upload - fix to earlier fix.
  • Changed sequencing of sync events so all of the SynchronizingFile events are called before any of the actual synchronizations actions are executed and before Synchronizing is called. This allows the user to know all of the synchronization actions before the Synchronizing event is triggered. Other minor fixes.
  • Directory listing fix to try to validate the transfer on an error occurring.
  • Set LocalDirectory to process's current directory in Connect() if it's null.
  • Downloaded event now gets the absolute path of the local file.
  • Fixed IgnoreDate bug in FTPSyncRules/FTPSynchronizeView.
  • Recursive GetFileInfos now returns the total size of directories.
Version 5.0.0
(28 November 2007)
  • Added asynchronous version of the recursive GetFileInfos().
  • Add directory synchronization capabilities.
  • Fixed Downloaded and related events so that the user knows if the operation succeeded or not.
  • Allow for remote file-name to be altered in Uploading event-handlers.
Version 4.3.0
(15 November 2007)
  • Fix bug where even if a custom parser is set, the parser determined by SYST is used.
  • ShowHiddenFiles flag added for directory listings and directory transfers.
  • Added support for the HTTP protocol. Currently only supports downloading (including resuming interrupted transfers). DirDetails() and related methods return lists of hrefs.
  • Made ProxySettings constructors public.
Version 4.2.1
(7 September 2007)
  • Fixed "Window overflow received channel data" SSH problem where remote window size negotiation was not correctly handled.
  • Added AES192 and AES256 ciphers for SSH/SFTP.
  • Improved the help launcher to look in more directories for dexplore.exe.
Version 4.2.0
(12 July 2007)
  • Fixed status updating for synchronous transfers.
  • Ignore FTPException from Size() if resume is being tried for an upload (which occurs if the file does not exist).
  • Fix in parsing code for Connect:Enterprise UNIX.
  • Changed DirDetails()/GetFileInfos() to cope with SYST unsupported.
  • Made the install more compatible with Windows Vista (so it works if UAC is enabled).
  • Fixed bug in Example Viewer causing it to hang on exit if a connection was still open.
  • Fixed negative packet size problem and max packet size problem with Tectia server (SFTP protocol).
  • Added keyboard-interactive fallback if password authentication fails (SFTP protocol).
  • Improved reliability of PropertyChanged event functionality.
  • Added FTPSynchronizeView, a control that allows users to synchronize local lists of files with remote lists.
  • Added dialog for password editing, so passwords aren't displayed in component property lists.
  • Added TimeDifference property to FTPClient, FTPConnection, ExFTPConnection and SecureFTPConnection. This property may be used to set the time difference between server and client (relative to client).
  • Added TimeIncludesSeconds property which indicates whether seconds were included in the most recent directoy listing.
  • Added PropertyChanged event to FTPClient, FTPConnection, ExFTPConnection, SecureFTPConnection and FTPConnectionEditor.
  • Timeout now correctly propagates to SFTP classes. Applies to sockets and to waiting for messages.
  • Fixed bug in ExFTPConnection where KeepAliveXXX properties would not be loaded/save in Load/Save methods.
  • Improved serialization so that properties would not get code-generated unless necessary.
  • Stopped ServerDirectory being reset upon disconnection.
  • Added recursive directory listing method.
  • Added new server-validation type Callback and associated ServerValidating event which allows developer to add public keys and certificates to the stores as the server is being validated instead of having to do it prior to this.
  • Made constructor for FTPFileListItem public so that it can be subclassed.
  • FTPLocalFileList now automatically updates when the files in the directory that it is displaying are changed.
  • PerformAutoLogin() now virtual to permit overriding.
  • DirDetails() for SFTP now permits a wildcard appended to a path (and hence GetFileInfos() does for the SFTP protocol).
  • Added LogMessageReceived event to the Logger, so that logging output can be redirected elsewhere (e.g. log4net).
Version 4.1.1
(30 April 2007)
  • Significantly improved transfer speeds for FTP and FTPS.
  • Support added for HTTP proxies.
  • Fixed a race condition causing occasional FTPS hangs.
Version 4.1.0
(19 March 2007)
  • Fix SFTP ASCII mode bug whereby some line terminators are incorrectly handled.
  • SFTP GetFileInfos() now can cope with single filenames and filename wildcards.
  • StrictReturnCodes off by default.
  • Fixed directory renaming bug in FTPLocalFileList.
  • Obsoleted LocalDirectory property no longer stored.
  • Now supports truncated SSH_FXP_STATUS messages.
  • Added support for clear command channels (CCC).
  • Permit 235 return code for PBSZ command (FTPS).
  • Client is now properly notified via an exception if the network becomes unavailable.
  • Added new GUI controls for viewing logs: FTPLogView, FTPCommandView and FTPMessageView
  • Enhanced robustness of FTPStatusBar for older FTP servers.
  • Fixed VMS directory parsing problem where listings without a group were failing to parse.
  • Added the VMSParser property to FTPFileFactory, permitting the VMSParser to be directly configured (and added VersionInName and BlockSize properties to VMSFileParser). Directory names returned now have ".DIR" trimmed off them.
  • Added SSHWindowSize and SSHMaxPacketSize to SecureFTPConnection (and similar properties to SSHFTPClient).
  • Added ItemCheckEventHandler to FTPLocalFileList and FTPRemoteFileList
Version 4.0.5
(3 January 2007)
  • Fixed bug in FTPLocalFileList_Load if Connection hasn't been set, and fixed bug in OnSelectItem where directories would never get transferred.
  • Added DirectoryPanel, DirectoryLabel and DirectoryTextBox properties to FTPRemoteFileList. Fixed bug in OnSelectItem where directories would never get transferred, and fixed up AllowDownload and AllowUpload properties.
  • Added RenameSelectedItem, TransferSelectedItems, DeleteSelectedItems and CreateDirectory to FTPFileList, and fixed up problem with interference between ReadOnly and the Allow properties.
  • Added Exists, BeginExists and EndExists.
  • Enabled OnDeletedDirectory, and trigger events in DeleteDirectoryTree.
  • Fixed unhandled exception bug in status bar when beginning file transfer.
  • Exposed additional properties in Intellisense for FTPRemoteFileList and FTPLocalFileList.
  • Fixed bug with DeleteDirectoryTree.
  • Fixed bug with keep alive in multiple operations and directory listings.
  • Fixed hang in recursive multiple operations (due to "." in directory listings).
Version 4.0.4
(27 November, 2006)
  • Added yyyyMMddHHmmss.fff parsing format for result of MDTM.
  • Added zlib compression to SFTP, including documentation.
  • Reordered SSH messages used in DirDetails() so it works correctly with Axway File Broker (XFB) for SFTP.
Version 4.0.3
(9 November, 2006)
  • Fixed problem with SSH key exchange messages arriving early, resulting in a hang on Windows 2003 servers.
Version 4.0.2
(17 October, 2006)
  • Fixed bug in status bar when resuming transfers.
  • Added methods to SSLFTPCertificate to write certificates to file in various formats.
  • Added DirsPrecedeFiles property to FTPFileLists.
  • Fixed bug that prevents FTP controls and components from being dropped on forms that contain components that do not subclass System.ComponentModel.Component.
  • FileAppender no longer opens an exclusive lock on the log file.
Version 4.0.1
(8 September, 2006)
  • Adds LicenseKey and LicenseOwner properties to ExFTPConnection and SecureFTPConnection. This means they can be set at design time.
  • Fixed SFTP bug where ArgumentOutOfRangeException was thrown, with message "{0} must be non-negative".
Version 4.0.0
(6 September, 2006)
  • Added FTP GUI Toolkit.
  • Added KeepAlive functionality.
  • Check that connection is still open when errors occur so that IsConnected returns correct value.
  • Significantly increased SFTP transfer speeds - much faster than in 3.x.
Version 3.0.2
(26 August, 2006)
  • Fix LocalDirectory. DLL no longers changes the application working directory.
  • Added icons to Toolbox components.
Version 3.0.1
(15 August, 2006)
  • Made SecureFTPConnection.Connect() more robust for implicit FTPS.
  • Fix Close(true) bug with SFTP.
  • AutoPassiveIPSubstitution flag added to FTPConnection and subclasses, so that it can be disabled if required (on by default).
  • PASV parsing now uses a regex and should support more servers.
  • Fixed bug where ObjectDisposedException was being logged on completion of a data transfer.
  • Documentation corrections.
Version 3.0.0
(17 July, 2006)
  • Introduction of SecureFTPConnection component, supporting FTP,FTPS and SFTP
  • Obsoleted ProFTPClient and ProFTPConnection in favour of SecureFTPConnection
  • Introduction of SFTP support, via SSHFTPClient and SecureFTPConnection
  • Introduction of ExFTPConnection component, supporting a rich non-secure FTP interface
  • Fixed bug with incomplete transfers of small files under implicit FTPS
  • Fixed bug whereby ProFTPClient.CompatibilityFlags.DisableDataSSLClosure and related flags were not being correctly used.
  • Fixed bug where the ParsingCulture was not being passed thru to FTPFileFactory
Version 2.0.2
(1 June, 2006)
  • Fixed active mode bug whereby the same port is used each time, causing transfer failures
  • Restructured message transfer buffer to remove race condition that emerged with .NET 2.0
  • Fixed VMS directory parsing bug
  • Note that 2.0.1 was an internal release only
Version 2.0.0
(11 May, 2006)
  • Introduction of ProFTPConnection, a state-of-the-art .NET component that integrates with Visual Studio.
  • Asynchronous Methods with FTP task queuing.
  • A full set of Visual Design Tools including tools for managing client and server certificates.
  • A Connection Test Tool which allows the user to test an FTP connection.
  • Integrated Help system including numerous Howto's.
  • Standard installer
  • Example Viewer application for easy demonstration of features.
  • Added Unlock method to ProFTPClient for setting license details
  • Fixed bug where ActivePortRange was not being used when set
  • Timeout now applies to active mode connection attempts
  • Trial no longer has 10K transfer size limitation - now unlimited
  • MultiplePut methods now do not attempt to create remote directories if they exist
Version 1.0.7
(20 September, 2005)
  • Assembly is now signed with a strong name
  • Fixed bug in multiple file/recursive methods
  • Now accepts 213 reply for SYST
  • Added extra test for no files found string comparisions for OS/390
  • Changed cancel processing to not use abort()
  • Tweaked reply processing to remove possibility of NullPointerException
  • Make Restart() public
Version 1.0.6
(8 July, 2005)
  • ServerValidationType.AutomaticNoNameCheck bug fixed
  • Updated Developer's Guide
Version 1.0.5
(10 June, 2005)
  • Added VMS file parsing
  • Added method to load a certificate and a private key from a PFX file
  • Added NoOperation() for preventing connections timing out
  • Logging calls correctly flushed
  • Added a Connected boolean property
Version 1.0.4
(13 May, 2005)
  • Fixed bug re implicit FTPS transfers
Version 1.0.3
(8 April, 2005)
  • Added CdUp()
  • Allow validation to be switched off in quote()
  • Tidied exception handling in Dir()
  • Fixed problem where "Unexpected null reply received"
  • Made events virtual
Version 1.0.2
(28 February, 2005)
  • Made exceptions and error messages easier to identify
  • Minor SSL code changes
  • Recursive operations on directories now supported
  • Tidied up examples and example readmes
Version 1.0.1
(27 December, 2004)
  • Fixed minor SSL bug
  • More tweaks to DirDetails
  • Fixed Logger bug re failure if misspelt level in config
Version 1.0.0
(25 November, 2004)
  • First release, supporting SOCKS 4 & SOCKS 5 proxies, and secure file transfers via FTPS
  • Based on edtFTPnet, the stable, popular Open Source .NET FTP client