File tree 1 file changed +31
-2
lines changed
src/ICSharpCode.SharpZipLib/Zip
1 file changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -327,7 +327,21 @@ public void PutNextEntry(ZipEntry entry)
327
327
}
328
328
else
329
329
{
330
- WriteLeInt ( entry . IsCrypted ? ( int ) entry . CompressedSize + ZipConstants . CryptoHeaderSize : ( int ) entry . CompressedSize ) ;
330
+ int entryCompressedSize = ( int ) entry . CompressedSize ;
331
+
332
+ if ( entry . IsCrypted )
333
+ {
334
+ if ( entry . AESKeySize > 0 )
335
+ {
336
+ entryCompressedSize += entry . AESOverheadSize ;
337
+ }
338
+ else
339
+ {
340
+ entryCompressedSize += ZipConstants . CryptoHeaderSize ;
341
+ }
342
+ }
343
+
344
+ WriteLeInt ( entryCompressedSize ) ;
331
345
WriteLeInt ( ( int ) entry . Size ) ;
332
346
}
333
347
}
@@ -372,7 +386,22 @@ public void PutNextEntry(ZipEntry entry)
372
386
if ( headerInfoAvailable )
373
387
{
374
388
ed . AddLeLong ( entry . Size ) ;
375
- ed . AddLeLong ( entry . CompressedSize ) ;
389
+
390
+ long entryCompressedSize = entry . CompressedSize ;
391
+
392
+ if ( entry . IsCrypted )
393
+ {
394
+ if ( entry . AESKeySize > 0 )
395
+ {
396
+ entryCompressedSize += entry . AESOverheadSize ;
397
+ }
398
+ else
399
+ {
400
+ entryCompressedSize += ZipConstants . CryptoHeaderSize ;
401
+ }
402
+ }
403
+
404
+ ed . AddLeLong ( entryCompressedSize ) ;
376
405
}
377
406
else
378
407
{
You can’t perform that action at this time.
0 commit comments