Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
MIME
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip


 

 

 

 

 

 

 

 

3DES Encryption, ECB, CBC modes

3DES encryption. The Chilkat encryption component supports Triple-DES in both ECB (Electronic Cookbook) and CBC (Cipher-Block Chaining) cipher modes.

Download Chilkat C/C++ Libraries for VC++ 9.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

Download Chilkat C/C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#include <C_CkCrypt2.h>

void ChilkatSample(void)
    {
    HCkCrypt2 crypt;
    BOOL success;
    const char * ivHex;
    const char * keyHex;
    const char * encStr;
    const char * decStr;

    crypt = CkCrypt2_Create();

    success = CkCrypt2_UnlockComponent(crypt,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("Crypt component unlock failed\n");
        return;
    }

    //  Specify 3DES for the encryption algorithm:
    CkCrypt2_putCryptAlgorithm(crypt,"3des");

    //  CipherMode may be "ecb" or "cbc"
    CkCrypt2_putCipherMode(crypt,"cbc");

    //  KeyLength must be 192.  3DES is technically 168-bits;
    //  the most-significant bit of each key byte is a parity bit,
    //  so we must indicate a KeyLength of 192, which includes
    //  the parity bits.
    CkCrypt2_putKeyLength(crypt,192);

    //  The padding scheme determines the contents of the bytes
    //  that are added to pad the result to a multiple of the
    //  encryption algorithm's block size.  3DES has a block
    //  size of 8 bytes, so encrypted output is always
    //  a multiple of 8.
    CkCrypt2_putPaddingScheme(crypt,0);

    //  EncodingMode specifies the encoding of the output for
    //  encryption, and the input for decryption.
    //  It may be "hex", "url", "base64", or "quoted-printable".
    CkCrypt2_putEncodingMode(crypt,"hex");

    //  An initialization vector is required if using CBC or CFB modes.
    //  ECB mode does not use an IV.
    //  The length of the IV is equal to the algorithm's block size.
    //  It is NOT equal to the length of the key.

    ivHex = "0001020304050607";
    CkCrypt2_SetEncodedIV(crypt,ivHex,"hex");

    //  The secret key must equal the size of the key.  For
    //  3DES, the key must be 24 bytes (i.e. 192-bits).

    keyHex = "000102030405060708090A0B0C0D0E0F0001020304050607";
    CkCrypt2_SetEncodedKey(crypt,keyHex,"hex");

    //  Encrypt a string...
    //  The input string is 44 ANSI characters (i.e. 44 bytes), so
    //  the output should be 48 bytes (a multiple of 8).
    //  Because the output is a hex string, it should
    //  be 96 characters long (2 chars per byte).

    encStr = CkCrypt2_encryptStringENC(crypt,"The quick brown fox jumps over the lazy dog.");
    printf("%s\n",encStr);

    //  Now decrypt:

    decStr = CkCrypt2_decryptStringENC(crypt,encStr);
    printf("%s\n",decStr);

    CkCrypt2_Dispose(crypt);

    }

Need a specific example? Send a request to support@chilkatsoft.com

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