From 6be6ef0b5c3ed6a4d40d00c8fb133518e75e4a6f Mon Sep 17 00:00:00 2001 From: Mark Rydstrom Date: Sun, 22 Jan 2017 14:36:45 +1000 Subject: [PATCH] Add zip64 support for ZipArchive extraction --- .../Common/Zip/Headers/DirectoryEndHeader.cs | 10 +++ .../Zip/Headers/Zip64DirectoryEndHeader.cs | 54 ++++++++++++ .../Headers/Zip64DirectoryEndLocatorHeader.cs | 30 +++++++ .../Common/Zip/Headers/ZipFileEntry.cs | 6 +- .../Common/Zip/Headers/ZipHeaderType.cs | 4 +- .../Common/Zip/SeekableZipHeaderFactory.cs | 79 +++++++++++------- src/SharpCompress/Common/Zip/ZipFilePart.cs | 3 +- .../Common/Zip/ZipHeaderFactory.cs | 21 +++-- .../SharpCompress.Test/Zip/ZipArchiveTests.cs | 13 ++- test/TestArchives/Archives/Zip.zip64.zip | Bin 0 -> 61597 bytes 10 files changed, 178 insertions(+), 42 deletions(-) create mode 100644 src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndHeader.cs create mode 100644 src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndLocatorHeader.cs create mode 100644 test/TestArchives/Archives/Zip.zip64.zip diff --git a/src/SharpCompress/Common/Zip/Headers/DirectoryEndHeader.cs b/src/SharpCompress/Common/Zip/Headers/DirectoryEndHeader.cs index ef133fbd..32074e4d 100644 --- a/src/SharpCompress/Common/Zip/Headers/DirectoryEndHeader.cs +++ b/src/SharpCompress/Common/Zip/Headers/DirectoryEndHeader.cs @@ -48,5 +48,15 @@ namespace SharpCompress.Common.Zip.Headers public byte[] Comment { get; private set; } public ushort TotalNumberOfEntries { get; private set; } + + public bool IsZip64 + { + get + { + return TotalNumberOfEntriesInDisk == ushort.MaxValue + || DirectorySize == uint.MaxValue + || DirectoryStartOffsetRelativeToDisk == uint.MaxValue; + } + } } } \ No newline at end of file diff --git a/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndHeader.cs b/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndHeader.cs new file mode 100644 index 00000000..607ac8ce --- /dev/null +++ b/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndHeader.cs @@ -0,0 +1,54 @@ +using System; +using System.IO; + +namespace SharpCompress.Common.Zip.Headers +{ + internal class Zip64DirectoryEndHeader : ZipHeader + { + public Zip64DirectoryEndHeader() + : base(ZipHeaderType.Zip64DirectoryEnd) + { + } + + internal override void Read(BinaryReader reader) + { + SizeOfDirectoryEndRecord = (long)reader.ReadUInt64(); + VersionMadeBy = reader.ReadUInt16(); + VersionNeededToExtract = reader.ReadUInt16(); + VolumeNumber = reader.ReadUInt32(); + FirstVolumeWithDirectory = reader.ReadUInt32(); + TotalNumberOfEntriesInDisk = (long)reader.ReadUInt64(); + TotalNumberOfEntries = (long)reader.ReadUInt64(); + DirectorySize = (long)reader.ReadUInt64(); + DirectoryStartOffsetRelativeToDisk = (long)reader.ReadUInt64(); + DataSector = reader.ReadBytes((int)(SizeOfDirectoryEndRecord - SizeOfFixedHeaderDataExceptSignatureAndSizeFields)); + } + + const int SizeOfFixedHeaderDataExceptSignatureAndSizeFields = 44; + + internal override void Write(BinaryWriter writer) + { + throw new System.NotImplementedException(); + } + + public long SizeOfDirectoryEndRecord { get; private set; } + + public ushort VersionMadeBy { get; private set; } + + public ushort VersionNeededToExtract { get; private set; } + + public uint VolumeNumber { get; private set; } + + public uint FirstVolumeWithDirectory { get; private set; } + + public long TotalNumberOfEntriesInDisk { get; private set; } + + public long TotalNumberOfEntries { get; private set; } + + public long DirectorySize { get; private set; } + + public long DirectoryStartOffsetRelativeToDisk { get; private set; } + + public byte[] DataSector { get; private set; } + } +} \ No newline at end of file diff --git a/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndLocatorHeader.cs b/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndLocatorHeader.cs new file mode 100644 index 00000000..a00fcb94 --- /dev/null +++ b/src/SharpCompress/Common/Zip/Headers/Zip64DirectoryEndLocatorHeader.cs @@ -0,0 +1,30 @@ +using System.IO; + +namespace SharpCompress.Common.Zip.Headers +{ + internal class Zip64DirectoryEndLocatorHeader : ZipHeader + { + public Zip64DirectoryEndLocatorHeader() + : base(ZipHeaderType.Zip64DirectoryEndLocator) + { + } + + internal override void Read(BinaryReader reader) + { + FirstVolumeWithDirectory = reader.ReadUInt32(); + RelativeOffsetOfTheEndOfDirectoryRecord = (long)reader.ReadUInt64(); + TotalNumberOfVolumes = reader.ReadUInt32(); + } + + internal override void Write(BinaryWriter writer) + { + throw new System.NotImplementedException(); + } + + public uint FirstVolumeWithDirectory { get; private set; } + + public long RelativeOffsetOfTheEndOfDirectoryRecord { get; private set; } + + public uint TotalNumberOfVolumes { get; private set; } + } +} \ No newline at end of file diff --git a/src/SharpCompress/Common/Zip/Headers/ZipFileEntry.cs b/src/SharpCompress/Common/Zip/Headers/ZipFileEntry.cs index c099dba0..924ade93 100644 --- a/src/SharpCompress/Common/Zip/Headers/ZipFileEntry.cs +++ b/src/SharpCompress/Common/Zip/Headers/ZipFileEntry.cs @@ -57,11 +57,11 @@ namespace SharpCompress.Common.Zip.Headers internal ZipCompressionMethod CompressionMethod { get; set; } - internal uint CompressedSize { get; set; } + internal long CompressedSize { get; set; } internal long? DataStartPosition { get; set; } - internal uint UncompressedSize { get; set; } + internal long UncompressedSize { get; set; } internal List Extra { get; set; } @@ -112,5 +112,7 @@ namespace SharpCompress.Common.Zip.Headers } internal ZipFilePart Part { get; set; } + + internal bool IsZip64 { get { return CompressedSize == uint.MaxValue; } } } } \ No newline at end of file diff --git a/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs b/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs index 75cba925..a4286ded 100644 --- a/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs +++ b/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs @@ -6,6 +6,8 @@ LocalEntry, DirectoryEntry, DirectoryEnd, - Split + Split, + Zip64DirectoryEnd, + Zip64DirectoryEndLocator } } \ No newline at end of file diff --git a/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs index 874c88f1..3d78ce3b 100644 --- a/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs @@ -9,6 +9,7 @@ namespace SharpCompress.Common.Zip internal class SeekableZipHeaderFactory : ZipHeaderFactory { private const int MAX_ITERATIONS_FOR_DIRECTORY_HEADER = 4096; + private bool zip64; internal SeekableZipHeaderFactory(string password) : base(StreamingMode.Seekable, password) @@ -16,11 +17,56 @@ namespace SharpCompress.Common.Zip } internal IEnumerable ReadSeekableHeader(Stream stream) + { + var reader = new BinaryReader(stream); + + SeekBackToHeader(stream, reader, DIRECTORY_END_HEADER_BYTES); + var entry = new DirectoryEndHeader(); + entry.Read(reader); + + if (entry.IsZip64) + { + zip64 = true; + SeekBackToHeader(stream, reader, ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR); + var zip64Locator = new Zip64DirectoryEndLocatorHeader(); + zip64Locator.Read(reader); + + stream.Seek(zip64Locator.RelativeOffsetOfTheEndOfDirectoryRecord, SeekOrigin.Begin); + uint zip64Signature = reader.ReadUInt32(); + if(zip64Signature != ZIP64_END_OF_CENTRAL_DIRECTORY) + throw new ArchiveException("Failed to locate the Zip64 Header"); + + var zip64Entry = new Zip64DirectoryEndHeader(); + zip64Entry.Read(reader); + stream.Seek(zip64Entry.DirectoryStartOffsetRelativeToDisk, SeekOrigin.Begin); + } + else + { + stream.Seek(entry.DirectoryStartOffsetRelativeToDisk, SeekOrigin.Begin); + } + + long position = stream.Position; + while (true) + { + stream.Position = position; + uint signature = reader.ReadUInt32(); + var directoryEntryHeader = ReadHeader(signature, reader, zip64) as DirectoryEntryHeader; + position = stream.Position; + if (directoryEntryHeader == null) + { + yield break; + } + + //entry could be zero bytes so we need to know that. + directoryEntryHeader.HasData = directoryEntryHeader.CompressedSize != 0; + yield return directoryEntryHeader; + } + } + + private static void SeekBackToHeader(Stream stream, BinaryReader reader, uint headerSignature) { long offset = 0; uint signature; - BinaryReader reader = new BinaryReader(stream); - int iterationCount = 0; do { @@ -34,33 +80,10 @@ namespace SharpCompress.Common.Zip iterationCount++; if (iterationCount > MAX_ITERATIONS_FOR_DIRECTORY_HEADER) { - throw new ArchiveException( - "Could not find Zip file Directory at the end of the file. File may be corrupted."); + throw new ArchiveException("Could not find Zip file Directory at the end of the file. File may be corrupted."); } } - while (signature != DIRECTORY_END_HEADER_BYTES); - - var entry = new DirectoryEndHeader(); - entry.Read(reader); - stream.Seek(entry.DirectoryStartOffsetRelativeToDisk, SeekOrigin.Begin); - - DirectoryEntryHeader directoryEntryHeader = null; - long position = stream.Position; - while (true) - { - stream.Position = position; - signature = reader.ReadUInt32(); - directoryEntryHeader = ReadHeader(signature, reader) as DirectoryEntryHeader; - position = stream.Position; - if (directoryEntryHeader == null) - { - yield break; - } - - //entry could be zero bytes so we need to know that. - directoryEntryHeader.HasData = directoryEntryHeader.CompressedSize != 0; - yield return directoryEntryHeader; - } + while (signature != headerSignature); } internal LocalEntryHeader GetLocalHeader(Stream stream, DirectoryEntryHeader directoryEntryHeader) @@ -68,7 +91,7 @@ namespace SharpCompress.Common.Zip stream.Seek(directoryEntryHeader.RelativeOffsetOfEntryHeader, SeekOrigin.Begin); BinaryReader reader = new BinaryReader(stream); uint signature = reader.ReadUInt32(); - var localEntryHeader = ReadHeader(signature, reader) as LocalEntryHeader; + var localEntryHeader = ReadHeader(signature, reader, zip64) as LocalEntryHeader; if (localEntryHeader == null) { throw new InvalidOperationException(); diff --git a/src/SharpCompress/Common/Zip/ZipFilePart.cs b/src/SharpCompress/Common/Zip/ZipFilePart.cs index ebb55c64..712b606c 100644 --- a/src/SharpCompress/Common/Zip/ZipFilePart.cs +++ b/src/SharpCompress/Common/Zip/ZipFilePart.cs @@ -133,8 +133,9 @@ namespace SharpCompress.Common.Zip throw new NotSupportedException("Cannot encrypt file with unknown size at start."); } - if ((Header.CompressedSize == 0) + if ((Header.CompressedSize == 0 && FlagUtility.HasFlag(Header.Flags, HeaderFlags.UsePostDataDescriptor)) + || Header.IsZip64) { plainStream = new NonDisposingStream(plainStream); //make sure AES doesn't close } diff --git a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs index cb01f134..9eeb087d 100644 --- a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs @@ -17,8 +17,8 @@ namespace SharpCompress.Common.Zip internal const uint DIGITAL_SIGNATURE = 0x05054b50; internal const uint SPLIT_ARCHIVE_HEADER_BYTES = 0x30304b50; - private const uint ZIP64_END_OF_CENTRAL_DIRECTORY = 0x06064b50; - private const uint ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR = 0x07064b50; + internal const uint ZIP64_END_OF_CENTRAL_DIRECTORY = 0x06064b50; + internal const uint ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR = 0x07064b50; protected LocalEntryHeader lastEntryHeader; private readonly string password; @@ -30,7 +30,7 @@ namespace SharpCompress.Common.Zip this.password = password; } - protected ZipHeader ReadHeader(uint headerBytes, BinaryReader reader) + protected ZipHeader ReadHeader(uint headerBytes, BinaryReader reader, bool zip64 = false) { switch (headerBytes) { @@ -54,14 +54,12 @@ namespace SharpCompress.Common.Zip if (FlagUtility.HasFlag(lastEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor)) { lastEntryHeader.Crc = reader.ReadUInt32(); - lastEntryHeader.CompressedSize = reader.ReadUInt32(); - lastEntryHeader.UncompressedSize = reader.ReadUInt32(); + lastEntryHeader.CompressedSize = zip64 ? (long)reader.ReadUInt64() : reader.ReadUInt32(); + lastEntryHeader.UncompressedSize = zip64 ? (long)reader.ReadUInt64() : reader.ReadUInt32(); } else { - reader.ReadUInt32(); - reader.ReadUInt32(); - reader.ReadUInt32(); + reader.ReadBytes(zip64 ? 20 : 12); } return null; } @@ -78,9 +76,14 @@ namespace SharpCompress.Common.Zip return new SplitHeader(); } case ZIP64_END_OF_CENTRAL_DIRECTORY: + { + var entry = new Zip64DirectoryEndHeader(); + entry.Read(reader); + return entry; + } case ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR: { - var entry = new IgnoreHeader(ZipHeaderType.Ignore); + var entry = new Zip64DirectoryEndLocatorHeader(); entry.Read(reader); return entry; } diff --git a/test/SharpCompress.Test/Zip/ZipArchiveTests.cs b/test/SharpCompress.Test/Zip/ZipArchiveTests.cs index 3f469241..11882ef4 100644 --- a/test/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/test/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -25,7 +25,6 @@ namespace SharpCompress.Test ArchiveStreamRead("Zip.zipx"); } - [Fact] public void Zip_BZip2_Streamed_ArchiveStreamRead() { @@ -130,6 +129,18 @@ namespace SharpCompress.Test ArchiveFileRead("Zip.none.zip"); } + [Fact] + public void Zip_Zip64_ArchiveStreamRead() + { + ArchiveStreamRead("Zip.zip64.zip"); + } + + [Fact] + public void Zip_Zip64_ArchiveFileRead() + { + ArchiveFileRead("Zip.zip64.zip"); + } + [Fact] public void Zip_Random_Write_Remove() { diff --git a/test/TestArchives/Archives/Zip.zip64.zip b/test/TestArchives/Archives/Zip.zip64.zip new file mode 100644 index 0000000000000000000000000000000000000000..7a581c1f5e51872aa251dcd1c318ab8c582f2f6d GIT binary patch literal 61597 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 lBtJh#q0CUvQqNG&f|n~KwYWr~Dzm`ML?N*#IU}