v18.104.22.168 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 22.214.171.124 removes the original “blowfish”. Applications using the original “blowfish” (i.e. not “blowfish2”) should stay at v126.96.36.199, 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.