Chilkat ActiveX Component Retail

C#, VB.NET, ASP.NET, ASP, VB6, FoxPro, VBScript, Delphi, SQL Server, C/C++, Objective-C, Swift, Xojo, Node.js, C++ Builder, Powershell, Perl, PHP, Ruby, Java, Python, Lianja, PureBasic, all languages supporting ActiveX (such as PowerBuilder, DataFlex, etc.).

Zip, GZip, Bz2, .Z Compression
Data Compression
TAR Archive
RSA Encryption and Signatures
DSA (DSS) Signatures
Diffie-Hellman (DH) Key Exchange
Socket / SSL
HTML-to-XML Conversion
Charset Encoding Conversion
Email Bounce Processing

POP3 / SMTP Email Component Features

SMTP client for sending email.
POP3 client for reading email.
Works with Exchange Server (all versions)
Works with all POP3 / SMTP servers
Supports POP3 and SMTP SSL/TLS connections.
Supports POP3 and SMTP SSH tunneling (port forwarding).
Send S/MIME signed and/or encrypted email.
Read S/MIME signed and/or encrypted email.
Export and import email to XML.
Export and import email to .eml (MIME) text files.
Zip / unzip attachments in-memory.
Check for email on servers.
Verify POP3 / SMTP connections and login credentials.
Secure SMTP authentication methods suppoted.
Add attachments from files or in-memory data.
Set connection and read timeouts.
Set size limits when reading email.
Delete email on the POP3 server.
Copy email from a POP3 server without deleting.
Fetch email headers.
Events for send/receive progress monitoring.
Get UIDLs of email on a server.
Send email using Chilkat SMTPQ for background sending.
Download email and sort based on date, sender, recipient, or subject.
Set a bounce email address for handling bounces.
Automatically handles international charset encodings.
Can use file-based distribution lists.
Send HTML email with embedded images.
Send multipart/alternative emails with both HTML and plain-text bodies.
Access attached message/rfc822 sub-parts.
Acess attachment data in-memory.
Set replacement patterns for mail-merge.
Set return receipt.
Set priority via the X-Priority header field.
Add custom header fields.
Add recipients as To, CC, or BCC.
Save attachments to disk.
Get attachment information: filename, size, etc.
Return text file attachment data as an in-memory string.
Get digital certificate information for signed/encrypted email.
Enumerate over the header fields in an email.
Find and unobfuscate the linked domain names in an email.
Unobfuscate HTML email.
MX Domain Lookup
Explicit control over SMTP and POP3 sessions.
SOCKS4, SOCKS5 proxy support for both POP3 and SMTP.
HTTP proxy support for POP3 and SMTP
Thread safe.

Zip Component Features

ZIP64 format extensions supported. No limitations on size for files within a .zip, or the total size of a .zip.
No limitations on the number of files that may be contained within a single .zip (this is a ZIP64 feature).
Can read/write Zips with WinZip-compatible AES strong encryption.
Supports Unicode filename zip file format extensions.
Events for zip/unzip progress monitoring.
Zip an entire directory tree.
Append entries to a Zip from in-memory data.
Create or open in-memory Zips.
Create self-extracting executables.
Create password-protected Zip files.
Unzip only files that match a filename pattern.
Option to discard path information when zipping.
Option to append a path prefix when zipping.
Option to create self-extracting EXEs with or without interfaces.
Ability to customize icon and interface when creating an EXE.
Ability to specify an auto-run file when creating an EXE.
Ability to specify a pre-defined unzip directory for an EXE.
Handles Unicode filenames.
Provides in-memory access to compressed or uncompressed data.
Easy FirstEntry/NextEntry methods for iterating over a Zip.
Can embed Zips in your own EXEs.
OpenMyEmbedded opens the Zip that has been embedded in the caller’s EXE.
Set exclusion patterns when zipping.
Option to specify a target directory and discard path information when unzipping.
Can unzip only files that are newer.
Read/write comments within a Zip.
Ability to inflate directly to in-memory byte array or string.
Includes a Bz2 object/class to create or decompress the .bz2 file format.
Includes a GZip object/class to create or decompress the .gz file format.
Includes a Unix compress object/class to create or decompress the .Z file format using LZW compression.
Thread safe.

