From 39059053015dea49ea46242e5595e0c5ea4e2807 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 6 Nov 2024 05:21:39 -0500 Subject: [PATCH] Make CRC-64/ECMA default --- SabreTools.Hashing.Test/TestHelper.cs | 2 ++ SabreTools.Hashing/HashType.cs | 6 ++++++ SabreTools.Hashing/HashWrapper.cs | 1 + 3 files changed, 9 insertions(+) diff --git a/SabreTools.Hashing.Test/TestHelper.cs b/SabreTools.Hashing.Test/TestHelper.cs index 3b50198..293150a 100644 --- a/SabreTools.Hashing.Test/TestHelper.cs +++ b/SabreTools.Hashing.Test/TestHelper.cs @@ -30,6 +30,7 @@ namespace SabreTools.Hashing.Test private const string _crc32_mef = "d9d98444"; private const string _crc32_mpeg2 = "e755b9fc"; private const string _crc32_xfer = "55bdf222"; + private const string _crc64 = "8d33b5189c00e0a0"; private const string _crc64_ecma182 = "8d33b5189c00e0a0"; private const string _crc64_goiso = "6c3bf747ccfa1e3b"; private const string _crc64_ms = "799edc0db430d7be"; @@ -89,6 +90,7 @@ namespace SabreTools.Hashing.Test Assert.Equal(_crc32_mef, hashDict[HashType.CRC32_MEF]); Assert.Equal(_crc32_mpeg2, hashDict[HashType.CRC32_MPEG2]); Assert.Equal(_crc32_xfer, hashDict[HashType.CRC32_XFER]); + Assert.Equal(_crc64, hashDict[HashType.CRC64]); Assert.Equal(_crc64_ecma182, hashDict[HashType.CRC64_ECMA182]); Assert.Equal(_crc64_goiso, hashDict[HashType.CRC64_GOISO]); Assert.Equal(_crc64_ms, hashDict[HashType.CRC64_MS]); diff --git a/SabreTools.Hashing/HashType.cs b/SabreTools.Hashing/HashType.cs index 85dac84..d92f6d3 100644 --- a/SabreTools.Hashing/HashType.cs +++ b/SabreTools.Hashing/HashType.cs @@ -93,6 +93,12 @@ namespace SabreTools.Hashing /// CRC32_XFER, + /// + /// CRC 64-bit checksum + /// + /// Identical to + CRC64, + /// /// CRC 64-bit checksum (CRC-64/ECMA-182, Microsoft implementation) /// diff --git a/SabreTools.Hashing/HashWrapper.cs b/SabreTools.Hashing/HashWrapper.cs index d29cfc9..b70966c 100644 --- a/SabreTools.Hashing/HashWrapper.cs +++ b/SabreTools.Hashing/HashWrapper.cs @@ -126,6 +126,7 @@ namespace SabreTools.Hashing HashType.CRC32_MPEG2 => new CrcRunner(StandardDefinitions.CRC32_MPEG2), HashType.CRC32_XFER => new CrcRunner(StandardDefinitions.CRC32_XFER), + HashType.CRC64 => new CrcRunner(StandardDefinitions.CRC64_ECMA182), HashType.CRC64_ECMA182 => new CrcRunner(StandardDefinitions.CRC64_ECMA182), HashType.CRC64_GOISO => new CrcRunner(StandardDefinitions.CRC64_GOISO), HashType.CRC64_MS => new CrcRunner(StandardDefinitions.CRC64_MS),