The v22.214.171.124 release notes are available here: Chilkat v126.96.36.199 Release Notes
v188.8.131.52 Release Notes:
Version 184.108.40.206 is virtually the same as 220.127.116.11, but with one important bug fix in the JsonOjbect.UpdateString method that warranted a new release. Some additional methods were added to JsonObject and Http to help in handling potentially large amounts of data.
- JsonObject.UpdateString — The passed-in string was not being JSON escaped like it was for JsonObject.AppendString. This would cause problems for non-usascii chars, or certain special chars that need to be escaped, such as double-quotes, LF’s, CR’s, etc.
- JsonObject: Added the following methods: StringOfSb, BytesOf, UpdateSb, and UpdateBd. The need for these methods became apparent when writing examples for Microsoft Graph / Outlook. The purpose of the methods is to access a potentially large amount of data within JSON without needing to pass the data back/forth in arguments or return values. Passing StringBuilder or BinData object references is far more efficient than passing the actual data.
- Http: Added the PostJson3 method. This is the same as PostJson2, except rather than passing the JSON as a string (which could be a potentially large string), we simply pass the JsonObject reference.
The v18.104.22.168 release notes are available here: Chilkat v22.214.171.124 Release Notes
v126.96.36.199 Release Notes:
- HTTP: Fixed a problem when auto-following redirects from HTTP to HTTPS. If the cached connection existed for long enough, and the server closed the connection at some previous point, then the redirect would fail.
- SFtp: Added the FileExists method.
- HTTP: Fixed redirects requiring an authentication header. Chilkat automatically removes the Authorization header when automatically following a redirect. This caused problems for redirects within the same domain where the Authorization is needed. Chilkat now removes the Authorization header if the redirect is to a different domain, but keeps it if the redirect is within the same domain.
- Spider: Fixed the AddMustMatchPattern method.
- BinData: Added the GetString method.
- Mime: Added the GetBodyBd method.
- Email: Added the GetAttachmentBd and GetAlternativeBodyBd methods.
- Gzip: Added the CompressBd and UncompressBd methods.
- Email, Crypt2, Mime: Added the OaepPadding and OaepHash properties.
- Tar: Fixed a problem caused when a file to be added to the .tar is exactly 4294967295 bytes in size (which made the file size look like -1 when the 4-byte integer is interpreted as a signed integer).
- JsonObject: Added new methods: EmitWithSubs, Predefine, LoadPredefined.
- Http: Added the AuthToken property.
- Http: Added the SetUrlVar and ClearUrlVars methods.
- HtmlToXml: Better handles HTML with unclosed tags in certain situations.
- Http: For keepalive connections, fixed the internal auto-recovery (in certain situations) if the connection is discovered broken upon sending the request. For example, if a request/response occurs and the connection is keep-alive, then time passes, the HTTP server closes the connection, and the client (your app) sends the next request. Chilkat will discover the connection is non-existent and will automatically re-connect.
- SFtp: Fixed the ReadFileBytes method for the case where one tries to read more bytes than what exists in the remote file.
- Ssh: Added the StripColorCodes property.
- Added the “base64_mime” to the list of possible encodings. This is the same as “base64”, but causes the base64 to be emitted in lines just like it would be found in MIME or in a PEM.
- Crypt2: Added the following BinData/StringBuilder methods: VerifySbENC, VerifyBdENC, SignSbENC, SignBdENC, OpaqueVerifyBd, OpaqueSignBd, EncryptSb, EncryptBd, DecryptSb, DecryptBd.
- Added RSASSA-PSS and RSAES-OAEP capabilities for signed and encrypted email. This was spurred by customer needs to satisfy new requirements in Germany that apparently go into effect on 1-June-2017 regarding email signatures and encryption.
- Apple tvOS: Added a build for tvOS.
- ZipEntry: Added methods UnzipToStream, UnzipToBd, and UnzipToSb.
- Stream: Added methods ReadBd, ReadSb, WriteBd, WriteSb
- NTLM Proxy Authorizations: Fixed some HTTP NTLM proxy authorization issues, especially when TLS is involved.
- Ftp2: Added the GetFileToStream method
- CkDateTime: Added the ExpiresWithin and OlderThan methods.
- OAuth2: Added the Resource property.
- JsonObject: Added the AppendStringArray property.
- MailMan: Added the StartTLSifPossible property.
- PublicKey: Added the KeySize property.
- VC++ 7.1: Added a build for VC++ 7.1.
- Tar: Fixed the “Invalid octal string for file size” error.
- JsonObject: Added the FindObjectWithMember method.
- Certificates: Chilkat now fully supports ECC certificates in all ways.
The v188.8.131.52 release notes are available here: Chilkat v184.108.40.206 Release Notes
v220.127.116.11 Release Notes:
- Added the Jwe and Jws classes for JSON Web Encryption and JSON Web Signatures.
- The CkDateTime.SetFromOleDate method was not working correctly. It has been fixed, and the fix will appear in the next version to be released after v18.104.22.168.
- The CkDateTime.GetAsIso8601 interpreted the “bLocal” argument as the opposite. This has also been fixed and the fix will appear in the next version to be released after v22.214.171.124.
- MHT — Images with embedded data, where the IMG SRC tag looks like this: “<img src=”data:image/jpeg;base64,/9j/4AAQ …”> were getting dropped. This is fixed.
- Added the Http.S3_GenerateUrlV4 method to generate pre-signed AWS URLs using the Authenticate V4 signing method.
- Added Compression.CompressBd and DecompressBd methods to compress/decompress the data contained in a BinData object.
- Added PublicKey.GetJwk and PrivateKey.GetJwk to get public/private keys in JSON Web Key format.
- Added Crypt2.AesKeyWrap and Crypt2.AesKeyUnwrap methods.
- Added SFtp.SendIgnore method.
- Fixed exporting ECC private keys from PFX to other formats.
- Added the Zip.OpenBd and Zip.WriteBd methods to open from a BinData object, and to write to a BinData object.
- Fixed issue with contents of Ftp2.LastReply property when an intermediate response is the cause of failure.
- Improved performance for SFTP, FTP, and HTTP data transfers.
- Added the Email.NumDigests property, and the Email.GetDigest method.
- Fixed AWS Signature V4 issues for some cases when query params are used with S3.
- Fixed the FileAccess.GetFilenameWithoutExtension method.
- Fixed the Ftp2.Ccc method.
- Fixed the Email.GetDeliveryStatusInfo method for certain cases where the body of information contained multiple blank lines.
- Improved Xojo download so that Mac OS Carbon is supported.
- Fixed MailMan.VerifySmtpLogin so that it returns true if the SMTP server requires no authentication.
- Fixed Email.AddFileAttachment2 for the case when an attachment is the text/plain Content-Type.
- Added automatic HTTP TLS session re-use (if possible) for HTTP connections.
- Fixed various property getters/setters so they do not block (hang) when an async method is in progress.
- Added support for chacha20 ciphers in TLS and SSH.
- SshTunnel – Significantly improved the background tunnel management threads.
- JsonArray.TypeAt – Discovered that this method erroneously always returns the value 4. This is fixed.
- JsonObject – Added new methods: UpdateNumber, UpdateNull
- Bug Fix: .NET Async Methods that pass in Byte Arrays There was a memory leak specific to async .NET methods that pass in byte arrays. See Byte Array Memory Not Freed for .NET Async Methods
- Socket: Added new methods: SendBd, SendSb, ReceiveBd, ReceiveBdN, and ReceiveSb. These are for sending/receiving directly from/to BinData and StringBuilder objects.
- JsonObject: Added new methods: UpdateNull and UpdateNumber.
- StringBuilder: Added AppendLine method.
- FTP2: Fixed: The following FTP2 methods returned the current date/time instead of NULL for failure: GetLastAccessDtByName, GetLastModDtByName, GetCreateDtByName, GetLastAccessDt, GetLastModDt, GetCreateDt. The methods now correctly return NULL (i.e. 0, null, Nothing, etc.)
- MailMan: Fixed the GetHeaders method. The fromIndex and toIndex arguments are inclusive. For example, if getting headers for emails 1 to 10, then 11 emails should be returned (assuming the mailbox has at least 11 emails). The fix had to do with the case when the fromIndex = 0. If fetching emails 0 to 2, then only 2 emails were returned. This is now fixed. Fetching 0 to 2 should return 3 emails.
- Crypt2 (PBES2) — When setting the CryptAlgorithm = “PBES2”, Chilkat was doing PBES1 encryption. This problem started sometime after v126.96.36.199. This is now fixed.
- Added the CkDateTime.DiffSeconds to get the difference in seconds between two CkDateTime objects.
- Fixed auto-create issue in JsonObject.UpdateString, UpdateInt, etc. for array paths that end in a primitive. For example the following C++ code
std::cout << json.emit() << "\r\n";
Now correctly produces:
- Turned on TCP_NODELAY socket option for HTTP. See http://www.chilkatforum.com/questions/11570/http-is-slow
- Updated C++ headers to avoid QT’s “emit” macro. QT defines the word “emit” as a macro, and Chilkat’s JsonObject and JsonArray classes both have an “emit” function. QT’s macro definition causes compile failures for any C++ source that uses any variable, function, etc. named “emit”. To avoid the macro definition, Chilkat does the following:
const char *emit(void);
const char *emit(void);
- Added the “eda” encoding for UN/EDIFACT Syntax Level A. See https://www.example-code.com/csharp/edifact_eda_syntax_level_A_encoding.asp. Also see: http://cknotes.com/chilkat-binary-encoding-list/
- Added new methods to CkDateTime: AddSeconds, GetAsUnixTimeStr, GetAsIso8601.
- Added the AuthAzureSAS class. (For Shared Access Signature authorization)
- Added the Rest.SetAuthAzureSas method. (For Shared Access Signature authorization)
- Fixed Rest.AddQueryParams (note that this is the plural: AddQueryParams method, not AddQueryParam). If values in the param string were URL encoded, the AddQueryParams did not properly URL decode each value. This would result in query params being doubly URL encoded when the actual request was sent.
- Added Crypt.BcryptWorkFactor, BCryptHash, and BCryptVerify to support BCrypt password hashing and verification.
- Fixed an Android issue w/ IMAP ProgressInfo callbacks. The problem only occurred when a ProgressInfo callback happened for Login where the username includes a non-usascii char, such as one with an umlaut.
- Socket.TlsRenegotiate — fixed a problem that occurred under certain conditions when the SslAllowedCiphers property is set to restrict TLS cipher suite choices.
- Ftp2 – Fixed problem with “Unix Cway” servers where 0-byte files were getting downloaded (instead of the full file). This was caused because the FTP server inaccurately reports that the file is “0 bytes” in the intermediate reply to the RETR command. Chilkat now ignores what this particular server says.
- (Email) Fixed: An incoming email’s header specifies the sender as this:From: "FAXG3/+5554555920"@faxsrv.intraThe email is loaded into a CkEmail object using the C++ edition of Chilkat.Problem is, the CkEmail.get_FromAddress() method returns @faxsrv.intra as the email address instead of FAXG3email@example.com
- ActiveX LastStringResultLen property incorrectly returned the size of the string in bytes (utf-16) rather than in number of characters. This is fixed to return the number of characters. (Note: this is a property that only exists in ActiveX classes, and is only useful for certain programming languages such as SQL Server to help programs determine if temp tables are required..)
- SSH – Added the following methods: QuickShell, QuickCommand, QuickCmdSend, and QuickCmdCheck. These methods help simplify executing remote commands running shell sessions.
Starting now, Chilkat is going to log the changes, fixes, and new features for the next release as the work is completed. Pre-release builds can be requested for most programming languages and operating systems. Many builds are quick and easy to provide: .NET, ActiveX, C++, Java, Perl, Python, PHP, and others. Some however, are time-consuming and a request for one of the following builds may take as many as several days: WinRT, Node.js, Mono, Xojo, PureBasic, and .NET Core. Send email to firstname.lastname@example.org if a pre-release build is desired.
(Chilkat is currently working on implementing Xero API examples, and many of the new features are related to making life easier to implement these examples. The new features are general and apply to any programming task. )
Version 188.8.131.52 is a new version that almost immediately follows v184.108.40.206. It will only be released for a few programming languages (ActiveX, .NET, Delphi, and Excel). Chilkat will provide this release in other programming languages / operating system upon request.
The reason for releasing is that Chilkat wishes to create Quickbooks REST API examples, and it was discovered that the Quickbooks server-side is unable to consume HTTP requests that use MIME header folding. Therefore, Chilkat added an AllowHeaderFolding property to both the Http and Rest classes.
There were a few other very minor fixes / additions:
- Added the Email.AddAttachmentBd method.
- Added the Http.DownloadBd and http.DownloadSb methods. (See the previous release notes for information about “Bd” and “Sb” methdos: http://cknotes.com/v9-5-0-62-release-notes/ )
- Made the Http.RequireSslCertVerify method more flexible in handling out-of-order certs from a web server. See http://www.chilkatforum.com/questions/11402/certificate-order-issue-enhancement