@appzung/react-native-code-push 8.3.2 → 9.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CodePush.podspec +3 -3
  2. package/README.md +3 -1
  3. package/android/app/build.gradle +2 -0
  4. package/android/app/src/main/AndroidManifest.xml +1 -2
  5. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +15 -8
  6. package/android/build.gradle +3 -0
  7. package/ios/CodePush/CodePush.m +2 -1
  8. package/ios/CodePush/SSZipArchive/Info.plist +26 -0
  9. package/ios/CodePush/SSZipArchive/README.md +1 -1
  10. package/ios/CodePush/SSZipArchive/SSZipArchive.h +129 -27
  11. package/ios/CodePush/SSZipArchive/SSZipArchive.m +1119 -314
  12. package/ios/CodePush/SSZipArchive/SSZipCommon.h +71 -0
  13. package/ios/CodePush/SSZipArchive/Supporting Files/PrivacyInfo.xcprivacy +23 -0
  14. package/ios/CodePush/SSZipArchive/include/ZipArchive.h +25 -0
  15. package/ios/CodePush/SSZipArchive/minizip/LICENSE +17 -0
  16. package/ios/CodePush/SSZipArchive/minizip/mz.h +273 -0
  17. package/ios/CodePush/SSZipArchive/minizip/mz_compat.c +1306 -0
  18. package/ios/CodePush/SSZipArchive/minizip/mz_compat.h +346 -0
  19. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.c +187 -0
  20. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.h +65 -0
  21. package/ios/CodePush/SSZipArchive/minizip/mz_crypt_apple.c +526 -0
  22. package/ios/CodePush/SSZipArchive/minizip/mz_os.c +348 -0
  23. package/ios/CodePush/SSZipArchive/minizip/mz_os.h +176 -0
  24. package/ios/CodePush/SSZipArchive/minizip/mz_os_posix.c +350 -0
  25. package/ios/CodePush/SSZipArchive/minizip/mz_strm.c +556 -0
  26. package/ios/CodePush/SSZipArchive/minizip/mz_strm.h +132 -0
  27. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.c +383 -0
  28. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.h +42 -0
  29. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.c +269 -0
  30. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.h +48 -0
  31. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os.h +40 -0
  32. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os_posix.c +203 -0
  33. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.c +334 -0
  34. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.h +46 -0
  35. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.c +429 -0
  36. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.h +43 -0
  37. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.c +360 -0
  38. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.h +46 -0
  39. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.c +389 -0
  40. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.h +43 -0
  41. package/ios/CodePush/SSZipArchive/minizip/mz_zip.c +2782 -0
  42. package/ios/CodePush/SSZipArchive/minizip/mz_zip.h +262 -0
  43. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.c +1942 -0
  44. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.h +285 -0
  45. package/ios/CodePush.xcodeproj/project.pbxproj +245 -130
  46. package/ios/PrivacyInfo.xcprivacy +31 -0
  47. package/package.json +2 -2
  48. package/ios/CodePush/SSZipArchive/Common.h +0 -81
  49. package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
  50. package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
  51. package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
  52. package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
  53. package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
  54. package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
  55. package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
  56. package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
  57. package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
  58. package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
  59. package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
  60. package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
  61. package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
  62. package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
  63. package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
  64. package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
  65. package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
  66. package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
  67. package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
  68. package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
  69. package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
  70. package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
  71. package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
  72. package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
  73. package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
  74. package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
  75. package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
  76. package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
  77. package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
  78. package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
