neozipkit 0.7.2 → 1.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 (70) hide show
  1. package/README.md +57 -24
  2. package/WHATS_NEW.md +114 -0
  3. package/dist/browser/zstd-browser-shim.d.ts +28 -0
  4. package/dist/browser/zstd-browser-shim.d.ts.map +1 -0
  5. package/dist/browser/zstd-browser-shim.js +66 -0
  6. package/dist/browser/zstd-browser-shim.js.map +1 -0
  7. package/dist/browser-esm/index.js +1786 -41737
  8. package/dist/browser-esm/index.js.map +4 -4
  9. package/dist/browser-umd/index.js +1786 -41737
  10. package/dist/browser-umd/index.js.map +4 -4
  11. package/dist/browser-umd/index.min.js +3 -21
  12. package/dist/core/ZipCompress.d.ts +2 -7
  13. package/dist/core/ZipCompress.d.ts.map +1 -1
  14. package/dist/core/ZipCompress.js +45 -22
  15. package/dist/core/ZipCompress.js.map +1 -1
  16. package/dist/core/ZipDecompress.d.ts +1 -3
  17. package/dist/core/ZipDecompress.d.ts.map +1 -1
  18. package/dist/core/ZipDecompress.js +14 -9
  19. package/dist/core/ZipDecompress.js.map +1 -1
  20. package/dist/core/encryption/AesCrypto.d.ts +55 -11
  21. package/dist/core/encryption/AesCrypto.d.ts.map +1 -1
  22. package/dist/core/encryption/AesCrypto.js +223 -68
  23. package/dist/core/encryption/AesCrypto.js.map +1 -1
  24. package/dist/core/encryption/index.d.ts +1 -1
  25. package/dist/core/encryption/index.d.ts.map +1 -1
  26. package/dist/core/encryption/index.js +3 -1
  27. package/dist/core/encryption/index.js.map +1 -1
  28. package/dist/core/version.js +1 -1
  29. package/dist/node/LegacyZstd.d.ts +67 -0
  30. package/dist/node/LegacyZstd.d.ts.map +1 -0
  31. package/dist/node/LegacyZstd.js +209 -0
  32. package/dist/node/LegacyZstd.js.map +1 -0
  33. package/dist/node/ZipCompressNode.d.ts +9 -7
  34. package/dist/node/ZipCompressNode.d.ts.map +1 -1
  35. package/dist/node/ZipCompressNode.js +85 -46
  36. package/dist/node/ZipCompressNode.js.map +1 -1
  37. package/dist/node/ZipDecompressNode.d.ts +7 -3
  38. package/dist/node/ZipDecompressNode.d.ts.map +1 -1
  39. package/dist/node/ZipDecompressNode.js +51 -55
  40. package/dist/node/ZipDecompressNode.js.map +1 -1
  41. package/dist/node/ZipkitNode.d.ts +14 -0
  42. package/dist/node/ZipkitNode.d.ts.map +1 -1
  43. package/dist/node/ZipkitNode.js +130 -39
  44. package/dist/node/ZipkitNode.js.map +1 -1
  45. package/dist/node/ZstdNode.d.ts +39 -0
  46. package/dist/node/ZstdNode.d.ts.map +1 -0
  47. package/dist/node/ZstdNode.js +171 -0
  48. package/dist/node/ZstdNode.js.map +1 -0
  49. package/dist/node/index.d.ts +3 -0
  50. package/dist/node/index.d.ts.map +1 -1
  51. package/dist/node/index.js +11 -1
  52. package/dist/node/index.js.map +1 -1
  53. package/package.json +10 -10
  54. package/src/browser/zstd-browser-shim.ts +76 -0
  55. package/src/core/ZipCompress.ts +57 -29
  56. package/src/core/ZipDecompress.ts +21 -10
  57. package/src/core/encryption/AesCrypto.ts +265 -86
  58. package/src/core/encryption/index.ts +1 -1
  59. package/src/core/version.ts +1 -1
  60. package/src/node/LegacyZstd.ts +270 -0
  61. package/src/node/ZipCompressNode.ts +107 -55
  62. package/src/node/ZipDecompressNode.ts +80 -66
  63. package/src/node/ZipkitNode.ts +150 -40
  64. package/src/node/ZstdNode.ts +155 -0
  65. package/src/node/index.ts +10 -0
  66. package/dist/core/ZstdManager.d.ts +0 -56
  67. package/dist/core/ZstdManager.d.ts.map +0 -1
  68. package/dist/core/ZstdManager.js +0 -144
  69. package/dist/core/ZstdManager.js.map +0 -1
  70. package/src/core/ZstdManager.ts +0 -165
