41 #ifdef ZIP_ALLOCATE_BUFFER
45 #ifndef _ZIP_COMPILING_DEPRECATED
46 #define ZIP_DISABLE_DEPRECATED
51 #define CENTRAL_MAGIC "PK\1\2"
52 #define LOCAL_MAGIC "PK\3\4"
53 #define EOCD_MAGIC "PK\5\6"
54 #define DATADES_MAGIC "PK\7\10"
55 #define EOCD64LOC_MAGIC "PK\6\7"
56 #define EOCD64_MAGIC "PK\6\6"
57 #define CDENTRYSIZE 46u
59 #define MAXCOMLEN 65536
60 #define MAXEXTLEN 65536
62 #define EOCD64LOCLEN 20
64 #define CDBUFSIZE (MAXCOMLEN + EOCDLEN + EOCD64LOCLEN)
66 #define EFZIP64SIZE 28
67 #define EF_WINZIP_AES_SIZE 7
68 #define MAX_DATA_DESCRIPTOR_LENGTH 24
70 #define ZIP_CRYPTO_PKWARE_HEADERLEN 12
72 #define ZIP_CM_REPLACED_DEFAULT (-2)
73 #define ZIP_CM_WINZIP_AES 99
75 #define WINZIP_AES_PASSWORD_VERIFY_LENGTH 2
76 #define WINZIP_AES_MAX_HEADER_LENGTH (16 + WINZIP_AES_PASSWORD_VERIFY_LENGTH)
77 #define AES_BLOCK_SIZE 16
78 #define HMAC_LENGTH 10
79 #define SHA1_LENGTH 20
80 #define SALT_LENGTH(method) ((method) == ZIP_EM_AES_128 ? 8 : ((method) == ZIP_EM_AES_192 ? 12 : 16))
82 #define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
83 #define ZIP_CM_ACTUAL(x) ((zip_uint16_t)(ZIP_CM_IS_DEFAULT(x) ? ZIP_CM_DEFLATE : (x)))
85 #define ZIP_EF_UTF_8_COMMENT 0x6375
86 #define ZIP_EF_UTF_8_NAME 0x7075
87 #define ZIP_EF_WINZIP_AES 0x9901
88 #define ZIP_EF_ZIP64 0x0001
90 #define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64)
93 #define ZIP_EXT_ATTRIB_DEFAULT (0100666u << 16)
95 #define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u << 16)
97 #define ZIP_FILE_ATTRIBUTES_GENERAL_PURPOSE_BIT_FLAGS_ALLOWED_MASK 0x0836
99 #define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
100 #define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
107 #define ZIP_CODEC_DECODE 0
108 #define ZIP_CODEC_ENCODE 1
192 #define ZIP_DETAIL_ET_GLOBAL 0
193 #define ZIP_DETAIL_ET_ENTRY 1
206 #define MAX_DETAIL_INDEX 0x7fffff
207 #define MAKE_DETAIL_WITH_INDEX(error, index) ((((index) > MAX_DETAIL_INDEX) ? MAX_DETAIL_INDEX : (int)(index)) << 8 | (error))
208 #define GET_INDEX_FROM_DETAIL(error) (((error) >> 8) & MAX_DETAIL_INDEX)
209 #define GET_ERROR_FROM_DETAIL(error) ((error) & 0xff)
210 #define ADD_INDEX_TO_DETAIL(error, index) MAKE_DETAIL_WITH_INDEX(GET_ERROR_FROM_DETAIL(error), (index))
213 #define ZIP_ER_DETAIL_NO_DETAIL 0
214 #define ZIP_ER_DETAIL_CDIR_OVERLAPS_EOCD 1
215 #define ZIP_ER_DETAIL_COMMENT_LENGTH_INVALID 2
216 #define ZIP_ER_DETAIL_CDIR_LENGTH_INVALID 3
217 #define ZIP_ER_DETAIL_CDIR_ENTRY_INVALID 4
218 #define ZIP_ER_DETAIL_CDIR_WRONG_ENTRIES_COUNT 5
219 #define ZIP_ER_DETAIL_ENTRY_HEADER_MISMATCH 6
220 #define ZIP_ER_DETAIL_EOCD_LENGTH_INVALID 7
221 #define ZIP_ER_DETAIL_EOCD64_OVERLAPS_EOCD 8
222 #define ZIP_ER_DETAIL_EOCD64_WRONG_MAGIC 9
223 #define ZIP_ER_DETAIL_EOCD64_MISMATCH 10
224 #define ZIP_ER_DETAIL_CDIR_INVALID 11
225 #define ZIP_ER_DETAIL_VARIABLE_SIZE_OVERFLOW 12
226 #define ZIP_ER_DETAIL_INVALID_UTF8_IN_FILENAME 13
227 #define ZIP_ER_DETAIL_INVALID_UTF8_IN_COMMENT 13
228 #define ZIP_ER_DETAIL_INVALID_ZIP64_EF 14
229 #define ZIP_ER_DETAIL_INVALID_WINZIPAES_EF 14
230 #define ZIP_ER_DETAIL_EF_TRAILING_GARBAGE 15
231 #define ZIP_ER_DETAIL_INVALID_EF_LENGTH 16
232 #define ZIP_ER_DETAIL_INVALID_FILE_LENGTH 17
236 #define ZIP_GPBF_ENCRYPTED 0x0001u
237 #define ZIP_GPBF_DATA_DESCRIPTOR 0x0008u
238 #define ZIP_GPBF_STRONG_ENCRYPTION 0x0040u
239 #define ZIP_GPBF_ENCODING_UTF_8 0x0800u
243 #define ZIP_EF_LOCAL ZIP_FL_LOCAL
244 #define ZIP_EF_CENTRAL ZIP_FL_CENTRAL
245 #define ZIP_EF_BOTH (ZIP_EF_LOCAL | ZIP_EF_CENTRAL)
247 #define ZIP_FL_FORCE_ZIP64 1024
249 #define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS | ZIP_FL_ENC_CP437 | ZIP_FL_ENC_UTF_8)
316 #define ZIP_DIRENT_COMP_METHOD 0x0001u
317 #define ZIP_DIRENT_FILENAME 0x0002u
318 #define ZIP_DIRENT_COMMENT 0x0004u
319 #define ZIP_DIRENT_EXTRA_FIELD 0x0008u
320 #define ZIP_DIRENT_ATTRIBUTES 0x0010u
321 #define ZIP_DIRENT_LAST_MOD 0x0020u
322 #define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u
323 #define ZIP_DIRENT_PASSWORD 0x0080u
324 #define ZIP_DIRENT_ALL ZIP_UINT32_MAX
402 #define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
403 #define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN)
404 #define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL)
433 #ifdef ZIP_ALLOCATE_BUFFER
434 #define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t *buf
435 #define byte_array_init(buf, size) (((buf) = (zip_uint8_t *)malloc(size)) != NULL)
436 #define byte_array_fini(buf) (free(buf))
438 #define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size]
439 #define byte_array_init(buf, size) (1)
440 #define byte_array_fini(buf) ((void)0)
472 #define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
473 #define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
475 #define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
476 #define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL)
477 #define ZIP_ENTRY_HAS_CHANGES(e) (ZIP_ENTRY_DATA_CHANGED(e) || (e)->deleted || ZIP_ENTRY_CHANGED((e), ZIP_DIRENT_ALL))
479 #define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
482 #ifdef HAVE_EXPLICIT_MEMSET
483 #define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l))
485 #ifdef HAVE_EXPLICIT_BZERO
486 #define _zip_crypto_clear(b, l) explicit_bzero((b), (l))
489 #define _zip_crypto_clear(b, l) memset((b), 0, (l))
const lzma_allocator const uint8_t * in
const lzma_allocator const uint8_t size_t uint8_t * out
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
static static fork const void static count static fd const char const char static newpath const char static path const char path
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len key
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
enum zip_source_cmd zip_source_cmd_t
zip_int64_t(* zip_source_callback)(void *_Nullable, void *_Nullable, zip_uint64_t, zip_source_cmd_t)
static struct @218 keys[]
static struct sockaddr static addrlen static backlog const void static flags void flags
zip_uint64_t nentry_alloc
bool(* start)(void *ctx, zip_stat_t *st, zip_file_attributes_t *attributes)
zip_uint8_t version_needed
zip_compression_status_t(* process)(void *ctx, zip_uint8_t *data, zip_uint64_t *length)
bool(* input)(void *ctx, zip_uint8_t *data, zip_uint64_t length)
void(* deallocate)(void *ctx)
zip_uint16_t(* general_purpose_bit_flags)(void *ctx)
void(* end_of_input)(void *ctx)
zip_uint64_t(* maximum_compressed_size)(zip_uint64_t uncompressed_size)
bool local_extra_fields_read
zip_uint16_t version_needed
zip_extra_field_t * extra_fields
zip_uint16_t encryption_method
zip_uint16_t version_madeby
zip_uint16_t compression_level
zip_source_layered_callback l
zip_source_write_state_t write_state
union zip_source::@410 cb
enum zip_encoding_type encoding
zip_uint32_t converted_length
zip_source_t ** open_source
zip_string_t * comment_changes
unsigned int nopen_source
zip_uint64_t nentry_alloc
zip_string_t * comment_orig
unsigned int nopen_source_alloc
zip_progress_t * progress
uint64_t uncompressed_size
void error(const char *msg)
void _zip_entry_finalize(zip_entry_t *)
int _zip_file_extra_field_prepare_for_change(zip_t *, zip_uint64_t)
zip_dirent_t * _zip_get_dirent(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *)
int _zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i)
int _zip_read(zip_source_t *src, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error)
zip_uint16_t _zip_ef_size(const zip_extra_field_t *, zip_flags_t)
zip_string_t * _zip_string_new(const zip_uint8_t *raw, zip_uint16_t length, zip_flags_t flags, zip_error_t *error)
zip_int64_t _zip_name_locate(zip_t *, const char *, zip_flags_t, zip_error_t *)
bool _zip_hash_revert(zip_hash_t *hash, zip_error_t *error)
zip_source_t *(* zip_encryption_implementation)(zip_t *, zip_source_t *, zip_uint16_t, int, const char *)
zip_dirent_t * _zip_dirent_new(void)
zip_t * _zip_open(zip_source_t *, unsigned int, zip_error_t *)
zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation)
void _zip_error_set_from_source(zip_error_t *, zip_source_t *)
bool _zip_winzip_aes_encrypt(zip_winzip_aes_t *ctx, zip_uint8_t *data, zip_uint64_t length)
zip_compression_algorithm_t * _zip_get_compression_algorithm(zip_int32_t method, bool compress)
zip_extra_field_t * _zip_ef_remove_internal(zip_extra_field_t *)
zip_string_t * _zip_read_string(zip_buffer_t *buffer, zip_source_t *src, zip_uint16_t length, bool nulp, zip_error_t *error)
void _zip_dirent_free(zip_dirent_t *)
zip_int64_t _zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors)
zip_compression_algorithm_t zip_algorithm_xz_compress
void _zip_cdir_free(zip_cdir_t *)
const zip_uint8_t * _zip_string_get(zip_string_t *string, zip_uint32_t *lenp, zip_flags_t flags, zip_error_t *error)
const zip_uint8_t * zip_get_extra_field_by_id(zip_t *, int, int, zip_uint16_t, int, zip_uint16_t *)
@ ZIP_SOURCE_WRITE_CLOSED
@ ZIP_SOURCE_WRITE_FAILED
@ ZIP_SOURCE_WRITE_REMOVED
zip_compression_algorithm_t zip_algorithm_deflate_decompress
int _zip_dirent_write(zip_t *za, zip_dirent_t *dirent, zip_flags_t flags)
const struct _zip_err_info _zip_err_details[]
zip_uint8_t * _zip_buffer_data(zip_buffer_t *buffer)
void _zip_dirent_finalize(zip_dirent_t *)
int _zip_progress_subrange(zip_progress_t *progress, double start, double end)
void _zip_entry_init(zip_entry_t *)
zip_source_t * zip_source_pkware_decode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *)
const zip_uint8_t * _zip_ef_get_by_id(const zip_extra_field_t *, zip_uint16_t *, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t *)
int _zip_read_at_offset(zip_source_t *src, zip_uint64_t offset, unsigned char *b, size_t length, zip_error_t *error)
zip_uint8_t * _zip_cp437_to_utf8(const zip_uint8_t *const, zip_uint32_t, zip_uint32_t *, zip_error_t *)
zip_int64_t _zip_hash_lookup(zip_hash_t *hash, const zip_uint8_t *name, zip_flags_t flags, zip_error_t *error)
zip_int64_t _zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command)
bool _zip_ef_parse(const zip_uint8_t *, zip_uint16_t, zip_flags_t, zip_extra_field_t **, zip_error_t *)
zip_source_t * zip_source_buffer_with_attributes_create(const void *data, zip_uint64_t len, int freep, zip_file_attributes_t *attributes, zip_error_t *error)
enum zip_compression_status zip_compression_status_t
enum zip_encoding_type _zip_guess_encoding(zip_string_t *, enum zip_encoding_type)
const struct _zip_err_info _zip_err_str[]
void _zip_source_invalidate(zip_source_t *src)
int _zip_string_equal(const zip_string_t *a, const zip_string_t *b)
zip_source_t * _zip_source_file_or_p(const char *, FILE *, zip_uint64_t, zip_int64_t, const zip_stat_t *, zip_error_t *error)
zip_extra_field_t * _zip_ef_clone(const zip_extra_field_t *, zip_error_t *)
void _zip_pkware_encrypt(zip_pkware_keys_t *keys, zip_uint8_t *out, const zip_uint8_t *in, zip_uint64_t len)
zip_cdir_t * _zip_cdir_new(zip_uint64_t, zip_error_t *)
zip_source_t * zip_source_winzip_aes_encode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *)
void _zip_progress_end(zip_progress_t *progress)
zip_uint32_t _zip_buffer_get_32(zip_buffer_t *buffer)
int _zip_changed(const zip_t *, zip_uint64_t *)
zip_uint8_t * _zip_read_data(zip_buffer_t *buffer, zip_source_t *src, size_t length, bool nulp, zip_error_t *error)
int _zip_mkstempm(char *path, int mode, bool create_file)
int _zip_write(zip_t *za, const void *data, zip_uint64_t length)
zip_uint64_t _zip_buffer_left(zip_buffer_t *buffer)
zip_compression_algorithm_t zip_algorithm_zstd_compress
zip_uint64_t _zip_buffer_read(zip_buffer_t *buffer, zip_uint8_t *data, zip_uint64_t length)
void _zip_pkware_keys_free(zip_pkware_keys_t *keys)
bool _zip_hash_delete(zip_hash_t *hash, const zip_uint8_t *key, zip_error_t *error)
zip_int64_t _zip_add_entry(zip_t *)
bool _zip_winzip_aes_finish(zip_winzip_aes_t *ctx, zip_uint8_t *hmac)
zip_uint32_t zip_random_uint32(void)
int _zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i)
void _zip_unchange_data(zip_entry_t *)
zip_compression_algorithm_t zip_algorithm_bzip2_decompress
bool _zip_source_had_error(zip_source_t *)
zip_source_t * _zip_source_new(zip_error_t *error)
zip_uint64_t _zip_file_get_offset(const zip_t *, zip_uint64_t, zip_error_t *)
zip_uint64_t _zip_buffer_size(zip_buffer_t *buffer)
enum zip_source_write_state zip_source_write_state_t
time_t _zip_d2u_time(zip_uint16_t, zip_uint16_t)
void _zip_dirent_init(zip_dirent_t *)
zip_extra_field_t * _zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_flags_t)
bool zip_source_accept_empty(zip_source_t *src)
int _zip_progress_start(zip_progress_t *progress)
zip_compression_algorithm_t zip_algorithm_deflate_compress
zip_compression_algorithm_t zip_algorithm_bzip2_compress
zip_source_t * zip_source_buffer_with_attributes(zip_t *za, const void *data, zip_uint64_t len, int freep, zip_file_attributes_t *attributes)
zip_buffer_t * _zip_buffer_new(zip_uint8_t *data, zip_uint64_t size)
const char * _zip_get_name(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *)
void _zip_ef_free(zip_extra_field_t *)
zip_source_t * _zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_int64_t length, zip_stat_t *st, zip_file_attributes_t *attributes, zip_t *source_archive, zip_uint64_t source_index, zip_error_t *error)
int _zip_stat_merge(zip_stat_t *dst, const zip_stat_t *src, zip_error_t *error)
zip_uint32_t _zip_string_crc32(const zip_string_t *string)
void _zip_pkware_decrypt(zip_pkware_keys_t *keys, zip_uint8_t *out, const zip_uint8_t *in, zip_uint64_t len)
void _zip_winzip_aes_free(zip_winzip_aes_t *ctx)
zip_source_t * zip_source_winzip_aes_decode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *)
zip_int64_t(* zip_source_layered_callback)(zip_source_t *, void *, void *, zip_uint64_t, enum zip_source_cmd)
void _zip_buffer_free(zip_buffer_t *buffer)
ZIP_EXTERN bool zip_secure_random(zip_uint8_t *buffer, zip_uint16_t length)
zip_t * _zip_new(zip_error_t *)
zip_buffer_t * _zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error)
bool _zip_buffer_ok(zip_buffer_t *buffer)
void _zip_dirent_apply_attributes(zip_dirent_t *, zip_file_attributes_t *, bool, zip_uint32_t)
bool _zip_dirent_needs_zip64(const zip_dirent_t *, zip_flags_t)
bool _zip_winzip_aes_decrypt(zip_winzip_aes_t *ctx, zip_uint8_t *data, zip_uint64_t length)
void * _zip_memdup(const void *, size_t, zip_error_t *)
zip_uint16_t _zip_buffer_get_16(zip_buffer_t *buffer)
void _zip_deregister_source(zip_t *za, zip_source_t *src)
enum zip_encoding_type zip_encoding_type_t
void _zip_error_clear(zip_error_t *)
zip_compression_algorithm_t zip_algorithm_zstd_decompress
void _zip_pkware_keys_reset(zip_pkware_keys_t *keys)
int _zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length)
int _zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i)
zip_compression_algorithm_t zip_algorithm_xz_decompress
const int _zip_err_details_count
void _zip_set_open_error(int *zep, const zip_error_t *err, int ze)
@ ZIP_COMPRESSION_NEED_DATA
int _zip_local_header_read(zip_t *, int)
int _zip_read_local_ef(zip_t *, zip_uint64_t)
zip_source_t * zip_source_pkware_encode(zip_t *, zip_source_t *, zip_uint16_t, int, const char *)
bool _zip_hash_reserve_capacity(zip_hash_t *hash, zip_uint64_t capacity, zip_error_t *error)
const zip_uint8_t * _zip_extract_extra_field_by_id(zip_error_t *, zip_uint16_t, int, const zip_uint8_t *, zip_uint16_t, zip_uint16_t *)
bool _zip_hash_add(zip_hash_t *hash, const zip_uint8_t *name, zip_uint64_t index, zip_flags_t flags, zip_error_t *error)
zip_hash_t * _zip_hash_new(zip_error_t *error)
zip_extra_field_t * _zip_ef_delete_by_id(zip_extra_field_t *, zip_uint16_t, zip_uint16_t, zip_flags_t)
bool _zip_buffer_eof(zip_buffer_t *buffer)
zip_source_t * zip_source_crc_create(zip_source_t *, int, zip_error_t *error)
zip_int64_t _zip_file_replace(zip_t *, zip_uint64_t, const char *, zip_source_t *, zip_flags_t)
const int _zip_err_str_count
int _zip_set_name(zip_t *, zip_uint64_t, const char *, zip_flags_t)
zip_uint64_t _zip_buffer_get_64(zip_buffer_t *buffer)
zip_uint64_t _zip_file_get_end(const zip_t *za, zip_uint64_t index, zip_error_t *error)
int _zip_string_write(zip_t *za, const zip_string_t *string)
int zip_source_remove(zip_source_t *)
zip_source_t * zip_source_decompress(zip_t *za, zip_source_t *src, zip_int32_t cm)
int _zip_progress_update(zip_progress_t *progress, double value)
int _zip_ef_write(zip_t *za, const zip_extra_field_t *ef, zip_flags_t flags)
zip_source_t * _zip_source_zip_new(zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char *, zip_error_t *error)
void _zip_hash_free(zip_hash_t *hash)
void _zip_error_copy(zip_error_t *dst, const zip_error_t *src)
int _zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i)
zip_int64_t _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, bool local, zip_error_t *error)
zip_int64_t zip_source_supports(zip_source_t *src)
int _zip_source_set_source_archive(zip_source_t *, zip_t *)
zip_uint8_t * _zip_buffer_peek(zip_buffer_t *buffer, zip_uint64_t length)
void _zip_progress_free(zip_progress_t *progress)
zip_winzip_aes_t * _zip_winzip_aes_new(const zip_uint8_t *password, zip_uint64_t password_length, const zip_uint8_t *salt, zip_uint16_t key_size, zip_uint8_t *password_verify, zip_error_t *error)
zip_source_t * zip_source_compress(zip_t *za, zip_source_t *src, zip_int32_t cm, int compression_flags)
int _zip_file_fillbuf(void *, size_t, zip_file_t *)
bool _zip_cdir_grow(zip_cdir_t *cd, zip_uint64_t additional_entries, zip_error_t *error)
zip_source_t * zip_source_layered(zip_t *, zip_source_t *, zip_source_layered_callback, void *)
zip_dirent_t * _zip_dirent_clone(const zip_dirent_t *)
zip_uint16_t _zip_string_length(const zip_string_t *string)
void _zip_dirent_set_version_needed(zip_dirent_t *de, bool force_zip64)
zip_uint8_t _zip_buffer_get_8(zip_buffer_t *buffer)
zip_int32_t _zip_dirent_size(zip_source_t *src, zip_uint16_t, zip_error_t *)
int _zip_unchange(zip_t *, zip_uint64_t, int)
int _zip_register_source(zip_t *za, zip_source_t *src)
zip_uint64_t _zip_buffer_offset(zip_buffer_t *buffer)
zip_extra_field_t * _zip_ef_merge(zip_extra_field_t *, zip_extra_field_t *)
void _zip_u2d_time(time_t, zip_uint16_t *, zip_uint16_t *)
void _zip_string_free(zip_string_t *string)
void _zip_error_get(const zip_error_t *, int *, int *)
bool _zip_source_eof(zip_source_t *)
zip_source_t * zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error)
zip_pkware_keys_t * _zip_pkware_keys_new(zip_error_t *error)
int _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset)
@ ZIP_ENCODING_UTF8_GUESSED
@ ZIP_ENCODING_UTF8_KNOWN
int _zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length)
zip_uint8_t * _zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length)