Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.js

C++ Examples

Async
Certificates
ECC
Email Object
Encryption
FTP
HTML-to-XML/Text
Gzip
HTTP
IMAP
JSON
Jwt
MHT / HTML Email
PEM
PFX/P12
Java KeyStore (JKS)
POP3
RSA Encryption
MIME
REST
SCP
SMTP
Socket/SSL/TLS
SSH Key
SSH
SSH Tunnel
SFTP
Stream
Tar Archive
XML
XMP
Zip

More Examples...
OpenSSL
Google APIs
Google Cloud Storage
Azure Cloud Storage
Amazon S3 (new)
Google Drive
Dropbox
Firebase
ASN.1
PRNG
Amazon S3
Bounced Email
CSV
Diffie-Hellman
DKIM / DomainKey
DSA
NTLM
QuickBooks
Spider
Digital Signatures

 

 

 

 

 

 

 

(C++) Encrypting and Decrypting Content

Demonstrates how to encrypt and decrypt the content of an XML node using 128-bit CBC AES encryption.

The input XML, available at http://www.chilkatsoft.com/data/fox.xml, is this:

<root>
    <fox1>The quick brown fox jumps over the lazy dog</fox1>
    <fox2>The quick brown fox jumps over the lazy dog
        <child1>ABC</child1>
        <child2>XYZ</child2>
    </fox2>
</root>

Chilkat C/C++ Library Downloads

MS Visual C/C++

Linux/CentOS/Heroku C/C++

MAC OS X C/C++

C++ Builder

Solaris C/C++

iOS C/C++

Android C/C++

Raspberry Pi C/C++

Windows Mobile 5.0/Pocket PC 2003

ARM Embedded Linux C/C++

PowerLinux C/C++

FreeBSD C/C++

MinGW C/C++

#include <CkXml.h>

void ChilkatSample(void)
    {
    CkXml xml;

    bool success;
    //  The sample input XML is available at http://www.chilkatsoft.com/data/fox.xml
    success = xml.LoadXmlFile("fox.xml");
    if (success != true) {
        std::cout << xml.lastErrorText() << "\r\n";
        return;
    }

    //  Navigate to the "fox1" node, which is the 1st child:
    success = xml.FirstChild2();

    //  Encrypt the content:
    success = xml.EncryptContent("myPassword");

    //  Navigate back to the root:
    xml.GetRoot2();

    //  Examine the new XML document:
    std::cout << xml.getXml() << "\r\n";

    //  This is the XML w/ the encrypted content:
    
/*
<root>
    <fox1>1hTtf7XmO+78H+OIr5eWHIuXxP78KPeYrZbsD0HX4negO9ZRqYMBY4s46sPNp+Q+
    </fox1>
    <fox2>The quick brown fox jumps over the lazy dog
        <child1>ABC</child1>
        <child2>XYZ</child2>
    </fox2>
</root>
*/ // Now decrypt and show that the original content was restored: success = xml.FirstChild2(); success = xml.DecryptContent("myPassword"); xml.GetRoot2(); std::cout << xml.getXml() << "\r\n"; // Now encrypt the content of the "fox2" node. // First navigate to the "fox2" child. success = xml.FindChild2("fox2"); success = xml.EncryptContent("myPassword"); xml.GetRoot2(); std::cout << xml.getXml() << "\r\n"; // This is the XML w/ the "fox2" encrypted content: /*
<root>
    <fox1>The quick brown fox jumps over the lazy dog</fox1>
    <fox2>1hTtf7XmO+78H+OIr5eWHIuXxP78KPeYrZbsD0HX4negO9ZRqYMBY4s46sPNp+Q+

        <child1>ABC</child1>
        <child2>XYZ</child2>
    </fox2>
</root>
*/ // Notice that the *content* of the node is encrypted. The child nodes are NOT encrypted. // This is intentional. To encrypt the content + the subtrees rooted at a given node, // one would call ZipTree to transform the content and subtrees // to Base64-encoded compressed content, and then call // EncryptContent to encrypt. // Finally, decrypt the "fox2" content: success = xml.FindChild2("fox2"); success = xml.DecryptContent("myPassword"); xml.GetRoot2(); std::cout << xml.getXml() << "\r\n"; }
 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.