December 21st, 2012
· (backward compatibility) Removed the deprecated CkCrypt and CkFtp C++ classes. (CkCrypt2 and CkFtp2 have been the primary C++ classes for encryption and FTP for many years.)
· (backward compatibility) Removed the deprecated Chilkat.Crypt and Chilkat.Ftp .NET classes. (The primary Chilkat .NET classes for encryption and FTP have been Chilkat.Crypt2 and Chilkat.Ftp2 for many years.)
· (backward compatibility) Removed the “Blacklist” class wherever it may have been present. This class has been deprecated for many years, and the online documentation for it was removed many years ago.
· (backward compatibility, C++ API) All C++ method arguments that were pointers to objects have now become references to objects. For example, if a method argument was “CkCert *”, it is now “CkCert &”. This cause a compilation error, but the coding fix is very simple (just dereference the pointer that is passed). There are two exceptions. One is for CkXml::Search* methods where the 1st argument may be NULL, and therefore the pointer argument (CkXml *) was maintained. The second is for event callback objects (see below).
· (backward compatibility, C++ Zip) The standard way of setting an progress monitoring callback object is via the put_EventCallbackObject method. This applies to all Chilkat C++ classes. The event callback object can be set by passing a pointer to the event callback object, or passing a NULL to suppress event callbacks. Previous to v9.4.0, the CkZip class had two versions of many methods: one where the last argument was a “CkZipProgress *”, and the other where it did not exist. The methods having the last argument of “CkZipProgress *” have been dropped. The event callback must be strictly set via the put_EventCallbackObject method.
· (backward compatibility, C++ Zip) The CkZipEntry::InflateToString and CkZipEntry::InflateToString2 methods are replaced with a single UnzipToString method: bool CkZipEntry::UnzipToString(int lineEndingBehavior, const char *srcCharset, CkString &outStr);The line ending behavior can have one of three values: 0 = leave line endings unchanged, 1 = convert all line endings to bare LF’s, 2 = convert all line endings to CRLF’s. The source charset is required to tell the method how to interpret the bytes of the text data. For example, it could be “ansi” or “utf-8″, or “windows-1252″, etc.
· (FTP2) CreatePlan/PutPlan forward slash/backslash problems fixed. On Windows systems, items in the “already done” log were unnecessarily re-uploaded because of these differences.
· (XMP) Fixed a problem in ChilkatXmp.NewXmp in the ActiveX build. There was no problem in NewXmp in other builds.
· (Email/MailMan) Fixed problem w/ using ReplacePatterns where replacements were not made for recipient email addresses.
· (backward-compatibility, HTTP) Changed the default value of the HttpRequest.Charset property from utf-8 to ANSI.
· (HTTP) SynchronousRequest returned NULL if the HTTP response code was 404. Instead will return the response object so that the full response information is available to the application.
· (IMAP) Added CloseMailbox and CheckForNewEmail methods. These will be in the online reference documentation soon.
· (ALL) If “?” char is in the file path, then it’s automatically replaced with an underscore when
saving / opening files on the Windows OS. (The ‘?’ character is not allowed to be in a filename or path on the Windows OS)
· (IMAP) Added the ListSubscribed method. It is the same as ListMailboxes, but returns the subset of subscribed mailboxes.
· (FTP2) A date/time parsing problem w/ Microsoft FTP server directory listings was fixed.
· (Objective-C) Any occurance of “CkoString” in method arguments was replaced with “NSString”. (The use of “CkoString” was a code generation error.) There is no actual “CkoString” object in the Chilkat Objective-C API.
· (HTML-to-Text) The DecodeHtmlEntities property defaulted to false when it should’ve been true (as documented).
· (Crypt, HTTP, etc.) Default URL encoding is now according to RFC 3986.
· (Unicode C++) The Ck*W.h header files were missing “#pragma pack (pop)” at the end of each file.
· (Zip) The OpenZip will scan forward for the actual start of a .zip. However, the zip must begin on a 4-byte boundary. A typical .zip archive obviously begins at the 1st byte (location 0). However, this makes it possible for OpenZip to be used with self-extracting EXE’s where the zip is stored unmodified within the .exe.
· (EMail) Email.UnpackHtml will automatically add a META tag to indicate the charset if it does not yet exist.
· (VC++ Libraries) Add SP1 builds for C++ libs for VS2005, VS2008, and VS2010.
· (HTTP) Added the HttpResponse.FullMime property to get the full MIME of the response.
· (HTTP) Added the HttpResponse.UrlEncParamValue method to make it easy to parse a param’s value out of a URL-encoded param string, such as “oauth_token=QJVM8QxMVuw7YXz8xfkPXlsuk7vfqlWBnm0UgRpsMc&oauth_token_secret=wEo5Y3xJb82fKP1Q3FnItchnFj6T0rOr2zmyUnHVg&oauth_callback_confirmed=true”
· (IMAP) Added the SearchCharset property. Defaults to “UTF-8″. May be set to “AUTO” to get old behavior that examines criteria chars and automatically selects an appropriate multibyte charset. (no charset is specified in IMAP searches if the criteria string is entirely 7bit)
· (Socket) IPv6 is now supported for server sockets (listening / accepting connections) via the ListenIpv6 Socket property.
· (HTTP) Fixed a problem with HttpRequest.AddFileForUpload2 where content-type was ignored.
· (HTTP) For some HTTP methods, the automatically added “Host” header did not include the port number for non-standard ports (i.e. ports that are not 80 or 443). This was fixed.
· (SFTP) The CloseHandle method incorrectly returned true if the status response was received but non-OK.
· (Socket-Related) Added SoSndBuf and SoRcvBuf properties to Ssh, SFtp, SshTunnel, Imap, MailMan, Http. 32. (Socket) The ConvertToSsl method now allows for both server-side and client-side to convert to SSL/TLS on an already established connection. The server side would need to call InitSslServer prior to calling ConvertToSsl. Both sides can revert back to non-SSL/TLS by calling ConvertFromSsl.
· (backward compatibility, C++) The CkCSP C++ class name changed to CkCsp. The difference is in the case-sensitivity. (CkCsp is a seldom-used Windows-only class.)
· (C++) #pragma pack (pop) was missing in CkMultiByteBase.h
· (SSH/SFTP) Added the HostKeyAlg string property to SSH/SFTP. The default is “DSS”. May be changed to “RSA” if needed. Chilkat recommends not changing this unless a problem warrants the change.
· (All) Fixed problems w/ opening large files (>4GB) on some non-Windows systems (such as 32-bit Linux)
· (HTTP) Percentage completion monitoring for HTTPS downloads fixed.
August 17th, 2012
· (C / C++) Unicode versions of the Chilkat “C” API and the Chilkat C++ classes are now fully available. The wchar_t C++ classes have the same name as the utf-8/ANSI multibyte classes, but with “W” added to class name. For example: “CkSshW”. The wchar_t “C” functions include a “W” in the function name. For example: “CkImapW_Login”.
Delphi) A Delphi functional DLL (not ActiveX) has been added. It will become available soon.
· Embedded C/C++ (ARMv7, ARMv6) libs added. The download will become available soon.
· (Zip) QuickAppend method fixed to maintain zip comments if present.
· (HTTP) NTLM authentication error “TYPE2 message is not long enough” has been fixed.
· (FTP2, IMAP, POP3, SMTP) Added new ProgressInfo events for raw commands and responses. The ProgressInfo event is a general event with two arguments: name and value. The name identifies the event, and the value contains information about the event, which in this case is the exact raw command and response. For raw “command sent” events, the ProgressInfo name argument will contain: “FtpCmdSent”, “ImapCmdSent”, “PopCmdSent”, or “SmtpCmdSent”. For raw “response received” events, the ProgressInfo name argument will contain “FtpCmdResp”, “ImapCmdResp”, “PopCmdResp”, or “SmtpCmdResp”.
· (Event Callbacks) Added ProgressInfo event callbacks for all ActiveX, .NET, Objective-C, and C++ event classes/interfaces where ProgressInfo was missing. The ProgressInfo event has two arguments: name and value. The name argument identifies the event, and the value argument provides information, if needed. For example, any Chilkat class/object involving TCP socket communications can receive a “SocketConnect” ProgressInfo event when initiating a connection, and a “SocketConnected” event when the connect completes. The value in this case contains the hostname:port. Unfortunately, at this time there is not a definitive list of all possible ProgressInfo events.
· (C++ for IOS/Cocoa) There were issues if a C++ app for IOS/Cocoa was not compiled with “CK_COCOA” defined. The need to define “CK_COCOA” has been removed. A C++ app for Mac OS X does not require any special preprocessor definitions.
· (Email object) Added the FindIssuer method to the email object to allow for signing certs in the chain auth to be retrieved.
· (HTTP) Added the Http.S3Ssl property to allow for Amazon S3 communications over SSL/TLS.
· (C++ CkByteData) The CkByteData::append(void *, int) overload method name changed to “append2″.
· (PKCS7 decryption) PKCS7 decryption using RSA-OAEP now supported. This applies to any Chilkat class/component where PKCS7 decryption might occur, such as with Crypt2, MIME, Email, etc.
· (IMAP ActiveX) Some email object properties, such as ReceivedSigned, were not getting set correctly when fetching email. This problem only occurred w/ the ActiveX build of Chilkat IMAP.
· (All) iso-2022-jp — Correctly handles single-byte 0×0E / 0×0F Shift-IN/Shift-OUT sequences for single-byte Kana.
· (HTTP ) Fixed “HTTP Error 411 Length required” problem with NTLM using POST’s.
· (All) Added HttpProxyDomain property to Socket, HTTP, IMAP, MailMan, SFTP, SSH, SshTunnel. This provides the ability to set the NTLM authentication domain if the HTTP proxy server uses NTLM authentication and requires a domain to be specified.
· (POP3) Mailman.GetUidls could fail in some rare cases. This has been fixed.
· (CkSettings) Added the m_utf8 boolean (default is false). If set to true, then all Chilkat C++ objects will by default use utf-8 instead of ANSI. This means that all “const char *” strings returned by a Chilkat method will be utf-8, and all “const char *” arguments are expected to be utf-8. (Each instance of a Chilkat object can still be explicitly set to use utf-8 or ANSI via the “Utf8″ property. The CkSettings::m_utf8 data member simply controls the default value of the Utf8 property.)
· (Java) Fixed “const char *” string returns for objects returned from Chilkat method calls. For example, when a Chilkat method returns a new instance of a Chilkat object, then that new object would not correctly return utf-8 strings. (Java strings are always utf-8)
· (SFTP) The ForceV3 property will now default to true because it eliminates many problems with various servers that have problems with SFTP v4 and above.
· (Windows-only CSP) The CSP methods having names beginning with “Get…” are renamed to “Nth…”. bool NthKeyContainerName(long index, CkString &outName);
(SshTunnel) Added the IdleTimeoutMs property.
· (MailMan) Fixed LastSmtpStatus, which was not correctly set in some cases.
· (SshTunnel) Changed default MaxPacketSize from 32768 to 4096.
· (Zip) No-compress extensions are now recognized for “data” entries (created by AppendData)
· (HTML-to-XML) Fixed issue where “&” was converted to “&”
· (HTTP) ProxyPartialUrl property removed because it is not needed.
· (C++ CkString/CkByteData) Added wchar_t versions for methods involving “const char *” as arguments or return values.
· (FTP2) The Ftp2.*ByName methods for getting file information (such as GetLastModifiedTimeByName) are such that the remote filename should not include a path. It should be that the current remote directory is set to the directory where the file exists.
· (SSL/TLS) For SSL/TLS connections involving a client-side certificate, a fix was made to ensure that the client-certs are placed in the correct order during the SSL/TLS handshake. (An incorrect order can result in the server rejecting the certs with a “bad certificate” alert.)
· (FTP2) For some servers, the NumFilesAndDirs would return -1 for empty directory listings. This has been fixed.
· (IMAP) The backslash and double-quote chars are now handled correctly if they appear in an IMAP password.
May 3rd, 2012
· Added a free supporting CkDateTime object for date/time functionality. The use of SYSTEMTIME will become deprecated in favor of methods that instead return a CkDateTime object. More information about this will be added to www.example-code.com, as well as the reference documentation.
· Added the “zlib” compression algorithm to the Chilkat.Compression / CkCompression class. This is the same as “deflate”, but includes the zlib header.
The Rfc822Name string property will return all subject alternative names (if more than one exists) in comma-separated list.
Added “Q”, “B”, “url_oauth”, “url_rfc1738″, “url_rfc2396″, “url_rfc3986″ to the list of available encoding/decoding algorithms (i.e. the Chilkat.Crypt2.EncodingMode property).
Extended CkString so that the AppendEncoded and GetDecoded methods recognize and use any of the encoding algorithms available in the Chilkat.Crypt2.EncodingMode property.
· Fixed SynchronousRequest method so that it correctly sets the FinalRedirectUrl and WasRedirected properties when auto-following redirects.
· (HTTP ActiveX):
· A memory leak in the SynchronousRequest method was fixed. The memory leak only occurred in the ActiveX build.
Fixed minor problem relating to bandwidth throttling (only occurred in some cases).
The handling of SSH/SFTP re-key events fixed for F-Secure SSH servers (and possibly other types of SSH servers). A typical behavior of some servers is to send a re-key message after 1GB has been transferred between client and server.
Fixed a problem such that when the UnpackUseRelPaths was set to false (0) and the unpack directory contains space character, the generated HTML file was incorrect.
· (Email ActiveX):
· Fixed problem where the CreateMdn/CreateDsn methods in ActiveX always returned NULL.
· Regarding the S3_ListBucketObjects method: The bucket name may now be qualified with URL-encoded params. For example, to list
the objects in a bucket named “ChilkatABC” with max-keys = 2000 and marker = “xyz”, do this:
xmlStr = http.S3_ListBucketObjects("ChilkatABC?max-keys=2000&marker=xyz")
· The S3_ListBucketObjects method recognized all params listed in the AWS documentation for listing objects in a bucket: delimiter, marker, max-keys, and prefix. See Amazon’s AWS online documentation for more information.
· Fixed the QuickAppend method. The problem only occurred in non-Windows implementations.
· Added the GetProperty method:
Xml *Xmp::GetProperty(Xml *xml, String *propName)
This was added to provide the ability to handle “Property Qualifiers”. (see http://www.aiim.org/documents/standards/xmpspecification.pdf )
Any individual property value may have other properties attached to it; these attached
properties are called property qualifiers. They are in effect “properties of properties”; they can
provide additional information about the property value. For example, a digital resource
representing a musical production might have one or more authors, specified using the
dc:creator property, which is an array (see the figure below). Each array value might have a
property qualifier called role, which could take a value of “composer” or “lyricist” or
possibly other values.
To handle the situation, a new method named GetProperty was added. It returns the Xml node for the property. The Chilkat XML API can then be used to get the attributes.
· The ProxyPartialUrl property is deprecated. It is no longer needed and has no effect.
Fixed a problem with using HTTPS via an HTTP proxy.
· Added the following new property and method. These are for when an SSL/TLS connection is accepted, and your application wishes to examine the client-side certificates. To say it another way, your application is behaving as the SSL/TLS server, and it is accepting a connection from an SSL/TLS client and wishes to examine the client-side certs.
New property: int NumReceivedClientCerts
· Chilkat.Cert *GetReceivedClientCert(int index)
· Added AES 256 and AES 128 to the server-side list of supported encryption algorithms. The default encryption algorithm chosen by the server (if supported by the client) is now AES 256. (The client-side of the SSL/TLS implementation already supported AES 128 and AES 256, and AES 256 is already the 1st choice of encryption algorithm to be chosen if supported by the server.) The Chilkat SSL/TLS implementation will by-default automatically choose the most secure encryption method available that is also implemented by the connecting peer.
Fixed a memory leak in MIME ActiveX’s AppendPart method.
Added ProxyMethod #9 for certain types of FTP proxies that behave as follows: If interactively connecting, the proxy server prompts for user-input in this order: ProxyLogin, ProxyPassword, FtpLogin, and finally FtpPassword.
· (HTTP, Socket):
· Asynchronous HTTP and Socket functionality was added to the IOS / MACOSX libs.
· Fixed a problem such that if an Amazon S3 upload was followed by a download on same connection, then the download failed.
Fixed a problem with the QuickAppend method. If the zip to be appended existed but was 0 bytes (empty) then it did not work.
Added two new methods: ConnectOnly and LoginAfterConnectOnly.
The existing “Connect” method both establishes the connection AND authenticates.
This was most certainly a poor design decision early-on (about 10 years ago). The first problem with it is this: When it fails it’s impossible to tell why it failed. Was it unable to connect, or did it connect and then fail the authentication? This was fixed by providing the ConnectFailReason property to provide the exact reason for failure. However, one problem remained. A client would not be able to connect via SSL/TLS, examine the servers certificate, and then only authenticate if the cert is valid.
The ConnectOnly will establish the connection and do nothing else. This allows your application to fetch the server’s SSL cert via the GetSslServerCert method. If the cert is verified to be OK, then then LoginAfterConnectOnly may be called to authenticate. The combination of calling ConnectOnly followed by LoginAfterConnectOnly is equivalent to calling the Connect method.
Added three new integer properties to the ActiveX: NumChars, SizeUtf8, and SizeAnsi. SizeUtf8 is the size in bytes of the string when encoded in utf-8. SizeAnsi is the size in bytes when encoded in the ANSI charset of the local computer.
January 26th, 2012
· (Crypt2, MIME, MailMan) Now supports the ability to create CAdES-BES and CAdES-EPES digital signatures. See CAdES for more information.
· (IMAP) Added the ability to download emails without attachments, and to download attachments separately. See Download email without attachments and downloading attachments separately for more information.
· (MACOSX, IOS) Eliminated the SIGPIPE exception that can occur when a socket write is attempted after the previously connected peer disconnects.
· (Email) No longer includes the “This is a multi-part message in MIME format.” line in multipart/mixed messages. Note: The presence of this line is very common and transparent (i.e. it is not visibly seen when viewing an email in an email client such as Outlook or Thunderbird).
· (IMAP) The “ckx-imap-internaldate” header field is now added to emails downloaded from IMAP servers. This allows for subsequent calls to AppendMail to restore the same internal date when uploading the email to a new IMAP server or to another mailbox on the same IMAP server.
· (IMAP) Exception in CRAM-MD5 authentication fixed.
· (Email) Modified the automatic generation of the Message-ID header field so that it never tries to fetch the hostname via DNS. The simple instantiation of an email object should never do anything that would implicitly require network communications.
· (Compression) PPMD is not yet available in 64-bit non-Windows apps. Any attempt to use it in CkCompression (CkoCompression) will result in a false return status indicating failure. Use Deflate, Bzip2, or Lzo instead.
· (Ftp2, HTTP, Socket) Asynchronous functionality is now enabled for all non-Windows operating systems. See Cocoa Asynchronous Methods and Event Callbacks for more information.
· (Self-Extracting EXE) The self-extracing EXE’s now correctly maintain last-modification dates/times.
· (Charset) Fixed Charset.HtmlEntityDecode to handle non-ANSI HTML.
· (C++ on Linux, MacOSX, IOS, Android) May need to link with the system libraries “-lresolv” and “-lpthread”.
· DKIM and SSH Tunneling now supported across all operating systems/programming languages, with the exception that DKIM is not yet available on Android.
· (Atom on ActiveX) Fixed ChilkatAtom.GetEntry method.
· (XML) Added Xml.GetChildWithAttr method.
· (FTP2) Added HTTP proxy support to FTP2 (forces Passive mode if an HTTP proxy is used).
· (Bounce) Added BounceType 15 (for abuse/fraud feedback reports).
· (Zip) Fixed Zip date/time issues for years after 2037.
· (XML) Fixed memory leaks in RemoveChildByIndex and RemoveChildWithContent methods.
· (Upload) Fixed the PercentUploaded property — a divide-by-zero exception occurred if first access happened while the total is still 0.
· (SSH / SFTP) Added the ForceCipher property to allow the encryption algorithm to be explicitly chosen.
· (MacOSX C++) Mac C++ libs have changed to these new names:
The dynamic libs now use “@executable_path”, so the .dylib (if used) can be placed in the same directory as your EXE.
· (CSV) Csv.LoadFromString always returned false even when successful. This is now fixed.
· (RSA) Somewhat rare OAEP padding related decrypt issue fixed. (The problem was on the decrypt side, not on the encrypt side.)
· XML) Added the CopyRef method.
· (Crypt2) Added new methods for signature date/times: GetSignatureSigningTime and HasSignatureSigningTime.
· (RSA) Fixed PSS padding issue for signatures using PSS padding.
· (MailMan/C++) CkMailMan::SetProgressCallback is deprecated. Use put_EventCallbackObject instead.
· (Zip/C++) CkZip methods with “CkZipProgress *” as final argument are deprecated. Use put_EventCallbackObject in combination with the methods that do NOT include the “CkZipProgress *” argument.
· (FTP2) Internally, the “EPRT” command (instead of “PORT”) is automatically used if the TCP connection is IPv6.
· (XML ) The GetXml method now includes the XML declaration when getting the XML of the document root, otherwise it does not. The extra blank line between the XML declaration and the root node is now removed.
· (HTTP) Added the DownloadHash method, which allows a file to be downloaded such that the downloaded bytes are discarded and a hash of the bytes is returned.
· (PHP) This error is fixed:undefined symbol: zend_error_noreturn in Unknown on line 0This error does not occur in PHP 5.3.8 or later. The error is a bug in PHP and is described here:
· (MacOSX) Objective-C libs compiled with -fobjc-gc so that both GC and retain/release logic is present.
· (HTML-to-Text) Added the SuppressLinks property to suppress the inclusion of URLs found in links. To maintain backward compatibility, false/0 is default property value.
· (HTML-to-Text) Added the DecodeHtmlEntities property so that HTML entities can be automatically decoded. To maintain backward compatibility, false/0 is default property value.
· (Compression) The Charset property had an undefined default value. It now defaults to “utf-8″.
· (Email) The AddRelateData and AddRelatedData2 methods were missing for Java, Perl, Python, Ruby, and PHP. These methods have been added.
· (HTTP) DownloadAppend and ResumeDownload methods fixed for Gzipped HTTP responses.
· (HTTP) The PostJson method was added to make JSON POST’s easy.
· (MailMan) Added the AutoSmtpRset property. The default value is True, making it backward compatible so that the behavior is unchanged w/ previous versions. When True, the “RSET” SMTP command is sent at the beginning of each email on an already-open connection (meaning it is not the 1st email sent on a connection). This is done to ensure that the state of the connection is valid, clean, and ready for a new email. A case was found where one SMTP server delayed by approx. 5 seconds in responding to the RSET command. The AutoSmtpRset property provides a way to control whether the RSET command is automatically sent.
· (SshTunnel) Added the ClearTunnelErrors method (to clear TunnelErrors read-only property).
· (Zip) Added the SkippedForUnzip event , which is called if a file is not unzipped because it is not newer (for UnzipNewer method), or if a file is not unzipped because it would overwrite an existing file (when OverwriteExisting = false).
· (HTTP) Added the HttpResponse.SaveBodyBinary and SaveBodyText methods. Makes it possible to save large responses directly to a file.
· (MIME) Added the UseXPkcs7 boolean property. The default value is True to make it backward compatible. This controls whether “x-pkcs7-signature” or “pkcs7-signature” is used for the Content-Type for PKCS7 signatures. It also controls whether “x-pkcs7-mime” or “pkcs7-mime” is used for the Content-Type in PKCS7 encryption. If UseXPkcs7 is True, then “x-pkcs-*” is used.
· (ActiveX) Versioning for all ActiveX DLL’s will now match the overall version (v9.3.0).
If a new version of an individual DLL is released prior to the release of the next full-set version, it will be a sub-version, such as v220.127.116.11
· (ActiveX Email) The ChilkatMail_v8.dll ActiveX changed name to ChilkatMail2.dll The “2″ reflects that the ActiveX object names, which have not changed, are ChilkatMailMan2, ChilkatEmail2, ChilkatEmailBundle2. (This makes it consistent with other ActiveX DLLs/objects such as ChilkatZip2.dll, ChilkatCrypt2.dll, ChilkatFtp2.dll, etc.)
August 16th, 2011
· (SFTP) Performance improvements for file downloads.
· (MailMan ) Added the IsSmtpConnected boolean property.
· (Socket, Java build only) Fixed problem with BindAndListen.
· (FTP2) Added GetSizeByName64 and GetSize64 methods for C++ and .NET builds.
· (Email object) Fixed AspUnpack2 method.
· (HTTP) Fixed so that HTTP will neither save nor send expired cookies.
· (HTTP) Fixed so that HTTP will not send cookies marked as “secure” on non-SSL/TLS connections.
· (SFTP) The “.” and “..” directories will no longer be included in results returned by the ReadDir method.
· (SSL in all classes/objects) Fixed client-side certificate problem when SSL v3.0 is used (client-side certs w/ TLS 1.0 were working OK).
· (PFX in all methods that read a PFX file) Fixed problem when PFX password is 32 characters or more (which is rare).
· (PEM in all methods that read a PEM file) OpenSSH key file format (PEM) fixed for the case where the file uses bare-LF line-endings as opposed to CRLF line endings.
· (SshKey) Fixed FromRfc4716PublicKey, which could not load RSA keys because it was trying to verify them as DSA keys.
· (HTML-to-Text) “ ” is now handled correctly.
· (C++ / CkString / Linux-build) Fixed CkString::toLowerCase problem in Linux.
· (HTTP) Cookie file format changed to properly keep attributes with individual cookies. When updating to v9.2.1, and cached cookie files should be deleted so that the new version may create new cookie files correctly.
· (SFTP / MAC OS X / iOS only) Fixed methods that return NSDate objects. The bug was that the NSDate object returned was off by a number of hours based on the timezone of the computer.
June 23rd, 2011
· (Email Object) The AspUnpack and AspUnpack2 methods were fixed to prevent the creation of duplicate HTML files.
· (Zip) On Linux systems only, the AppendFiles method failed in a rare specific circumstance.
· (TAR) Fixed Base256 internal decoding problem to support TAR archives larger than 8GB.
· (Email, MIME, Crypt2) Internal PKCS7 signed-data issue fixed for cases where the signed data contained no authenticated attributes. (”authenticated attributes” are internal to the PKCS7 format and not something an application developer using Chilkat would ever encounter.)
· (Upload) Added two methods for clearing state: ClearParams and ClearFileReferences.
· (Cert, CertStore) Added the AvoidWindowsPkAccess boolean property (for Windows only) to prevent the Chilkat internals from trying to access the cerficate’s associated private key when loading the cert from a registry-based certificate store. (This is useful in cases where the private key is installed with security settings such that any access triggers the Windows operating system to popup a dialog box to allow/disallow the access.)
· (HTTP) Added the RedirectVerb property. If a redirect is automatically followed, the RedirectVerb (such as GET, POST, PUT, etc.) will be used in the HTTP redirection.
· (MailMan) Added the UseApop property to support APOP authentication for POP3.
· (FTP2) Added the PreferNlst boolean property. If True, the NLST command is used instead of LIST when fetching a directory listing. This can help in *very rare* cases where the FTP server returns truncated filenames. The drawback to using NLST is that it won’t return size or date/time info (but it should return the full filename).
· (Crypt2) PBES1 encryption by definition only supports 56-bit DES or 64-bit RC2. (see the PBES1 specification at http://www.rsa.com/rsalabs/node.asp?id=2127) If the CryptAlgorithm property is set to “PBES1″, then the KeyLength property is ignored and 64 bits is used by default. Also, if the Pbes1Algorithm (which specifies the underlying encryption algorithm) is not DES or RC2, then RC2 is assumed.
· (TAR) Fixed the untar functionality when UntarMatchPattern for compressed formats (.tgz, .tar.bz2, etc.) .
· (Multiple Classes) Added the DebugLogFilePath property. If a situation arises where a call to a Chilkat method hangs, then this property may be set to the path of a log file that is created for debugging purposes. If a hang occurs, the log file may be examined and sent to Chilkat support.
· (HTTP) Added the ExtractMetaRefreshUrl method for extracting a META-refresh URL from HTML.
· (IMAP) Added the UidValidity property.
· (All classes that specify encoding by name, such as “base64″) Added the “modBase64″ encoding. Modified Base64 for URLs replaces the ‘+’ and ‘/’ characters of standard Base64 with ‘-’ and ‘_’ respectively. This results is a URL-friendly output (i.e. something that can be used within a URL without needing to be URL encoded).
· (XML) Removed the HttpGet and HttpPost methods. These methods were removed to reduce the size of applications that only need XML functionality.
· (Multiple Classes) Fixed the SetTcpNoDelay method in all classes that involve TCP/IP sockets, such as IMAP, FTP2, HTTP, etc.
May 27th, 2011
· FileAccess: Changed “int” arguments to “unsigned int”.
· bool FileOpen(String *filename, unsigned int accessMode,
· unsigned int shareMode, unsigned int createDisp, unsigned int attr);
· RSA: If the result of a signature was a binary value such that the leading byte(s) were 0, then these NULL bytes were not included in the encoded output (such as for Base64, Hex, etc.). This was fixed. The encoded output will always represent a number of bytes equal to the key length (such as 2048 bits). (This was not a bug in the signature itself, only a “bad feature” of the encoded representation of the signature.)
· SSL/TLS through SSH Tunnel now works for all classes/objects where it is used.
· HTTP: Accept,Accept-Charset,Accept-Language,Referer,Accept-Encoding headers automatically added for PostXml, PutText, BinaryRequest, XmlRpcPut, XmlRpc just like for QuickGet…
· HTTP: Added BgPercentDone, AllowGzip and UseUploadPut properties.
· Email: Fixed signed+encrypted emails so that Outlook does not display a warning about “unable to display the signer’s email address”.
· Socket: Server-side SSL/TLS issue fixed with server certs.
· Crypt/Email/Imap/Mime: Crypto-PRO GOST CSP supported.
· MailMan: Error in MailMan.FetchMultiple (POP3) fixed.
· All Components: IPv6 is now supported.