Zig
Zig
Create a WinZip/7-Zip compatible AES Encrypted Zip
See more Zip Examples
Creates a WinZip compatible AES-encrypted .zip archiveChilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const zip = try chilkat.Zip.init();
defer zip.deinit();
zip.newZip("/myZipDir/aes.zip") catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
// Set properties to indicate that the Zip should be
// AES encrypted.
// A value of 4 indicates WinZip compatible AES encryption.
zip.setEncryption(4);
// Key length can be 128, 192, or 256 bits.
zip.setEncryptKeyLength(128);
// Set the password for AES encryption:
zip.setEncryptPassword("myPassword");
// Add a directory tree to be zipped. (The files
// are not compressed at this point -- only references
// to the files and directories are added to the zip object.)
const recurse = true;
zip.appendFiles("c:/temp/a/*", recurse) catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
// Create the encrypted zip ("/myZipDir/aes.zip")
// The path of the zip is what was originally passed
// to the NewZip method (above).
zip.writeZipAndClose() catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
std.debug.print("Created AES Encrypted Zip.\n", .{});
}