@@ -13,6 +13,9 @@
13
13
  //
14
14
  // Extra field 0x9901 (11 bytes):
15
15
  // [header ID (2)] [data size (2)] [vendor version (2)] [vendor ID (2)] [strength (1)] [real method (2)]
16
+ //
17
+ // Streaming helpers (AesEncryptor / AesDecryptor) keep only a 16-byte CTR block in
18
+ // flight so Node create/extract can chunk large AE-1/AE-2 entries.
16
19
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
20
  if (k2 === undefined) k2 = k;
18
21
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -47,12 +50,192 @@ var __importStar = (this && this.__importStar) || (function () {
47
50
  };
48
51
  })();
49
52
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.AesCrypto = void 0;
53
+ exports.AesCrypto = exports.AesDecryptor = exports.AesEncryptor = void 0;
51
54
  const crypto = __importStar(require("crypto"));
52
55
  const Headers_1 = require("../constants/Headers");
53
56
  const COMPOSITE_KEY_LENGTH = 2 * Headers_1.AES256_KEY_SIZE + Headers_1.AES256_PWD_VERIFY_SIZE; // 66 bytes
54
57
  const PBKDF2_ITERATIONS = 1000;
55
58
  const AES_BLOCK_SIZE = 16;
59
+ /** Little-endian AES-CTR keystream (WinZip counter starts at 1). */
60
+ class AesCtrEngine {
61
+ constructor(aesKey) {
62
+ this.aesKey = aesKey;
63
+ this.counter = Buffer.alloc(AES_BLOCK_SIZE);
64
+ this.counter[0] = 1;
65
+ this.keystream = this.encryptCounter();
66
+ this.ksPos = 0;
67
+ }
68
+ process(data) {
69
+ if (data.length === 0) {
70
+ return Buffer.alloc(0);
71
+ }
72
+ const result = Buffer.alloc(data.length);
73
+ for (let i = 0; i < data.length; i++) {
74
+ if (this.ksPos >= AES_BLOCK_SIZE) {
75
+ AesCtrEngine.incrementCounterLE(this.counter);
76
+ this.keystream = this.encryptCounter();
77
+ this.ksPos = 0;
78
+ }
79
+ result[i] = data[i] ^ this.keystream[this.ksPos++];
80
+ }
81
+ return result;
82
+ }
83
+ encryptCounter() {
84
+ const cipher = crypto.createCipheriv('aes-256-ecb', this.aesKey, null);
85
+ cipher.setAutoPadding(false);
86
+ return cipher.update(this.counter);
87
+ }
88
+ static incrementCounterLE(counter) {
89
+ for (let i = 0; i < AES_BLOCK_SIZE; i++) {
90
+ if (counter[i] === 255) {
91
+ counter[i] = 0;
92
+ }
93
+ else {
94
+ counter[i]++;
95
+ break;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ /**
101
+ * Streaming AE-1/AE-2 encryptor for ZIP entry payloads.
102
+ *
103
+ * Usage: `header()` once → `update(compressedChunk)` repeatedly → `finish()` for HMAC.
104
+ */
105
+ class AesEncryptor {
106
+ constructor(password) {
107
+ this.headerSent = false;
108
+ this.finished = false;
109
+ this.salt = crypto.randomBytes(Headers_1.AES256_SALT_SIZE);
110
+ this.keys = AesCrypto.deriveKeys(password, this.salt);
111
+ this.ctr = new AesCtrEngine(this.keys.aesKey);
112
+ this.hmac = crypto.createHmac('sha1', this.keys.hmacKey);
113
+ }
114
+ /** salt (16) + password verifier (2). Write before any ciphertext. */
115
+ header() {
116
+ if (this.finished) {
117
+ throw new Error('AesEncryptor already finished');
118
+ }
119
+ this.headerSent = true;
120
+ return Buffer.concat([this.salt, this.keys.passwordVerifier]);
121
+ }
122
+ /** Encrypt one compressed-data chunk; updates HMAC over ciphertext. */
123
+ update(plain) {
124
+ if (this.finished) {
125
+ throw new Error('AesEncryptor already finished');
126
+ }
127
+ if (!this.headerSent) {
128
+ throw new Error('AesEncryptor.header() must be called before update()');
129
+ }
130
+ if (plain.length === 0) {
131
+ return Buffer.alloc(0);
132
+ }
133
+ const cipher = this.ctr.process(plain);
134
+ this.hmac.update(cipher);
135
+ return cipher;
136
+ }
137
+ /** Final 10-byte authentication code. */
138
+ finish() {
139
+ if (this.finished) {
140
+ throw new Error('AesEncryptor already finished');
141
+ }
142
+ if (!this.headerSent) {
143
+ throw new Error('AesEncryptor.header() must be called before finish()');
144
+ }
145
+ this.finished = true;
146
+ return this.hmac.digest().subarray(0, Headers_1.AES_AUTH_CODE_SIZE);
147
+ }
148
+ }
149
+ exports.AesEncryptor = AesEncryptor;
150
+ /**
151
+ * Streaming AE-1/AE-2 decryptor. `compressedSize` is the full ZIP payload length
152
+ * (salt + verifier + ciphertext + auth), as stored in the local/central header.
153
+ */
154
+ class AesDecryptor {
155
+ constructor(password, compressedSize) {
156
+ this.keys = null;
157
+ this.ctr = null;
158
+ this.hmac = null;
159
+ this.headerBuf = Buffer.alloc(0);
160
+ this.authBuf = Buffer.alloc(0);
161
+ this.headerDone = false;
162
+ this.verified = false;
163
+ if (compressedSize < Headers_1.AES_OVERHEAD) {
164
+ throw new Error('AES decryption failed: payload too short');
165
+ }
166
+ this.password = password;
167
+ this.cipherLen = compressedSize - Headers_1.AES_OVERHEAD;
168
+ this.remainingCipher = this.cipherLen;
169
+ }
170
+ /**
171
+ * Feed the next archive chunk. Returns decrypted compressed bytes
172
+ * (empty while still reading salt/verifier).
173
+ */
174
+ push(chunk) {
175
+ let data = chunk;
176
+ if (!this.headerDone) {
177
+ this.headerBuf = Buffer.concat([this.headerBuf, data]);
178
+ const need = Headers_1.AES256_SALT_SIZE + Headers_1.AES256_PWD_VERIFY_SIZE;
179
+ if (this.headerBuf.length < need) {
180
+ return Buffer.alloc(0);
181
+ }
182
+ const salt = this.headerBuf.subarray(0, Headers_1.AES256_SALT_SIZE);
183
+ const storedVerifier = this.headerBuf.subarray(Headers_1.AES256_SALT_SIZE, need);
184
+ this.keys = AesCrypto.deriveKeys(this.password, salt);
185
+ if (!this.keys.passwordVerifier.equals(storedVerifier)) {
186
+ throw new Error('AES decryption failed: wrong password');
187
+ }
188
+ this.ctr = new AesCtrEngine(this.keys.aesKey);
189
+ this.hmac = crypto.createHmac('sha1', this.keys.hmacKey);
190
+ this.headerDone = true;
191
+ data = this.headerBuf.subarray(need);
192
+ this.headerBuf = Buffer.alloc(0);
193
+ }
194
+ if (data.length === 0) {
195
+ return Buffer.alloc(0);
196
+ }
197
+ const cipherTake = Math.min(data.length, this.remainingCipher);
198
+ const cipherPart = data.subarray(0, cipherTake);
199
+ const rest = data.subarray(cipherTake);
200
+ if (rest.length > 0) {
201
+ this.authBuf = Buffer.concat([this.authBuf, rest]);
202
+ }
203
+ if (cipherPart.length === 0) {
204
+ this.tryVerify();
205
+ return Buffer.alloc(0);
206
+ }
207
+ this.hmac.update(cipherPart);
208
+ const plain = this.ctr.process(cipherPart);
209
+ this.remainingCipher -= cipherPart.length;
210
+ this.tryVerify();
211
+ return plain;
212
+ }
213
+ /** Ensure ciphertext is complete and HMAC verified. */
214
+ end() {
215
+ if (this.remainingCipher > 0) {
216
+ throw new Error('AES decryption failed: truncated ciphertext');
217
+ }
218
+ this.tryVerify();
219
+ if (!this.verified) {
220
+ throw new Error('AES decryption failed: missing authentication code');
221
+ }
222
+ }
223
+ tryVerify() {
224
+ if (this.verified || this.remainingCipher > 0 || !this.hmac) {
225
+ return;
226
+ }
227
+ if (this.authBuf.length < Headers_1.AES_AUTH_CODE_SIZE) {
228
+ return;
229
+ }
230
+ const stored = this.authBuf.subarray(0, Headers_1.AES_AUTH_CODE_SIZE);
231
+ const calculated = this.hmac.digest().subarray(0, Headers_1.AES_AUTH_CODE_SIZE);
232
+ if (!calculated.equals(stored)) {
233
+ throw new Error('AES decryption failed: authentication code mismatch (data corrupted or tampered)');
234
+ }
235
+ this.verified = true;
236
+ }
237
+ }
238
+ exports.AesDecryptor = AesDecryptor;
56
239
  /**
57
240
  * WinZip AES-256 encryption/decryption for ZIP files.
58
241
  *
@@ -73,19 +256,31 @@ class AesCrypto {
73
256
  passwordVerifier: compositeKey.subarray(2 * Headers_1.AES256_KEY_SIZE),
74
257
  };
75
258
  }
259
+ /** Create a streaming AE-1/AE-2 encryptor. */
260
+ static createEncryptor(password) {
261
+ return new AesEncryptor(password);
262
+ }
263
+ /**
264
+ * Create a streaming AE-1/AE-2 decryptor.
265
+ * @param compressedSize Full payload size including salt, verifier, and auth code.
266
+ */
267
+ static createDecryptor(password, compressedSize) {
268
+ return new AesDecryptor(password, compressedSize);
269
+ }
76
270
  /**
77
271
  * Encrypt compressed data using WinZip AES-256.
78
272
  *
79
273
  * @returns Buffer: salt(16) + verifier(2) + encryptedData + hmac(10)
80
274
  */
81
275
  static encryptBuffer(entry, compressedData, password) {
82
- const salt = crypto.randomBytes(Headers_1.AES256_SALT_SIZE);
83
- const keys = AesCrypto.deriveKeys(password, salt);
84
- const encrypted = AesCrypto.aesCtrProcess(keys.aesKey, compressedData);
85
- const hmac = crypto.createHmac('sha1', keys.hmacKey);
86
- hmac.update(encrypted);
87
- const authCode = hmac.digest().subarray(0, Headers_1.AES_AUTH_CODE_SIZE);
88
- return Buffer.concat([salt, keys.passwordVerifier, encrypted, authCode]);
276
+ void entry;
277
+ const enc = AesCrypto.createEncryptor(password);
278
+ const parts = [enc.header()];
279
+ if (compressedData.length > 0) {
280
+ parts.push(enc.update(compressedData));
281
+ }
282
+ parts.push(enc.finish());
283
+ return Buffer.concat(parts);
89
284
  }
90
285
  /**
91
286
  * Decrypt AES-256 encrypted data from a ZIP entry.
@@ -96,64 +291,25 @@ class AesCrypto {
96
291
  * @returns Decrypted (compressed) data
97
292
  */
98
293
  static decryptBuffer(entry, fullPayload, password) {
99
- const salt = fullPayload.subarray(0, Headers_1.AES256_SALT_SIZE);
100
- const storedVerifier = fullPayload.subarray(Headers_1.AES256_SALT_SIZE, Headers_1.AES256_SALT_SIZE + Headers_1.AES256_PWD_VERIFY_SIZE);
101
- const encryptedData = fullPayload.subarray(Headers_1.AES256_SALT_SIZE + Headers_1.AES256_PWD_VERIFY_SIZE, fullPayload.length - Headers_1.AES_AUTH_CODE_SIZE);
102
- const storedAuthCode = fullPayload.subarray(fullPayload.length - Headers_1.AES_AUTH_CODE_SIZE);
103
- const keys = AesCrypto.deriveKeys(password, salt);
104
- if (!keys.passwordVerifier.equals(storedVerifier)) {
105
- throw new Error('AES decryption failed: wrong password');
106
- }
107
- const hmac = crypto.createHmac('sha1', keys.hmacKey);
108
- hmac.update(encryptedData);
109
- const calculatedAuthCode = hmac.digest().subarray(0, Headers_1.AES_AUTH_CODE_SIZE);
110
- if (!calculatedAuthCode.equals(storedAuthCode)) {
111
- throw new Error('AES decryption failed: authentication code mismatch (data corrupted or tampered)');
112
- }
113
- return AesCrypto.aesCtrProcess(keys.aesKey, encryptedData);
114
- }
115
- /**
116
- * AES-CTR encrypt/decrypt with WinZip's little-endian counter.
117
- *
118
- * WinZip uses a counter that starts at 1 and increments in little-endian byte order.
119
- * Node's built-in aes-256-ctr uses big-endian counter increment, so we process
120
- * block-by-block with an explicit LE counter to match the WinZip format.
121
- */
122
- static aesCtrProcess(aesKey, data) {
123
- if (data.length === 0) {
124
- return Buffer.alloc(0);
125
- }
126
- const result = Buffer.alloc(data.length);
127
- const counter = Buffer.alloc(AES_BLOCK_SIZE);
128
- counter[0] = 1; // LE counter starts at 1
129
- let offset = 0;
130
- while (offset < data.length) {
131
- // Encrypt the counter block to get keystream
132
- const cipher = crypto.createCipheriv('aes-256-ecb', aesKey, null);
133
- cipher.setAutoPadding(false);
134
- const keystream = cipher.update(counter);
135
- const blockLen = Math.min(AES_BLOCK_SIZE, data.length - offset);
136
- for (let i = 0; i < blockLen; i++) {
137
- result[offset + i] = data[offset + i] ^ keystream[i];
138
- }
139
- offset += blockLen;
140
- AesCrypto.incrementCounterLE(counter);
141
- }
142
- return result;
294
+ void entry;
295
+ const dec = AesCrypto.createDecryptor(password, fullPayload.length);
296
+ const out = dec.push(fullPayload);
297
+ dec.end();
298
+ return out;
143
299
  }
144
300
  /**
145
- * Increment a 16-byte counter in little-endian order.
301
+ * Decrypt an async chunk stream (Node extract path).
302
+ * Yields decrypted compressed chunks; verifies HMAC when the stream ends.
146
303
  */
147
- static incrementCounterLE(counter) {
148
- for (let i = 0; i < AES_BLOCK_SIZE; i++) {
149
- if (counter[i] === 255) {
150
- counter[i] = 0;
151
- }
152
- else {
153
- counter[i]++;
154
- break;
304
+ static async *decryptStream(password, compressedSize, encryptedStream) {
305
+ const dec = AesCrypto.createDecryptor(password, compressedSize);
306
+ for await (const chunk of encryptedStream) {
307
+ const plain = dec.push(chunk);
308
+ if (plain.length > 0) {
309
+ yield plain;
155
310
  }
156
311
  }
312
+ dec.end();
157
313
  }
158
314
  /**
159
315
  * Build the WinZip AES extra data field (0x9901).
@@ -164,19 +320,18 @@ class AesCrypto {
164
320
  */
165
321
  static buildAesExtraField(realMethod, vendorVersion = 1) {
166
322
  const buf = Buffer.alloc(Headers_1.AES_EXTRA_FIELD_SIZE);
167
- buf.writeUInt16LE(Headers_1.HDR_ID.AES, 0); // Extra field header ID (0x9901)
168
- buf.writeUInt16LE(7, 2); // Data size (always 7)
169
- buf.writeUInt16LE(vendorVersion, 4); // AE-1 (0x0001) or AE-2 (0x0002)
170
- buf.writeUInt16LE(0x4541, 6); // Vendor ID: "AE" (little-endian)
171
- buf.writeUInt8(0x03, 8); // Encryption strength: AES-256
172
- buf.writeUInt16LE(realMethod, 9); // Actual compression method
323
+ buf.writeUInt16LE(Headers_1.HDR_ID.AES, 0);
324
+ buf.writeUInt16LE(7, 2);
325
+ buf.writeUInt16LE(vendorVersion, 4);
326
+ buf.writeUInt16LE(0x4541, 6); // "AE"
327
+ buf.writeUInt8(0x03, 8); // AES-256
328
+ buf.writeUInt16LE(realMethod, 9);
173
329
  return buf;
174
330
  }
175
331
  /**
176
332
  * Parse the AES extra data field (0x9901) from a buffer.
177
333
  *
178
334
  * @param data - 7-byte data portion of the extra field (without header ID and size)
179
- * @returns Parsed AES extra field values
180
335
  */
181
336
  static parseAesExtraField(data) {
182
337
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"AesCrypto.js","sourceRoot":"","sources":["../../../src/core/encryption/AesCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AesCrypto.js","sourceRoot":"","sources":["../../../src/core/encryption/AesCrypto.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Supports traditional ZIP encryption (PKZIP compatible)
5
5
  */
6
6
  export { ZipCrypto, crc32, crc32update } from './ZipCrypto';
7
- export { AesCrypto } from './AesCrypto';
7
+ export { AesCrypto, AesEncryptor, AesDecryptor } from './AesCrypto';
8
8
  export { NeoCrypto, NEO_CRYPTO_ALGORITHM_AES256_V1 } from './NeoCrypto';
9
9
  export { EncryptionManager } from './Manager';
10
10
  export { EncryptionMethod, EncryptionOptions, EncryptionResult, DecryptionResult, EncryptionProvider } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,SAAS,CAAC"}
@@ -5,13 +5,15 @@
5
5
  * Supports traditional ZIP encryption (PKZIP compatible)
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.EncryptionMethod = exports.EncryptionManager = exports.NEO_CRYPTO_ALGORITHM_AES256_V1 = exports.NeoCrypto = exports.AesCrypto = exports.crc32update = exports.crc32 = exports.ZipCrypto = void 0;
8
+ exports.EncryptionMethod = exports.EncryptionManager = exports.NEO_CRYPTO_ALGORITHM_AES256_V1 = exports.NeoCrypto = exports.AesDecryptor = exports.AesEncryptor = exports.AesCrypto = exports.crc32update = exports.crc32 = exports.ZipCrypto = void 0;
9
9
  var ZipCrypto_1 = require("./ZipCrypto");
10
10
  Object.defineProperty(exports, "ZipCrypto", { enumerable: true, get: function () { return ZipCrypto_1.ZipCrypto; } });
11
11
  Object.defineProperty(exports, "crc32", { enumerable: true, get: function () { return ZipCrypto_1.crc32; } });
12
12
  Object.defineProperty(exports, "crc32update", { enumerable: true, get: function () { return ZipCrypto_1.crc32update; } });
13
13
  var AesCrypto_1 = require("./AesCrypto");
14
14
  Object.defineProperty(exports, "AesCrypto", { enumerable: true, get: function () { return AesCrypto_1.AesCrypto; } });
15
+ Object.defineProperty(exports, "AesEncryptor", { enumerable: true, get: function () { return AesCrypto_1.AesEncryptor; } });
16
+ Object.defineProperty(exports, "AesDecryptor", { enumerable: true, get: function () { return AesCrypto_1.AesDecryptor; } });
15
17
  var NeoCrypto_1 = require("./NeoCrypto");
16
18
  Object.defineProperty(exports, "NeoCrypto", { enumerable: true, get: function () { return NeoCrypto_1.NeoCrypto; } });
17
19
  Object.defineProperty(exports, "NEO_CRYPTO_ALGORITHM_AES256_V1", { enumerable: true, get: function () { return NeoCrypto_1.NEO_CRYPTO_ALGORITHM_AES256_V1; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/encryption/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAA4D;AAAnD,sGAAA,SAAS,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,yCAAwE;AAA/D,sGAAA,SAAS,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAClD,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,iCAMiB;AALf,yGAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/encryption/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAA4D;AAAnD,sGAAA,SAAS,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,yCAAoE;AAA3D,sGAAA,SAAS,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,yGAAA,YAAY,OAAA;AAC9C,yCAAwE;AAA/D,sGAAA,SAAS,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAClD,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,iCAMiB;AALf,yGAAA,gBAAgB,OAAA"}
@@ -25,7 +25,7 @@ exports.VERSION = void 0;
25
25
  const currentDate = new Date();
26
26
  const releaseDate = `${String(currentDate.getMonth() + 1).padStart(2, '0')}-${String(currentDate.getDate()).padStart(2, '0')}-${currentDate.getFullYear()}`;
27
27
  exports.VERSION = {
28
- number: '0.7.0', // packageJson.version
28
+ number: '1.0.2', // packageJson.version
29
29
  date: releaseDate
30
30
  };
31
31
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Detect legacy NeoZipKit WASM zstd (`@oneidentity/zstd-js`).
3
+ *
4
+ * That codec wrote valid-looking zstd frames but declared Frame_Content_Size as
5
+ * `uncompressed_size + 18`. Standard libzstd / Node zlib decode to the real
6
+ * payload plus 18 trailing zero bytes. CRC of the truncated payload matches
7
+ * the ZIP entry CRC.
8
+ *
9
+ * Header-only checks do not require decompressing. Verified checks decompress
10
+ * with native zlib and confirm trailing zeros + optional CRC.
11
+ */
12
+ /** Fixed extra bytes declared/emitted by the broken WASM codec. */
13
+ export declare const LEGACY_WASM_ZSTD_PADDING = 18;
14
+ export type LegacyZstdConfidence = 'none' | 'header' | 'verified';
15
+ export interface LegacyZstdDetectResult {
16
+ /** True when this looks like (or verifies as) legacy WASM zstd. */
17
+ isLegacyWasm: boolean;
18
+ /** How the decision was made. */
19
+ confidence: LegacyZstdConfidence;
20
+ /** Parsed Frame_Content_Size, if present in the frame header. */
21
+ frameContentSize: number | null;
22
+ /** Expected plaintext size from the ZIP entry (or caller). */
23
+ expectedUncompressedSize: number;
24
+ /** Declared/observed padding past expected size (typically 18). */
25
+ paddingBytes: number;
26
+ /** Human-readable reason. */
27
+ reason: string;
28
+ }
29
+ export interface DetectLegacyZstdOptions {
30
+ /**
31
+ * When true (default), decompress with native zlib and confirm
32
+ * trailing zeros (+ optional CRC) instead of trusting the header alone.
33
+ */
34
+ verify?: boolean;
35
+ /** ZIP CRC-32 of the original uncompressed data (strengthens verified check). */
36
+ crc?: number;
37
+ }
38
+ /**
39
+ * Read Frame_Content_Size from a zstd frame header, or null if absent / unparseable.
40
+ * @see https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md
41
+ */
42
+ export declare function parseZstdFrameContentSize(compressed: Buffer): number | null;
43
+ /**
44
+ * Fast header heuristic: FCS === expectedUncompressedSize + 18.
45
+ */
46
+ export declare function looksLikeLegacyWasmZstd(compressed: Buffer, expectedUncompressedSize: number): boolean;
47
+ /**
48
+ * Detect legacy WASM zstd frames for a single compressed payload.
49
+ */
50
+ export declare function detectLegacyWasmZstd(compressed: Buffer, expectedUncompressedSize: number, options?: DetectLegacyZstdOptions): Promise<LegacyZstdDetectResult>;
51
+ /**
52
+ * Truncate plaintext if it matches the legacy +18 zero padding pattern.
53
+ * Returns the original buffer when not legacy-shaped.
54
+ */
55
+ export declare function repairLegacyWasmZstdPlaintext(decoded: Buffer, expectedUncompressedSize: number, crc?: number): {
56
+ repaired: Buffer;
57
+ wasLegacy: boolean;
58
+ };
59
+ export declare const LegacyZstd: {
60
+ LEGACY_WASM_ZSTD_PADDING: number;
61
+ parseZstdFrameContentSize: typeof parseZstdFrameContentSize;
62
+ looksLikeLegacyWasmZstd: typeof looksLikeLegacyWasmZstd;
63
+ detectLegacyWasmZstd: typeof detectLegacyWasmZstd;
64
+ repairLegacyWasmZstdPlaintext: typeof repairLegacyWasmZstdPlaintext;
65
+ };
66
+ export default LegacyZstd;
67
+ //# sourceMappingURL=LegacyZstd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyZstd.d.ts","sourceRoot":"","sources":["../../src/node/LegacyZstd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAI3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,8DAA8D;IAC9D,wBAAwB,EAAE,MAAM,CAAC;IACjC,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwD3E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,wBAAwB,EAAE,MAAM,GAC/B,OAAO,CAST;AAQD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,wBAAwB,EAAE,MAAM,EAChC,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAwFjC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,wBAAwB,EAAE,MAAM,EAChC,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAsB1C;AAED,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,eAAe,UAAU,CAAC"}