Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 0
# This requires the Chilkat Zip API to have been previously unlocked.
# See Unlock Chilkat Zip for sample code.
set zip [new_CkZip]
# Open an unencrypted .zip
set success [CkZip_OpenZip $zip "qa_data/zips/test.zip"]
if {$success != 1} then {
puts [CkZip_lastErrorText $zip]
delete_CkZip $zip
exit
}
# Unzip to a temp directory.
set numFilesUnzipped [CkZip_Unzip $zip "qa_output/tmp"]
if {$numFilesUnzipped < 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkZip $zip
exit
}
# 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_put_Encryption $zip 4
CkZip_put_EncryptKeyLength $zip 128
# Set the password.
CkZip_put_EncryptPassword $zip "secret"
# Append the files.
CkZip_put_AppendFromDir $zip "qa_output/tmp"
set success [CkZip_AppendFiles $zip "*.*" 1]
if {$success != 1} then {
puts [CkZip_lastErrorText $zip]
delete_CkZip $zip
exit
}
# Write the .zip and close it.
set success [CkZip_WriteZipAndClose $zip]
if {$success != 1} then {
puts [CkZip_lastErrorText $zip]
delete_CkZip $zip
exit
}
puts "Success."
delete_CkZip $zip