From 85e93024a9de579615558420bc442edbab05c5c7 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Tue, 14 Jul 2026 22:16:48 +1000 Subject: [PATCH] use System.IO.Hashing --- src/Directory.Build.props | 2 +- src/Directory.Packages.props | 1 + src/Verify.DocNet/GlobalUsings.cs | 1 + src/Verify.DocNet/PngEncoder.cs | 53 +++----------------------- src/Verify.DocNet/Verify.DocNet.csproj | 1 + 5 files changed, 9 insertions(+), 49 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 3eb957b..c9eea03 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ CS1591;CS0649;NU1608;NU1109 - 3.3.1 + 3.3.2 1.0.0 preview false diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index b8189ee..acfb955 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -5,6 +5,7 @@ + diff --git a/src/Verify.DocNet/GlobalUsings.cs b/src/Verify.DocNet/GlobalUsings.cs index c64bf4e..f21bb70 100644 --- a/src/Verify.DocNet/GlobalUsings.cs +++ b/src/Verify.DocNet/GlobalUsings.cs @@ -1,5 +1,6 @@ global using System.Buffers.Binary; global using System.IO.Compression; +global using System.IO.Hashing; global using Docnet.Core; global using Docnet.Core.Converters; global using Docnet.Core.Models; diff --git a/src/Verify.DocNet/PngEncoder.cs b/src/Verify.DocNet/PngEncoder.cs index 8659d96..b3049b1 100644 --- a/src/Verify.DocNet/PngEncoder.cs +++ b/src/Verify.DocNet/PngEncoder.cs @@ -69,55 +69,12 @@ static void WriteChunk(Stream stream, ReadOnlySpan type, ReadOnlySpan crc = stackalloc byte[4]; - BinaryPrimitives.WriteUInt32BigEndian(crc, Crc32.Compute(type, data)); + BinaryPrimitives.WriteUInt32BigEndian(crc, hasher.GetCurrentHashAsUInt32()); stream.Write(crc); } - - static class Crc32 - { - static uint[] table = BuildTable(); - - static uint[] BuildTable() - { - var table = new uint[256]; - for (var n = 0; n < 256; n++) - { - var c = (uint)n; - for (var k = 0; k < 8; k++) - { - if ((c & 1) == 0) - { - c >>= 1; - } - else - { - c = 0xEDB88320 ^ (c >> 1); - } - } - - table[n] = c; - } - - return table; - } - - public static uint Compute(ReadOnlySpan type, ReadOnlySpan data) - { - var crc = 0xFFFFFFFFu; - crc = Update(crc, type); - crc = Update(crc, data); - return crc ^ 0xFFFFFFFFu; - } - - static uint Update(uint crc, ReadOnlySpan data) - { - foreach (var b in data) - { - crc = table[(crc ^ b) & 0xFF] ^ (crc >> 8); - } - - return crc; - } - } } diff --git a/src/Verify.DocNet/Verify.DocNet.csproj b/src/Verify.DocNet/Verify.DocNet.csproj index 900da4b..94f384f 100644 --- a/src/Verify.DocNet/Verify.DocNet.csproj +++ b/src/Verify.DocNet/Verify.DocNet.csproj @@ -5,6 +5,7 @@ +