Zig
Zig
Determine if a Zip is Encrypted or Password-Protected
See more Zip Examples
Determines whether or not a zip archive is AES encrypted or password-protected.Chilkat 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();
// An encrypted or password-protected zip can be opened
// without specifying the password. However, the contents
// of the files cannot be unzipped without providing the correct
// password.
zip.openZip("something.zip") catch {
std.debug.print("{s}\n", .{try zip.getLastErrorText(alloc)});
return;
};
// If the zip is password-protected, meaning that it uses
// the old (insecure) Zip 2.0 encryption, then the
// PasswordProtect property will be true
const b_pwd_prot = zip.getPasswordProtect();
if (b_pwd_prot) {
std.debug.print("This zip is password-protected.\n", .{});
}
// If the zip is AES encrypted (WinZip compatible) then
// the Encryption property will be equal to 4.
const enc_value = zip.getEncryption();
if (enc_value == 4) {
std.debug.print("This zip is AES encrypted.\n", .{});
}
// If the Encryption property = 0, then the zip is NOT
// strong encrypted, and is either password-protected or
// entirely unencrypted, depending on the value of the
// PasswordProtect property.
zip.closeZip();
}