summaryrefslogtreecommitdiff
path: root/libarchive
diff options
context:
space:
mode:
authorKonrad Kleine <konrad.wilhelm.kleine@gmail.com>2013-10-09 13:53:15 +0200
committerKonrad Kleine <konrad.wilhelm.kleine@gmail.com>2013-10-09 13:53:15 +0200
commit2de568ca5b0ccdbababf6e3857e2e05eea9eb0a6 (patch)
tree1a8e5ab4c68d4953b08f799543f211fae7d7b407 /libarchive
parentfec2ae3cd3b16ae97a8bf3ff2c8b878697e9852e (diff)
downloadlibarchive-2de568ca5b0ccdbababf6e3857e2e05eea9eb0a6.tar.gz
Better archive_read_has_encrypted_entries function
These are the possible return values: ===================================== ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED (-2): ------------------------------------------------ This is the default return value for reader that don't support encrpytion detection at all. When this value is returned you can be sure that it will always be returned even on later calls to archive_read_has_encrypted_entries. ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW (-1): ---------------------------------------------- This is the default return value for readers that support encryption. It means that the reader is not yet ready (e.g. not enough data was read so far) to say that there are encrypted entries in the archive. Over time as more data was consumed by a reader this value might change to 0 or 1. 0: -- No encrypted entries were found yet (maybe there will be one when reading the next header). When 0 is returned, it might be that on a later call 1 will be returned. 1: -- At least one encrypted entry was found. Once 1 is returned. It will always be returned even if the another entry is not encrypted. NOTE: ===== If the metadata/header of an archive is also encrypted, you cannot rely on the number of encrypted entries. That is why this function does not return the number of encrypted entries but just 1 to show that there are some. Also, two distinct readers might detect the number of entries and their encryption status at different times. If one reader can say how many files are encrypted after reading the first header another reader might need more data. In the end the number of encrypted entries might be the same in two archives while the appropriate readers output different results at different points in time. This is more confusing than helpful.
Diffstat (limited to 'libarchive')
-rw-r--r--libarchive/archive.h33
-rw-r--r--libarchive/archive_entry.h4
-rw-r--r--libarchive/archive_read.c38
-rw-r--r--libarchive/archive_read_private.h24
-rw-r--r--libarchive/archive_read_support_format_7zip.c49
-rw-r--r--libarchive/archive_read_support_format_rar.c32
-rw-r--r--libarchive/archive_read_support_format_zip.c49
-rw-r--r--libarchive/test/test_read_format_7zip.c2
-rw-r--r--libarchive/test/test_read_format_7zip_encryption_data.c2
-rw-r--r--libarchive/test/test_read_format_7zip_encryption_header.c2
-rw-r--r--libarchive/test/test_read_format_7zip_encryption_partially.c2
-rw-r--r--libarchive/test/test_read_format_ar.c6
-rw-r--r--libarchive/test/test_read_format_cab.c22
-rw-r--r--libarchive/test/test_read_format_cab_filename.c8
-rw-r--r--libarchive/test/test_read_format_cpio_afio.c4
-rw-r--r--libarchive/test/test_read_format_cpio_bin.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_Z.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_be.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_bz2.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_gz.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_lzip.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_lzma.c2
-rw-r--r--libarchive/test/test_read_format_cpio_bin_xz.c2
-rw-r--r--libarchive/test/test_read_format_cpio_filename.c4
-rw-r--r--libarchive/test/test_read_format_cpio_odc.c2
-rw-r--r--libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c6
-rw-r--r--libarchive/test/test_read_format_cpio_svr4_gzip.c2
-rw-r--r--libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c2
-rw-r--r--libarchive/test/test_read_format_cpio_svr4c_Z.c2
-rw-r--r--libarchive/test/test_read_format_empty.c2
-rw-r--r--libarchive/test/test_read_format_gtar_filename.c2
-rw-r--r--libarchive/test/test_read_format_gtar_gz.c2
-rw-r--r--libarchive/test/test_read_format_gtar_lzma.c2
-rw-r--r--libarchive/test/test_read_format_gtar_sparse.c2
-rw-r--r--libarchive/test/test_read_format_iso_Z.c4
-rw-r--r--libarchive/test/test_read_format_iso_multi_extent.c2
-rw-r--r--libarchive/test/test_read_format_iso_xorriso.c4
-rw-r--r--libarchive/test/test_read_format_isojoliet_bz2.c6
-rw-r--r--libarchive/test/test_read_format_isojoliet_long.c8
-rw-r--r--libarchive/test/test_read_format_isojoliet_rr.c10
-rw-r--r--libarchive/test/test_read_format_isojoliet_versioned.c4
-rw-r--r--libarchive/test/test_read_format_isorr_bz2.c2
-rw-r--r--libarchive/test/test_read_format_isorr_ce.c2
-rw-r--r--libarchive/test/test_read_format_isorr_new_bz2.c2
-rw-r--r--libarchive/test/test_read_format_isorr_rr_moved.c4
-rw-r--r--libarchive/test/test_read_format_isozisofs_bz2.c4
-rw-r--r--libarchive/test/test_read_format_lha.c16
-rw-r--r--libarchive/test/test_read_format_lha_filename.c4
-rw-r--r--libarchive/test/test_read_format_mtree.c92
-rw-r--r--libarchive/test/test_read_format_pax_bz2.c2
-rw-r--r--libarchive/test/test_read_format_rar_encryption_data.c2
-rw-r--r--libarchive/test/test_read_format_rar_encryption_header.c2
-rw-r--r--libarchive/test/test_read_format_rar_encryption_partially.c2
-rw-r--r--libarchive/test/test_read_format_raw.c4
-rw-r--r--libarchive/test/test_read_format_tar.c4
-rw-r--r--libarchive/test/test_read_format_tar_empty_filename.c2
-rw-r--r--libarchive/test/test_read_format_tar_empty_pax.c2
-rw-r--r--libarchive/test/test_read_format_tar_filename.c26
-rw-r--r--libarchive/test/test_read_format_tbz.c2
-rw-r--r--libarchive/test/test_read_format_tgz.c2
-rw-r--r--libarchive/test/test_read_format_tlz.c2
-rw-r--r--libarchive/test/test_read_format_txz.c2
-rw-r--r--libarchive/test/test_read_format_tz.c2
-rw-r--r--libarchive/test/test_read_format_ustar_filename.c39
-rw-r--r--libarchive/test/test_read_format_xar.c2
-rw-r--r--libarchive/test/test_read_format_zip_comment_stored.c4
-rw-r--r--libarchive/test/test_read_format_zip_encryption_data.c4
-rw-r--r--libarchive/test/test_read_format_zip_encryption_header.c2
-rw-r--r--libarchive/test/test_read_format_zip_encryption_partially.c2
69 files changed, 381 insertions, 213 deletions
diff --git a/libarchive/archive.h b/libarchive/archive.h
index 0d3ed8f4..cae01c60 100644
--- a/libarchive/archive.h
+++ b/libarchive/archive.h
@@ -297,6 +297,18 @@ typedef int archive_switch_callback(struct archive *, void *_client_data1,
#define ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA (1<<0) /* reader can detect encrypted data */
#define ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA (1<<1) /* reader can detect encryptable metadata (pathname, mtime, etc.) */
+/*
+ * Codes returned by archive_read_has_encrypted_entries().
+ *
+ * In case the archive does not support encryption detection at all
+ * ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED is returned. If the reader
+ * for some other reason (e.g. not enough bytes read) cannot say if
+ * there are encrypted entries, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+ * is returned.
+ */
+#define ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED -2
+#define ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW -1
+
/*-
* Basic outline for reading an archive:
* 1) Ask archive_read_new for an archive reader object.
@@ -478,8 +490,25 @@ __LA_DECL int archive_read_next_header2(struct archive *,
*/
__LA_DECL __LA_INT64_T archive_read_header_position(struct archive *);
-/* Returns "true" (non-zero) if the archive contains encrypted entries; otherwise 0 is returned. */
-__LA_DECL int archive_read_has_encrypted_entries(struct archive *);
+/*
+ * Returns 1 if the archive contains at least one encrypted entry.
+ * If the archive format not support encryption at all
+ * ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED is returned.
+ * If for any other reason (e.g. not enough data read so far)
+ * we cannot say whether there are encrypted entries, then
+ * ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW is returned.
+ * In general, this function will return values below zero when the
+ * reader is uncertain or totally uncapable of encryption support.
+ * When this function returns 0 you can be sure that the reader
+ * supports encryption detection but no encrypted entries have
+ * been found yet.
+ *
+ * NOTE: If the metadata/header of an archive is also encrypted, you
+ * cannot rely on the number of encrypted entries. That is why this
+ * function does not return the number of encrypted entries but#
+ * just shows that there are some.
+ */
+__LA_DECL char archive_read_has_encrypted_entries(struct archive *);
/*
* Returns a bitmask of capabilities that are supported by the archive format reader.
diff --git a/libarchive/archive_entry.h b/libarchive/archive_entry.h
index ebd85d97..590b501a 100644
--- a/libarchive/archive_entry.h
+++ b/libarchive/archive_entry.h
@@ -309,8 +309,8 @@ __LA_DECL void archive_entry_set_uname(struct archive_entry *, const char *);
__LA_DECL void archive_entry_copy_uname(struct archive_entry *, const char *);
__LA_DECL void archive_entry_copy_uname_w(struct archive_entry *, const wchar_t *);
__LA_DECL int archive_entry_update_uname_utf8(struct archive_entry *, const char *);
-__LA_DECL void archive_entry_set_is_data_encrypted(struct archive_entry *, char encrypted);
-__LA_DECL void archive_entry_set_is_metadata_encrypted(struct archive_entry *, char encrypted);
+__LA_DECL void archive_entry_set_is_data_encrypted(struct archive_entry *, char is_encrypted);
+__LA_DECL void archive_entry_set_is_metadata_encrypted(struct archive_entry *, char is_encrypted);
/*
* Routines to bulk copy fields to/from a platform-native "struct
* stat." Libarchive used to just store a struct stat inside of each
diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c
index 77293837..43e1d258 100644
--- a/libarchive/archive_read.c
+++ b/libarchive/archive_read.c
@@ -746,15 +746,43 @@ archive_read_header_position(struct archive *_a)
return (a->header_position);
}
-/* Returns "true" (non-zero) if the archive contains encrypted entries; otherwise 0 is returned. */
-int
+/*
+ * Returns 1 if the archive contains at least one encrypted entry.
+ * If the archive format not support encryption at all
+ * ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED is returned.
+ * If for any other reason (e.g. not enough data read so far)
+ * we cannot say whether there are encrypted entries, then
+ * ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW is returned.
+ * In general, this function will return values below zero when the
+ * reader is uncertain or totally uncapable of encryption support.
+ * When this function returns 0 you can be sure that the reader
+ * supports encryption detection but no encrypted entries have
+ * been found yet.
+ *
+ * NOTE: If the metadata/header of an archive is also encrypted, you
+ * cannot rely on the number of encrypted entries. That is why this
+ * function does not return the number of encrypted entries but#
+ * just shows that there are some.
+ */
+char
archive_read_has_encrypted_entries(struct archive *_a)
{
struct archive_read *a = (struct archive_read *)_a;
- if (a && a->format && a->format->has_encrypted_entries) {
+ int format_supports_encryption = archive_read_format_capabilities(_a)
+ & (ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA);
+
+ if (!_a || !format_supports_encryption) {
+ /* Format in general doesn't support encryption */
+ return ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED;
+ }
+
+ /* A reader potentially has read enough data now. */
+ if (a->format && a->format->has_encrypted_entries) {
return (a->format->has_encrypted_entries)(a);
}
- return 0;
+
+ /* For any other reason we cannot say how many entries are there. */
+ return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
}
/*
@@ -1121,7 +1149,7 @@ __archive_read_register_format(struct archive_read *a,
int64_t (*seek_data)(struct archive_read *, int64_t, int),
int (*cleanup)(struct archive_read *),
int (*format_capabilities)(struct archive_read *),
- int (*has_encrypted_entries)(struct archive_read *))
+ char (*has_encrypted_entries)(struct archive_read *))
{
int i, number_slots;
diff --git a/libarchive/archive_read_private.h b/libarchive/archive_read_private.h
index 0dc0c776..5ac009b2 100644
--- a/libarchive/archive_read_private.h
+++ b/libarchive/archive_read_private.h
@@ -208,7 +208,7 @@ struct archive_read {
int64_t (*seek_data)(struct archive_read *, int64_t, int);
int (*cleanup)(struct archive_read *);
int (*format_capabilties)(struct archive_read *);
- int (*has_encrypted_entries)(struct archive_read *);
+ char (*has_encrypted_entries)(struct archive_read *);
} formats[16];
struct archive_format_descriptor *format; /* Active format. */
@@ -220,17 +220,17 @@ struct archive_read {
};
int __archive_read_register_format(struct archive_read *a,
- void *format_data,
- const char *name,
- int (*bid)(struct archive_read *, int),
- int (*options)(struct archive_read *, const char *, const char *),
- int (*read_header)(struct archive_read *, struct archive_entry *),
- int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *),
- int (*read_data_skip)(struct archive_read *),
- int64_t (*seek_data)(struct archive_read *, int64_t, int),
- int (*cleanup)(struct archive_read *),
- int (*format_capabilities)(struct archive_read *),
- int (*has_encrypted_entries)(struct archive_read *));
+ void *format_data,
+ const char *name,
+ int (*bid)(struct archive_read *, int),
+ int (*options)(struct archive_read *, const char *, const char *),
+ int (*read_header)(struct archive_read *, struct archive_entry *),
+ int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *),
+ int (*read_data_skip)(struct archive_read *),
+ int64_t (*seek_data)(struct archive_read *, int64_t, int),
+ int (*cleanup)(struct archive_read *),
+ int (*format_capabilities)(struct archive_read *),
+ char (*has_encrypted_entries)(struct archive_read *));
int __archive_read_get_bidder(struct archive_read *a,
struct archive_read_filter_bidder **bidder);
diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c
index c8284792..13dc99af 100644
--- a/libarchive/archive_read_support_format_7zip.c
+++ b/libarchive/archive_read_support_format_7zip.c
@@ -326,12 +326,12 @@ struct _7zip {
struct archive_string_conv *sconv;
char format_name[64];
-
+
/* Custom value that is non-zero if this archive contains encrypted entries. */
char has_encrypted_entries;
};
-static int archive_read_format_7zip_has_encrypted_entries(struct archive_read *);
+static char archive_read_format_7zip_has_encrypted_entries(struct archive_read *);
static int archive_read_support_format_7zip_capabilities(struct archive_read *a);
static int archive_read_format_7zip_bid(struct archive_read *, int);
static int archive_read_format_7zip_cleanup(struct archive_read *);
@@ -410,6 +410,13 @@ archive_read_support_format_7zip(struct archive *_a)
return (ARCHIVE_FATAL);
}
+ /*
+ * Until enough data has been read, we cannot tell about
+ * any encrypted entries yet.
+ */
+ zip->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
+
+
r = __archive_read_register_format(a,
zip,
"7zip",
@@ -437,16 +444,15 @@ archive_read_support_format_7zip_capabilities(struct archive_read * a)
}
-static int
-archive_read_format_7zip_has_encrypted_entries(struct archive_read *_a)
+static char archive_read_format_7zip_has_encrypted_entries(struct archive_read *_a)
{
if (_a && _a->format) {
struct _7zip * zip = (struct _7zip *)_a->format->data;
- if (zip && zip->has_encrypted_entries) {
- return 1;
+ if (zip) {
+ return zip->has_encrypted_entries;
}
}
- return 0;
+ return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
}
static int
@@ -603,6 +609,17 @@ archive_read_format_7zip_read_header(struct archive_read *a,
struct _7z_folder *folder = 0;
uint64_t fidx = 0;
+ /*
+ * It should be sufficient to call archive_read_next_header() for
+ * a reader to determine if an entry is encrypted or not. If the
+ * encryption of an entry is only detectable when calling
+ * archive_read_data(), so be it. We'll do the same check there
+ * as well.
+ */
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
a->archive.archive_format = ARCHIVE_FORMAT_7ZIP;
if (a->archive.archive_format_name == NULL)
a->archive.archive_format_name = "7-Zip";
@@ -657,6 +674,13 @@ archive_read_format_7zip_read_header(struct archive_read *a,
}
}
+ /* Now that we've checked for encryption, if there were still no
+ * encrypted entries found we can say for sure that there are none.
+ */
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
if (archive_entry_copy_pathname_l(entry,
(const char *)zip_entry->utf16name,
zip_entry->name_len, zip->sconv) != 0) {
@@ -760,6 +784,10 @@ archive_read_format_7zip_read_data(struct archive_read *a,
zip = (struct _7zip *)(a->format->data);
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
if (zip->pack_stream_bytes_unconsumed)
read_consume(a);
@@ -3323,6 +3351,13 @@ setup_decode_folder(struct archive_read *a, struct _7z_folder *folder,
}
}
}
+ /* Now that we've checked for encryption, if there were still no
+ * encrypted entries found we can say for sure that there are none.
+ */
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
if ((folder->numCoders > 2 && !found_bcj2) || found_bcj2 > 1) {
archive_set_error(&(a->archive),
ARCHIVE_ERRNO_MISC,
diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c
index 88195a94..03d932a1 100644
--- a/libarchive/archive_read_support_format_rar.c
+++ b/libarchive/archive_read_support_format_rar.c
@@ -312,7 +312,7 @@ struct rar
};
static int archive_read_support_format_rar_capabilities(struct archive_read *);
-static int archive_read_format_rar_has_encrypted_entries(struct archive_read *);
+static char archive_read_format_rar_has_encrypted_entries(struct archive_read *);
static int archive_read_format_rar_bid(struct archive_read *, int);
static int archive_read_format_rar_options(struct archive_read *,
const char *, const char *);
@@ -653,6 +653,12 @@ archive_read_support_format_rar(struct archive *_a)
}
memset(rar, 0, sizeof(*rar));
+ /*
+ * Until enough data has been read, we cannot tell about
+ * any encrypted entries yet.
+ */
+ rar->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
+
r = __archive_read_register_format(a,
rar,
"rar",
@@ -679,16 +685,15 @@ archive_read_support_format_rar_capabilities(struct archive_read * a)
| ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA);
}
-static int
-archive_read_format_rar_has_encrypted_entries(struct archive_read *_a)
+static char archive_read_format_rar_has_encrypted_entries(struct archive_read *_a)
{
if (_a && _a->format) {
struct rar * rar = (struct rar *)_a->format->data;
- if (rar && rar->has_encrypted_entries) {
- return 1;
+ if (rar) {
+ return rar->has_encrypted_entries;
}
}
- return 0;
+ return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
}
@@ -827,6 +832,17 @@ archive_read_format_rar_read_header(struct archive_read *a,
rar = (struct rar *)(a->format->data);
+ /*
+ * It should be sufficient to call archive_read_next_header() for
+ * a reader to determine if an entry is encrypted or not. If the
+ * encryption of an entry is only detectable when calling
+ * archive_read_data(), so be it. We'll do the same check there
+ * as well.
+ */
+ if (rar->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ rar->has_encrypted_entries = 0;
+ }
+
/* RAR files can be generated without EOF headers, so return ARCHIVE_EOF if
* this fails.
*/
@@ -973,6 +989,10 @@ archive_read_format_rar_read_data(struct archive_read *a, const void **buff,
struct rar *rar = (struct rar *)(a->format->data);
int ret;
+ if (rar->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ rar->has_encrypted_entries = 0;
+ }
+
if (rar->bytes_unconsumed > 0) {
/* Consume as much as the decompressor actually used. */
__archive_read_consume(a, rar->bytes_unconsumed);
diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c
index 6a77dd7e..db2c31f4 100644
--- a/libarchive/archive_read_support_format_zip.c
+++ b/libarchive/archive_read_support_format_zip.c
@@ -129,7 +129,7 @@ struct zip {
#define ZIP_CENTRAL_DIRECTORY_ENCRYPTED (1<<13)
#define ZIP_UTF8_NAME (1<<11)
-static int archive_read_format_zip_has_encrypted_entries(struct archive_read *);
+static char archive_read_format_zip_has_encrypted_entries(struct archive_read *);
static int archive_read_support_format_zip_capabilities_seekable(struct archive_read *a);
static int archive_read_support_format_zip_capabilities_streamable(struct archive_read *a);
static int archive_read_format_zip_streamable_bid(struct archive_read *,
@@ -181,6 +181,12 @@ archive_read_support_format_zip_streamable(struct archive *_a)
}
memset(zip, 0, sizeof(*zip));
+ /*
+ * Until enough data has been read, we cannot tell about
+ * any encrypted entries yet.
+ */
+ zip->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
+
r = __archive_read_register_format(a,
zip,
"zip",
@@ -217,6 +223,13 @@ archive_read_support_format_zip_seekable(struct archive *_a)
}
memset(zip, 0, sizeof(*zip));
+ /*
+ * Until enough data has been read, we cannot tell about
+ * any encrypted entries yet.
+ */
+ zip->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
+
+
r = __archive_read_register_format(a,
zip,
"zip",
@@ -250,16 +263,16 @@ archive_read_support_format_zip_capabilities_streamable(struct archive_read * a)
}
-static int
+static char
archive_read_format_zip_has_encrypted_entries(struct archive_read *_a)
{
if (_a && _a->format) {
struct zip * zip = (struct zip *)_a->format->data;
- if (zip && zip->has_encrypted_entries) {
- return 1;
+ if (zip) {
+ return zip->has_encrypted_entries;
}
}
- return 0;
+ return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
}
int
@@ -737,6 +750,17 @@ archive_read_format_zip_seekable_read_header(struct archive_read *a,
struct zip_entry *rsrc;
int r, ret = ARCHIVE_OK;
+ /*
+ * It should be sufficient to call archive_read_next_header() for
+ * a reader to determine if an entry is encrypted or not. If the
+ * encryption of an entry is only detectable when calling
+ * archive_read_data(), so be it. We'll do the same check there
+ * as well.
+ */
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
a->archive.archive_format = ARCHIVE_FORMAT_ZIP;
if (a->archive.archive_format_name == NULL)
a->archive.archive_format_name = "ZIP";
@@ -915,6 +939,17 @@ archive_read_format_zip_streamable_read_header(struct archive_read *a,
zip = (struct zip *)(a->format->data);
+ /*
+ * It should be sufficient to call archive_read_next_header() for
+ * a reader to determine if an entry is encrypted or not. If the
+ * encryption of an entry is only detectable when calling
+ * archive_read_data(), so be it. We'll do the same check there
+ * as well.
+ */
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
/* Make sure we have a zip_entry structure to use. */
if (zip->zip_entries == NULL) {
zip->zip_entries = malloc(sizeof(struct zip_entry));
@@ -1251,6 +1286,10 @@ archive_read_format_zip_read_data(struct archive_read *a,
int r;
struct zip *zip = (struct zip *)(a->format->data);
+ if (zip->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) {
+ zip->has_encrypted_entries = 0;
+ }
+
*offset = zip->entry_uncompressed_bytes_read;
*size = 0;
*buff = NULL;
diff --git a/libarchive/test/test_read_format_7zip.c b/libarchive/test/test_read_format_7zip.c
index eb79852c..6081d2bf 100644
--- a/libarchive/test/test_read_format_7zip.c
+++ b/libarchive/test/test_read_format_7zip.c
@@ -51,7 +51,7 @@ test_copy()
assertEqualInt(86401, archive_entry_mtime(ae));
assertEqualInt(60, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assert(archive_read_has_encrypted_entries(a) > ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(60, archive_read_data(a, buff, sizeof(buff)));
assertEqualMem(buff, " ", 4);
diff --git a/libarchive/test/test_read_format_7zip_encryption_data.c b/libarchive/test/test_read_format_7zip_encryption_data.c
index 4820da7b..adedbc53 100644
--- a/libarchive/test/test_read_format_7zip_encryption_data.c
+++ b/libarchive/test/test_read_format_7zip_encryption_data.c
@@ -41,6 +41,8 @@ DEFINE_TEST(test_read_format_7zip_encryption_data)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify encrypted file "bar.txt". */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt((AE_IFREG | 0664), archive_entry_mode(ae));
diff --git a/libarchive/test/test_read_format_7zip_encryption_header.c b/libarchive/test/test_read_format_7zip_encryption_header.c
index 54054c81..7d2a4a8d 100644
--- a/libarchive/test/test_read_format_7zip_encryption_header.c
+++ b/libarchive/test/test_read_format_7zip_encryption_header.c
@@ -42,6 +42,8 @@ DEFINE_TEST(test_read_format_7zip_encryption_header)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify regular file but with encrypted headers
as a consequence, all meta information is invalid. */
assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_7zip_encryption_partially.c b/libarchive/test/test_read_format_7zip_encryption_partially.c
index 31252fc7..dc8d2786 100644
--- a/libarchive/test/test_read_format_7zip_encryption_partially.c
+++ b/libarchive/test/test_read_format_7zip_encryption_partially.c
@@ -42,6 +42,8 @@ DEFINE_TEST(test_read_format_7zip_encryption_partially)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify regular unencrypted file1. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt((AE_IFREG | 0664), archive_entry_mode(ae));
diff --git a/libarchive/test/test_read_format_ar.c b/libarchive/test/test_read_format_ar.c
index 55e8b318..1cc3cc04 100644
--- a/libarchive/test/test_read_format_ar.c
+++ b/libarchive/test/test_read_format_ar.c
@@ -50,7 +50,7 @@ DEFINE_TEST(test_read_format_ar)
assertEqualInt(0, archive_entry_gid(ae));
assertEqualInt(0, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* First Entry */
assertA(0 == archive_read_next_header(a, &ae));
@@ -62,7 +62,7 @@ DEFINE_TEST(test_read_format_ar)
assertA(8 == archive_read_data(a, buff, 10));
assertEqualMem(buff, "55667788", 8);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Second Entry */
assertA(0 == archive_read_next_header(a, &ae));
@@ -74,7 +74,7 @@ DEFINE_TEST(test_read_format_ar)
assertA(4 == archive_read_data(a, buff, 10));
assertEqualMem(buff, "3333", 4);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Third Entry */
assertA(0 == archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_cab.c b/libarchive/test/test_read_format_cab.c
index 8b77d898..55e6d978 100644
--- a/libarchive/test/test_read_format_cab.c
+++ b/libarchive/test/test_read_format_cab.c
@@ -205,7 +205,7 @@ verify(const char *refname, enum comp_type comp)
assertEqualInt(0, archive_entry_gid(ae));
assertEqualInt(0, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (comp != STORE) {
/* Verify regular zero.
@@ -218,7 +218,7 @@ verify(const char *refname, enum comp_type comp)
assertEqualInt(0, archive_entry_uid(ae));
assertEqualInt(0, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(33000, archive_entry_size(ae));
for (s = 0; s + sizeof(buff) < 33000; s+= sizeof(buff)) {
ssize_t rsize = archive_read_data(a, buff, sizeof(buff));
@@ -241,7 +241,7 @@ verify(const char *refname, enum comp_type comp)
assertEqualInt(0, archive_entry_uid(ae));
assertEqualInt(0, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(file1_size, archive_entry_size(ae));
assertEqualInt(file1_size, archive_read_data(a, buff, file1_size));
assertEqualMem(buff, file1, file1_size);
@@ -253,7 +253,7 @@ verify(const char *refname, enum comp_type comp)
assertEqualInt(0, archive_entry_uid(ae));
assertEqualInt(0, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(file2_size, archive_entry_size(ae));
assertEqualInt(file2_size, archive_read_data(a, buff, file2_size));
assertEqualMem(buff, file2, file2_size);
@@ -304,16 +304,16 @@ verify2(const char *refname, enum comp_type comp)
/* Verify regular empty. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (comp != STORE) {
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
}
/* Verify regular file1. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file2. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -364,21 +364,21 @@ verify3(const char *refname, enum comp_type comp)
/* Verify regular empty. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (comp != STORE) {
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
}
/* Verify regular file1. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file2. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_cab_filename.c b/libarchive/test/test_read_format_cab_filename.c
index 885f750a..2f46a7e6 100644
--- a/libarchive/test/test_read_format_cab_filename.c
+++ b/libarchive/test/test_read_format_cab_filename.c
@@ -59,7 +59,7 @@ test_read_format_cab_filename_CP932_eucJP(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(5, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -68,7 +68,7 @@ test_read_format_cab_filename_CP932_eucJP(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(5, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -127,7 +127,7 @@ test_read_format_cab_filename_CP932_UTF8(const char *refname)
assertEqualInt(5, archive_entry_size(ae));
#endif
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -146,7 +146,7 @@ test_read_format_cab_filename_CP932_UTF8(const char *refname)
#endif
assertEqualInt(5, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
diff --git a/libarchive/test/test_read_format_cpio_afio.c b/libarchive/test/test_read_format_cpio_afio.c
index f5c4a3d2..16065eb0 100644
--- a/libarchive/test/test_read_format_cpio_afio.c
+++ b/libarchive/test/test_read_format_cpio_afio.c
@@ -99,7 +99,7 @@ DEFINE_TEST(test_read_format_cpio_afio)
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(17, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertA(archive_filter_code(a, 0) == ARCHIVE_FILTER_NONE);
assertA(archive_format(a) == ARCHIVE_FORMAT_CPIO_POSIX);
/*
@@ -110,7 +110,7 @@ DEFINE_TEST(test_read_format_cpio_afio)
if (uid_size() > 4)
assertEqualInt(65536, archive_entry_uid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertA(archive_filter_code(a, 0) == ARCHIVE_FILTER_NONE);
assertA(archive_format(a) == ARCHIVE_FORMAT_CPIO_AFIO_LARGE);
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
diff --git a/libarchive/test/test_read_format_cpio_bin.c b/libarchive/test/test_read_format_cpio_bin.c
index 26980d7a..7b0fad26 100644
--- a/libarchive/test/test_read_format_cpio_bin.c
+++ b/libarchive/test/test_read_format_cpio_bin.c
@@ -53,7 +53,7 @@ DEFINE_TEST(test_read_format_cpio_bin)
assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
assertEqualInt(1, archive_file_count(a));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_FILTER_NONE, archive_filter_code(a, 0));
assertEqualIntA(a, ARCHIVE_FORMAT_CPIO_BIN_LE, archive_format(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
diff --git a/libarchive/test/test_read_format_cpio_bin_Z.c b/libarchive/test/test_read_format_cpio_bin_Z.c
index d6c51506..6afe6911 100644
--- a/libarchive/test/test_read_format_cpio_bin_Z.c
+++ b/libarchive/test/test_read_format_cpio_bin_Z.c
@@ -52,7 +52,7 @@ DEFINE_TEST(test_read_format_cpio_bin_Z)
archive_format_name(a));
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_bin_be.c b/libarchive/test/test_read_format_cpio_bin_be.c
index c114b509..164396da 100644
--- a/libarchive/test/test_read_format_cpio_bin_be.c
+++ b/libarchive/test/test_read_format_cpio_bin_be.c
@@ -45,7 +45,7 @@ DEFINE_TEST(test_read_format_cpio_bin_be)
assertEqualInt(archive_entry_uid(ae), 1000);
assertEqualInt(archive_entry_gid(ae), 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_BE);
diff --git a/libarchive/test/test_read_format_cpio_bin_bz2.c b/libarchive/test/test_read_format_cpio_bin_bz2.c
index 58637b3a..7497bc41 100644
--- a/libarchive/test/test_read_format_cpio_bin_bz2.c
+++ b/libarchive/test/test_read_format_cpio_bin_bz2.c
@@ -50,7 +50,7 @@ DEFINE_TEST(test_read_format_cpio_bin_bz2)
archive_read_open_memory(a, archive, sizeof(archive)));
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assert(archive_filter_code(a, 0) == ARCHIVE_FILTER_BZIP2);
assert(archive_format(a) == ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
diff --git a/libarchive/test/test_read_format_cpio_bin_gz.c b/libarchive/test/test_read_format_cpio_bin_gz.c
index 5aa8beb5..3cc8f15e 100644
--- a/libarchive/test/test_read_format_cpio_bin_gz.c
+++ b/libarchive/test/test_read_format_cpio_bin_gz.c
@@ -54,7 +54,7 @@ DEFINE_TEST(test_read_format_cpio_bin_gz)
assertEqualInt(archive_filter_code(a, 0),
ARCHIVE_FILTER_GZIP);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
diff --git a/libarchive/test/test_read_format_cpio_bin_lzip.c b/libarchive/test/test_read_format_cpio_bin_lzip.c
index 2f98b008..d9acf095 100644
--- a/libarchive/test/test_read_format_cpio_bin_lzip.c
+++ b/libarchive/test/test_read_format_cpio_bin_lzip.c
@@ -54,7 +54,7 @@ DEFINE_TEST(test_read_format_cpio_bin_lzip)
archive_read_open_memory(a, archive, sizeof(archive)));
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_LZIP);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
diff --git a/libarchive/test/test_read_format_cpio_bin_lzma.c b/libarchive/test/test_read_format_cpio_bin_lzma.c
index 2b61542b..9a8a23ce 100644
--- a/libarchive/test/test_read_format_cpio_bin_lzma.c
+++ b/libarchive/test/test_read_format_cpio_bin_lzma.c
@@ -55,7 +55,7 @@ DEFINE_TEST(test_read_format_cpio_bin_lzma)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_LZMA);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_bin_xz.c b/libarchive/test/test_read_format_cpio_bin_xz.c
index 11546cc1..b19c4fae 100644
--- a/libarchive/test/test_read_format_cpio_bin_xz.c
+++ b/libarchive/test/test_read_format_cpio_bin_xz.c
@@ -65,7 +65,7 @@ DEFINE_TEST(test_read_format_cpio_bin_xz)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_XZ);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_filename.c b/libarchive/test/test_read_format_cpio_filename.c
index fc73c7dd..cc2367be 100644
--- a/libarchive/test/test_read_format_cpio_filename.c
+++ b/libarchive/test/test_read_format_cpio_filename.c
@@ -58,14 +58,14 @@ test_read_format_cpio_filename_eucJP_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(8, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString("\xe8\xa1\xa8.txt", archive_entry_pathname(ae));
assertEqualInt(4, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
diff --git a/libarchive/test/test_read_format_cpio_odc.c b/libarchive/test/test_read_format_cpio_odc.c
index ca22a836..f433a4c9 100644
--- a/libarchive/test/test_read_format_cpio_odc.c
+++ b/libarchive/test/test_read_format_cpio_odc.c
@@ -58,7 +58,7 @@ DEFINE_TEST(test_read_format_cpio_odc)
assertA(archive_filter_code(a, 0) == ARCHIVE_FILTER_NONE);
assertA(archive_format(a) == ARCHIVE_FORMAT_CPIO_POSIX);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c b/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
index 7a01ee3d..cff64d72 100644
--- a/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
+++ b/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
@@ -113,16 +113,16 @@ DEFINE_TEST(test_read_format_cpio_svr4_bzip2_rpm)
assertEqualString("./etc/file3", archive_entry_pathname(ae));
assertEqualInt(86401, archive_entry_mtime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the end-of-archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
-
+
/* Verify that the format detection worked. */
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_BZIP2);
assertEqualString(archive_filter_name(a, 0), "bzip2");
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_SVR4_NOCRC);
-
+
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_svr4_gzip.c b/libarchive/test/test_read_format_cpio_svr4_gzip.c
index 0874be92..cb813d24 100644
--- a/libarchive/test/test_read_format_cpio_svr4_gzip.c
+++ b/libarchive/test/test_read_format_cpio_svr4_gzip.c
@@ -55,7 +55,7 @@ DEFINE_TEST(test_read_format_cpio_svr4_gzip)
assertEqualInt(archive_format(a),
ARCHIVE_FORMAT_CPIO_SVR4_NOCRC);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c b/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
index 3e6ae314..345760c1 100644
--- a/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
+++ b/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
@@ -113,7 +113,7 @@ DEFINE_TEST(test_read_format_cpio_svr4_gzip_rpm)
assertEqualString("./etc/file3", archive_entry_pathname(ae));
assertEqualInt(86401, archive_entry_mtime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the end-of-archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_cpio_svr4c_Z.c b/libarchive/test/test_read_format_cpio_svr4c_Z.c
index cc4ded5f..29aa2c63 100644
--- a/libarchive/test/test_read_format_cpio_svr4c_Z.c
+++ b/libarchive/test/test_read_format_cpio_svr4c_Z.c
@@ -52,7 +52,7 @@ DEFINE_TEST(test_read_format_cpio_svr4c_Z)
failure("archive_format_name(a)=\"%s\"", archive_format_name(a));
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_SVR4_CRC);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_empty.c b/libarchive/test/test_read_format_empty.c
index 63a5e560..2556503a 100644
--- a/libarchive/test/test_read_format_empty.c
+++ b/libarchive/test/test_read_format_empty.c
@@ -39,7 +39,7 @@ DEFINE_TEST(test_read_format_empty)
assertA(archive_filter_code(a, 0) == ARCHIVE_FILTER_NONE);
assertA(archive_format(a) == ARCHIVE_FORMAT_EMPTY);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_gtar_filename.c b/libarchive/test/test_read_format_gtar_filename.c
index 64dc222e..41d4f8f1 100644
--- a/libarchive/test/test_read_format_gtar_filename.c
+++ b/libarchive/test/test_read_format_gtar_filename.c
@@ -63,7 +63,7 @@ test_read_format_gtar_filename_eucJP_UTF8(const char *refname)
assertEqualString("\xe8\xa1\xa8.txt", archive_entry_pathname(ae));
assertEqualInt(4, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
diff --git a/libarchive/test/test_read_format_gtar_gz.c b/libarchive/test/test_read_format_gtar_gz.c
index 7d5576ef..2541f992 100644
--- a/libarchive/test/test_read_format_gtar_gz.c
+++ b/libarchive/test/test_read_format_gtar_gz.c
@@ -55,7 +55,7 @@ DEFINE_TEST(test_read_format_gtar_gz)
ARCHIVE_FILTER_GZIP);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_GNUTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_gtar_lzma.c b/libarchive/test/test_read_format_gtar_lzma.c
index 8b66ef32..280a089f 100644
--- a/libarchive/test/test_read_format_gtar_lzma.c
+++ b/libarchive/test/test_read_format_gtar_lzma.c
@@ -67,7 +67,7 @@ DEFINE_TEST(test_read_format_gtar_lzma)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_LZMA);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_GNUTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
finish:
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
diff --git a/libarchive/test/test_read_format_gtar_sparse.c b/libarchive/test/test_read_format_gtar_sparse.c
index a7542314..7ab13c11 100644
--- a/libarchive/test/test_read_format_gtar_sparse.c
+++ b/libarchive/test/test_read_format_gtar_sparse.c
@@ -201,7 +201,7 @@ verify_archive_file(const char *name, struct archive_contents *ac)
failure("Name mismatch in archive %s", name);
assertEqualString(ac->filename, archive_entry_pathname(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
expect = *cts++;
while (0 == (err = archive_read_data_block(a,
diff --git a/libarchive/test/test_read_format_iso_Z.c b/libarchive/test/test_read_format_iso_Z.c
index 74f2181e..6492706c 100644
--- a/libarchive/test/test_read_format_iso_Z.c
+++ b/libarchive/test/test_read_format_iso_Z.c
@@ -48,7 +48,7 @@ test1(void)
ARCHIVE_FILTER_COMPRESS);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
@@ -91,7 +91,7 @@ test2(void)
ARCHIVE_FILTER_COMPRESS);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_iso_multi_extent.c b/libarchive/test/test_read_format_iso_multi_extent.c
index 54b0c600..dafbfd38 100644
--- a/libarchive/test/test_read_format_iso_multi_extent.c
+++ b/libarchive/test/test_read_format_iso_multi_extent.c
@@ -74,7 +74,7 @@ DEFINE_TEST(test_read_format_iso_multi_extent)
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
} else {
failure("Saw a file that shouldn't have been there");
assertEqualString(archive_entry_pathname(ae), "");
diff --git a/libarchive/test/test_read_format_iso_xorriso.c b/libarchive/test/test_read_format_iso_xorriso.c
index 8303c6bf..ce71a560 100644
--- a/libarchive/test/test_read_format_iso_xorriso.c
+++ b/libarchive/test/test_read_format_iso_xorriso.c
@@ -87,8 +87,8 @@ DEFINE_TEST(test_read_format_iso_xorriso)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
-
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
diff --git a/libarchive/test/test_read_format_isojoliet_bz2.c b/libarchive/test/test_read_format_isojoliet_bz2.c
index 8f35d3f1..eb33c0b4 100644
--- a/libarchive/test/test_read_format_isojoliet_bz2.c
+++ b/libarchive/test/test_read_format_isojoliet_bz2.c
@@ -84,7 +84,7 @@ DEFINE_TEST(test_read_format_isojoliet_bz2)
archive_read_data_block(a, &p, &size, &offset));
assertEqualInt((int)size, 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A directory. */
assertEqualInt(0, archive_read_next_header(a, &ae));
@@ -94,7 +94,7 @@ DEFINE_TEST(test_read_format_isojoliet_bz2)
assertEqualInt(86401, archive_entry_mtime(ae));
assertEqualInt(86401, archive_entry_atime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A regular file with two names ("hardlink" gets returned
* first, so it's not marked as a hardlink). */
@@ -126,7 +126,7 @@ DEFINE_TEST(test_read_format_isojoliet_bz2)
assertEqualInt(172802, archive_entry_mtime(ae));
assertEqualInt(172802, archive_entry_atime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_isojoliet_long.c b/libarchive/test/test_read_format_isojoliet_long.c
index aad54e33..4283c399 100644
--- a/libarchive/test/test_read_format_isojoliet_long.c
+++ b/libarchive/test/test_read_format_isojoliet_long.c
@@ -92,7 +92,7 @@ DEFINE_TEST(test_read_format_isojoliet_long)
archive_read_data_block(a, &p, &size, &offset));
assertEqualInt((int)size, 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A directory. */
pathname[100] = 'd';
@@ -106,7 +106,7 @@ DEFINE_TEST(test_read_format_isojoliet_long)
assertEqualInt(86401, archive_entry_mtime(ae));
assertEqualInt(86401, archive_entry_atime(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A regular file with two names (pathname gets returned
* first, so it's not marked as a hardlink). */
@@ -124,7 +124,7 @@ DEFINE_TEST(test_read_format_isojoliet_long)
assertEqualInt(0, offset);
assertEqualMem(p, "hello\n", 6);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Second name for the same regular file (this happens to be
* returned second, so does get marked as a hardlink). */
@@ -134,7 +134,7 @@ DEFINE_TEST(test_read_format_isojoliet_long)
assertEqualString("hardlink", archive_entry_hardlink(ae));
assert(!archive_entry_size_is_set(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_isojoliet_rr.c b/libarchive/test/test_read_format_isojoliet_rr.c
index b5562f91..3c19516d 100644
--- a/libarchive/test/test_read_format_isojoliet_rr.c
+++ b/libarchive/test/test_read_format_isojoliet_rr.c
@@ -84,7 +84,7 @@ DEFINE_TEST(test_read_format_isojoliet_rr)
archive_read_data_block(a, &p, &size, &offset));
assertEqualInt((int)size, 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A directory. */
assertEqualInt(0, archive_read_next_header(a, &ae));
@@ -97,7 +97,7 @@ DEFINE_TEST(test_read_format_isojoliet_rr)
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A regular file with two names ("hardlink" gets returned
* first, so it's not marked as a hardlink). */
@@ -121,7 +121,7 @@ DEFINE_TEST(test_read_format_isojoliet_rr)
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Second name for the same regular file (this happens to be
* returned second, so does get marked as a hardlink). */
@@ -139,7 +139,7 @@ DEFINE_TEST(test_read_format_isojoliet_rr)
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A symlink to the regular file. */
assertEqualInt(0, archive_read_next_header(a, &ae));
@@ -154,7 +154,7 @@ DEFINE_TEST(test_read_format_isojoliet_rr)
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_isojoliet_versioned.c b/libarchive/test/test_read_format_isojoliet_versioned.c
index 1b38f118..011b5e29 100644
--- a/libarchive/test/test_read_format_isojoliet_versioned.c
+++ b/libarchive/test/test_read_format_isojoliet_versioned.c
@@ -59,7 +59,7 @@ DEFINE_TEST(test_read_format_isojoliet_versioned)
assertEqualString("test", archive_entry_pathname(ae));
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* A regular file which is called test.txt and has
* ;1 appended to it because apparently Nero always
@@ -72,7 +72,7 @@ DEFINE_TEST(test_read_format_isojoliet_versioned)
archive_entry_pathname(ae));
assertEqualInt(AE_IFREG, archive_entry_filetype(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_isorr_bz2.c b/libarchive/test/test_read_format_isorr_bz2.c
index 4c0e792f..d2dfa2e5 100644
--- a/libarchive/test/test_read_format_isorr_bz2.c
+++ b/libarchive/test/test_read_format_isorr_bz2.c
@@ -75,7 +75,7 @@ DEFINE_TEST(test_read_format_isorr_bz2)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
diff --git a/libarchive/test/test_read_format_isorr_ce.c b/libarchive/test/test_read_format_isorr_ce.c
index d0c1c5b6..1e57acb7 100644
--- a/libarchive/test/test_read_format_isorr_ce.c
+++ b/libarchive/test/test_read_format_isorr_ce.c
@@ -111,7 +111,7 @@ DEFINE_TEST(test_read_format_isorr_ce)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
diff --git a/libarchive/test/test_read_format_isorr_new_bz2.c b/libarchive/test/test_read_format_isorr_new_bz2.c
index f5c21410..4c1b5692 100644
--- a/libarchive/test/test_read_format_isorr_new_bz2.c
+++ b/libarchive/test/test_read_format_isorr_new_bz2.c
@@ -76,7 +76,7 @@ DEFINE_TEST(test_read_format_isorr_new_bz2)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
diff --git a/libarchive/test/test_read_format_isorr_rr_moved.c b/libarchive/test/test_read_format_isorr_rr_moved.c
index db9c7369..693caef6 100644
--- a/libarchive/test/test_read_format_isorr_rr_moved.c
+++ b/libarchive/test/test_read_format_isorr_rr_moved.c
@@ -81,8 +81,8 @@ DEFINE_TEST(test_read_format_isorr_rr_moved)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
-
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
diff --git a/libarchive/test/test_read_format_isozisofs_bz2.c b/libarchive/test/test_read_format_isozisofs_bz2.c
index 4c12fa14..adf96242 100644
--- a/libarchive/test/test_read_format_isozisofs_bz2.c
+++ b/libarchive/test/test_read_format_isozisofs_bz2.c
@@ -74,8 +74,8 @@ DEFINE_TEST(test_read_format_isozisofs_bz2)
assertEqualInt(0, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
-
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
/* '.' root directory. */
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
diff --git a/libarchive/test/test_read_format_lha.c b/libarchive/test/test_read_format_lha.c
index 7f443394..6a53976c 100644
--- a/libarchive/test/test_read_format_lha.c
+++ b/libarchive/test/test_read_format_lha.c
@@ -170,7 +170,7 @@ verify(const char *refname, int posix)
archive_read_data_block(a, &pv, &s, &o));
assertEqualInt(s, 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify directory2. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -184,7 +184,7 @@ verify(const char *refname, int posix)
archive_read_data_block(a, &pv, &s, &o));
assertEqualInt(s, 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
if (posix) {
/* Verify symbolic link file1. */
@@ -197,7 +197,7 @@ verify(const char *refname, int posix)
assertEqualInt(gid, archive_entry_gid(ae));
assertEqualInt(0, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify symbolic link file2. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -209,7 +209,7 @@ verify(const char *refname, int posix)
assertEqualInt(gid, archive_entry_gid(ae));
assertEqualInt(0, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
}
/* Verify regular file1. */
@@ -223,7 +223,7 @@ verify(const char *refname, int posix)
assertEqualInt(file1_size, archive_read_data(a, buff, file1_size));
assertEqualMem(buff, file1, file1_size);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file2. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -239,7 +239,7 @@ verify(const char *refname, int posix)
assertEqualInt(file2_size, archive_read_data(a, buff, file2_size));
assertEqualMem(buff, file2, file2_size);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the number of files read. */
if (posix) {
@@ -257,10 +257,10 @@ verify(const char *refname, int posix)
} else {
assertEqualInt(4, archive_file_count(a));
}
-
+
/* Verify encryption status */
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify archive format. */
assertEqualIntA(a, ARCHIVE_FILTER_NONE, archive_filter_code(a, 0));
diff --git a/libarchive/test/test_read_format_lha_filename.c b/libarchive/test/test_read_format_lha_filename.c
index 1c068193..126a8704 100644
--- a/libarchive/test/test_read_format_lha_filename.c
+++ b/libarchive/test/test_read_format_lha_filename.c
@@ -69,14 +69,14 @@ test_read_format_lha_filename_CP932_eucJP(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(8, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString("\xC9\xBD\x2E\x74\x78\x74", archive_entry_pathname(ae));
assertEqualInt(4, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_mtree.c b/libarchive/test/test_read_format_mtree.c
index 3a02c441..830fa0a9 100644
--- a/libarchive/test/test_read_format_mtree.c
+++ b/libarchive/test/test_read_format_mtree.c
@@ -77,96 +77,96 @@ test_read_format_mtree1(void)
assertEqualInt(3, archive_read_data(a, buff, 3));
assertEqualMem(buff, "hi\n", 3);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir");
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir/file with space");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "file with space");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3a");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3a/indir3a");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/fullindir2");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/indir2");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3b");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3b/indir3b");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "notindir");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/emptyfile");
assertEqualInt(archive_entry_size(ae), 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/smallfile");
assertEqualInt(archive_entry_size(ae), 1);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* TODO: Mtree reader should probably return ARCHIVE_WARN for this. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/toosmallfile");
assertEqualInt(archive_entry_size(ae), -1);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/bigfile");
assertEqualInt(archive_entry_size(ae), max_int64);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/toobigfile");
/* Size in mtree is max_int64 + 1; should return max_int64. */
assertEqualInt(archive_entry_size(ae), max_int64);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/veryoldfile");
@@ -178,7 +178,7 @@ test_read_format_mtree1(void)
t = min_time - 1;
assert(t > 0);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* toooldfile is 1 sec older, which should overflow and get returned
* with the same value. */
@@ -186,7 +186,7 @@ test_read_format_mtree1(void)
assertEqualString(archive_entry_pathname(ae), "dir2/toooldfile");
assertEqualInt(archive_entry_mtime(ae), min_time);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(19, archive_file_count(a));
@@ -215,7 +215,7 @@ test_read_format_mtree2(void)
assertEqualString(archive_entry_pathname(ae), "d");
assertEqualInt(archive_entry_filetype(ae), AE_IFDIR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(1, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
@@ -251,17 +251,17 @@ test_read_format_mtree3(void)
assertEqualString(archive_entry_pathname(ae), "a");
assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "b");
assertEqualInt(archive_entry_filetype(ae), AE_IFLNK);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "c");
assertEqualInt(archive_entry_filetype(ae), AE_IFREG);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(3, archive_file_count(a));
@@ -304,32 +304,32 @@ DEFINE_TEST(test_read_format_mtree_filenames_only)
assertEqualString(archive_entry_pathname(ae), "./a");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./b");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./c");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./d");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./e");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./f");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0444);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(6, archive_file_count(a));
@@ -372,21 +372,21 @@ DEFINE_TEST(test_read_format_mtree_nochange)
assertEqualInt(archive_entry_mtime(ae), 123);
assertEqualInt(archive_entry_size(ae), 5);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./b");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_mtime(ae), 234);
assertEqualInt(archive_entry_size(ae), 6);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./c");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_mtime(ae), 345);
assertEqualInt(archive_entry_size(ae), 7);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(3, archive_file_count(a));
@@ -416,7 +416,7 @@ DEFINE_TEST(test_read_format_mtree_nochange)
assertEqualInt(archive_entry_mtime(ae), 234);
assertEqualInt(archive_entry_size(ae), 6);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "./c");
#if !defined(_WIN32) || defined(__CYGWIN__)
@@ -425,7 +425,7 @@ DEFINE_TEST(test_read_format_mtree_nochange)
assert(archive_entry_mtime(ae) != 345);
assertEqualInt(archive_entry_size(ae), 7);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(3, archive_file_count(a));
@@ -468,64 +468,64 @@ DEFINE_TEST(test_read_format_mtree_nomagic_v1_form)
assertEqualInt(3, archive_read_data(a, buff, 3));
assertEqualMem(buff, "hi\n", 3);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir");
assertEqualInt(AE_IFDIR, archive_entry_filetype(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir/file with space");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "file with space");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3a");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3a/indir3a");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/fullindir2");
assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/indir2");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3b");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "dir2/dir3b/indir3b");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString(archive_entry_pathname(ae), "notindir");
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(12, archive_file_count(a));
diff --git a/libarchive/test/test_read_format_pax_bz2.c b/libarchive/test/test_read_format_pax_bz2.c
index f26b04ed..8c5d28ec 100644
--- a/libarchive/test/test_read_format_pax_bz2.c
+++ b/libarchive/test/test_read_format_pax_bz2.c
@@ -61,7 +61,7 @@ DEFINE_TEST(test_read_format_pax_bz2)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_BZIP2);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a,ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_rar_encryption_data.c b/libarchive/test/test_read_format_rar_encryption_data.c
index 14de888a..2e7b5fad 100644
--- a/libarchive/test/test_read_format_rar_encryption_data.c
+++ b/libarchive/test/test_read_format_rar_encryption_data.c
@@ -41,6 +41,8 @@ DEFINE_TEST(test_read_format_rar_encryption_data)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify encrypted file "foo.txt" */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt((AE_IFREG | 0664), archive_entry_mode(ae));
diff --git a/libarchive/test/test_read_format_rar_encryption_header.c b/libarchive/test/test_read_format_rar_encryption_header.c
index 71de49de..81965eb6 100644
--- a/libarchive/test/test_read_format_rar_encryption_header.c
+++ b/libarchive/test/test_read_format_rar_encryption_header.c
@@ -41,6 +41,8 @@ DEFINE_TEST(test_read_format_rar_encryption_header)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify regular file but with encrypted headers
as a consequence, all meta information is invalid. */
assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_rar_encryption_partially.c b/libarchive/test/test_read_format_rar_encryption_partially.c
index 3b13103b..733f1623 100644
--- a/libarchive/test/test_read_format_rar_encryption_partially.c
+++ b/libarchive/test/test_read_format_rar_encryption_partially.c
@@ -42,6 +42,8 @@ DEFINE_TEST(test_read_format_rar_encryption_partially)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify encrypted file "foo.txt". */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt((AE_IFREG | 0664), archive_entry_mode(ae));
diff --git a/libarchive/test/test_read_format_raw.c b/libarchive/test/test_read_format_raw.c
index ed130bf5..1310090c 100644
--- a/libarchive/test/test_read_format_raw.c
+++ b/libarchive/test/test_read_format_raw.c
@@ -54,7 +54,7 @@ DEFINE_TEST(test_read_format_raw)
assert(!archive_entry_ctime_is_set(ae));
assert(!archive_entry_mtime_is_set(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(4, archive_read_data(a, buff, 32));
assertEqualMem(buff, "foo\n", 4);
@@ -77,7 +77,7 @@ DEFINE_TEST(test_read_format_raw)
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString("data", archive_entry_pathname(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Most fields should be unset (unknown) */
assert(!archive_entry_size_is_set(ae));
assert(!archive_entry_atime_is_set(ae));
diff --git a/libarchive/test/test_read_format_tar.c b/libarchive/test/test_read_format_tar.c
index aa0735b8..7c7cadd0 100644
--- a/libarchive/test/test_read_format_tar.c
+++ b/libarchive/test/test_read_format_tar.c
@@ -75,7 +75,7 @@ static void verifyEmpty(void)
failure("512 zero bytes should be recognized as a tar archive.");
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
@@ -442,7 +442,7 @@ static void verify(unsigned char *d, size_t s,
assertEqualInt(archive_filter_code(a, 0), compression);
assertEqualInt(archive_format(a), format);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the only entry. */
f(ae);
diff --git a/libarchive/test/test_read_format_tar_empty_filename.c b/libarchive/test/test_read_format_tar_empty_filename.c
index ec047834..b1a1a4e1 100644
--- a/libarchive/test/test_read_format_tar_empty_filename.c
+++ b/libarchive/test/test_read_format_tar_empty_filename.c
@@ -50,7 +50,7 @@ DEFINE_TEST(test_read_format_tar_empty_filename)
assertEqualString("wheel", archive_entry_gname(ae));
assertEqualInt(040775, archive_entry_mode(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the end-of-archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_tar_empty_pax.c b/libarchive/test/test_read_format_tar_empty_pax.c
index fcdc48e3..54160219 100644
--- a/libarchive/test/test_read_format_tar_empty_pax.c
+++ b/libarchive/test/test_read_format_tar_empty_pax.c
@@ -50,7 +50,7 @@ DEFINE_TEST(test_read_format_tar_empty_pax)
archive_read_open_filename(a, refname, 10240));
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(ARCHIVE_FILTER_COMPRESS, archive_filter_code(a, 0));
assertEqualInt(ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE, archive_format(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
diff --git a/libarchive/test/test_read_format_tar_filename.c b/libarchive/test/test_read_format_tar_filename.c
index e50880a8..9ee8e813 100644
--- a/libarchive/test/test_read_format_tar_filename.c
+++ b/libarchive/test/test_read_format_tar_filename.c
@@ -81,7 +81,7 @@ test_read_format_tar_filename_KOI8R_CP866(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular second file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -89,7 +89,7 @@ test_read_format_tar_filename_KOI8R_CP866(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -128,7 +128,7 @@ next_test:
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/*
* Verify regular second file.
@@ -139,7 +139,7 @@ next_test:
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -188,7 +188,7 @@ test_read_format_tar_filename_KOI8R_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -196,11 +196,11 @@ test_read_format_tar_filename_KOI8R_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify encryption status */
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
@@ -212,7 +212,7 @@ test_read_format_tar_filename_KOI8R_UTF8(const char *refname)
/* Verify encryption status */
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Close the archive. */
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
@@ -242,7 +242,7 @@ test_read_format_tar_filename_KOI8R_UTF8(const char *refname)
/* Verify encryption status */
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/*
* Verify regular second file.
@@ -310,7 +310,7 @@ test_read_format_tar_filename_KOI8R_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular second file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -318,7 +318,7 @@ test_read_format_tar_filename_KOI8R_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -356,7 +356,7 @@ next_test:
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/*
* Verify regular second file.
@@ -366,7 +366,7 @@ next_test:
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
diff --git a/libarchive/test/test_read_format_tbz.c b/libarchive/test/test_read_format_tbz.c
index 30470510..331955fd 100644
--- a/libarchive/test/test_read_format_tbz.c
+++ b/libarchive/test/test_read_format_tbz.c
@@ -54,7 +54,7 @@ DEFINE_TEST(test_read_format_tbz)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_BZIP2);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_tgz.c b/libarchive/test/test_read_format_tgz.c
index 3294c318..9fba8965 100644
--- a/libarchive/test/test_read_format_tgz.c
+++ b/libarchive/test/test_read_format_tgz.c
@@ -55,7 +55,7 @@ DEFINE_TEST(test_read_format_tgz)
ARCHIVE_FILTER_GZIP);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK,archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_tlz.c b/libarchive/test/test_read_format_tlz.c
index f7c4b06c..7c7a1431 100644
--- a/libarchive/test/test_read_format_tlz.c
+++ b/libarchive/test/test_read_format_tlz.c
@@ -57,7 +57,7 @@ DEFINE_TEST(test_read_format_tlz)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_LZMA);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_txz.c b/libarchive/test/test_read_format_txz.c
index d5704653..c082d7e5 100644
--- a/libarchive/test/test_read_format_txz.c
+++ b/libarchive/test/test_read_format_txz.c
@@ -60,7 +60,7 @@ DEFINE_TEST(test_read_format_txz)
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_XZ);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_tz.c b/libarchive/test/test_read_format_tz.c
index d2240dba..4ba7bcb3 100644
--- a/libarchive/test/test_read_format_tz.c
+++ b/libarchive/test/test_read_format_tz.c
@@ -52,7 +52,7 @@ DEFINE_TEST(test_read_format_tz)
failure("archive_format_name(a)=\"%s\"", archive_format_name(a));
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/libarchive/test/test_read_format_ustar_filename.c b/libarchive/test/test_read_format_ustar_filename.c
index b32047f5..5c2717cd 100644
--- a/libarchive/test/test_read_format_ustar_filename.c
+++ b/libarchive/test/test_read_format_ustar_filename.c
@@ -58,15 +58,15 @@ test_read_format_ustar_filename_eucJP_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(8, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString("\xe8\xa1\xa8.txt", archive_entry_pathname(ae));
assertEqualInt(4, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
-
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+
/* End of archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
@@ -113,7 +113,7 @@ test_read_format_ustar_filename_CP866_KOI8R(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -121,8 +121,7 @@ test_read_format_ustar_filename_CP866_KOI8R(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
-
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
@@ -168,7 +167,7 @@ test_read_format_ustar_filename_CP866_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -176,7 +175,7 @@ test_read_format_ustar_filename_CP866_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -224,7 +223,7 @@ test_read_format_ustar_filename_KOI8R_CP866(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -232,7 +231,7 @@ test_read_format_ustar_filename_KOI8R_CP866(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -279,7 +278,7 @@ test_read_format_ustar_filename_KOI8R_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -287,7 +286,7 @@ test_read_format_ustar_filename_KOI8R_UTF8(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -334,14 +333,14 @@ test_read_format_ustar_filename_eucJP_CP932(const char *refname)
assertEqualString("\x8a\xbf\x8e\x9a.txt", archive_entry_pathname(ae));
assertEqualInt(8, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualString("\x95\x5c.txt", archive_entry_pathname(ae));
assertEqualInt(4, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -389,7 +388,7 @@ test_read_format_ustar_filename_CP866_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -397,7 +396,7 @@ test_read_format_ustar_filename_CP866_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -445,7 +444,7 @@ test_read_format_ustar_filename_CP866_CP1251_win(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -453,7 +452,7 @@ test_read_format_ustar_filename_CP866_CP1251_win(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
@@ -500,7 +499,7 @@ test_read_format_ustar_filename_KOI8R_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify regular file. */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -508,7 +507,7 @@ test_read_format_ustar_filename_KOI8R_CP1251(const char *refname)
archive_entry_pathname(ae));
assertEqualInt(6, archive_entry_size(ae));
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* End of archive. */
diff --git a/libarchive/test/test_read_format_xar.c b/libarchive/test/test_read_format_xar.c
index e6bc3511..b7189eb2 100644
--- a/libarchive/test/test_read_format_xar.c
+++ b/libarchive/test/test_read_format_xar.c
@@ -664,7 +664,7 @@ static void verify(unsigned char *d, size_t s,
assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE);
assertEqualInt(archive_format(a), ARCHIVE_FORMAT_XAR);
assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
/* Verify the only entry. */
f1(a, ae);
if (f2) {
diff --git a/libarchive/test/test_read_format_zip_comment_stored.c b/libarchive/test/test_read_format_zip_comment_stored.c
index 5d7014d9..d2b935de 100644
--- a/libarchive/test/test_read_format_zip_comment_stored.c
+++ b/libarchive/test/test_read_format_zip_comment_stored.c
@@ -59,10 +59,10 @@ verify(const char *refname)
assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
+ assertEqualInt(archive_entry_is_encrypted(ae), 0);
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
- assertEqualInt(archive_entry_is_encrypted(ae), 0);
- assertEqualIntA(a, archive_read_has_encrypted_entries(a), 0);
}
DEFINE_TEST(test_read_format_zip_comment_stored)
diff --git a/libarchive/test/test_read_format_zip_encryption_data.c b/libarchive/test/test_read_format_zip_encryption_data.c
index c4585a18..771d7f7b 100644
--- a/libarchive/test/test_read_format_zip_encryption_data.c
+++ b/libarchive/test/test_read_format_zip_encryption_data.c
@@ -39,7 +39,9 @@ DEFINE_TEST(test_read_format_zip_encryption_data)
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_filename(a, refname, 10240));
+ archive_read_open_filename(a, refname, 10240));
+
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
/* Verify encrypted file "bar.txt" */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_zip_encryption_header.c b/libarchive/test/test_read_format_zip_encryption_header.c
index 5776db8b..f40e1f5c 100644
--- a/libarchive/test/test_read_format_zip_encryption_header.c
+++ b/libarchive/test/test_read_format_zip_encryption_header.c
@@ -41,6 +41,8 @@ DEFINE_TEST(test_read_format_zip_encryption_header)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify regular file but with encrypted headers
as a consequence, all meta information is invalid. */
assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
diff --git a/libarchive/test/test_read_format_zip_encryption_partially.c b/libarchive/test/test_read_format_zip_encryption_partially.c
index 330497a8..7724721f 100644
--- a/libarchive/test/test_read_format_zip_encryption_partially.c
+++ b/libarchive/test/test_read_format_zip_encryption_partially.c
@@ -42,6 +42,8 @@ DEFINE_TEST(test_read_format_zip_encryption_partially)
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, refname, 10240));
+ assertEqualIntA(a, ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW, archive_read_has_encrypted_entries(a));
+
/* Verify unencrypted file "bar.txt". */
assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
assertEqualInt((AE_IFREG | 0666), archive_entry_mode(ae));