Compression (PPMD, Deflate, Bzip2, LZW) Component Features

PPMD Compression – Best algorithm for compressing text.
Bzip2 Compression
Deflate Compression – The algorithm most commonly used for .zip
LZW Compression
Compress and decompress in streaming mode w/ Begin, More, and End methods.
Work directly with hex or base64 encoded string representations of compressed data.
Simple CompressFile method for file compression.
Thread safe.

TAR Archive Component Features

Create/Extract TAR archives.
Supports GNU tar 1.13.x format.
Supports PAX — POSIX 1003.1-2001 format.
Supports USTAR — POSIX 1003.1-1988 format.
Create/Extract Compressed Archives: .tar.gz (.tgz), .tar.bz2, and .tar.Z
Extract directly into memory.
Untar files matching a pattern.
Get TAR contents directory in XML format.
Thread safe.

FTP2 Component Features

FTP files directly from your application in synchronous or asynchronous mode.
Support for FTPS – FTP over TLS 1.2, 1.1, 1.0, and SSL 3.0
Supports both Explicit and Implicit SSL/TLS
All popular FTP servers and proxies are supported.
Resume (restart) FTP uploads and downloads
Supports international filenames in all major languages
Upload and download to or from in-memory strings or byte arrays.
Automatic directory listing parser for FTP servers on Unix, Windows, Netware, AS/400, VAX/VMS, IBM Mainframes, and other legacy formats.
Events for upload/download progress monitoring.
Session logging
XCRC verification of uploads and downloads
Synchronize local directory tree with remote directory tree in either direction
All operations are abortable
Heartbeat event callbacks with abort cabability
Real-time upload/download data transfer rate properties
Real-time #bytes received/sent properties for async transfers
Percentage completion events for uploads and downloads
Implicit Secure FTP SSL on Port 990 (or whichever port is used by the FTP server for SSL/TLS)
Clear the Control Channel (CCC) after FTPS Authentication
Supports FTPS behind Network Address Translating (NAT) Routers such as DSL/Cable Modems
Delete an entire remote directory tree in a single line of code
Upload an entire directory tree in a single line of code
Download an entire remote directory tree in a single line of code
Copy remote files to your local filesystem.
Copy files from your local filesystem to the FTP server.
Download text and binary files and access directly in memory.
Upload to FTP site directly from memory.
Create remote directory.
Rename remote files and directories.
Delete remote files and directories.
Get remote directory listing as XML.
Support for asynchronous uploads and downloads.
Active and passive transfer modes.
Binary and ASCII transfers.
FTP proxy servers are supported.
Server specific commands supported (SITE command) – such as setting access permissions on Unix FTP servers.
Stream support – streaming download to local files, streaming upload from local files.
Large file support – upload or download files larger than 4 GB.
Auto-determine proxy settings
Auto-determine valid connection settings
Specify port range for PORT mode data transfers (i.e. Active mode).
Supports QUOTE and SYST
Allows for client SSL certificate to be used for SSL connections.
Rename files or directories on the FTP server
Provides access to FTP SSL server certificate for verification.
Thread safe.
Royalty-free licensing
License covers all programming languages: .NET, ActiveX, C++, Ruby, Perl, Python, Java, etc.

IMAP Component Features

Supports S/MIME signed and encrypted email.
Supports TLS/SSL IMAP (Both implicit and explicit via STARTTLS).
Works with Exchange Server (all versions)
Works with all IMAP servers
Supports SSH tunneling (port forwarding).
Full set of mailbox management features for adding, deleting, and renaming mailboxes.
Easy to manage mail item flags for “seen”, “draft”, “answered”, and “flagged”.
Preview mail by retrieving message summaries.
Full mailbox sort and search capability.
Easy access to all message parts and recipients.
Easy access to attachments.
Programs can work using either UIDs or sequence numbers.
Single license includes all languages/platforms: .NET, IMAP ActiveX, Perl, Python, Ruby, Java, C++, x64, etc.
Supports non-English folder names (i.e. UTF-7 mailbox names).
SOCKS4, SOCKS5 proxy support.
HTTP proxy support
Supports multi-threaded applications.
Event callbacks for progress monitoring and abort cabability.
Stress-tested in ASP web farms with large numbers of simultaneous sessions.
Thread safe.
License provides for royalty-free redistribution of components with your application.
Reliable and expertly engineered.
Designed to hide the complexities of the IMAP protocol.

