It has been a while since the last release, but all the new features provide a perfect excuse for the delay!
FTP - Bandwidth Throtting and Checksums
FTP and FTP/SSL components got bandwidth throttling support that is extremely easy to use - just check out Ftp's new MaxUploadSpeed and MaxDownloadSpeed properties, and the new WinFormClient sample. Another new FTP feature is checksum support - many of the recent FTP servers have this nice feature that they can calculate a checksum of a remote file (or its portion) to effectively detect whether the local and remote file is the same. The Ftp class has three new methods to take advantage of this - GetSupportedChecksums, CalculateLocalChecksum (this method is static) and GetChecksum. Expect a tutorial for these soon!
SFTP - Blowfish and Twofish Support
There is no bandwidth throttling support in SFTP yet, because the underlying SSH is much more complicated protocol, but we will eventually add this feature as well. In the meantime, enjoy the new Blowfish and Twofish encryption algorithms and combined username/password + public key authentication for GlobalScape Secure FTP Server.
MAIL - Explicit Mail Charset Settings, IMAP Enhancements
Rebex Mail keeps getting new features as well - the MIME parser should now be able to parse nearly any broken MIME file, unless it is compete garbage. There is also a much-requested DefaultEncoding property for those who need to deal with legacy e-mail clients that don't support our carefully-chosen charsets - this property forces the MIME encoder to try the specified default encoding first before proceeding to the automatic detection. There is a new CreateReply method in the MailMessage class that makes it easier to reply to a message - you just have to fill in the text body, the rest is done automatically for you. We also added experimental support for Russian GOST R 34.10-2001 certificates to Secure Mail - only signature is supported at the moment, and you need CryptoPro CSP provider to be able to use it, but our Russian customers will surely benefit greatly from this feature. In the next release, encryption is going to be supported as well.
IMAP also got two new features - support for IDLE command using a new overload of the CheckForUpdates method, and support for partial message retrieval - this has many possible uses, such as broken transfer resume functionality by downloading large messages by splitting the operation into multiple smaller chunks.
There are also many new features under the hood in our Security component.
Complete List of Changes:
- FTP: Added Bandwidth throttling support - MaxUploadSpeed and MaxDownloadSpeed properties.
- FTP: Added Checksum support - GetSupportedChecksums, CalculateLocalChecksum (static) and GetChecksum methods added.
- FTP/SSL: Added FtpOptions.PauseBeforeUploadClose option to enable workaround for a problem of a missing last data block before SSL data channel close.
- FTP: GetCurrentDirectory enhanced to support another non-standard reply format.
- FTP: Added workaround for severeal MS FTP7 Beta problems.
- FTP: Added FtpOptions.EnableMultipleBlockingCalls option to change the way multiple concurrent calls are handled.
- 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/SSH: Added support for Blowfish and Twofish ciphers.
- SFTP/SSH: Added support for authentication using both username/password and public key at the same time.
- MIME: New CreateReply method added to the MailMessage class.
- MIME: Added workaround for Mac mail that is unable to correctly parse messages with a single root text/html entity.
- MIME: Successive calls to Attachment.ContentMessage property now return the same object.
- MIME: A new constructor overload added to the Attachment class.
- MIME: DefaultEncoding property added - it is used to enforce a specific default charset for mail body and headers.
- MIME: Broken base64-encoded inner messages are now converted to binary attachments during MIME parsing.
- MIME: Added experimental support for GOST R 34.10-2001 certificate signatures.
- MIME: Serialization bug in MimeEntity and MimeMessage was fixed.
- MIME: Added support for broken 'eBay-style' time zones.
- MIME: Support for several kinds of broken MIME-encoding in headers.
- IMAP: ParseUniqueId and BuildUniqueId methods added to ImapMessageSet class.
- IMAP: Added support for partial message retrieval using GetMessage method. This can be used for resuming failed downloads.
- IMAP: Added support for IDLE command through a new overload of the CheckForUpdates method.
- Security: Added experimental support for GOST R 34.10-2001 certificates and GOST R 34.11-94 hashes with CryptoPro (only signing is supported at the moment).
- Security: Added new CertificateIssuer class for certificate creation.
- Security: Added new CertificateChain-based certificate finder.
- Security: Certificate revocation list is now available in EnvelopedData and SignedData classes.
- Security: When the CertificateFinder property is changed in EnvelopedData and SignedData Certificate, the new finder is now immediately used to find any missing certificates.
- Security: Several serialization bugs in EnvelopedData and SignedData classes were fixed.
- Security: Certificate class has a new Extensions property that makes the extension collection accessible.
- Security: Added support for Blowfish and Twofish ciphers.
- SecureSocket: Fixed a bug in the server-side TLS/SSL code that caused a SSL2-style ClientHello message to be parsed incorrectly.
What to expect in the next build? File transfer components will get a directory tree upload and download (a feature that is currently implemented by our ConsoleClient samples). We also plan to release a wrapper classes around FTP/SSL and SFTP components that will provide a unified API for both these protocols, making it easy to use both from your application. Various other inter-component features are also on our list, such as IMAP over SSH. Stay tuned!