Unicode C
Unicode C
Encrypt / Decrypt a File and Verify it has not Changed
See more Encryption Examples
Demonstrates how to encrypt and decrypt a file, and verify it has not changed.Chilkat Unicode C Downloads
#include <C_CkCrypt2W.h>
#include <C_CkFileAccessW.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2W crypt;
const wchar_t *ivHex;
const wchar_t *keyHex;
const wchar_t *dataFile;
const wchar_t *outFile;
const wchar_t *outFile2;
HCkFileAccessW fac;
BOOL bEqual;
success = FALSE;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
crypt = CkCrypt2W_Create();
CkCrypt2W_putCryptAlgorithm(crypt,L"aes");
CkCrypt2W_putCipherMode(crypt,L"cbc");
CkCrypt2W_putKeyLength(crypt,128);
CkCrypt2W_putPaddingScheme(crypt,0);
ivHex = L"000102030405060708090A0B0C0D0E0F";
CkCrypt2W_SetEncodedIV(crypt,ivHex,L"hex");
keyHex = L"00010203040506071011121314151617";
CkCrypt2W_SetEncodedKey(crypt,keyHex,L"hex");
dataFile = L"qa_data/zips/HBIQ040615300005.ZIP";
outFile = L"qa_output/HBIQ040615300005.enc";
outFile2 = L"qa_output/HBIQ040615300005.ZIP";
success = CkCrypt2W_CkEncryptFile(crypt,dataFile,outFile);
success = CkCrypt2W_CkDecryptFile(crypt,outFile,outFile2);
fac = CkFileAccessW_Create();
bEqual = CkFileAccessW_FileContentsEqual(fac,dataFile,outFile2);
if (bEqual != TRUE) {
wprintf(L"Decrypted file not equal to the original.\n");
}
else {
wprintf(L"Success.\n");
}
CkCrypt2W_Dispose(crypt);
CkFileAccessW_Dispose(fac);
}