.\" Automatically generated from an mdoc input file.  Do not edit.
.\" zip_file_set_encryption.mdoc -- set encryption method for file
.\" Copyright (C) 2016-2021 Dieter Baron and Thomas Klausner
.\"
.\" This file is part of libzip, a library to manipulate ZIP files.
.\" The authors can be contacted at <libzip@nih.at>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\" 3. The names of the authors may not be used to endorse or promote
.\"    products derived from this software without specific prior
.\"    written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.TH "ZIP_FILE_SET_ENCRYPTION" "3" "April 2, 2020" "NiH" "Library Functions Manual"
.nh
.if n .ad l
.SH "NAME"
\fBzip_file_set_encryption\fR
\- set encryption method for file in zip
.SH "LIBRARY"
libzip (-lzip)
.SH "SYNOPSIS"
\fB#include <zip.h>\fR
.sp
\fIint\fR
.br
.PD 0
.HP 4n
\fBzip_file_set_encryption\fR(\fIzip_t\ *archive\fR, \fIzip_uint64_t\ index\fR, \fIzip_uint16_t\ method\fR, \fIconst\ char\ *password\fR);
.PD
.SH "DESCRIPTION"
The
\fBzip_file_set_encryption\fR()
function sets the encryption method for the file at position
\fIindex\fR
in the zip archive to
\fImethod\fR
using the password
\fIpassword\fR.
The
\fImethod\fR
is the same as returned by
zip_stat(3).
For the
\fImethod\fR
argument, currently only the following values are supported:
.TP 19n
\fRZIP_EM_NONE\fR
No encryption.
.TP 19n
\fRZIP_EM_AES_128\fR
Winzip AES-128 encryption.
.TP 19n
\fRZIP_EM_AES_192\fR
Winzip AES-192 encryption.
.TP 19n
\fRZIP_EM_AES_256\fR
Winzip AES-256 encryption.
.TP 19n
\fRZIP_EM_TRAD_PKWARE\fR
.br
Traditional PKWare encryption.
Do not use this method, it is not secure.
It is only provided for backwards compatibility.
.PP
If
\fIpassword\fR
is
\fRNULL\fR,
the default password provided by
zip_set_default_password(3)
is used.
.PP
The current encryption method for a file in a zip archive can be
determined using
zip_stat(3).
.SH "RETURN VALUES"
Upon successful completion 0 is returned.
Otherwise, \-1 is returned and the error information in
\fIarchive\fR
is set to indicate the error.
.SH "ERRORS"
\fBzip_file_set_encryption\fR()
fails if:
.TP 19n
[\fRZIP_ER_ENCRNOTSUPP\fR]
Unsupported compression method requested.
.TP 19n
[\fRZIP_ER_INVAL\fR]
\fIindex\fR
is not a valid file index in
\fIarchive\fR,
or the argument combination is invalid.
.TP 19n
[\fRZIP_ER_MEMORY\fR]
Required memory could not be allocated.
.TP 19n
[\fRZIP_ER_RDONLY\fR]
Read-only zip file, no changes allowed.
.SH "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)
.SH "HISTORY"
\fBzip_file_set_encryption\fR()
was added in libzip 1.2.0.
.SH "AUTHORS"
Dieter Baron <\fIdillo@nih.at\fR>
and
Thomas Klausner <\fItk@giga.or.at\fR>
