diff --git a/SabreTools.Hashing.Test/TestHelper.cs b/SabreTools.Hashing.Test/TestHelper.cs index 348d6f7..6e40517 100644 --- a/SabreTools.Hashing.Test/TestHelper.cs +++ b/SabreTools.Hashing.Test/TestHelper.cs @@ -34,7 +34,7 @@ namespace SabreTools.Hashing.Test {HashType.CRC16_GSM, "482d"}, {HashType.CRC16_IBM3740, "49a2"}, {HashType.CRC16_IBMSDLC, "4f52"}, - //{HashType.CRC16_ISOIEC144433A, "85cd"}, + {HashType.CRC16_ISOIEC144433A, "85cd"}, {HashType.CRC16_KERMIT, "bed2"}, {HashType.CRC16_LJ1200, "3533"}, {HashType.CRC16_M17, "5223"}, @@ -45,11 +45,11 @@ namespace SabreTools.Hashing.Test {HashType.CRC16_OPENSAFETYA, "abcd"}, {HashType.CRC16_OPENSAFETYB, "76f4"}, {HashType.CRC16_PROFIBUS, "3099"}, - //{HashType.CRC16_RIELLO, "23e0"}, + {HashType.CRC16_RIELLO, "23e0"}, {HashType.CRC16_SPIFUJITSU, "f98b"}, {HashType.CRC16_T10DIF, "2642"}, {HashType.CRC16_TELEDISK, "7e05"}, - //{HashType.CRC16_TMS37157, "dba0"}, + {HashType.CRC16_TMS37157, "dba0"}, {HashType.CRC16_UMTS, "fee0"}, {HashType.CRC16_USB, "61ab"}, {HashType.CRC16_XMODEM, "b7d2"}, @@ -58,7 +58,7 @@ namespace SabreTools.Hashing.Test {HashType.CRC21_CANFD, "117d4b"}, - //{HashType.CRC24_BLE, "2969f2"}, + {HashType.CRC24_BLE, "2969f2"}, {HashType.CRC24_FLEXRAYA, "ce9dc7"}, {HashType.CRC24_FLEXRAYB, "0f49d7"}, {HashType.CRC24_INTERLAKEN, "fb4725"}, diff --git a/SabreTools.Hashing/Crc/CrcRunner.cs b/SabreTools.Hashing/Crc/CrcRunner.cs index 9e592be..8023cc0 100644 --- a/SabreTools.Hashing/Crc/CrcRunner.cs +++ b/SabreTools.Hashing/Crc/CrcRunner.cs @@ -27,7 +27,7 @@ namespace SabreTools.Hashing.Crc Def = def; _table = new CrcTable(def); - _hash = def.Init; + _hash = def.ReflectIn ? BitOperations.ReverseBits(def.Init, def.Width) : def.Init; } /// diff --git a/SabreTools.Hashing/HashType.cs b/SabreTools.Hashing/HashType.cs index 7798ee6..f2edb43 100644 --- a/SabreTools.Hashing/HashType.cs +++ b/SabreTools.Hashing/HashType.cs @@ -88,7 +88,7 @@ namespace SabreTools.Hashing /// /// CRC 16-bit checksum (CRC-16/ISO-IEC-14443-3-A [CRC-A]) /// - //CRC16_ISOIEC144433A, // Disabled until incorrect hashes can be fixed + CRC16_ISOIEC144433A, /// /// CRC 16-bit checksum (CRC-16/KERMIT [CRC-16/BLUETOOTH, CRC-16/CCITT, CRC-16/CCITT-TRUE, CRC-16/V-41-LSB, CRC-CCITT, KERMIT]) @@ -143,7 +143,7 @@ namespace SabreTools.Hashing /// /// CRC 16-bit checksum (CRC-16/RIELLO) /// - //CRC16_RIELLO, // Disabled until incorrect hashes can be fixed + CRC16_RIELLO, /// /// CRC 16-bit checksum (CRC-16/SPI-FUJITSU [CRC-16/AUG-CCITT]) @@ -163,7 +163,7 @@ namespace SabreTools.Hashing /// /// CRC 16-bit checksum (CRC-16/TMS37157) /// - //CRC16_TMS37157, // Disabled until incorrect hashes can be fixed + CRC16_TMS37157, /// /// CRC 16-bit checksum (CRC-16/UMTS [CRC-16/BUYPASS, CRC-16/VERIFONE]) @@ -205,7 +205,7 @@ namespace SabreTools.Hashing /// /// CRC 24-bit checksum (CRC-24/BLE) /// - //CRC24_BLE, // Disabled until incorrect hashes can be fixed + CRC24_BLE, /// /// CRC 24-bit checksum (CRC-24/FLEXRAY-A) diff --git a/SabreTools.Hashing/HashWrapper.cs b/SabreTools.Hashing/HashWrapper.cs index 5998303..4a6ef43 100644 --- a/SabreTools.Hashing/HashWrapper.cs +++ b/SabreTools.Hashing/HashWrapper.cs @@ -132,7 +132,7 @@ namespace SabreTools.Hashing HashType.CRC16_GSM => new CrcRunner(StandardDefinitions.CRC16_GSM), HashType.CRC16_IBM3740 => new CrcRunner(StandardDefinitions.CRC16_IBM3740), HashType.CRC16_IBMSDLC => new CrcRunner(StandardDefinitions.CRC16_IBMSDLC), - //HashType.CRC16_ISOIEC144433A => new CrcRunner(StandardDefinitions.CRC16_ISOIEC144433A), + HashType.CRC16_ISOIEC144433A => new CrcRunner(StandardDefinitions.CRC16_ISOIEC144433A), HashType.CRC16_KERMIT => new CrcRunner(StandardDefinitions.CRC16_KERMIT), HashType.CRC16_LJ1200 => new CrcRunner(StandardDefinitions.CRC16_LJ1200), HashType.CRC16_M17 => new CrcRunner(StandardDefinitions.CRC16_M17), @@ -143,11 +143,11 @@ namespace SabreTools.Hashing HashType.CRC16_OPENSAFETYA => new CrcRunner(StandardDefinitions.CRC16_OPENSAFETYA), HashType.CRC16_OPENSAFETYB => new CrcRunner(StandardDefinitions.CRC16_OPENSAFETYB), HashType.CRC16_PROFIBUS => new CrcRunner(StandardDefinitions.CRC16_PROFIBUS), - //HashType.CRC16_RIELLO => new CrcRunner(StandardDefinitions.CRC16_RIELLO), + HashType.CRC16_RIELLO => new CrcRunner(StandardDefinitions.CRC16_RIELLO), HashType.CRC16_SPIFUJITSU => new CrcRunner(StandardDefinitions.CRC16_SPIFUJITSU), HashType.CRC16_T10DIF => new CrcRunner(StandardDefinitions.CRC16_T10DIF), HashType.CRC16_TELEDISK => new CrcRunner(StandardDefinitions.CRC16_TELEDISK), - //HashType.CRC16_TMS37157 => new CrcRunner(StandardDefinitions.CRC16_TMS37157), + HashType.CRC16_TMS37157 => new CrcRunner(StandardDefinitions.CRC16_TMS37157), HashType.CRC16_UMTS => new CrcRunner(StandardDefinitions.CRC16_UMTS), HashType.CRC16_USB => new CrcRunner(StandardDefinitions.CRC16_USB), HashType.CRC16_XMODEM => new CrcRunner(StandardDefinitions.CRC16_XMODEM), @@ -156,7 +156,7 @@ namespace SabreTools.Hashing HashType.CRC21_CANFD => new CrcRunner(StandardDefinitions.CRC21_CANFD), - //HashType.CRC24_BLE => new CrcRunner(StandardDefinitions.CRC24_BLE), + HashType.CRC24_BLE => new CrcRunner(StandardDefinitions.CRC24_BLE), HashType.CRC24_FLEXRAYA => new CrcRunner(StandardDefinitions.CRC24_FLEXRAYA), HashType.CRC24_FLEXRAYB => new CrcRunner(StandardDefinitions.CRC24_FLEXRAYB), HashType.CRC24_INTERLAKEN => new CrcRunner(StandardDefinitions.CRC24_INTERLAKEN),