Revert "Get rid of unnecessary CRC32Checksum.cs"

This reverts commit 558adfa325.
This commit is contained in:
YoshiRulz 2022-02-09 21:53:27 +10:00
parent 71e84537e6
commit 862b005218
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
6 changed files with 39 additions and 3 deletions

View File

@ -0,0 +1,33 @@
using System;
using BizHawk.Common.BufferExtensions;
namespace BizHawk.Common
{
/// <summary>uses <see cref="CRC32">custom implementation</see> of CRC-32 (i.e. POSIX cksum)</summary>
/// <seealso cref="MD5Checksum"/>
/// <seealso cref="SHA1Checksum"/>
/// <seealso cref="SHA256Checksum"/>
public static class CRC32Checksum
{
/// <remarks>in bits</remarks>
internal const int EXPECTED_LENGTH = 32;
internal const string PREFIX = "CRC32";
public static byte[] BytesAsDigest(uint digest)
{
var a = BitConverter.GetBytes(digest);
return new[] { a[3], a[2], a[1], a[0] };
}
public static byte[] Compute(ReadOnlySpan<byte> data)
=> BytesAsDigest(CRC32.Calculate(data));
public static string ComputeDigestHex(ReadOnlySpan<byte> data)
=> Compute(data).BytesToHexString();
public static string ComputePrefixedHex(ReadOnlySpan<byte> data)
=> $"{PREFIX}:{ComputeDigestHex(data)}";
}
}

View File

@ -7,6 +7,7 @@ using BizHawk.Common.BufferExtensions;
namespace BizHawk.Common
{
/// <summary>uses <see cref="MD5"/> implementation from BCL</summary>
/// <seealso cref="CRC32Checksum"/>
/// <seealso cref="SHA1Checksum"/>
/// <seealso cref="SHA256Checksum"/>
public static class MD5Checksum

View File

@ -7,6 +7,7 @@ using BizHawk.Common.BufferExtensions;
namespace BizHawk.Common
{
/// <summary>uses <see cref="SHA1"/> implementation from BCL</summary>
/// <seealso cref="CRC32Checksum"/>
/// <seealso cref="MD5Checksum"/>
/// <seealso cref="SHA256Checksum"/>
public static class SHA1Checksum

View File

@ -7,6 +7,7 @@ using BizHawk.Common.BufferExtensions;
namespace BizHawk.Common
{
/// <summary>uses <see cref="SHA256"/> implementation from BCL</summary>
/// <seealso cref="CRC32Checksum"/>
/// <seealso cref="MD5Checksum"/>
/// <seealso cref="SHA1Checksum"/>
public static class SHA256Checksum

View File

@ -220,7 +220,7 @@ namespace BizHawk.Emulation.Common
{
acquire.WaitOne();
var hashCRC32 = CRC32.Calculate(romData).ToString("X8");
var hashCRC32 = CRC32Checksum.ComputeDigestHex(romData);
if (DB.TryGetValue(hashCRC32, out var cgi))
{
return new GameInfo(cgi);

View File

@ -54,7 +54,7 @@ namespace BizHawk.Emulation.DiscSystem
crc.Add(buffer2352);
}
return crc.Result.ToString("X8");
return CRC32Checksum.BytesAsDigest(crc.Result).BytesToHexString();
}
/// <summary>
@ -102,4 +102,4 @@ namespace BizHawk.Emulation.DiscSystem
return "no data track found";
}
}
}
}