Chilkat 6-Jan-2022

What’s going on in Chilkat support today…

1. IMAP MOVE command:  Is it possible to get the old UID’s mapped to the new UID’s for messages that are moved?   The answer is:  I don’t know.  One would need to examine the IMAP response to the MOVE command (the MOVE command is an IMAP extension not supported on many IMAP servers).   When copying messages (not moving messages) an IMAP response would typically include “COPYUID”.  The COPYUID is documented in RFC 4315    For the case of copying messages, it should be possible to get the raw last response in the Imap.LastResponse property and then examine the contents of the COPYUID.  Parsing and mapping old to new would NOT be easy.  For example, the COPYUID looks like this:

A004 OK [COPYUID 38505 304,319:320 3956:3958] Done

2. Regarding the ebay API at https://developer.ebay.com/docs   “We want to automate our ebay listings process and came across your example code. If we used your software would we be able to easily create new listings on ebay via c#? Would we be able to get a little guidance with integration?”

Answer: The ebay API has been notoriously difficult for many, and unfortunately Chilkat is not able to help extensively.  Chilkat does not have an ebay account, and the examples you find are a result of collaborations with past customers offering brief access.

I would suggest trying to get the most basic bare-minimum things working first, such as:  Get an access token using client credentials (https://www.example-code.com/csharp/ebay_oauth2_client_credentials_grant_flow.asp)
then use the access token to get inventory items (https://www.example-code.com/csharp/ebay_get_inventory_items.asp)

Once you have a few simple things working, then more complex operations simply involve more complex body data in the request because you’ll already have authentication working.  (But make sure you mint an access token with the necessary scopes.)


3. Encountered a strange error when trying to connect to a “Freebox FTP Server” .   Chilkat reports an error in a TLS handshake message received from the server “Incomplete NewSessionTicket handshake message.”


4. Chilkat’s builds for Electron have been out of date.  We don’t have too many customers using Electron, and it’s somewhat of a time consuming system to support.   Chilkat recently published builds for Electron 12, 13, 14, 15, and 16 for Linux 64-bit and MacOS.   Apparently Electron requires native modules to be “context aware” after version 12, so the builds for 13, 14, 15, and 16 may not be viable.  In any case, the first attempt to make the Chilkat native Electron module “context aware” failed miserably with all sorts of compile errors.  (Not compile errors from within the Chilkat code base, but errors in the Electron infrastructure.)  Supposedly the only required edit was to change “NODE_MODULE” to “NAN_MODULE_WORKER_ENABLED“, but apparently it will require more.


5. Received this error from SFtp.Connect:

sshSetupConnection:
    clientIdentifier: SSH-2.0-PuTTY_Release_0.70
    Sending client identifier...
    Done sending client identifier.
    Reading server version...
    initialDataFromSshServer: 530 Not logged in.

The “530 Not logged in.” is a message that can happen if you connect to an FTP server (not an SSH/SFTP server).  Because FTP servers speak a different protocol, the message sent for the SSH connection protocol are not understood by the FTP server, and the response will be nonsensical.

To communicate with an FTP server, which is an entirely different communications protocol, you should use the Chilkat Ftp2 class.


6. Old version of Chilkat using .NET gets the following error in MailMan.SendEmail:   SocketError: WSAENOBUFS No buffer space is available. The socket cannot be created.

This error tells me the application has many socket connections open, and it finally runs out of a resource needed to create the next socket.

Given that .NET uses garbage collection, it’s an immediate red flag telling me that lots of MailMan objects exist with open connections and have yet to be garbage collected. (Once a mailman object is destructed, whether by garbage collection or explicit, the connection is closed and socket is gone.) Therefore the solution is to make sure to call MailMan.CloseSmtpConnection when finished with the object (before removing the last reference to it).


7. Added the ability to specify the keyword “no-diffie-hellman-group1-sha1” in SFtp.UncommonOptions (and Ssh.UncommonOptions) to avoid the use of “diffie-hellman-group1-sha1” as the key exchange algorithm for SSH/SFTP connections.


8.   Working with Egypt ITIDA eInvoice applications:  It seems quite a few customers are using Chilkat to send CAdES-BES signed invoices (over HTTPS) to the ITIDA portal.  The example at https://www.example-code.com/chilkat2-python/itida_egypt_cades_bes_json_canonicalization.asp demonstrates how to do it in Python, but it can be done in the same way using Chilkat with all other programming languages.  Anyway… a common problem is that the document is signed, but the ITIDA web server rejects it.  The usual reason is that Chilkat correctly signs the utf-8 binary representation of the canonicalized JSON, but the application is using some other JSON library that produces utf-16.  Thus.. the signature is for the utf-8 bytes, but the HTTP request is sending utf-16.  The server-side is comparing the utf-16 document against the signature for utf-8, which of course does not match.   It would be super-helpful if the ITIDA server was a bit smarter and would recognize that it received utf-16, automatically convert to utf-8, and then validate.  If such a thing happened, these problems would not exist and people could enjoy more of their life without this frustration..

Chilkat 5-Jan-2022 Remote SSH Commands on Cisco and Dell Force 10 Switches

Chilkat 11-Jan-2022