1

I need to use CRC32b version in my source code (.NET and C#) but it is nowhere to be found. Does anyone know where is a specification for CRC32b or some kind of pseudocode? Thank you

Antun Tun
  • 1,507
  • 5
  • 20
  • 38
  • I don't have an answer but [this related SO question](http://stackoverflow.com/questions/15861058/what-is-the-difference-between-crc32-and-crc32b) may lead to what you're looking for. – Blastfurnace Jul 05 '13 at 12:10

2 Answers2

0

I have no idea where the "b" came from, but I have seen CRC32b refer to the normal CRC-32 used by PKZip, gzip, etc. and as defined in ITU-T V.42. You can find the description of that CRC and many others here.

Mark Adler
  • 101,978
  • 13
  • 118
  • 158
0

I'll do a little better than just pseudocode...

The link below goes to command line utility on macOS that independently calculates CRC32B (without using system libraries). By design the CRC32B() function can be pulled out and used in embedded code systems, or this command line utility can be recompiled on a Raspberry PI with #include mods.

(pre-compiled macOS tool and Xcode project with source) `https://cerniuk.org/wiki/pages/S5Z134W8a/CRC32B_Any_Text.html

and if you want to check my algorithm, here is a great web site for calculating all manner of check sums and hashes: https://md5calc.com/hash/crc32b/cerniuk

crc32b is the 32-bit Frame Check Sequence of ITU V.42, used in by ethernet drivers to validate frame transmissions, so it is presumed to be fast. It is also useful for other things like PKZip or implementing your own switch() statements in C that effectively switch on strings char *, records struct{}, data blocks void *, etc. ;-)

Cerniuk
  • 14,220
  • 2
  • 29
  • 27