January 12th, 2012· New License Key is required. Request the new license key by email: http://www.smartftp.com/customer/lost/
December 20th, 2011· FTP: MVS parser updated
· FTPConnection: Some functions are trying to map FTP errors to Windows error codes (e.g. E_ACCESSDENIED, HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), HRESULT_FROM_WIN32(ERROR_DIR_NOT_EMPTY))
December 20th, 2011· Added properties files (FTPLib.propdesc and FTPLibProperties.h) to setup
December 20th, 2011API Change:
· Function errors are now returned in HRESULT instead of extra out variable (enumError).e.g.
· OLD: enumError = ftpConnection.Connect();
· NEW: ftpConnection.Connect(); // If there is an error an exception is usually thrown by the COM client
· Error Handling - .NET (C#, VB.NET etc)
Catch COMException exception:
· try { ftp.Connect(); }
· catch(COMException e)
· { e.Hresult; }
Error Handling - VBScript:
· On Error Resume Next
· objFTP.Connect()
· hr = Err.Number
· On Error GoTo 0
· If hr = 0 Then
· FTPFXP: Completely rewrote class
IFTPConnection:
· ReadDirectory, ReadDirectoryFromCommand, Stat returning items in retval
· GetMLST returning item in retval
· GetFileSize returns file size in retval
· GetModifyTime returns time in retval
· Removed LastFileSize, LastPath, LastFileTime, LastItem, Items properties
ISFTPConnection:
· ReadDirectory returning items in retval
· Stat, LStat, StatEx returning item in retval
· ReadLink returning path in retval
· RealPath, RealPathEx returning path in retval
· Unified ISFTPItem and IFTPItem interface. Use IFTPItem instead of ISFTPItem. And FTPItem class instead of SFTPItem class respectively
June 30th, 2011· SSHConnection: Windows Vista+: Uses DH Key Exchange implementation from BCrypt instead of OpenSSL
June 30th, 2011· SFTPConnection: Better reporting of invalid and unexpected messages.
· SSH: If "none" was missing from the requested authentication methods, and the first authentication method failed, the same authentication method has been tried again. Now all authentication methods are only tried once.
· SFTPConnection: Changed signature of DownloadFile, UploadFile methods
· SFTPConnection: Added file buffering for Upload
· FTPConnection: Changed signature of Download method
· SSHConnection: Using AES, DES, 3DES, RC4 for Encryption from CryptoAPI (XP/2003) and BCrypt (Vista+) instead of openssl.
· SSHConnection: Using SHA1, MD5 for HMAC from CryptoAPI (XP/2003), BCrypt (Vista+) instead of openssl
· Using SHA1, SHA2, MD5, MD4 from CryptoAPI (XP/2003), BCrypt (Vista+) instead of openssl
· SSHConnection: Windows Vista+: Added Elliptic Curve Key Exchange (ECDH) (RFC 5656)
· SSHConnection: Windows Vista+: Added support for Elliptic Curve Host Keys (ECDSA) (RFC 5656)
· Minimum system requirement: Windows XP SP3 / Windows 2003 SP2
June 16th, 2011· Fix: SFTPClient: There was a theoretical chance that ranged (with end position) downloads may have succeeded without actually reading all data.
May 27th, 2011· IAsyncSSLSocketLayer: Removed ClientCertName property. Added ClientCertThumbprint property (pass a BSTR with the certificate thumbprint in binary).
· ICryptoAPIKey: Initialize method takes now a certificate thumbprint (BSTR binary) instead of a certificate common name.
April 18th, 2011· Compiled with Visual Studio 2010 SP1. Updated CRT dlls.
March 8th, 2011· Fix: Windows 7 SP1: Fix for Microsoft's Schannel "hotfix".
March 8th, 2011· Fix: Regression: IFTPConnection: File handles are now guaranteed to be closed before the DownloadFile/UploadFile methods return.
March 5th, 2011· Fix: Regression: IFTPConnection: File handles are now guaranteed to be closed before the DownloadFile/UploadFile methods return.
January 12th, 2011· IFTPItem, ISFTPItem: Removed methods with AsUnixTime suffix. Use the IUtils::FileTimeToUnixTime method to convert the date/time
January 3rd, 2011· SFTPConnection: Added fallback if sftp subsystem is not enabled
· FTPConnection: Changed signature of DownloadFileEx and UploadFileEx method. Removed DownloadFileEx2 method.
· SFTPConnection: Changed signature of DownloadFileEx method.
· FTPConnection: Added support for RANG
December 8th, 2010· Dynamically linked to CRT and Standard C++ library. Do not forget to deploy the msvcr100.dll and msvcp100.dll files if you are not already using the Microsoft_VC100_ATL_x86.msm merge module from Microsoft.
November 19th, 2010· FTP: Disabled STAT for old versions of SurgeFTP
· FTP: HASH support is now compliant with draft-bryan-ftp-hash-08
· Updated Samples
November 11th, 2010· Changed sfFTPLib version in manifest from 1.5.0.0 to 2.0.0.0. Update the dependency in your manifest if you are using SxS.
November 11th, 2010· IAsynBaseSocketLayer: Added TotalBytesSent and TotalBytesReceived properties.
· IGlobal: Added TotalBytesSent and TotalBytesReceived properties.
· FTP: UNIX.Mode for MLST/MLSD is now requested by default
November 11th, 2010· Fix: Global->LogFile failed if called more than once
November 11th, 2010· FTP: PASV fail-over for EPSV
· FTP/SFTP: Hard coded sanitization of filenames (max len = 255), paths (max len = 64 * 1024) and other data fields coming from the server (max len = 512)
· FTP: Better error reporting for TLS authentication with a client cert.
October 8th, 2010· SSH: Added client side keep alive feature (KeepAliveInterval property).
October 4th, 2010· Fix: If an IOException (unable to read/write file) is thrown during a transfer the Upload/Download functions now return an error.
October 4th, 2010· Updated documentation.
· Unspecified changes.
August 18th, 2010· DownloadFile/UploadFile methods no longer call Seek on the provided IStream.
July 29th, 2010· FTP: Workaround for Windows_CE's FTP server
June 3rd, 2010· Fix: Regression: Type library not correctly registered on Windows XP/2003
May 29th, 2010· SFTPClient: Compatibility fix for SSH-2.0-SSHD
· SFTPClient: Compatibility fix for ReflectionForSecureIT
May 25th, 2010· FTPItem: Changed enumItemType. ftpItemTypeFile -> ftpItemTypeRegular, ftpItemTypeFolder -> ftpItemTypeDirectory, ftpItemTypeLink -> ftpItemTypeSymLink
· SFTPItem: Renamed enumSFTPItemType to enumItemType
· SFTPItem: Supports IPropertyStore interface
· FTPItem: Supports IPropertyStore interface
· FTPItem: Renamed UnixAttributes property to UnixPermissions
· FTPConnection: Renamed SetUnixAttributes method to SetUnixPermissions
· FTPItem: Removed SizeUnit property. All sizes are in bytes now.
· FTPConnection: Removed LastTransferStartPosition.
May 12th, 2010· Various fixes.
May 3rd, 2010· FTP: Added (better) support for virtual hosts. Use the FEAT property to send the FEAT command before and after the login
April 13th, 2010· Internal Refactoring: Replaced CAutoPtr, CAutoVectorPtr with std::unique_ptr, boost::scoped_ptr, boost::scoped_array
· Added file buffering to improve write performance to UNC share
· TLS: Rewrote SSL/TLS layer
· Various small changes
March 26th, 2010· Added ISimpleConnection. For example for Telnet or Telnet over SSL
· SSH: Added support for openssh keep alive requests
· FTP: Added support for CleverComponents Inet Suite
· FTP: Improved detection of FTP servers
March 16th, 2010· FTP: Added support for SITE COPY extension for copying files on the same server.
· FTP: Changed FEAT parser
· Added IAsyncSSLSocketLayer interface
· FTPConnection: Moved all SSL/TLS related properties to their own interface
· FTPConnection: Added SSLSocketLayer property
· FTPServerState: Moved RemoteCert property to SSL interface.
· IConnectionInfo: Renamed to ISecurityConnectionInfo
· Added IAsyncBaseSocketLayer interface
· Added IAsyncLimitSocketLayer interface
· Moved socket buffer sizes members into BaseSocketLayer
· SSHConnection: Moved TransferLimitUpload/TransferLimitDownload to LimitSocketLayer
· Added ILogFile interface
· FTPConnection/SFTPConnetion/SSHConnection: Moved LogFile, LogFormat properties to new ILogFile interface
March 4th, 2010· Added strings for TLS 1.1 and TLS 1.2
February 15th, 2010· Unspecified fixes
· Compiled with VS 2010 RC
January 14th, 2010· Using worker thread pool for better scalability. Meaning constant number of threads for n connections.
· SFTPConnection: Split up SFTPConnection into SFTP and SSH part. Results in major API changes.
· SFTPConnection: Added VendorId property
· SFTPConnection: Added ConnectionInfo property
· SFTPConnection: Added GetSpaceAvailable() extended method.
· SFTPConnection: Added CopyFile() extended method.
· Fix: SFTPConnection: GetFileHash().
· FTPConnection: Added detection and parser for SecurePortal2000
· FTPConnection: Reduced request/reply delay.
· FTPConnection: No longer sends MFTM if not advertised
· FTPConnection: No longer automatically adds -T to LIST if server=servu
November 2nd, 2009· Fix: Transfer limit
October 27th, 2009· New transfer limit implementation
October 22nd, 2009· Added PowerShell samples
· Added listing decoder for GXS Information Exchange FTP Gateway
· Added listing decoder for GXS Enterprise
· Added support for GXS Enterprise path handling
· Added manifest to openssl (libeay32.dll) for SxS.
October 1st, 2009· Code cleanup (COM functions won't throw memory exceptions, memory leak protection in case of exceptions).
· lbeay32.dll got a version resource
October 1st, 2009· Fix: Regression: FTP: Transfer limit was broken since 1.5.25.0
October 1st, 2009· FTP: Added ftpProxyTypeProxyUserAtUserAtHost FTP proxy type. e.g. for McAfee Web Gateway (formerly Webwasher)
September 2nd, 2009· Fix: Pre-Windows Vista: MUI resources were not loaded
August 31st, 2009· Removed MFC dependency
· Merged proxy into dll
August 28th, 2009· Dynamically linked to openssl (libeay32.dll). If you use a custom libeay32.dll make sure it exports the FIPS-140 functions
August 28th, 2009· Fix: Windows 7: Unknown was displayed for the algo name if the TLS session was using AES128-256
· Dropped support for Windows 2000. Removed all legacy code.
· New setup (Windows 7 compatible)
July 17th, 2009· Fix: FIPS with AES CTR
June 17th, 2009· Fully MUI aware. Don't forget to deploy the en-USsfFTPLib.dll.mui file
· Fix: RSAKey/DSAKey: Key generation failed.
· Fix: SSHConnection: Public key authentication with DSA key file failed.
May 26th, 2009· SSHConnection: Added support for x509 client and host certificates
May 26th, 2009· SSHConnection: Added support for GSSAPI Microsoft Kerberos. Use the GSSAPIMethod property to select the GSSAPI method
May 20th, 2009· SSHConnection: Added support for gssapi-mic (Kerberos v5) authentication
· Fix: FTPConnection: StreamFilter (e.g. File Encryption) was broken if compression was enabled
· FTPParser: Tweak for UNIX listing decoder
May 15th, 2009· SSHConnection: Added support for arcfour128, arcfour256
· SSHConnection: Changed order of default ciphers
May 14th, 2009· Updated documentation
· SSHConnection: Added support for certificates (e.g. Smart Card) from Windows certificate store. See ICryptoAPIKey
May 4th, 2009· FIPS 180-2 compliant. Set IGlobal::FIPS property to true to enable FIPS mode.
· Updated openssl.
April 8th, 2009· Change: SFTPConnection: Changed all SAFEARRAY(VARIANT) function arguments to VARIANT* to support VB6
April 7th, 2009· Fix: SFTPConnection: ReadDirectory() failed for protocol version 6 if the server did not include the end-of-list flag in the packet
March 31st, 2009· Fix: SFTPConnection: SetStat was not setting correct last modified time for protocol version
March 23rd, 2009· SFTPConnection: Added ServerHostKeyAlgorithms to specify supported host key algos (rsa, dss)
· ISFTPItems: Added support for IEnumSFTPItem
· IFTPItems: Added support for IEnumFTPItem
March 18th, 2009· FTPConnection: Data transfers protected by SSL/TLS reuses the control connection SSL session
March 17th, 2009· SFTPConnection: Fix for SetStat if SFTP version >= 4.
· SFTPConnection: Language support (Languages property)
March 2nd, 2009· SFTPConnection: Added support for RSA Key Exchange (rsa1024-sha1).
· Dropped support for Windows 98 and Windows Me
March 2nd, 2009· KeyManager: Fixed bug when importing putty AES encrypted private keys.
· FTP: Fixed C++ and VB.NET samples
February 11th, 2009· FTPItems, FTPItem: Implemented IPersistStreamInit and IPersistStream interface
January 12th, 2009· SFTP: Workaround for GXS SSHD.
· SFTP: Fix for SSH servers sending additional lines before the remote id
December 30th, 2008· FTP Samples: Fixed C++ and C# sample.
December 22nd, 2008· IFTPParser: Improved parser performance.
· IFTPConnection: Moved LookupFeature method to IFTPServerState interface.
· IFTPConnection: Removed deprecated methods: IsServerFeature, IsServerSoftWindows. (They are available in the IFTPServerState interface).
· _IFTPConnectionEvents: Removed most of the events.
· IFTPItems: Rewrote class. Added thread safety.
· IFTPConnection: Added detection for z/OS. ftpFTPServerSoftzOS (enumFTPServerSoft)
· IFTPItems: Added Load/Save method to serialize items to XML. Added FTP/Scripts/SerializeXML.wsf sample
· IFTPConnection: Renamed SetFileTime to SetModifyTime and GetFileTime to GetModifyTime.
· IFTPConnection: Added SetCreateTime.
· IFTPConnection: GetFileHash failed to return the value if the server did not include leading 0s
December 3rd, 2008· Internal refactoring.
· IFTPConnection: Added SendHOST property to control the behavior of the HOST command
December 3rd, 2008· New regexp engine.
December 3rd, 2008· SFTPConnection: Resolve host name did not return if host name could not be resolved.
· FTPConnection: Fixed bug with CSID reply parser.
November 22nd, 2008· FTPItem: Changed property Date to ModifyTimeAsDate.
· FTPItem: Changed property UnixTime to ModifyTimeAsUnixTime.
· FTPItem: Changed property FileTime to ModifyTimeAsFileTime.
· FTPItem: Added CreateTimeAsUnixTime, CreateTimeAsFileTime properties.
November 6th, 2008· SFTPConnection: Added support for "check-file" extension. Use the GetFileHash method
· FTPConnection: Changed signature of GetFileHash method
· FTPConnectionEvents: Removed OnGetFileHash event
· SFTPConnection: ACSII conversation is skipped if the server's EOL equals the local EOL (
· ).
· SFTPConnection: Added ServerState (ISFTPServerState) property
· FTPConnection: Moved SYSTReply, FEATReply, WelcomeMessage, ServerType, ServerSoft properties to FTPServerState
· FTPConnection: Removed RemoteCertContext property
· FTPConnection: Added RemoteCert property to FTPServerState. The function returns the encoded cert in a variant which contains a safearray of bytes (VT_I1).
· SFTPConnection: Changed the way the RTT is calculated
· SFTPConnection: Corrected server change password request behavior
October 21st, 2008· SFTPConnection/FTPConnection: Fixed bug with timeout
· SFTPConnection: Bug fixes for protocol version 5 and 6
October 15th, 2008· SFTPConnection: Added new MAC umac-64@openssh.com
· FTPConnection: Added support for CKSM command
· Auto Tuning of Socket Buffers
· SFTPConnection: Fix for key re-exchange
· SFTPConnection: Added support to switch to None encryption after authentication
· SFTPConnection: Massively improved download performance over high BDP connections
September 17th, 2008· SFTP: Added support for SFTP protocol version 1 and 2.
· SFTP: Added support for delayed compression
September 8th, 2008· SFTP: Added VB6 sample.
August 25th, 2008· SFTP: Added client side Ascii conversation.
· Fix: On the fly file encryption
July 17th, 2008· SFTP: Fixed bug with resume and protocol version 5.
· FTP: Workaround for Novell Netware's PWD bug.
June 25th, 2008· SFTP: Updated C# sample.
· FTP: Better detection of hash values from XCRC, XMD5 and XSHA replies.
June 4th, 2008· IKeyManager: Fixed loading of PEM encoded encryted private keys.
May 18th, 2008· Added IStreamFilter
· Added IAES128CTRWriteStream and IAES128CTRReadStream
April 25th, 2008· Added CryptoHash class to generate hash values (CRC32, MD4, MD5, SHA1, SHA256) from a file, blob or IStream
· IFTPItem: Added Fact property to read the MLST facts
· IFTPConnection: Automatically requests Win32.ea, Win32.dl and Win32.dt facts if server supports them
April 15th, 2008· FTPConnectionEvents: OnTransferListStart / OnTransferListEnd events are no longer used/fired.
· FTPConnectionEvents: OnTransferStart is now fired as soon as the data connection is connected/accepted. OnTransferEnd when the data connection is closed. If the function (DownloadFile/UploadFile/ReadDirectory) does not open a data connection the events are not fired. It's important to note that it is not necessary a sign that the data transfer was unsuccessful since some servers do not open a data connection to transfer an empty file.
April 11th, 2008· FTPConnection: Added HOST support (The command is only sent for Serv-U right now)
· FTPConnection: Added Download method which can be used for new THMB command
· General: Files that have been opened (MSDN: CreateFile) with other applications with the FILE_SHARE_WRITE flag can now be uploaded.
· FTPConnection: Added LastBytesWritten property to get the number of bytes that have been written to a file after the Download() call
March 31st, 2008· Added IConnectionPool
· ISFTPItem: Type is automatically set if the Permissions attribute is available (Protocol Version 3)
· IFTPConnection: Changed detection for WS_FTP Server because it had too many false positives
February 11th, 2008· SSH: Added aes128-ctr, aes256-ctr and aes192-ctr ciphers as defined in RFC 4344
December 27th, 2007· Workaround for WS_FTP Server 6.0's wrong REST reply
· zlib uses assembler. 40% decompression speed improvement with 64-bit version.
December 21st, 2007· Added SFTP (over SSH2) support - BETA - See the samples in the SamplesSFTP folder.
· Fixed: Disconnect didn't wait for the QUIT server reply.
· Updated documentation.
December 17th, 2007· The destructor of the operation is now called before the waiting threads are released. This fixes possible race conditions.
November 11th, 2007· Fixed Connect/Disconnect/Reconnect issued
October 2nd, 2007· Added "native" support for file names > MAX_PATH characters. A prefix (?) is now automatically added to local file names for the DownloadFile and UploadFile methods.
August 24th, 2007· Added IFTPServerState class. You can access it through the ServerState property of the IFTPConnection interface. No documentation yet.
August 23rd, 2007· Fixed: FTPConnection: Directory property returned object from previous ReadDirectory() call if no bytes have been transferred.
· Changed ordinal of ftpItemLink from 3 to 4.
July 7th, 2007· Improved support for Connect:Enterprise server.