Encryption Component Features

Symmetric Encryption: AES, ChaCha20, Blowfish, Twofish, RC2, ARC4, DES, 3DES, PBES1, PBES2.
Hash Algorithms: SHA-1, SHA256, SHA384, SHA512, MD2, MD4, MD5, HAVAL.
Hash Algorithms: RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320.
Encoding: Base64, hex, quoted-printable, URL-encoding, modBase64, base32, base58, uu, url_oauth, url_rfc1738, url_rfc2396, url_rfc3986, fingerprint, decimal.
HMAC with any supported hash algorithm: HMAC-MD5, HMAC-SHA1, etc.
Poly1305 Message Authentication Code
Password-based Key Derivation Functions: PBKDF1, PBKDF2
PKCS7 — P7S and P7M creation, decryption, verification.
Public key encryption/decryption with digital certificates.
Digital signature creation/verification with digital certificates.
Bzip2 in-memory compression.
Encrypt / decrypt strings or byte data.
Return encrypted data as Base64, quoted-printable, or hex-encoded strings.
Hash strings or binary data using SHA1, MD2, MD5, HAVAL, SHA384, or SHA512.
Public-key encryption with digital certificates.
Create and verify digital signatures.
Pre-convert Unicode strings to ANSI (single-byte/char) before encrypting.
Pre-convert Unicode strings to any charset before encrypting, compressing, or hashing.
Base64 encode strings or byte data.
Hex-encode encode strings or byte data.
Compress strings or byte data with the BZIP2 compression algorithm.
Implements FIPS81 padding scheme for AES.
Up to 256-bit encryption is supported.
Set binary secret-key directly for symmetric encryption algorithms.
Initialization vectors.
CBC Cipher Block Chaining Mode
ECB Electronic Cookbook Mode
OFB Output Feedback Mode
CFB Cipher Feedback Mode
GCM Galois/Counter Mode (AEAD)
CTR Counter Mode
Punycode Encoding/Decoding
Generate UUIDs
Random byte data generation.
Streaming hashing (pass data to hashing functions in chunks).
Streaming encryption (pass data to encryption functions in chunks).
Thread safe.

DSA Features

Create and verify DSA signatures.
Generate DSA keys.
Generate DSA keys based on parameters created by OpenSSL.
Set public key explicitly from P, Q, G, and Y values.
Set private key explicitly from P, Q, G, and X values.
Provides access to P, Q, G, X, and Y as hex-encoded SSH1-format bignums.
Import public/private DSA keys from DER.
Import public/private DSA keys from PEM.
Import encrypted private DSA keys from PEM.
Import public/private DSA keys from XML.
Export public/private DSA keys to DER.
Export public/private DSA keys to PEM.
Export encrypted private DSA keys to PEM.
Export public/private DSA keys to XML.

Diffie-Hellman Features

Simple 2-step Method for Computing a Shared Secret
Safe prime generation. Generate new P and G values.
Ability to use Known Primes from RFC 2409 and RFC 3526 (Oakley and MODP groups)

RSA Component Features

Public/private key generation.
Encrypt with either public or private key.
Decrypt with matching public or private key.
Create digital signatures.
Verify digital signatures.
Encrypt and decrypt in-memory strings or byte arrays of any size.
Encode encrypted output to Base64, Hex, Quoted-Printable, or URL-encoding
Export public/private key pairs to XML.
Import key pair from .snk file.
Import public/private key pairs from XML.
Import/Export only public-part or private-part of key pair.
PKCS v1.5 padding for encryption and signatures.
OAEP Padding Scheme for Encryption/Decryption
RSASSA-PSS (RSA Signature Scheme with Appendix – Probabilistic Signature Scheme)
Create/verify signatures with little-endian or big-endian byte ordering.
Supports key sizes ranging from 512 bits to 4096 bits.
Supports hash algorithms: MD5, SHA-1, SHA-2 (SHA-256, SHA-384, SHA-512), and more…
Thread safe.

