C
C
Encrypt Already Existing Zip
See more Zip Examples
To encrypt an already existing non-encrypted .zip, the application must open the .zip, set the encryption related properties, and then re-write.Chilkat C Downloads
#include <C_CkZip.h>
void ChilkatSample(void)
{
BOOL success;
HCkZip zip;
int numFilesUnzipped;
success = FALSE;
// This requires the Chilkat Zip API to have been previously unlocked.
// See Unlock Chilkat Zip for sample code.
zip = CkZip_Create();
// Open an unencrypted .zip
success = CkZip_OpenZip(zip,"qa_data/zips/test.zip");
if (success != TRUE) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
return;
}
// Unzip to a temp directory.
numFilesUnzipped = CkZip_Unzip(zip,"qa_output/tmp");
if (numFilesUnzipped < 0) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
return;
}
// Clear the zip object.
CkZip_NewZip(zip,"qa_output/aesTest.zip");
// Indicate that 128-bit AES encryption is to be used when writing the .zip
CkZip_putEncryption(zip,4);
CkZip_putEncryptKeyLength(zip,128);
// Set the password.
CkZip_putEncryptPassword(zip,"secret");
// Append the files.
CkZip_putAppendFromDir(zip,"qa_output/tmp");
success = CkZip_AppendFiles(zip,"*.*",TRUE);
if (success != TRUE) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
return;
}
// Write the .zip and close it.
success = CkZip_WriteZipAndClose(zip);
if (success != TRUE) {
printf("%s\n",CkZip_lastErrorText(zip));
CkZip_Dispose(zip);
return;
}
printf("Success.\n");
CkZip_Dispose(zip);
}