Winzip AES encryption support for writing.
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index a8a8e3d..9f893f5 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt
@@ -31,6 +31,9 @@ zip_file_get_error.mdoc zip_file_rename.mdoc zip_file_set_comment.mdoc + zip_file_set_encryption.mdoc + zip_file_set_external_attributes.mdoc + zip_file_set_mtime.mdoc zip_file_strerror.mdoc zip_fopen.mdoc zip_fopen_encrypted.mdoc
diff --git a/man/Makefile.am b/man/Makefile.am index 2ceb27c..4e0cc8e 100644 --- a/man/Makefile.am +++ b/man/Makefile.am
@@ -40,6 +40,7 @@ zip_file_get_external_attributes.mdoc \ zip_file_rename.mdoc \ zip_file_set_comment.mdoc \ + zip_file_set_encryption.mdoc \ zip_file_set_external_attributes.mdoc \ zip_file_set_mtime.mdoc \ zip_file_strerror.mdoc \
diff --git a/man/zip_file_set_encryption.mdoc b/man/zip_file_set_encryption.mdoc new file mode 100644 index 0000000..14fdf98 --- /dev/null +++ b/man/zip_file_set_encryption.mdoc
@@ -0,0 +1,112 @@ +.\" zip_file_set_encryption.mdoc -- set encryption method for file +.\" Copyright (C) 2016 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. +.\" +.Dd December 16, 2016 +.Dt ZIP_FILE_SET_ENCRYPTION 3 +.Os +.Sh NAME +.Nm zip_file_set_encryption +.Nd set encryption method for file in zip +.Sh LIBRARY +libzip (-lzip) +.Sh SYNOPSIS +.In zip.h +.Ft int +.Fn zip_file_set_encryption "zip_t *archive" "zip_uint64_t index" \ +"zip_int32_t method" "const char *password" +.Sh DESCRIPTION +The +.Fn zip_file_set_encryption +function sets the encryption method for the file at position +.Ar index +in the zip archive to +.Ar method +using the password +.Ar password . +The +.Ar method +is the same as returned by +.Xr zip_stat 3 . +For the +.Ar method +argument, currently only the following values are supported: +.Bl -tag -width ZIP_CM_DEFLATE_XX +.It Dv ZIP_EM_NONE +No encryption. +.It Dv ZIP_EM_AES_128 +Winzip AES-128 encryption. +.It Dv ZIP_EM_AES_192 +Winzip AES-192 encryption. +.It Dv ZIP_EM_AES_256 +Winzip AES-256 encryption. +.El +.Pp +If +.Ar password +is +.Dv NULL , +the default password provided by +.Xr zip_set_default_password 3 +is used. +.Pp +The current encryption method for a file in a zip archive can be +determined using +.Xr zip_stat 3 . +.Sh RETURN VALUES +Upon successful completion 0 is returned. +Otherwise, \-1 is returned and the error information in +.Ar archive +is set to indicate the error. +.Sh ERRORS +.Fn zip_file_set_encryption +fails if: +.Bl -tag -width Er +.It Bq Er ZIP_ER_ENCRNOTSUPP +Unsupported compression method requested. +.It Bq Er ZIP_ER_INVAL +.Ar index +is not a valid file index in +.Ar archive , +or the argument combination is invalid. +.It Bq Er ZIP_ER_MEMORY +Required memory could not be allocated. +.It Bq Er ZIP_ER_RDONLY +Read-only zip file, no changes allowed. +.El +.Sh SEE ALSO +.Xr libzip 3 , +.Xr zip_set_default_password 3 , +.Xr zip_stat 3 +.Sh AUTHORS +.An -nosplit +.An Dieter Baron Aq Mt dillo@nih.at +and +.An Thomas Klausner Aq Mt tk@giga.or.at
diff --git a/man/zip_source_function.mdoc b/man/zip_source_function.mdoc index ae8b865..4cdfd44 100644 --- a/man/zip_source_function.mdoc +++ b/man/zip_source_function.mdoc
@@ -1,5 +1,5 @@ .\" zip_source_function.mdoc -- create data source from function -.\" Copyright (C) 2004-2014 Dieter Baron and Thomas Klausner +.\" Copyright (C) 2004-2016 Dieter Baron and Thomas Klausner .\" .\" This file is part of libzip, a library to manipulate ZIP archives. .\" The authors can be contacted at <libzip@nih.at> @@ -29,7 +29,7 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 13, 2014 +.Dd December 16, 2016 .Dt ZIP_SOURCE_FUNCTION 3 .Os .Sh NAME @@ -146,7 +146,7 @@ .Ar len . Return the number of bytes placed into .Ar data -on success. +on success, and zero for end-of-file. .Ss Dv ZIP_SOURCE_REMOVE Remove the underlying file. This is called if a zip archive is empty when closed.
diff --git a/man/zip_source_read.mdoc b/man/zip_source_read.mdoc index c9a29b9..7fb5d96 100644 --- a/man/zip_source_read.mdoc +++ b/man/zip_source_read.mdoc
@@ -1,5 +1,5 @@ .\" zip_source_read.mdoc -- read data from zip source -.\" Copyright (C) 2014 Dieter Baron and Thomas Klausner +.\" Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner .\" .\" This file is part of libzip, a library to manipulate ZIP archives. .\" The authors can be contacted at <libzip@nih.at> @@ -29,7 +29,7 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 18, 2014 +.Dd December 16, 2016 .Dt ZIP_SOURCE_READ 3 .Os .Sh NAME @@ -58,6 +58,7 @@ first. .Sh RETURN VALUES Upon successful completion the number of bytes read is returned. +Upon reading end-of-file, zero is returned. Otherwise, \-1 is returned and the error information in .Ar source is set to indicate the error.
diff --git a/man/ziptool.mdoc b/man/ziptool.mdoc index ec7a751..4eca252 100644 --- a/man/ziptool.mdoc +++ b/man/ziptool.mdoc
@@ -29,7 +29,7 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 25, 2016 +.Dd December 16, 2016 .Dt ZIPTOOL 1 .Os .Sh NAME @@ -256,6 +256,13 @@ Currently, .Ar compression_flags are ignored. +.It Cm set_file_encryption Ar index method password +Set file encryption method for archive entry +.Ar index +to +.Ar method +with password +.Ar password . .It Cm set_file_mtime Ar index timestamp Set file modification time for archive entry .Ar index @@ -304,6 +311,19 @@ .It .Dv store .El +.Ss Encryption Methods +Some commands take encryption method arguments. +Supported methods are: +.Bl -bullet -compact -offset indent +.It +.Dv none +.It +.Dv AES-128 +.It +.Dv AES-192 +.It +.Dv AES-256 +.El .Sh EXIT STATUS .Ex -std .Sh EXAMPLES