DSA Component Features

Note: The Digital Signature Algorithm (DSA) is synonomous with the Digital Signature Standard (DSS)

Create and verify DSA signatures.
Generate DSA keys.
Generate DSA keys based on parameters created by OpenSSL.
Set public key explicitly from P, Q, G, and Y values.
Set private key explicitly from P, Q, G, and X values.
Provides access to P, Q, G, X, and Y as hex-encoded SSH1-format bignums.
Import public/private DSA keys from DER.
Import public/private DSA keys from PEM.
Import encrypted private DSA keys from PEM.
Import public/private DSA keys from XML.
Export public/private DSA keys to DER.
Export public/private DSA keys to PEM.
Export encrypted private DSA keys to PEM.
Export public/private DSA keys to XML.

MIME Component Features

Create an manipulate MIME and S/MIME messages.
Navigate the MIME message tree structure via the NumParts property and GetPart(index) method.
Retrieve header field names and values.
Add header fields to a MIME message.
Add a detached (clear-text) digital signature to a MIME message.
Convert MIME to an opaque signed message.
S/MIME encrypt using a digital certificate.
Decrypt and validate signatures in one method call.
Attach files to a MIME message. Chilkat Mime automatically determines content-type based on file extension.
Test to see if a message contains signed or encrypted parts.
Get the body content automatically decoded (if encoded as Base64 or quoted-printable).
Get the body content as a string. (already decoded from Base64 or QP)
Get the non-decoded body content.
Convert MIME to XML.
Test for attachment, audio, encrypted, html, image, multipart, multipart/alternative, multipart/mixed, multipart/related, plain-text, signed, text, video, XML.
Load MIME from file.
Create multipart/alternative, multipart/mixed, multipart/related messages.
Remove message sub-parts.
Set message body from binary data.
Set message body from in-memory string containing plain-text, HTML, XML, or anything else.
Thread safe.

