Chilkat .NET Component Retail
Best selling POP3/SMTP email .NET component for C#, VB.NET, and ASP.NET. Best selling Zip .NET component for C#, VB.NET, and ASP.NET. HTTP client component for communicating with HTTP servers.

.NET encryption component for C#, VB.NET, ASP.NET:
    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)
    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.
    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.
    Send GET, POST, or HEAD requests to an HTTP server.
    Supports SSL/TLS.
    Resume interrupted download capability.
    Progress monitoring and abort capabilities (event callbacks).
    Save cookies to a persistant XML-based file store.
    Automatic save and re-send cookies from file or memory cookie storage.
    Automatically add cookies from a persistent file store to HTTP requests.
    Sophisticated caching capabilities.
    Cache can extend across multiple hard drives.
    Basic HTTP authentication (login/password).
    NTLM (Windows-Integrated) authentication.
    Kerberos, and Negotiate Authentication
    Supports HTTP proxies w/ proxy authentication.
    SOCKS4 and SOCKS5 proxy support.
    Two caching algorithms: LMFactor and constant-freshness.
    Automatically follow redirects.
    Read and connect timeout properties.
    Custom HTTP request headers.
    Handles international (non-English) web pages including Asian and Middle Eastern languages.
    Automatically manages a pool of connections with HTTP servers.
    Mimic FireFox or Internet Explorer.
    Supports client-side certificates for SSL.
    Provides access to all HTTP response header fields.
    Multipart/form-data for easy uploads to HTTP server.
    Resume (re-start) Downloads
    Client-side SSL Certificates
    Custom header fields
    Thread safe.
.NET FTP Component for C#, VB.NET, and ASP.NET.
    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
    Automatically handles One-Time Password (OTP), also known as S/KEY authentication.
    Supports international filenames in all major languages
    Supports all versions of the .NET Framework, both 32-bit and 64-bit.
    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
    Mode-Z compression
    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
    Secure FTP (FTPES) using AUTH TLS or AUTH SSL
    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.
    SOCKS4/SOCKS5 proxy support.
    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.
    Provides access to FTP SSL server certificate for verification.
    Royalty-free licensing
    License covers all programming languages: .NET, ActiveX, C++, Ruby, Perl, Python, Java, etc.
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.

Fixed, email, Added, files, method, memory, private, Supports, servers, directory, strings, property, server, header, Chilkat, remote, encryption, verification, using, encrypted, Fixed, email, files, Added, method, memory, private, directory, servers, Supports, server, property, strings, header, remote, Chilkat, encryption, methods, access, using