SharpZipLib v1.3.1 Release Notes
Release Date: 2020-11-21 // almost 4 years ago-
🚀 Minor release, mainly to address the incorrect file version of v1.3.0, but also contains some security fixes and performance improvements.
Highlights
- Correct
FileVersion
andAssemblyVersion
- 🔒 Security fixes for
ZipFile
andZip*Stream
s - 👌 Improved CRC32 performance
- 👍 BZip2 compression support for Zip files
🔋 Features
- 👍 [#355] Wire up BZip2 compression support for Zip files by Richard Webb
🛠 Fixes
- ⚡️ [#475] Fix updating zips with descriptor entries by Richard Webb & nils måsén
- 🐎 [#516] Improve CRC32 performance by Nelson Gomez
- [#538] Use RNGCryptoServiceProvider for crypto headers by nils måsén
- [#539] Use securely generated random temporary file names by nils måsén
- [#509] Make PutNextEntry throw if the entry is AES and no password has been set by Richard Webb
Other changes (not related to library code)
- 🚀 [#541] Update csproj for new release by nils måsén
- [#530] Fix Codacy Workflows by nils måsén
- 🚀 [#529] Add release workflow by nils måsén
- 🚚 [#511] Move the 7zip helper functions into their own class for easier reuse by Richard Webb
- 🚀 [#525] Update the sample projects to use the v1.3 release by Richard Webb
- 📦 [#522] Use PackageIcon instead of PackageIconUrl in csproj by nils måsén
- [#523] Fix Codacy workflows by nils måsén
- Correct
Previous changes from v1.3.0
-
Highlights
- 🛠 AES encryption fixes and support in FastZip
- 👍 File name encoding support for Tar
- 👌 Improved Unix timestamp support
- 👍 Better handling of entry file names
- 🛠 Fix errors with entries using Stored compression method
🔄 Changes
TarArchive.ExtractContents()
now needs another parameter set totrue
to allow the extraction to traverse outside of the target directory.TarArchive
constructors now includes anEncoding
parameter. Omitting it will discard any non-ASCII bytes in file names.
🛠 Fixes
- ✅ [#503] Consider AES overhead when testing encrypted folder entries by Richard Webb
- [#452] Ensure crypto streams are disposed in ZipFile.GetOutputStream by Richard Webb
- 👍 [#333] Handle unsupported compression methods in ZipInputStream better by Richard Webb
- ⚡️ [#402] Only convert entry.Name once when accessing updateIndex by Vladyslav Taranov
- ✅ [#353] Fix ZipFile.TestLocalHeader CompressionMethod resolving for AES entries by Richard Webb
- [#460] Account for AES overhead in compressed entry size by Richard Webb
- [#422] Change ZipOutputStream.PutNextEntry to explicity validate the requested compression method by Richard Webb
- 👀 [#467] Allow seeking a PartialInputStream to the very end by Víctor M. González
- [#440] Use CompressionMethodForHeader for header entries by Richard Webb
- 👍 [#420] Throw NotSupportedException in ZipFile.Add when trying to add AES entry by Richard Webb
- [#421] Have ZipFile.Add validate compression compability internally by Richard Webb
- 👍 [#387] Better handle baseStreams closing themselves unexpectedly by Richard Webb
- 🛠 [#408] When searching for the Zip64 end of central directory locator, pay attention to its fixed size by Richard Webb
- [#406] Skip forced Deflate flush when using Stored compression by nils måsén
- [#362] Don't call CleanName from the ZipEntry constructor by Richard Webb
- [#465] Use correct count in ZipAESStream.ReadBufferedData by Víctor M. González
- [#390] Ensure GZipOutputStream headers are written before flush by Richard Webb
- [#498] Use string.Trim to trim strings by Richard Webb
- [#432] Throw ArgumentNullException in BZip2 by Richard Webb
- [#519] Restrict path traversal on TarArchive extraction by nils måsén
🔋 Features
- [#201] Raise ProcessDirectory event for FastZip extract by Stevie-O
- 👍 [#380] Add support for AES encryption in FastZip.CreateZip by Richard Webb
- [#497] Transform new entry names using an INameTranform in ZipOutputStream by Richard Webb
- [#482] Add variants of FastZip.CreateZip taking IScanFilter instead of strings by Richard Webb
- [#455] Add FastZip.CreateZip with a leaveOpen parameter by Richard Webb
- ⏪ [#433] Restore directory timestamps when extracting with FastZip by Richard Webb
- [#472] Allow ZipFile to accept empty strings as passwords when decrypting AES entries by Richard Webb
- [#364] Add nameEncoding parameter to Tar entries by Yusuke Ito
- 👍 [#463] Improve support for Unix timestamps in ZIP archives by Bastian Eicher
Other changes (not related to library code)
- 🔒 [#346] Add a Security Policy by nils måsén
- ⚡️ [#451] Minimize and update sample app package dependencies by Richard Webb
- ✅ [#505] Expect ZipEntry clean name test to be positive by nils måsén
- ⚠ [#504] Fix warning about missing doc comment in FastZip.CreateZip by Richard Webb
- ⚡️ [#374] Update Docs generation by nils måsén
- 🚚 [#431] Remove the link to the sharpdevelop forum from readme.md by Richard Webb
- 🚀 [#425] Update Microsoft.SourceLink.GitHub to the 1.0.0 release version by Richard Webb
- ⚠ [#483] Suppress CA1707 warnings from LzwConstants by Richard Webb
- [#458] Dispose of entry streams returned by ZipFile.GetInputStream by Richard Webb
- [#488] Add [MemoryDiagnoser] to the zip input/output stream benchmark classes by Richard Webb
- 🚚 [#489] Remove duplicate ICSharpCode.SharpZipLib.snk by Richard Webb
- ✅ [#494] Use the Range to test different compression levels in InflaterDeflaterTestSuite by Richard Webb
- ✅ [#502] Fix tests and ZipEntry DateTime Kind by nils måsén
- 🚚 [#476] Remove duplicated words in comments by Richard Webb
- [#477] Fix spelling errors in comments by Richard Webb
- ⚡️ [#479] Streamline and update VB sample projects by Richard Webb
- [#445] Make InvalidHeaderException serializable by Richard Webb
- ⚠ [#450] Fix CA1200 code analyzer warnings by Richard Webb
- ✅ [#435] Add unit test for ZipFile.Add(string fileName, string entryName) by Richard Webb
- ✅ [#448] Fix unit test assert argument order by Richard Webb
- 👻 [#461] Fix Exception doc comments by Richard Webb
- 🏗 [#453] Fix the 7-zip interop tests in the .Net 4.6 test build by Richard Webb
- ✅ [#466] Improve the ZipFileStoreAesPartialRead test to test multiple block sizes by Richard Webb
- ✅ [#468] Add test for adding empty folders to archives using FastZip by Richard Webb
- [#473] Add a Nuget badge to readme.md by Richard Webb
- ✅ [#469] Add test for writing using a zero byte buffer by Richard Webb
- 📚 [#389] Simplify Documentation generation by Robin Sue
- ✅ [#437] Add a ZipCrypto/7zip interop test to the ZipEncryptionHandling tests by Richard Webb
- ⚡️ [#441] Update the benchmark project to BenchmarkDotNet 0.12.1 by Richard Webb
- ✅ [#444] Multi-target unit tests for .NET Core 2.0 and .NET FW 4.6 by Richard Webb