Skip to content

Commit 8ab888b

Browse files
committed
.
1 parent 843e6ab commit 8ab888b

4 files changed

Lines changed: 21 additions & 37 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
global using System.Globalization;
21
global using System.IO.Compression;
3-
global using System.Xml.Linq;
2+
global using System.IO.Hashing;
3+
global using System.Xml.Linq;

src/DeterministicIoPackaging/PngNormalizer.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Buffers.Binary;
2-
using System.IO.Hashing;
32

43
namespace DeterministicIoPackaging;
54

src/DeterministicIoPackaging/ZipStorer.cs

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void RewriteAsStored(MemoryStream source, Stream target)
2525
data = ms.ToArray();
2626
}
2727

28-
var crc = Crc32(data);
28+
var crc = Crc32.HashToUInt32(data);
2929
var nameBytes = Encoding.UTF8.GetBytes(entry.FullName);
3030

3131
// Local file header
@@ -53,22 +53,22 @@ public static void RewriteAsStored(MemoryStream source, Stream target)
5353
var nameBytes = Encoding.UTF8.GetBytes(name);
5454

5555
// Central directory header
56-
writer.Write(0x02014b50u); // signature
57-
writer.Write((ushort)20); // version made by
58-
writer.Write((ushort)20); // version needed
59-
writer.Write((ushort)0); // general purpose flags
60-
writer.Write((ushort)0); // compression method: Stored
61-
writer.Write(dosTime); // last mod time
62-
writer.Write(dosDate); // last mod date
63-
writer.Write(crc); // crc-32
56+
writer.Write(0x02014b50u); // signature
57+
writer.Write((ushort)20); // version made by
58+
writer.Write((ushort)20); // version needed
59+
writer.Write((ushort)0); // general purpose flags
60+
writer.Write((ushort)0); // compression method: Stored
61+
writer.Write(dosTime); // last mod time
62+
writer.Write(dosDate); // last mod date
63+
writer.Write(crc); // crc-32
6464
writer.Write((uint)data.Length); // compressed size
6565
writer.Write((uint)data.Length); // uncompressed size
6666
writer.Write((ushort)nameBytes.Length); // file name length
67-
writer.Write((ushort)0); // extra field length
68-
writer.Write((ushort)0); // file comment length
69-
writer.Write((ushort)0); // disk number start
70-
writer.Write((ushort)0); // internal file attributes
71-
writer.Write(0u); // external file attributes
67+
writer.Write((ushort)0); // extra field length
68+
writer.Write((ushort)0); // file comment length
69+
writer.Write((ushort)0); // disk number start
70+
writer.Write((ushort)0); // internal file attributes
71+
writer.Write(0u); // external file attributes
7272
writer.Write((uint)headerOffset); // relative offset of local header
7373
writer.Write(nameBytes);
7474
}
@@ -77,32 +77,17 @@ public static void RewriteAsStored(MemoryStream source, Stream target)
7777
var centralSize = centralEnd - centralStart;
7878

7979
// End of central directory record
80-
writer.Write(0x06054b50u); // signature
81-
writer.Write((ushort)0); // disk number
82-
writer.Write((ushort)0); // disk with central directory
80+
writer.Write(0x06054b50u); // signature
81+
writer.Write((ushort)0); // disk number
82+
writer.Write((ushort)0); // disk with central directory
8383
writer.Write((ushort)entries.Count); // entries on this disk
8484
writer.Write((ushort)entries.Count); // total entries
8585
writer.Write((uint)centralSize); // central directory size
8686
writer.Write((uint)centralStart); // central directory offset
87-
writer.Write((ushort)0); // comment length
87+
writer.Write((ushort)0); // comment length
8888
}
8989

9090
// DOS date/time for 2020-01-01 00:00:00
9191
const ushort dosTime = 0;
9292
const ushort dosDate = (40 << 9) | (1 << 5) | 1; // year=2020-1980=40, month=1, day=1
93-
94-
static uint Crc32(byte[] data)
95-
{
96-
var crc = 0xFFFFFFFFu;
97-
foreach (var b in data)
98-
{
99-
crc ^= b;
100-
for (var i = 0; i < 8; i++)
101-
{
102-
crc = (crc >> 1) ^ (0xEDB88320u & ~((crc & 1) - 1));
103-
}
104-
}
105-
106-
return ~crc;
107-
}
10893
}

src/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
99
<PackageVersion Include="NUnit" Version="4.5.0" />
1010
<PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" />
11-
<PackageVersion Include="Polyfill" Version="9.17.0" />
11+
<PackageVersion Include="Polyfill" Version="9.18.0" />
1212
<PackageVersion Include="ProjectDefaults" Version="1.0.172" />
1313
<PackageVersion Include="ProjectFiles" Version="1.0.0" />
1414
<PackageVersion Include="System.IO.Compression" Version="4.3.0" />

0 commit comments

Comments
 (0)