v9.5.0.58 Update: New Features, Fixes, Changes, etc.

  • Rest: Added the Rest class.
  • Jwt: Added the Jwt class.
  • AuthAws: Added the AuthAws class.
  • AuthGoogle: Added the AuthGoogle class.
  • AuthAzureAD: Added the AuthAzureAD class.
  • AuthAzureStorage: Added the AuthAzureStorage class.
  • ServerSentEvent: Added the ServerSentEvent class.
  • CertStore: Fixed a memory leak in the LoadPemFile method.
  • Charset: Fixed problems in the VerifyData method having to do with us-ascii and utf-8.
  • C++: Now includes utf16_t classes. Except for certain classes such as CkString and CkByteData, there are three options for each C++ class:
    the multibyte class, the wchar_t class, and the utf16_t class. For example, CkSFtp, CkSFtpW, and CkSFtpU.
  • FTP2: (FIXED) The SyncRemoteTree/SyncRemoteTree2 progress monitoring (event callbacks) were not working
  • FTP2: Added the LargeFileUpload method.
  • IMAP: Added new methods: HasCapability, GetQuotaRoot, GetQuota, and SetQuota.
  • LastErrorText: The Windows logged-on username is no longer automatically logged at the top of every LastErrorText.
    (This was originally done to help w/ support issues so tht Chilkat might notice if the program runs in the context of a Service or IIS, which could be a clue to the cause of certain problems.)
  • SSL/TLS: Internal client-side and server-side renegotiate problems were fixed.
  • FTP2: Backslash chars in paths sent to the server are automatically converted to forward-slashes
  • PrivateKey/PublicKey: Deprecated many methods and added new methods. Originally these classes were for RSA keys, but have since become
    a classes that can contain either RSA, DSA, or ECC keys. Methods with “RSA” in the name were deprecated. Also, methods with confusing names were deprecated and replaced with methods having better names.
  • SFTP: Fixed problems with certain SSH/SFTP servers where certain downloads would hang.
  • TLS: Added support for the SHA512 server key exchange hash algorithm. (See http://www.chilkatforum.com/questions/10395/sslallowedciphers-options)
  • StringBuilder: Added a StringBuilder class, which is more helpful in some older programming languages as opposed to others.
  • Email: Fixed problems with comma characters found in email addresses that are Q/B encoded.
  • JsonObject: Crash bug fixed in the StringOf method.
  • Email: (FIXED) Comma characters embedded in an email address friendly name, such as “Doug, Smith ” would interfere with the parsing of the email address.
  • SFTP: Added the SyncDirectives property.
  • LoadTaskResult: (FIXED) The ActiveX LoadTaskResult methods always returned 0, regardless of success/failure.
  • MHT: (FIXED) Chilkat hangs with specific HTML on calling mht.GetEML. The problem had to do with infinite recursion: The CSS that is downloaded itself contained an import for the same CSS (or indirectly contained an import for a CSS that then contained an import for a CSS that was previously downloaded, causing a loop).
  • Crypt2: The value of the KeyLength property should always be in agreement with the number of bytes of key material provided by the application.
    The SetEncodedKey method correctly has the side-effect of also setting the KeyLength property. However, setting the SecretKey property directly did not also have this desired side-effect.
    This was fixed. If the SecretKey property is set with 16 bytes of data (128 bits) then the KeyLength property is automatically updated to 128.
  • PHP: Added Windows builds for PHP as FastCGI with IIS using the Non-Thread Safe (NTS) versions of PHP. See https://www.chilkatsoft.com/php.asp
  • Tar: Fixed a crash bug in the VerifyTar method (for corrupt/garbage input files).
  • CkDateTime: added the GetAsTimestamp and SetFromTimestamp methods.
  • Email: Fixed issues having to do with structuring an email with multipart/related, multipart/alternative, etc.
  • Ftp2: Regarding the ForceIpAddress property: By default, Chilkat will NOT try to bind the data socket to the IP address specified by the ForceIpAddress property.
    You may use a special “bind-” prefix in the ForceIpAddress property to cause the data socket to be bound to the ForceIpAddress property. For example, put_ForceIpAddress(“bind-80.130.210.228”)
    There was an undocumented feature where you can set the ForceIpAddress property equal to the keyword “control”. In this case, the IP address of the control connection is used.
    Also, Chilkat will now recognize the error message “I won’t open a connection to…”, and will automatically retry using the IP address from the message.
  • Csv: (FIXED) Csv.WriteFile2 did not work with utf-16.
  • CkString (C++): Added getUtf16 and setStringUtf16 methods.
  • IMAP/MailMan: (FIXED) The new format of the IMAP-only unlock code unloced IMAP, but not the MailMan object.
  • AbortCurrent: Added the AbortCurrent property to classes that can have event callbacks.
  • HTTP: Fixed a problem involving HTTP redirect responses in combination with HTTP proxies where both SSL/TLS and non-SSL/TLS URLs are involved.
  • IMAP: Added the capability to handle DIGEST-MD5 authentication for IMAP.
  • HTTP: Fixed problems handling 407 responses. Also fixed behavior when receiving a response with a “proxy-connection:close” header.
  • SshKey: (FIXED) SshKey.FromPuttyPrivateKey() failed if comment contained umlauts. See
    http://www.chilkatforum.com/questions/10082/sshkeyfromputtyprivatekey-fails-if-comment-contains-umlauts
  • JsonObject: (FIXED) Calling json.AddObjectAt on an empty JSON document failed.
  • FTP2: Reverted the Microsoft FTP workaround added to v9.5.0.56.
  • Socket: The non-SSL/TLS HTTP proxy functionality was fixed.
  • SCP: The DownloadFile method did not close the channel.

v9.5.0.56 Update: New Features, Fixes, Changes, etc.

  • Stream: Added a Stream class to be utilized more heavily in the future.
  • StreamConnector: Added the StreamConnector class for .NET to allow for System.IO.Stream’s to be used with Chilkat.Stream. See http://www.example-code.com/csharp/stream_connector_cs.asp
  • Crypt2: Added the EncryptStream and DecryptStream methods.
  • Compression: Added the CompressStream and DecompressStream methods.
  • JSON: Added the JsonObject and JsonArray classes.
  • Zip: Memory leak fixed.
  • Ruby: Added Ruby 2.3 builds.
  • PrivateKey: Fixed: The LoadPvkFile method was not working.
  • SshTunnel: Fixed: Large downloads are now working.
  • Socket: Crash bug fixed. Calling SendString when a socket was already disconnected would cause a crash in some circumstances.
  • SMTP/MailMan: The SmtpSessionLog is changed to no longer log the 1st 2500 chars of the MIME BODY, but to instead just log the size (number of bytes) of the MIME BODY.
  • Email: Very rare crash bug fixed.
  • HtmlToXml: Now avoids using CDATA when HTML entities are encountered. Instead, HTML entity expressed in decimal (or hex) notation, such as ’ are automatically decoded to the char that it represents.
  • PureBasic: A method that returns a string will return an empty string instead of a 0/NULL. Make sure to use the LastMethodSuccess property to check to see if a string method succeeded or failed.
  • Ftp2: The IsConnected and NumFilesAndDirs properties should be avoided. They were already deprecated prior to this version release, but this is another recommendation to avoid these properties. Instead use the CheckConnection and GetDirCount methods.
  • C API: Added callback function pointers to the “C” API.
  • Imap: Fixed: AppendMail. When a nonexistent mailbox was provided, the method would hang until the ReadTimeout expired. Now it returns immediately.
  • Email: Fixed: If only the FromName property was set (and not the FromAddress property, nor the “From” property, then the FromName was getting lost when generating the MIME, such as by calling GetMime. This was because technically the email address is still incomplete/invalid.
  • MailMan: Added the following methods: Pop3Connect, Pop3Authenticate, and ConnectFailReason. The connect + authenticate has traditionally been a single method call (or something that automatically occurs with the 1st method making a request). The Pop3Connect and Pop3Authenticate methods make it possible for an application to do each step separately, which helps for reporting errors more specificallly.
  • SSH/SFTP: Added the EnableCompression property. An old server was discovered that did not correctly handle compression. Chilkat automatically disables compression when the problematic servers are encountered, but if undiscovered old servers have the same problem, this property can be set to work around the problem.
  • Email: Fixed: Emails that have address of the format “CN=abc/O=abc” are not altered in any way. An email address can have any form (not just the standard name@address form).
  • Http: Added the ConnectFailReason property.
  • SshTunnel: Fixed: Problems where the data flow in a tunnel became stuck.
  • Email: Workaround for uuencoded email bodies where the uuencoding starts with a “begin …” line.
  • Encoding: Added the “base64url” encoding to the list of supported encodings. See http://cknotes.com/chilkat-binary-encoding-list/
  • HttpRequest: Fixed: The AddParam method stripped bare CR’s from the value. This does not happen anymore.
  • GitHub: The SMTPQ source code is released to GitHub, along with other example projects, distributions, etc. See https://github.com/chilkatsoft
  • SFTP: Fixed: The ReadDirMustMatch and ReadDirMustNotMatch properties did not work correctly.
  • Crypt2, Mime, Email: The default value of the Pkcs7CryptAlg was changed from “RC2” to “AES”.
  • POP3: Added internal workarounds for older POP3 servers that do not support the UIDL command. (It is extremely rare to find a POP3 server that does not support UIDL.)
  • SMTPQ/MailMan: The Windows-only SMTPQ related methods were fixed. The SMTPQ methods were working correctly in v9.5.0.54 and earlier, but a problem was inadvertently introduced in v9.5.0.55.
  • Unicode C++: Fixed: The LastMethodSuccess property was not getting set.
  • Mime: Fixed: Removed “email address cleaning” from CkMime. The MIME header was run through email-specific processing logic to clean/ensure well formatted email addresses. This should not have been done for the general-purpose MIME API.
  • Email: Fixed a SetHtmlBody problem. See http://www.chilkatforum.com/questions/9536/change-html-body-in-a-multipartrelated-mail
  • HttpRequest: Added the StreamChunkFromFile method.

v9.5.0.55 Update: New Features, Fixes, Changes, etc.

  • Crypt2: Added the chacha20 and Poly1305 Message Authentication Code.
  • Crypt2: Added AES GCM encryption.
  • Zip: Fixed a problem with OpenZipAsync where the 1st call would succeed, but subsequent calls would fail.
  • Email: Email.SaveXml did not save BCC recipients.
  • Crypt2 (blowfish): When Chilkat originally implemented blowfish (more than 10 years ago), there was a problem having to do with byte-ordering. The solution was to name the fixed blowfish as “blowfish2”. When the CryptAlgorithm is set to “blowfish2”, Chilkat produces results that match published test vectors, and this has been the case for 10 years. The original “blowfish” was kept in place to avoid breaking existing applications. Version 9.5.0.55 removes the original “blowfish”. Applications using the original “blowfish” (i.e. not “blowfish2”) should stay at v9.5.0.54, or better yet, update to use “blowfish2”.
  • OmaDrm: The OmaDrm class was removed. Nobody ever used it and it just took up space.
  • Encryption: All existing Chilkat Crypt2 symmetric block encryption algorithms: aes, blowfish2, twofish, chacha20, 3des, rc2, and des now support both OFB and CFB cipher modes. To use OFB or CFB modes, simply set the Crypt2.CipherMode property equal to “ofb” or “cfb”.
  • Ftp2/Socket: The following fix applies to the WinRT/Universal Windows Platform only: A bug having to do with accepting socket connections was fixed. This fixes Active-mode FTP2 data transfers because in Active mode, the client-side accepts the data connection from the server.
  • Email: Fixed: When a new email is created, if an attachment is first added prior to calling SetHtmlBody, the resultant email did not have the correct MIME structure.
  • SslAllowedCiphers: All Chilkat classes that can do SSL/TLS communications have an SslAllowedCiphers property. This property was enhanced to allow for individual cipher suites to be listed. An application can now explictly list the cipher suites it will accept.
  • HttpResponse: Fixed: The HttpResponse.LoadTaskResult always returned false/0, even when successful.
  • Cert: Fixed: When loading a certificate from a PFX/.p12, the issuer CN (common name) for some certs was not getting set.
  • SFTP: The ResumeUploadFileByName method was improved. When the remote file does not already exist, then Chilkat will open with writeOnly/createTruncate instead of readWrite/openOrCreate. This avoids problems with some servers. (On most servers, the original behavior posed no problem.)
  • SSL/TLS: Enhancement: If the keyword “secureRenegotiate” is included in SslAllowedCiphers, then
    renegotiating the TLS security parameters MUST be done securely (as per RFC 5746).
  • Http: Added two new properties: KeepResponseBody and LastResponseBody. For any HTTP method that does not return an HttpResponse object, then if KeepResponseBody is true, and if the response is text (not a binary response such as JPG data..), then the response body is saved to LastResponseBody.
  • HTTP/S3: The S3_UploadBytes method was improved to fix issues relating to large uploads over TLS.
  • PRNG: The RandomPassword method was fixed. See http://www.chilkatforum.com/questions/9233/prngs-randompassword-randomly-fails-to-include-required-characters
  • IMAP: The ListSubscribed method was fixed. See http://www.chilkatforum.com/questions/9434/why-listmailboxes-and-listsubscribed-returns-all-folders
  • Encoding: A new Chilkat encoding named “fingerprint” was added. The “fingerprint” encoding is lowercase hex with each byte separated by a colon character. See Chilkat Binary Encodings
  • TLS Pinning: Added TLS pinning functionality. TLS pinning is available for any Chilkat class that communicates via TLS, such as for Socket, Http, Ftp2, MailMan, Imap, etc. All of these classes now have a TlsPinSet property.
  • Cert: Added the Cert.SpkiFingerprint property to help implement TLS pinning.
  • Http: Fixed low-probability Proxy-Authorization: Basic error that could occur when non-usascii chars are used in the password.
  • HttpRequest: Added the HttpRequest.StreamChunkFromFile method.
  • Emoji Chars: Fixed problem handling emoji chars. Note: Emoji chars can only be represented by ucs4 (4 bytes per char). Some programming language environments, such as ActiveX, are limited to ucs2 (2 bytes per char) and therefore cannot support ucs4 chars passed back-and-forth between the app and the ActiveX.

v9.5.0.54 Micro Update: New Features, Fixes, Changes, etc.

  • Email: Fixed: Setting the Email.From property *after* setting the Email.BounceAddress property would have the side-effect of overwriting the BounceAddress property.
  • SFTP: Fixed rarely encountered flow problems with a particular SSH server.
  • Zip: Fixed: Error in rewriting a ZIP64 zip (larger then 4GB or having more than 65536 files). There was an error when a large zip was opened, potentially modified, and rewritten.
  • Mono: Mono DLL on Windows fixed to use stdcall calling convention instead of cdecl.
  • PureBasic: Fixed the Windows 32-bit problem (which had to do with stdcall vs. cdecl calling conventions.
  • Mono: Added instructions for using Mono in Visual Studio here: Using Mono in Visual Studio
  • IMAP: Fixed minor problems in parsing BODYSTRUCTUREs from certain IMAP servers for certain emails.
  • HTTP: The SynchronousRequest method was sending “Content-Length: 0” header with GET requests. This should be harmless, but some servers did not react so kindly. The Content-Length header is now suppressed for GET requests sent via SynchronousRequest. (Note: SynchronousRequest is not typically used for GET requests..)

v9.5.0.53 Micro Update: New Features, Fixes, Changes, etc.

The 9.5.0.53 release was a partial release. Not all programming language / operating system / architectures were updated with this release. A full v9.5.0.54 release will be out shortly.

  • TAR: WriteTar mistakenly returned true if output file could not be opened/created.
  • XMP: Fixed: XMP issue reading some TIF images with IPTC metadata.
  • FTP2: Fixed problem described here: FTP hangs when already received close-notify when server shuts down.
  • ActiveX: The LastStringResultLen property is added to each Chilkat class. This is helpful for certain programming languages such as DataFlex or SQL Server where the size of the string returned may need to be known before using it.
    Each Chilkat ActiveX object has its own LastStringResult and LastStringResultLen properties. The KeepStringResult is a property of Chilkat.Global only. (It may be confusing that Chilkat.Global also has a LastStringResult property — but this is just like any other object..)

    Therefore, your code would set Global.KeepStringResult once at the beginning of your code.
    Let’s say you have an HttpResult object, and you want the BodyQP. You would access the BodyQP, but ignore the string returned.
    Then examine the HttpResult.LastStringResultLen, adjust your max string length (in DataFlex) if necessary, and then get the cached string from HttpResult.LastStringResult.

  • Zip: The WriteExe method was fixed for cases where a contained file is extremely large.
  • TLS: A fix was made for some sitatuions where a server immediately wishes to renegotiate after connecting.
  • SSH: The SSH Rekey handling for certain host key algorithms was fixed.
  • StringArray: Fixed: GetStringLen returned the size in bytes of the utf-8 representation instead of returning the length in characters.
  • FTP2: Will auto-retry using the opposite of the PassiveUseHostAddr property setting in certain situations.

v9.5.0.52 Micro Update: New Features, Fixes, Changes, etc.

  • Java (including Android): Added event callback capabilities for progress monitoring.
  • Async: Added asynchronous functionality for all qualifying methods across all programming languages, operating systems, and architectures. Each Chilkat method that can potentially be time-consuming or involve network communications, now has a corresponding asynchronous version of the method with the name ending in “Async”.
  • Ecc: Added a new Ecc class for elliptical curve cryptography.
  • Prng: Added a new class for secure random number generation using the Fortuna algorithm.
  • Task, TaskChain: These new classes are part of the async functionality.
  • Socket: Fixed: The session log did not included data received from the ReceiveUntilMatch method.
  • Email: Fixed: The Email.GetTo method returned Q/B encoded (if 8bit) instead of automatically decoding (as was the behavior in prior versions).
  • FTP2: Added the DataProtection property.
  • All: Added the LastMethodSuccess property.
  • Certs:Fixed: The root certs explicitly trusted via the TrustedRoots class were not being used by the VerifyCert method.
  • FTP2: Fixed the Quote method.
  • MailMan: Fixed: When the EMail.From is updated, the next email sent did not use it in the MAIL FROM.
  • SQL Server/ActiveX/Global: Added the KeepStringResult and LastStringResult properties to the Global object for ActiveX. This allows for an ActiveX running in the SQL Server environment to access large string return values via temp tables.
  • Xml: The AccumulateTagContent now allows an app to pass “*” or empty string to accumulate the text for any tag. This is one way to implement the innerText HTML function.
  • MailMan: Fixed the VerifySmtpLogin method.
  • Global: Added the Chilkat.Global.DefaultNtlmVersion property. The default NTLM protocol version is 2. It may optionally be set to 1. This determines the version of the NTLM protocol used by SMTP, HTTP, IMAP, POP3, and HTTP proxies whenever NTLM authentication is used.
  • Ssh/SFtp: Added the AuthFailReason property.
  • Zip: Fixed the AppendFiles method for non-Windows implementations.
  • Socket: Fixed and improved the ConnectFailReason/AcceptFailReason properties.
  • CkString: Added punycode encoding/decoding methods.
  • IMAP: Fixed rare BODYSTRUCTURE parsing issues w/ particular emails from inbox.com.
  • CkStringArray: Added the ReplaceAt method.

v9.5.0.51 Micro Update: New Features, Fixes, Changes, etc.

  • Scp: Added the Scp class (CkScp, Chilkat.Scp, CkoScp, etc.) for SSH Secure Copy.  The Scp class is included as part of the SSH/SFTP license.
  • Hashtable: Added the Hashtable class (CkHashtable, Chilkat.Hashtable, CkoHashtable, etc.)   This is a freeware supporting/utility class.  Chilkat understands that more complete Hashtable implementations may be available in specific programming language environments.  However, there are some environments with no good Hashtable functionality.  In addition, having a Hashtable class allows for Chilkat to use it as input args and return values for future methods.
  • Http: Added the G_SvcOauthAccessToken2 method (which happens to have an argument of type Hashtable).
  • SFtp: mode 3 of the SyncRemoteDownload and SyncRemoteUpload methods was fixed.
  • HTTP proxy: Applies to any Chilkat class with HTTP proxy capabilities: Fixed issues related to using HTTP proxes for non-HTTP protocols where SSL/TLS is not used.
  • SSL/TLS: 128-bit ARC4 is re-enabled by default. Too many sites required it and disabling the algorithm caused too many failures resulting in support issues. The SslAllowedCiphers property can be used to disallow 128-bit ARC4 if needed.
  • FTP2: The control/command connection is maintained (if possible) when an upload or download is aborted. Previously, a file transfer aborted by an application event callback caused the command connection to also be aborted.
  • CSV: Fixed problems relating to empty cells, such as when setting the 1st column in a new row to an empty string.
  • Socket: The Connect method’s maxWaitMs argument was being ignored and the method would always wait a max of 30 seconds. This was fixed.
  • SFtp/Ftp2: Added the SyncedFiles property to allow applications to get a list of files that were transferred during the last directory synchronization method call.
  • TCP related: Fixed a case internally where creating a socket resulted in this error: SocketError: WSAEPROTOTYPE The specified protocol is the wrong type for this socket.
  • Ftp2: Fixed the AsyncAbort method.

v9.5.0.50 Micro Update: New Features, Fixes, Changes, etc.

  • VC++ 2015: Chilkat C++ libs are now available for the Release Candidate (RC) of Visual Studio 2015.
  • CkSettings/CkDateTime: CkSettings and CkDateTime were not visible in Linux, Mac OS X, and other non-Windows C++ libs (but only in the shared lib).
  • SFTP: Fixed certain problems relating to the download of large files for some types of SSH servers.
  • Python: Ensures that the Python global interpreter lock (GIL) is released and re-aquired so that other program threads are not stopped.
  • FTP: Problem fixed relating to some FTP servers in establishing the data connection w/ SSL/TLS.
  • MailMan: The MxLookup methods were missing from non-Windows Perl, Java, Python, Ruby, and PHP.
  • Pem: Added the GetEncodedItem method and the NumCsrs property.
  • FTP2: Added AllowMlsd, GetPermType, GetPermissions, GetOwner, and GetGroup.
  • Socket: Fixed server-side accepting of SSL/TLS connections.

v9.5.0.49 Micro Update: New Features, Fixes, Changes, etc.

  • Encoding: Added Base58 encoding as an additional choice for all places where an encoding (such as “base64”, “hex”, etc.) can be selected.
  • Crypt2: Beware of using the GenEncodedSecretKey method — just after v9.5.0.49 was released, it was discovered that this property ignored the encoding (such as “base64” or “hex”) of the 2nd arg and instead followed the encoding as specified by the Crypt2.EncodingMode property. Applications can work around the problem by setting the EncodingMode property prior to calling this method.
  • Perl v5.20: Fixed the “undefined symbol: PL_stack_sp” error.
  • Email: The From property returned the name part undecoded if Q/B encoding was present.
  • RSA: Fixed the LittleEndian property behavior for encryption/decryption.
  • Http: Fixed the FinalRedirectUrl property.
  • Url: Added the Chilkat.Url class.
  • Global: Added the Chilkat.Global class.
  • TLS: Added the TlsVersion and TlsCipherSuite properties to Socket, HTTP, Ftp2, MailMan, Imap.
  • Email, MHT: UnpackUseRelPaths was ignored for Email.UnpackHtml and Mht.UnpackHtml.
    It was always unpacked to relative paths. (The Email.AspUnpack methods, however, must always have relative paths in the URLs within the HTML.)
  • FTP2: FTP resume/restart percent-done progress monitoring fixed.
  • PrivateKey: Added the Pkcs8EncryptAlg property.
  • FTP2: Fixed GetFile percent-done progress monitoring when restarting a download: did not start at, for example, 20%, and then progress to 100..
  • RSA: Now supports 8192 bits.
  • BandwidthThrottle: Added the BandwidthThrottleUp/Down properties to HTTP, SFTP, Socket, and Upload .
  • Upload: The BeginUpload and AbortUpload methods were missing in the Mono, PureBasic, “C” and other API’s.
  • PercentDone: Added PercentDoneScale property to FTP2, Http, Tar, Zip, SFtp, MailMan, Imap, Upload.
  • MailMan: Added the SmtpPipelining property.
  • Cert: Added the LoadPem method.
  • Socket: Added the ReceiveFailReason and SendFailReason properties.
  • RSA: The XML representation of the keys will now omit leading 0 byte if it exists. (Each part of the private key is a very large unsigned integer. When the most significant bit is 1, Chilkat previously prepended a 0 byte to make it non-negative. In hex representation, this would be obvious to see. However, in Base64 representation, an extra null byte at the beginning changes the Base64 string completely, and therefore looks different than the same key encoded without the leading 0 byte. To clarify: suppose you have the number 15. This could be represented as a single byte 0x0F. It could also be represented by 0x000F. Any number of leading zero bytes does not change the number.)
  • Zip: Fixed problem where backslashes in paths were not automatically getting converted to forward slashes.
  • HTTP: Fixed problem where client cert (set via the SetSslClientCert methodd) was not getting sent.
  • IMAP: The Imap.AuthMethod may now be set to “NONE”. This was needed in one case where the authentication was implicit with the client-side SSL/TLS cert. If set to “NONE”, then the Login method call may be omitted.
  • TLS(internal): SHA384/RSA added to TLS 1.2 signature algorithms extension. One particular server required it (but didn’t actually choose the algorithm in the handshake).
  • FTP2: Now uses MLSD in cases where it previously used LIST (when possible and when supported by the FTP server).
    (MLSD can only be used when ListPattern is empty or “*”, or “*.*” because only the LIST command accepts an argument.)
  • FTP2: The GetFile returned false when it should’ve returned true (in some cases).
  • IMAP: Fixed the AppendMail method: If the email date was in the 1st 10 days of the month, then the InternalDate format was using 1 char for the day (in the IMAP command) instead of 2 chars, which caused some types of servers to respond with an error.
  • EmailBundle: Fixed GetXml/SaveXml methods.
  • MHT: If a cache root is added, MHT will save a part to the file cache.
  • Socket: Added the KeepAlive property.
  • HttpRequest: Fixed RemoveParam method crash bug.
  • FTP2: UploadRate/DownloadRate events stopped at 4GB.
  • CertStore: Added the OpenWindowsStore method.
  • Http Proxy: Non-SSL/TLS HTTP proxy connections were trying to use CONNECT.
  • Http: Added the StreamResponseBodyPath property.
  • HttpRequest: Added the Boundary property. Allows an explicit boundary string to be specified for multipart/form-data requests (uploads).
  • HttpResponse: Fixed the cookie related properties and methods.
  • SFTP: Fixed mode 99 for the SyncDownloadTree method.
  • SFTP: Fixed the SyncDownloadTree method regarding certain decisions about whether to download newer files.
  • EmailBundle: Fixed the GetXml and SaveXml methods.
  • FTP2: Parsing for VxWorks / Wind River directory listings fixed.
  • Email: Fixed the ApUnpack and AspUnpackk2 methods.
  • DNS: Added DnsCaching capabilities in the new Chilkat.Global / CkGlobal class.
  • MailMan: Added the AutoUnwrapSecurity property.
  • Cert: Added the Cert.GetExtensionsAsXml method.
  • Asn: Added the new Asn class to provide an ASN.1 API.
  • Pem: Added the new Pem class.
  • MHT: Fixed: MHT was adding double-quotes to certain Content-Location URLs causing a mismatch between the URL in the HTML and the URL in the MIME sub-header.
  • SMTP: The internal automatic retry from EHLO to HELO did not work. If the SMTP server did not support EHLO, then EHLO was mistakenly tried a 2nd time instead of HELO.
  • MailMan: Added the ClientIpAddress property.