v9.5.0.73 Release Notes: Email The SetHtmlBody method, in certain circumstances, would incorrectly set the top-level MIME header to text/html for multipart messages. This was fixed. HTTP Non us-ascii chars in the URL path are now always URL encoded using the utf-8 encoding. OAuth2 Added the UseBasicAuth and AppCallbackUrl properties. MailMan Added methods SendMimeBd and FetchMimeBd. Bounce Fixed a few situations where bounce type 11 (Suspected Bounce) was returned, but should have been 6 (Auto-Reply). In general, minor improvements to Bounce categorization are added as customers report issues, and each new Chilkat version can be assumed to have minor Bounce categorization refinements. Tar Fixed crash (access violation) in the Untar method. This was caused by a corrupt tar file where the internal header contained garbage bytes. Objective-C/CkoJsonObject In iPhoneOS11.2.sdk/usr/include/complex.h, we find the following macro: “#define I _Complex_I”. This caused a compile error because the CkoJsonObject class has a property named “I”. Chilkat updated CkoJsonObject.h to “#undef I” to avoid the conflict. Electron Added builds for Electron 1.8. However the package naming triggered some npm spam detectors (false positives of course), and Chilkat is working to get it resolved. Chilkat will produce builds for Electron 2.0 in the near future. CkByteData Added a SecureClear bool property (get_SecureClear, put_SecureClear). If set to true, then whenever the internal data is deallocated, the memory is first overwritten with 0 bytes. MIME Binary MIME with null bytes in some bodies became corrupted because 0 bytes were replaced with SPACE chars. This is fixed. Signed/Encrypted Email Fixed: The “micalg” attribute incorrectly remained in the Content-Type header field for the encrypted MIME part when the email is also signed. REST Fixed: Stream sources used for uploading were not properly closed after the upload finished. C++ Builder/CkAuthAzureStorage Fixed: The x-ms-date header did not automatically get the correct current date/time for HTTP requests. This only happened for C++ Builder and Delphi builds of Chilkat. Email Added flexibility in parsing non-compliant RFC822 date strings, where the month name and month day number are not in the correct order as specified by RFC822. MIME parsing (general) Added more internal flexibility for handling mixtures of CRLF and bare-LF line endings. XmlDSigGen Now capable of using non-exportable private keys on Windows, such as for A3 certificates where the private key is on a hardware token. SSH Fixed a rarely encountered “handshake” problem. HTTP Changed the default Content-Type for the PostJson method to be “application/json”. The original default value, “application/jsonrequest” was the initial “standard” years ago, but seems to never be used nowadays. If an “application/jsonrequest” is needed (and I doubt it will ever be needed), then PostJson2 may be called to explicitly specify the Content-Type. HTTP The default value of the S3Ssl property is now true. Zip Fixed rare problems involved with rewriting zip archives, when the “move from temp zip to target” fails. Email Fixed certain automatic MIME structuring issues w.r.t. multipart/alternative and multipart/related. Compression Added the DeflateLevel property to the Compression class. CkString The removeDelimited method was missing for Ruby, Java, Perl, Python, Tcl, and PHP. SFTP Fixed: The SyncTreeDownload method was not firing the DownloadRate callback. PrivateKey Fixed: The GetPkcs8Pem method (for ECC keys) was returning PKCS1 but should’ve been returning PKCS8. HTTP Added the SharePointOnlineAuth method. HTTP Fixed problems with the S3_GenerateUrl and S3_GenerateUrlV4 methods. SSH Fixed: After doing a ReadDir, the SFtpFile.IsDirectory property was not correct for some types of SSH servers. Zip Added the PwdProtCharset property. SOCKS5 Fixed problems with IPv6 addresses when using SOCKS5 proxies. Compression Added the CompressSb and DecompressSb methods. JSON Added the methods DtOf and DateOf to both JsonObject and JsonArray. HTTP Fixed problems with non-us-ascii chars in URLs for downloads. StringBuilder Added the ReplaceAfterFinal method. HTTP Fixed: The LastHeader property was empty after the PostUrlEncoded method. SSH Fixed slowness for SSH commands the emit a large amount of output. HTTP Fixed rare server certificate verification problem when the server provides out-of-order certificates in the TLS handshake. FTP2 Fixed: The IdleTimeoutMs property was not being honored for DNS problems. StringBuilder Added the WriteFileIfModified method. PureBasic Fixed a compile error in the CkHttp.pb file. SSH/SFTP/SshTunnel Fixed a host key signature verification failure for certain situations. SSH/SFTP/SshTunnel Added the UncommonOptions property, which will be a place to specify future unforeseen workarounds that may be required for particular SSH servers (old or new). Rest/Socket Fixed a problem when a non-standard HTTP port (not 80 nor 443) is used in for the original Socket connection in conjunction with the Rest.UseConnection method. RSA Added the SetX509Cert method to make it easy to use the private key of certificate. Also allows for A3 certificates where the private key is non-exportable (on a Windows system) such as on a hardware token. XmlDSigGen Added the “X509Data+KeyValue” option for the KeyInfoType property. JsonArray Added the FindString and FindObject methods. Zip Fixed reliability issues in the UnzipToStream method. XmlDSigGen Fixed: The X509SerialNumber in the X509IssuerSerial needed to be in decimal, not hex. S/MIME Fixed an extremely rare issue where a digital signature verification failed but should’ve been successful. JsonObject Fixed the “Unable to lock my JSON object.” error that would be returned if SetStringOf was called on an empty JsonObject. CkString The loadFile method will now recognize Unicode/utf-8 BOMs and will load files correctly based on the BOM encountered.

private, Fixed, email, files, public, Added, method, Supports, memory, encrypted, Create, Features, directory, Component, Export, message, strings, multipart, format, Import, private, Fixed, email, files, public, Added, method, Supports, memory, encrypted, Create, directory, message, Component, Export, Features, Import, strings, multipart, property