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.

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_set_default_password(3), zip_stat(3)

zip_file_set_encryption() was added in libzip 1.2.0.

Dieter Baron <> and Thomas Klausner <>