Sample code for 30+ languages & platforms
C

Encrypt / Decrypt Secure Strings

See more Encryption Examples

Demonstrates how to use the EncryptSecureENC and DecryptSecureENC methods to encrypt/decrypt secure strings. These methods were added in Chilkat v9.5.0.71 (released January 2018).

Chilkat C Downloads

C
#include <C_CkSecureString.h>
#include <C_CkCrypt2.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkSecureString secStr1;
    HCkCrypt2 crypt;
    const char *encryptedStr;
    HCkSecureString secStr2;

    success = FALSE;

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  Load the secure string with some text.
    secStr1 = CkSecureString_Create();
    success = CkSecureString_LoadFile(secStr1,"qa_data/txt/helloWorld.txt","utf-8");
    if (success != TRUE) {
        printf("Failed to load helloWorld.txt\n");
        CkSecureString_Dispose(secStr1);
        return;
    }

    crypt = CkCrypt2_Create();

    CkCrypt2_putCryptAlgorithm(crypt,"aes");
    CkCrypt2_putCipherMode(crypt,"cbc");
    CkCrypt2_putKeyLength(crypt,128);
    CkCrypt2_SetEncodedKey(crypt,"000102030405060708090A0B0C0D0E0F","hex");
    CkCrypt2_SetEncodedIV(crypt,"000102030405060708090A0B0C0D0E0F","hex");
    CkCrypt2_putEncodingMode(crypt,"base64");

    //  Return the base64 encoded encrypted contents of secStr1.
    encryptedStr = CkCrypt2_encryptSecureENC(crypt,secStr1);
    printf("Encrypted string: %s\n",encryptedStr);

    //  Output:
    //  Encrypted string: qiq+IFhcjTkEIkZyf31V/g==

    //  Decrypt to secStr2:
    secStr2 = CkSecureString_Create();
    CkCrypt2_DecryptSecureENC(crypt,encryptedStr,secStr2);

    //  Access the contents of secStr2
    printf("Decrypted string: %s\n",CkSecureString_access(secStr2));

    //  Output:
    //  Decrypted string: Hello World!


    CkSecureString_Dispose(secStr1);
    CkCrypt2_Dispose(crypt);
    CkSecureString_Dispose(secStr2);

    }