The v9.5.0.76 release notes are available here: Chilkat v9.5.0.76 Release Notes

v9.5.0.77 Release Notes:

  • Email: The NumRelatedItems property was 1 too large in some cases.
  • Bz2: PercentDone callbacks were not working.
  • MailMan: If the connection is idle for 1 minute or more, the next email sent will automatically use a fresh connection. (When a method to send email is called, such as SendEmail, the connection is kept open for the possibility that another call to SendEmail can use the same open connection. Quite often, the server disconnects from an idle connection and the next call to SendEmail fails. This new behavior eliminates this possibility (for the most part). Applications can always explicitly close the SMTP connection by calling CloseSmtpConnection.)
  • Objective-C on MacOSX, iOS, watchOS, and tvOS: Non-english directories were not created properly (specifically Japanese chars were the test case, but the problem certainly existed for all non-English chars). This caused methods such as Unzip to not work correctly.
  • Xml: Added the following methods and properties: GetChildAttrValue, TagUnpEquals, TagNsEquals, TagUnprefixed, and TagNsPrefix.
  • StringBuilder: Added the following methods: GetBefore, RemoveBefore, GetAfterFinal, RemoveAfterFinal, and ReplaceFirst.
  • Rest: Added the DebugMode property and the GetLastDebugRequest method. This allows for an application to get the exact request sent in the last call to a FullRequest* or SendReq* method.
  • Scp: If an upload succeeds, but the only failure is in setting the remote file time, then the method will return success rather than failure.
  • Email: CreateReply did not automatically drop attachments in the reply email that is returned.
  • Http: For methods that return an HttpResponse object, if the response status code was >= 400, the response body (if it exists) was not contained in the responseObject.BodyStr property. Now it is.
  • SFtp: The SFtp.SyncedFiles property contains a list of files (one per line) uploaded or downloaded in the last call to SyncTreeUpload or SyncTreeDownload. For SyncTreeDownload, this list can also include local directories that were created. Starting in v9.5.0.77, the local directory entries will end with “/” to signify a directory.
  • BinData: Added the following methods: AppendByte, AppendInt2, AppendInt4.
  • Imap: The HasCapability method returned an incorrect answer if the capability in question was the last one listed in the IMAP server’s capability response and a CRLF followed. For example, querying for “QUOTA” — if the capability string ends with “QUOTA\r\n”, such as “* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS …. SPECIAL-USE QUOTA\r\n”, then HasCapability would return False/0.
  • Ftp2: In certain circumstances, when re-connecting using the same Ftp2 object instance, Chilkat would try to use SSL/TLS for the data connection for a case where it should not. This is fixed.
  • Xml: Fixed: LoadXml with autoTrim=false would introduce an extra leading SPACE character in the content. For example: <a>{SPACE}123</a> would become <a>{SPACE}{SPACE}123</a> (where {SPACE} represents a single SPACE char). This would only happen to nodes with a leading SPACE char in the content. For example, <a>123</a> would be unaffected.
  • Xml: Added the RemoveStyleSheet method.
  • OAuth2: Added the SetRefreshHeader method.
  • Socket: Added the SendWakeOnLan2 method to send a WakeOnLan (WOL) with a SecureOn password.
  • Crypt2, MailMan, Mime: Potential crash bug fixed for C/C++ builds. LastJsonData did not return a copy of the internal CkJsonObject, but rather returned the actual instance. Thus deleting the returned CkJsonObject would result in a double-delete of the same object.
  • XmlDSigGen: Added the “IssuerSerialHex” and “IssuerSerialHexLower” behaviors (to the Behaviors property) to emit hex issuer serial numbers instead of decimal in the SignedProperties.SignedSignatureProperties.SigningCertificate.
    Also, when signing content for “e-dokumenty.mf.gov.pl”, Chilkat will automatically recognize that IssuerSerialHex is required and will do it automatically.
  • Rest: The ClearAuth method did not clear the login/password set by the SetAuthBasic method. This is now fixed.
  • XmlDSigGen, XmlDSig: Fixed a bug in XML canonicalization. This problem occurred when the default namespace is defined at the root node, and exclusive canonicalization (EXCL_C14N) is used, and a fragment is canonicalized where no usage of the default namespace exists and non-qualified attribute names were used. (It is a situation that is not common and therefore was not noticed for quite some time.)
  • Http: Fixed the AddMwsSignature method. The “/” char in params did not get URL encoded to “%2F” as they should be.
  • (5-Feb-2019) Crypt2: Added the following methods: EncodeInt and Hotp. EncodeInt writes an integer value to N bytes (big-endian or little-endian) and returns the bytes as an encoded string, such as hex, base64, etc. Hotp implements the HMAC-Based One-Time Password Algorithm described in RFC 4226.
  • (5-Feb-2019) Crypt2: Added the Totp method, which implements the TOTP Time-Based One-Time Password Algorithm specified in RFC 6238. This is the algorithm used by Google Authenticator.
  • (5-Feb-2019) JavaKeyStore: Added the LoadBd method.
  • (6-Feb-2019) Scp: The DownloadFile, DownloadString, and DownloadBinary methods did not succeed if the remote filename contained a SPACE char.
  • (6-Feb-2019) Scp: Added the DownloadBd and UploadBd methods.
  • (6-Feb-2019) Rsa: Added the following methods: OpenSslSignBd, OpenSslVerifyBd, SignBd, VerifyBd.
  • (7-Feb-2019) SFtp: Fixed a problem in InitializedSftp for some servers. The InitializeSftp method would timeout and fail. It was caused when a server sent unanticipated “extended data”, which was incorrectly processed as a response to a different message.
  • (10-Feb-2019) FileAccess: Added the following methods: FileType, SymlinkCreate, and SymlinkTarget.
  • (12-Feb-2019) Pem: Added the NumCrls property. The PEM class is now capable of handling CRLs, such as sections starting with “BEGIN X509 CRL”. The “crl” itemType can be passed to GetEncodedItem to get the Nth CRL in the PEM.
  • (12-Feb-2019) Asn: Added LoadBd and WriteBd methods.
  • (12-Feb-2019) CkDateTime.SetFromTimestamp: Added the ability to also parse date/time strings formatted as “YYMMDDhhmmssZ”, such as “181221132225Z”.
  • (12-Feb-2019) Socket: Fixed AcceptNextConnection, which did not abort when a separate thread sets the AbortCurrent property.
  • (14-Feb-2019) XmlDSigGen: When the SigLocation points to an empty element tag (a tag that is self-closed), Chilkat would insert the signature after the closed tag. Now it correctly expands the tag so that the signature is placed within.
  • (16-Feb-2019) NodeJS and Electron: Existing packages are deprecated and moved to “@chilkat/” scoped packages. Now supports Node.js 11 and Electron 3 and 4.
  • (16-Feb-2019) HtmlToXml: Fixed problem when converting from UTF-16 HTML.
  • (16-Feb-2019) HtmlToXml: Added two methods: SetHtmlBd and ToXmlSb.
  • (16-Feb-2019) Charset: Fixed problems converting to/from EBCDIC.
  • (19-Feb-2019) UWP: Fixed problems w/ TCP/TLS connections in the Windows UWP (Universal Windows Platform) implementation.
  • (20-Feb-2019) SFtp: Found and fixed a rare case where corrupt incoming compressed data caused infinite logging to LastErrorText.
  • (20-Feb-2019) Xml: Added new methods: Scrub, PruneTag, and PruneAttribute.
  • (21-Feb-2019) SFtp: Added new methods: ReadFileBd, WriteFileBd.
  • (21-Feb-2019) JsonObject: Added new methods: LoadBd, EmitBd
  • (21-Feb-2019) Xml: Added new methods: LoadBd, GetXmlBd
  • (26-Feb-2019) Scp: Fixed SyncTreeUpload for modes > 0. No files were uploaded when the mode was > 0.
  • (1-Mar-2019) Imap: Added the ThreadCmd method.
  • (3-Mar-2019) Mime: The IsEncrypted() method would return True for enveloped signed data if the “smime-type=signed-data;” was missing in the Content-Type, even if the optional ” protocol=”application/x-pkcs7-signature”;” was present. Likewise, when IsEncrypted() returned incorrectly True, then IsSigned() would return incorrectly False.
  • (4-Mar-2019) Cert: Added the CheckSmartCardPin method and the SmartCardNoDialog property.
  • (5-Mar-2019) Compression: When compressing in chunks using BeginCompressBytesENC / MoreCompressBytesENC / EndCompressBytesENC, if the EncodingMode is base64, the final bit of data was not emitted in EndCompressBytesENC.
  • (6-Mar-2019) Http: On non-Windows systems (such as Linux), if the Download method downloads a file that is served with the gzip Transfer-Encoding, there was a small chance (for small files) that the downloaded file remained gzip compressed.
  • (7-Mar-2019) StringTable: Added the FindSubstring method.
  • (8-Mar-2019) Xml: Added the TagPath property.
  • (8-Mar-2019) Xml: Added the NextInTraversal2 method.
  • (10-Mar-2019) XmlDSig: Added the RefFailReason property.
  • (13-Mar-2019) Ftp2: The GetXmlDirListing will now contain last-mod date/time information for directory entries.
  • (13-Mar-2019) Chilkat2-Python: Fixed SystemError: <method ‘SomeChilkatMethodName’ of ‘chilkat2.SomeChilkatClass’ objects> returned NULL without setting an error
  • (13-Mar-2019) XmlDSig: Added the ExternalRefDirs property.
  • (14-Mar-2019) Cert: Added the X509PKIPathv1 method. This is a method for returning the base64 representation of an X509PKIPathv1 containing just the calling certificate. This is used in an X.509 Binary Security Token. It is a PKIPath that contains an ordered list of X.509 public certificates packaged in a PKIPath. The X509PKIPathv1 token type may be used to represent a certificate path. (This is sometimes used in XAdES signatures.)
  • (14-Mar-2019) CertStore: Added the FindCertByKeyContainer method.
  • (14-Mar-2019) Csp: Added the GetProviders method.
  • (15-Mar-2019) Ftp2: Fixed MLSD parsing problem for MLSD directory listing problems from Aruba FTP2S3 gateway servers.
  • (16-Mar-2019) Csp: Added the LoadSmartcardCert method.
  • (16-Mar-2019) Cert: Added the LoadFromSmartcard method.