set encryption method for file in zip

libzip (-lzip)

#include <zip.h>

zip_file_set_encryption(zip_t *archive, zip_uint64_t index, zip_uint16_t method, const char *password);

The zip_file_set_encryption() function sets the encryption method for the file at position index in the zip archive to method using the password password. The method is the same as returned by zip_stat(3). For the method argument, currently only the following values are supported:
No encryption.
Winzip AES-128 encryption.
Winzip AES-192 encryption.
Winzip AES-256 encryption.
Traditional PKWare encryption. Do not use this method, it is not secure. It is only provided for backwards compatibility.

If password is NULL, the default password provided by zip_set_default_password(3) is used.

The current encryption method for a file in a zip archive can be determined using zip_stat(3).

Upon successful completion 0 is returned. Otherwise, -1 is returned and the error information in archive is set to indicate the error.

zip_file_set_encryption() fails if:
Unsupported compression method requested.
index is not a valid file index in archive, or the argument combination is invalid.
Required memory could not be allocated.
Read-only zip file, no changes allowed.

libzip(3), zip_encryption_method_supported(3), zip_fopen_encrypted(3), zip_fopen_index_encrypted(3), zip_set_default_password(3), zip_stat(3)

zip_file_set_encryption() was added in libzip 1.2.0.

Dieter Baron <> and Thomas Klausner <>