Add two test cases for decryption.
diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt
index cfd22dd..f6df6aa 100644
--- a/regress/CMakeLists.txt
+++ b/regress/CMakeLists.txt
@@ -43,6 +43,8 @@
add_from_zip_stored.test
add_stored.test
add_stored_in_memory.test
+ decrypt-correct-password.test
+ decrypt-wrong-password.test
delete_add_same.test
delete_invalid.test
delete_last.test
diff --git a/regress/Makefile.am b/regress/Makefile.am
index 06aea69..7f2bbfe 100644
--- a/regress/Makefile.am
+++ b/regress/Makefile.am
@@ -136,6 +136,8 @@
add_from_zip_stored.test \
add_stored.test \
add_stored_in_memory.test \
+ decrypt-correct-password.test \
+ decrypt-wrong-password.test \
delete_add_same.test \
delete_invalid.test \
delete_last.test \
diff --git a/regress/decrypt-correct-password.test b/regress/decrypt-correct-password.test
new file mode 100644
index 0000000..57a66b8
--- /dev/null
+++ b/regress/decrypt-correct-password.test
@@ -0,0 +1,6 @@
+# test decryption support, extract file using correct password
+program modify
+return 0
+args encrypt.zzip set_password foo cat 0
+file encrypt.zzip encrypt.zip encrypt.zip
+stdout foo
diff --git a/regress/decrypt-wrong-password.test b/regress/decrypt-wrong-password.test
new file mode 100644
index 0000000..b4e4f49
--- /dev/null
+++ b/regress/decrypt-wrong-password.test
@@ -0,0 +1,6 @@
+# test decryption support, extract file using wrong password
+program modify
+return 1
+args encrypt.zzip set_password notfoo cat 0
+file encrypt.zzip encrypt.zip encrypt.zip
+stderr can't open file at index '0': Wrong password provided
diff --git a/regress/modify.c b/regress/modify.c
index a278686..bcad220 100644
--- a/regress/modify.c
+++ b/regress/modify.c
@@ -475,6 +475,16 @@
}
static int
+set_password(int argc, char *argv[]) {
+ /* set default password */
+ if (zip_set_default_password(za, argv[0]) < 0) {
+ fprintf(stderr, "can't set default password to `%s'", argv[0]);
+ return -1;
+ }
+ return 0;
+}
+
+static int
zstat(int argc, char *argv[]) {
zip_uint64_t idx;
char buf[100];
@@ -831,6 +841,7 @@
{ "set_file_comment", 2, "index comment", "set file comment", set_file_comment },
{ "set_file_compression", 3, "index method flags", "set file compression method", set_file_compression },
{ "set_file_mtime", 2, "index timestamp", "set file modification time", set_file_mtime },
+ { "set_password", 1, "set default password", "set default password for encryption", set_password },
{ "stat", 1, "index", "print information about entry", zstat },
{ "unchange_all", 0, "", "revert all changes", unchange_all },
{ "zin_close", 1, "index", "close input zip_source (for internal tests)", zin_close }