ZIP_FILE_SET_ENCRYPTION(3) | Library Functions Manual | ZIP_FILE_SET_ENCRYPTION(3)

# NAME

`zip_file_set_encryption` — set encryption method for file in zip

# LIBRARY

libzip (-lzip)

# SYNOPSIS

`#include <zip.h>`

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

# DESCRIPTION

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:

`ZIP_EM_NONE`
  No encryption.
`ZIP_EM_AES_128`
  Winzip AES-128 encryption.
`ZIP_EM_AES_192`
  Winzip AES-192 encryption.
`ZIP_EM_AES_256`
  Winzip AES-256 encryption.
`ZIP_EM_TRAD_PKWARE`
  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).

# RETURN VALUES

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

# ERRORS

`zip_file_set_encryption`() fails if:

[`ZIP_ER_ENCRNOTSUPP`]
  Unsupported compression method requested.
[`ZIP_ER_INVAL`]
  index is not a valid file index in archive, or the argument combination is invalid.
[`ZIP_ER_MEMORY`]
  Required memory could not be allocated.
[`ZIP_ER_RDONLY`]
  Read-only zip file, no changes allowed.

# SEE ALSO

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

# HISTORY

`zip_file_set_encryption`() was added in libzip 1.2.0.

# AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>

April 2, 2020 | NiH