Sample code for 30+ languages & platforms
C

UN/EDIFACT Syntax Level A Encoding/Decoding

See more Encryption Examples

Demonstrates the new "eda" encoding that can be used throughout Chilkat starting in v9.5.0.65.

Chilkat C Downloads

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

void ChilkatSample(void)
    {
    HCkStringBuilder sb;
    HCkCrypt2 crypt;
    const char *ivHex;
    const char *keyHex;
    const char *encStr;
    const char *decStr;

    // Note: Requires Chilkat v9.5.0.65 or greater.

    sb = CkStringBuilder_Create();
    CkStringBuilder_Append(sb,"The 5 men of 223rd St");
    printf("%s\n",CkStringBuilder_getAsString(sb));

    // Encode the utf-8 byte representation of the string in the 
    // UN/EDIFACT syntax level A character set.
    CkStringBuilder_Encode(sb,"eda","utf-8");
    printf("%s\n",CkStringBuilder_getAsString(sb));

    // EDA Output should be: BTME027FCF6CFARFI94JT6.)F(14KJ2U

    // Decode back to the original string.
    CkStringBuilder_Decode(sb,"eda","utf-8");
    printf("%s\n",CkStringBuilder_getAsString(sb));
    printf("----\n");

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

    // The "eda" encoding can be used anywhere within Chilkat.
    // For example, with the Crypt2 API
    crypt = CkCrypt2_Create();
    CkCrypt2_putCryptAlgorithm(crypt,"aes");
    CkCrypt2_putCipherMode(crypt,"cbc");
    CkCrypt2_putKeyLength(crypt,256);
    CkCrypt2_putEncodingMode(crypt,"eda");

    ivHex = "000102030405060708090A0B0C0D0E0F";
    CkCrypt2_SetEncodedIV(crypt,ivHex,"hex");
    keyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F";
    CkCrypt2_SetEncodedKey(crypt,keyHex,"hex");

    encStr = CkCrypt2_encryptStringENC(crypt,"The quick brown fox jumps over the lazy dog.");
    // The output is UN/EDIFACT syntax level A 
    printf("%s\n",encStr);

    // Now decrypt:
    decStr = CkCrypt2_decryptStringENC(crypt,encStr);
    printf("%s\n",decStr);


    CkStringBuilder_Dispose(sb);
    CkCrypt2_Dispose(crypt);

    }