@@ -0,0 +1,346 @@
1
+ /* mz_compat.h -- Backwards compatible interface for older versions
2
+ part of the minizip-ng project
3
+
4
+ Copyright (C) Nathan Moinvaziri
5
+ https://github.com/zlib-ng/minizip-ng
6
+ Copyright (C) 1998-2010 Gilles Vollant
7
+ https://www.winimage.com/zLibDll/minizip.html
8
+
9
+ This program is distributed under the terms of the same license as zlib.
10
+ See the accompanying LICENSE file for the full text of the license.
11
+
12
+ WARNING: Be very careful updating/overwriting this file.
13
+ It has specific changes for SSZipArchive support with some structs moved to SSZipCommon for public access
14
+ */
15
+
16
+ #ifndef MZ_COMPAT_H
17
+ #define MZ_COMPAT_H
18
+
19
+ #include "mz.h"
20
+ #include "../SSZipCommon.h"
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ /***************************************************************************/
27
+
28
+ #if defined(HAVE_ZLIB) && defined(MAX_MEM_LEVEL)
29
+ #ifndef DEF_MEM_LEVEL
30
+ # if MAX_MEM_LEVEL >= 8
31
+ # define DEF_MEM_LEVEL 8
32
+ # else
33
+ # define DEF_MEM_LEVEL MAX_MEM_LEVEL
34
+ # endif
35
+ #endif
36
+ #endif
37
+ #ifndef MAX_WBITS
38
+ #define MAX_WBITS 15 //removed () to suppress warning about ambiguous expansion of macro -SSZipArchive
39
+ #endif
40
+ #ifndef DEF_MEM_LEVEL
41
+ #define DEF_MEM_LEVEL (8)
42
+ #endif
43
+
44
+ #ifndef ZEXPORT
45
+ # define ZEXPORT MZ_EXPORT
46
+ #endif
47
+
48
+ /***************************************************************************/
49
+
50
+ #if defined(STRICTZIP) || defined(STRICTZIPUNZIP)
51
+ /* like the STRICT of WIN32, we define a pointer that cannot be converted
52
+ from (void*) without cast */
53
+ typedef struct TagzipFile__ { int unused; } zip_file__;
54
+ typedef zip_file__ *zipFile;
55
+ #else
56
+ typedef void *zipFile;
57
+ #endif
58
+
59
+ /***************************************************************************/
60
+
61
+ typedef uint64_t ZPOS64_T;
62
+
63
+ #ifndef ZCALLBACK
64
+ #define ZCALLBACK
65
+ #endif
66
+
67
+ typedef void* (ZCALLBACK *open_file_func) (void *opaque, const char *filename, int mode);
68
+ typedef void* (ZCALLBACK *open64_file_func) (void *opaque, const void *filename, int mode);
69
+ typedef unsigned long (ZCALLBACK *read_file_func) (void *opaque, void *stream, void* buf, unsigned long size);
70
+ typedef unsigned long (ZCALLBACK *write_file_func) (void *opaque, void *stream, const void* buf,
71
+ unsigned long size);
72
+ typedef int (ZCALLBACK *close_file_func) (void *opaque, void *stream);
73
+ typedef int (ZCALLBACK *testerror_file_func)(void *opaque, void *stream);
74
+ typedef long (ZCALLBACK *tell_file_func) (void *opaque, void *stream);
75
+ typedef ZPOS64_T (ZCALLBACK *tell64_file_func) (void *opaque, void *stream);
76
+ typedef long (ZCALLBACK *seek_file_func) (void *opaque, void *stream, unsigned long offset, int origin);
77
+ typedef long (ZCALLBACK *seek64_file_func) (void *opaque, void *stream, ZPOS64_T offset, int origin);
78
+
79
+ typedef struct zlib_filefunc_def_s
80
+ {
81
+ open_file_func zopen_file;
82
+ read_file_func zread_file;
83
+ write_file_func zwrite_file;
84
+ tell_file_func ztell_file;
85
+ seek_file_func zseek_file;
86
+ close_file_func zclose_file;
87
+ testerror_file_func zerror_file;
88
+ void* opaque;
89
+ } zlib_filefunc_def;
90
+
91
+ typedef struct zlib_filefunc64_def_s
92
+ {
93
+ open64_file_func zopen64_file;
94
+ read_file_func zread_file;
95
+ write_file_func zwrite_file;
96
+ tell64_file_func ztell64_file;
97
+ seek64_file_func zseek64_file;
98
+ close_file_func zclose_file;
99
+ testerror_file_func zerror_file;
100
+ void* opaque;
101
+ } zlib_filefunc64_def;
102
+
103
+ /***************************************************************************/
104
+
105
+ #define ZLIB_FILEFUNC_SEEK_SET (0)
106
+ #define ZLIB_FILEFUNC_SEEK_CUR (1)
107
+ #define ZLIB_FILEFUNC_SEEK_END (2)
108
+
109
+ #define ZLIB_FILEFUNC_MODE_READ (1)
110
+ #define ZLIB_FILEFUNC_MODE_WRITE (2)
111
+ #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
112
+
113
+ #define ZLIB_FILEFUNC_MODE_EXISTING (4)
114
+ #define ZLIB_FILEFUNC_MODE_CREATE (8)
115
+
116
+ /***************************************************************************/
117
+
118
+ ZEXPORT void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def);
119
+ ZEXPORT void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def);
120
+ ZEXPORT void fill_win32_filefunc(zlib_filefunc_def *pzlib_filefunc_def);
121
+ ZEXPORT void fill_win32_filefunc64(zlib_filefunc64_def *pzlib_filefunc_def);
122
+ ZEXPORT void fill_win32_filefunc64A(zlib_filefunc64_def *pzlib_filefunc_def);
123
+ ZEXPORT void fill_memory_filefunc(zlib_filefunc_def *pzlib_filefunc_def);
124
+
125
+ /***************************************************************************/
126
+
127
+
128
+ // SSZipArchive 2.x+ uses dos_date
129
+ #define MZ_COMPAT_VERSION 120
130
+
131
+ #if MZ_COMPAT_VERSION <= 110
132
+ #define mz_dos_date dosDate
133
+ #else
134
+ #define mz_dos_date dos_date
135
+ #endif
136
+
137
+ typedef struct tm tm_unz;
138
+ typedef struct tm tm_zip;
139
+
140
+ typedef struct {
141
+ uint32_t mz_dos_date;
142
+ struct tm tmz_date;
143
+ uint16_t internal_fa; /* internal file attributes 2 bytes */
144
+ uint32_t external_fa; /* external file attributes 4 bytes */
145
+ } zip_fileinfo;
146
+
147
+ typedef const char *zipcharpc;
148
+
149
+ /***************************************************************************/
150
+
151
+ #define ZIP_OK (0)
152
+ #define ZIP_EOF (0)
153
+ #define ZIP_ERRNO (-1)
154
+ #define ZIP_PARAMERROR (-102)
155
+ #define ZIP_BADZIPFILE (-103)
156
+ #define ZIP_INTERNALERROR (-104)
157
+
158
+ #ifndef Z_DEFLATED
159
+ #define Z_DEFLATED 8 //removed () to suppress warning about ambiguous expansion of macro -SSZipArchive
160
+ #endif
161
+ #define Z_BZIP2ED (12)
162
+
163
+ #define APPEND_STATUS_CREATE (0)
164
+ #define APPEND_STATUS_CREATEAFTER (1)
165
+ #define APPEND_STATUS_ADDINZIP (2)
166
+
167
+ /***************************************************************************/
168
+ /* Writing a zip file */
169
+
170
+ ZEXPORT zipFile zipOpen(const char *path, int append);
171
+ ZEXPORT zipFile zipOpen64(const void *path, int append);
172
+ ZEXPORT zipFile zipOpen2(const char *path, int append, const char **globalcomment,
173
+ zlib_filefunc_def *pzlib_filefunc_def);
174
+
175
+ ZEXPORT zipFile zipOpen2_64(const void *path, int append, const char **globalcomment,
176
+ zlib_filefunc64_def *pzlib_filefunc_def);
177
+ ZEXPORT zipFile zipOpen_MZ(void *stream, int append, const char **globalcomment);
178
+
179
+ ZEXPORT void* zipGetHandle_MZ(zipFile);
180
+ ZEXPORT void* zipGetStream_MZ(zipFile file);
181
+
182
+ ZEXPORT int zipOpenNewFileInZip(zipFile file, const char *filename, const zip_fileinfo *zipfi,
183
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
184
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level);
185
+ ZEXPORT int zipOpenNewFileInZip_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
186
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
187
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
188
+ int zip64);
189
+ ZEXPORT int zipOpenNewFileInZip2(zipFile file, const char *filename, const zip_fileinfo *zipfi,
190
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
191
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
192
+ int raw);
193
+ ZEXPORT int zipOpenNewFileInZip2_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
194
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
195
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
196
+ int raw, int zip64);
197
+ ZEXPORT int zipOpenNewFileInZip3(zipFile file, const char *filename, const zip_fileinfo *zipfi,
198
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
199
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
200
+ int raw, int windowBits, int memLevel, int strategy, const char *password,
201
+ unsigned long crc_for_crypting);
202
+ ZEXPORT int zipOpenNewFileInZip3_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
203
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
204
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
205
+ int raw, int windowBits, int memLevel, int strategy, const char *password,
206
+ unsigned long crc_for_crypting, int zip64);
207
+ ZEXPORT int zipOpenNewFileInZip4(zipFile file, const char *filename, const zip_fileinfo *zipfi,
208
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
209
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
210
+ int raw, int windowBits, int memLevel, int strategy, const char *password,
211
+ unsigned long crc_for_crypting, unsigned long version_madeby, unsigned long flag_base);
212
+ ZEXPORT int zipOpenNewFileInZip4_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
213
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
214
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
215
+ int raw, int windowBits, int memLevel, int strategy, const char *password,
216
+ unsigned long crc_for_crypting, unsigned long version_madeby, unsigned long flag_base, int zip64);
217
+ ZEXPORT int zipOpenNewFileInZip5(zipFile file, const char *filename, const zip_fileinfo *zipfi,
218
+ const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global,
219
+ uint16_t size_extrafield_global, const char *comment, int compression_method, int level,
220
+ int raw, int windowBits, int memLevel, int strategy, const char *password,
221
+ unsigned long crc_for_crypting, signed char aes, unsigned long version_madeby, unsigned long flag_base, int zip64);
222
+
223
+ ZEXPORT int zipWriteInFileInZip(zipFile file, const void *buf, uint32_t len);
224
+
225
+ ZEXPORT int zipCloseFileInZipRaw(zipFile file, unsigned long uncompressed_size, uint32_t crc32);
226
+ ZEXPORT int zipCloseFileInZipRaw64(zipFile file, uint64_t uncompressed_size, uint32_t crc32);
227
+ ZEXPORT int zipCloseFileInZip(zipFile file);
228
+ ZEXPORT int zipCloseFileInZip64(zipFile file);
229
+
230
+ ZEXPORT int zipClose(zipFile file, const char *global_comment);
231
+ ZEXPORT int zipClose_64(zipFile file, const char *global_comment);
232
+ ZEXPORT int zipClose2_64(zipFile file, const char *global_comment, uint16_t version_madeby);
233
+ int zipClose_MZ(zipFile file, const char *global_comment);
234
+ int zipClose2_MZ(zipFile file, const char *global_comment, uint16_t version_madeby);
235
+
236
+ /***************************************************************************/
237
+
238
+ #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
239
+ /* like the STRICT of WIN32, we define a pointer that cannot be converted
240
+ from (void*) without cast */
241
+ typedef struct TagunzFile__ { int unused; } unz_file__;
242
+ typedef unz_file__ *unzFile;
243
+ #else
244
+ typedef void *unzFile;
245
+ #endif
246
+
247
+ /***************************************************************************/
248
+
249
+ #define UNZ_OK (0)
250
+ #define UNZ_END_OF_LIST_OF_FILE (-100)
251
+ #define UNZ_ERRNO (-1)
252
+ #define UNZ_EOF (0)
253
+ #define UNZ_PARAMERROR (-102)
254
+ #define UNZ_BADZIPFILE (-103)
255
+ #define UNZ_INTERNALERROR (-104)
256
+ #define UNZ_CRCERROR (-105)
257
+ #define UNZ_BADPASSWORD (-106)
258
+
259
+ /***************************************************************************/
260
+
261
+ typedef int (*unzFileNameComparer)(unzFile file, const char *filename1, const char *filename2);
262
+ typedef int (*unzIteratorFunction)(unzFile file);
263
+ typedef int (*unzIteratorFunction2)(unzFile file, unz_file_info64 *pfile_info, char *filename,
264
+ uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment,
265
+ uint16_t comment_size);
266
+
267
+ /***************************************************************************/
268
+ /* Reading a zip file */
269
+
270
+ ZEXPORT unzFile unzOpen(const char *path);
271
+ ZEXPORT unzFile unzOpen64(const void *path);
272
+ ZEXPORT unzFile unzOpen2(const char *path, zlib_filefunc_def *pzlib_filefunc_def);
273
+ ZEXPORT unzFile unzOpen2_64(const void *path, zlib_filefunc64_def *pzlib_filefunc_def);
274
+ unzFile unzOpen_MZ(void *stream);
275
+
276
+ ZEXPORT int unzClose(unzFile file);
277
+ ZEXPORT int unzClose_MZ(unzFile file);
278
+
279
+ ZEXPORT void* unzGetHandle_MZ(unzFile file);
280
+ ZEXPORT void* unzGetStream_MZ(zipFile file);
281
+
282
+ ZEXPORT int unzGetGlobalInfo(unzFile file, unz_global_info* pglobal_info32);
283
+ ZEXPORT int unzGetGlobalInfo64(unzFile file, unz_global_info64 *pglobal_info);
284
+ ZEXPORT int unzGetGlobalComment(unzFile file, char *comment, unsigned long comment_size);
285
+
286
+ ZEXPORT int unzOpenCurrentFile(unzFile file);
287
+ ZEXPORT int unzOpenCurrentFilePassword(unzFile file, const char *password);
288
+ ZEXPORT int unzOpenCurrentFile2(unzFile file, int *method, int *level, int raw);
289
+ ZEXPORT int unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password);
290
+ ZEXPORT int unzReadCurrentFile(unzFile file, void *buf, uint32_t len);
291
+ ZEXPORT int unzCloseCurrentFile(unzFile file);
292
+
293
+ ZEXPORT int unzGetCurrentFileInfo(unzFile file, unz_file_info *pfile_info, char *filename,
294
+ unsigned long filename_size, void *extrafield, unsigned long extrafield_size, char *comment,
295
+ unsigned long comment_size);
296
+ ZEXPORT int unzGetCurrentFileInfo64(unzFile file, unz_file_info64 * pfile_info, char *filename,
297
+ unsigned long filename_size, void *extrafield, unsigned long extrafield_size, char *comment,
298
+ unsigned long comment_size);
299
+
300
+ ZEXPORT int unzGoToFirstFile(unzFile file);
301
+ ZEXPORT int unzGoToNextFile(unzFile file);
302
+ ZEXPORT int unzLocateFile(unzFile file, const char *filename, unzFileNameComparer filename_compare_func);
303
+
304
+ ZEXPORT int unzGetLocalExtrafield(unzFile file, void *buf, unsigned int len);
305
+
306
+ /***************************************************************************/
307
+ /* Raw access to zip file */
308
+
309
+ typedef struct unz_file_pos_s {
310
+ uint32_t pos_in_zip_directory; /* offset in zip file directory */
311
+ uint32_t num_of_file; /* # of file */
312
+ } unz_file_pos;
313
+
314
+ ZEXPORT int unzGetFilePos(unzFile file, unz_file_pos *file_pos);
315
+ ZEXPORT int unzGoToFilePos(unzFile file, unz_file_pos *file_pos);
316
+
317
+ typedef struct unz64_file_pos_s {
318
+ int64_t pos_in_zip_directory; /* offset in zip file directory */
319
+ uint64_t num_of_file; /* # of file */
320
+ } unz64_file_pos;
321
+
322
+ ZEXPORT int unzGetFilePos64(unzFile file, unz64_file_pos *file_pos);
323
+ ZEXPORT int unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos);
324
+
325
+ ZEXPORT int64_t unzGetOffset64(unzFile file);
326
+ ZEXPORT unsigned long
327
+ unzGetOffset(unzFile file);
328
+ ZEXPORT int unzSetOffset64(unzFile file, int64_t pos);
329
+ ZEXPORT int unzSetOffset(unzFile file, unsigned long pos);
330
+ ZEXPORT int32_t unztell(unzFile file);
331
+ ZEXPORT int32_t unzTell(unzFile file);
332
+ ZEXPORT uint64_t unztell64(unzFile file);
333
+ ZEXPORT uint64_t unzTell64(unzFile file);
334
+ ZEXPORT int unzSeek(unzFile file, int32_t offset, int origin);
335
+ ZEXPORT int unzSeek64(unzFile file, int64_t offset, int origin);
336
+ ZEXPORT int unzEndOfFile(unzFile file);
337
+ ZEXPORT int unzeof(unzFile file);
338
+ ZEXPORT void* unzGetStream(unzFile file);
339
+
340
+ /***************************************************************************/
341
+
342
+ #ifdef __cplusplus
343
+ }
344
+ #endif
345
+
346
+ #endif
@@ -0,0 +1,187 @@
1
+ /* mz_crypt.c -- Crypto/hash functions
2
+ part of the minizip-ng project
3
+
4
+ Copyright (C) Nathan Moinvaziri
5
+ https://github.com/zlib-ng/minizip-ng
6
+
7
+ This program is distributed under the terms of the same license as zlib.
8
+ See the accompanying LICENSE file for the full text of the license.
9
+ */
10
+
11
+ #include "mz.h"
12
+ #include "mz_os.h"
13
+ #include "mz_crypt.h"
14
+
15
+ #if defined(HAVE_ZLIB)
16
+ # if !defined(ZLIB_COMPAT)
17
+ # include "zlib-ng.h"
18
+ # define ZLIB_PREFIX(x) zng_##x
19
+ # else
20
+ # include "zlib.h"
21
+ # define ZLIB_PREFIX(x) x
22
+ # endif
23
+ #elif defined(HAVE_LZMA)
24
+ # include "lzma.h"
25
+ #endif
26
+
27
+ /***************************************************************************/
28
+
29
+ #if defined(MZ_ZIP_NO_CRYPTO)
30
+ int32_t mz_crypt_rand(uint8_t *buf, int32_t size) {
31
+ return mz_os_rand(buf, size);
32
+ }
33
+ #endif
34
+
35
+ uint32_t mz_crypt_crc32_update(uint32_t value, const uint8_t *buf, int32_t size) {
36
+ #if defined(HAVE_ZLIB)
37
+ /* Define z_crc_t in zlib 1.2.5 and less or if using zlib-ng */
38
+ # if (ZLIB_VERNUM < 0x1270)
39
+ typedef unsigned long z_crc_t;
40
+ # else
41
+ typedef uint32_t z_crc_t;
42
+ # endif
43
+ return (uint32_t)ZLIB_PREFIX(crc32)((z_crc_t)value, buf, (uInt)size);
44
+ #elif defined(HAVE_LZMA)
45
+ return (uint32_t)lzma_crc32(buf, (size_t)size, (uint32_t)value);
46
+ #else
47
+ static uint32_t crc32_table[256] = {
48
+ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
49
+ 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
50
+ 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
51
+ 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
52
+ 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
53
+ 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
54
+ 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
55
+ 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
56
+ 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
57
+ 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
58
+ 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
59
+ 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
60
+ 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
61
+ 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
62
+ 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
63
+ 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
64
+ 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
65
+ 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
66
+ 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
67
+ 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
68
+ 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
69
+ 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
70
+ 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
71
+ 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
72
+ 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
73
+ 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
74
+ 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
75
+ 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
76
+ 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
77
+ 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
78
+ 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
79
+ 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
80
+ 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
81
+ 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
82
+ 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
83
+ 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
84
+ 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
85
+ 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
86
+ 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
87
+ 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
88
+ 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
89
+ 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
90
+ 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
91
+ };
92
+ value = ~value;
93
+
94
+ while (size > 0) {
95
+ value = (value >> 8) ^ crc32_table[(value ^ *buf) & 0xFF];
96
+
97
+ buf += 1;
98
+ size -= 1;
99
+ }
100
+
101
+ return ~value;
102
+ #endif
103
+ }
104
+
105
+ #if defined(HAVE_WZAES)
106
+ int32_t mz_crypt_pbkdf2(uint8_t *password, int32_t password_length, uint8_t *salt,
107
+ int32_t salt_length, uint16_t iteration_count, uint8_t *key, uint16_t key_length) {
108
+ void *hmac1 = NULL;
109
+ void *hmac2 = NULL;
110
+ void *hmac3 = NULL;
111
+ int32_t err = MZ_OK;
112
+ uint16_t i = 0;
113
+ uint16_t j = 0;
114
+ uint16_t k = 0;
115
+ uint16_t block_count = 0;
116
+ uint8_t uu[MZ_HASH_SHA1_SIZE];
117
+ uint8_t ux[MZ_HASH_SHA1_SIZE];
118
+
119
+ if (!password || !salt || !key)
120
+ return MZ_PARAM_ERROR;
121
+
122
+ memset(key, 0, key_length);
123
+
124
+ mz_crypt_hmac_create(&hmac1);
125
+ mz_crypt_hmac_create(&hmac2);
126
+ mz_crypt_hmac_create(&hmac3);
127
+
128
+ mz_crypt_hmac_set_algorithm(hmac1, MZ_HASH_SHA1);
129
+ mz_crypt_hmac_set_algorithm(hmac2, MZ_HASH_SHA1);
130
+ mz_crypt_hmac_set_algorithm(hmac3, MZ_HASH_SHA1);
131
+
132
+ err = mz_crypt_hmac_init(hmac1, password, password_length);
133
+ if (err == MZ_OK)
134
+ err = mz_crypt_hmac_init(hmac2, password, password_length);
135
+ if (err == MZ_OK)
136
+ err = mz_crypt_hmac_update(hmac2, salt, salt_length);
137
+
138
+ block_count = 1 + ((uint16_t)key_length - 1) / MZ_HASH_SHA1_SIZE;
139
+
140
+ for (i = 0; (err == MZ_OK) && (i < block_count); i += 1) {
141
+ memset(ux, 0, sizeof(ux));
142
+
143
+ err = mz_crypt_hmac_copy(hmac2, hmac3);
144
+ if (err != MZ_OK)
145
+ break;
146
+
147
+ uu[0] = (uint8_t)((i + 1) >> 24);
148
+ uu[1] = (uint8_t)((i + 1) >> 16);
149
+ uu[2] = (uint8_t)((i + 1) >> 8);
150
+ uu[3] = (uint8_t)(i + 1);
151
+
152
+ for (j = 0, k = 4; j < iteration_count; j += 1) {
153
+ err = mz_crypt_hmac_update(hmac3, uu, k);
154
+ if (err == MZ_OK)
155
+ err = mz_crypt_hmac_end(hmac3, uu, sizeof(uu));
156
+ if (err != MZ_OK)
157
+ break;
158
+
159
+ for (k = 0; k < MZ_HASH_SHA1_SIZE; k += 1)
160
+ ux[k] ^= uu[k];
161
+
162
+ err = mz_crypt_hmac_copy(hmac1, hmac3);
163
+ if (err != MZ_OK)
164
+ break;
165
+ }
166
+
167
+ if (err != MZ_OK)
168
+ break;
169
+
170
+ j = 0;
171
+ k = i * MZ_HASH_SHA1_SIZE;
172
+
173
+ while (j < MZ_HASH_SHA1_SIZE && k < key_length)
174
+ key[k++] = ux[j++];
175
+ }
176
+
177
+ /* hmac3 uses the same provider as hmac2, so it must be deleted
178
+ before the context is destroyed. */
179
+ mz_crypt_hmac_delete(&hmac3);
180
+ mz_crypt_hmac_delete(&hmac1);
181
+ mz_crypt_hmac_delete(&hmac2);
182
+
183
+ return err;
184
+ }
185
+ #endif
186
+
187
+ /***************************************************************************/
@@ -0,0 +1,65 @@
1
+ /* mz_crypt.h -- Crypto/hash functions
2
+ part of the minizip-ng project
3
+
4
+ Copyright (C) Nathan Moinvaziri
5
+ https://github.com/zlib-ng/minizip-ng
6
+
7
+ This program is distributed under the terms of the same license as zlib.
8
+ See the accompanying LICENSE file for the full text of the license.
9
+ */
10
+
11
+ #ifndef MZ_CRYPT_H
12
+ #define MZ_CRYPT_H
13
+
14
+ #ifdef __cplusplus
15
+ extern "C" {
16
+ #endif
17
+
18
+ /***************************************************************************/
19
+
20
+ uint32_t mz_crypt_crc32_update(uint32_t value, const uint8_t *buf, int32_t size);
21
+
22
+ int32_t mz_crypt_pbkdf2(uint8_t *password, int32_t password_length, uint8_t *salt,
23
+ int32_t salt_length, uint16_t iteration_count, uint8_t *key, uint16_t key_length);
24
+
25
+ /***************************************************************************/
26
+
27
+ int32_t mz_crypt_rand(uint8_t *buf, int32_t size);
28
+
29
+ void mz_crypt_sha_reset(void *handle);
30
+ int32_t mz_crypt_sha_begin(void *handle);
31
+ int32_t mz_crypt_sha_update(void *handle, const void *buf, int32_t size);
32
+ int32_t mz_crypt_sha_end(void *handle, uint8_t *digest, int32_t digest_size);
33
+ void mz_crypt_sha_set_algorithm(void *handle, uint16_t algorithm);
34
+ void* mz_crypt_sha_create(void **handle);
35
+ void mz_crypt_sha_delete(void **handle);
36
+
37
+ void mz_crypt_aes_reset(void *handle);
38
+ int32_t mz_crypt_aes_encrypt(void *handle, uint8_t *buf, int32_t size);
39
+ int32_t mz_crypt_aes_decrypt(void *handle, uint8_t *buf, int32_t size);
40
+ int32_t mz_crypt_aes_set_encrypt_key(void *handle, const void *key, int32_t key_length);
41
+ int32_t mz_crypt_aes_set_decrypt_key(void *handle, const void *key, int32_t key_length);
42
+ void mz_crypt_aes_set_mode(void *handle, int32_t mode);
43
+ void* mz_crypt_aes_create(void **handle);
44
+ void mz_crypt_aes_delete(void **handle);
45
+
46
+ void mz_crypt_hmac_reset(void *handle);
47
+ int32_t mz_crypt_hmac_init(void *handle, const void *key, int32_t key_length);
48
+ int32_t mz_crypt_hmac_update(void *handle, const void *buf, int32_t size);
49
+ int32_t mz_crypt_hmac_end(void *handle, uint8_t *digest, int32_t digest_size);
50
+ int32_t mz_crypt_hmac_copy(void *src_handle, void *target_handle);
51
+ void mz_crypt_hmac_set_algorithm(void *handle, uint16_t algorithm);
52
+ void* mz_crypt_hmac_create(void **handle);
53
+ void mz_crypt_hmac_delete(void **handle);
54
+
55
+ int32_t mz_crypt_sign(uint8_t *message, int32_t message_size, uint8_t *cert_data, int32_t cert_data_size,
56
+ const char *cert_pwd, uint8_t **signature, int32_t *signature_size);
57
+ int32_t mz_crypt_sign_verify(uint8_t *message, int32_t message_size, uint8_t *signature, int32_t signature_size);
58
+
59
+ /***************************************************************************/
60
+
61
+ #ifdef __cplusplus
62
+ }
63
+ #endif
64
+
65
+ #endif