I had to substitute the CRC32 implementation on the system I am working on, the algorithm that was implemented before used a size 256 look up table and that was too big to use in the boot loader. The new algorithm I've implemented uses a size 16 look up table.
I am using the same polynomial as before, but the results are different. Online calculators throw even more random results and most of them are not very clear on what they are doing, ie which polynomial they are using, what format is the input data or what is the initial crc value.
Does anyone know where can I find a reliable, standardised test vector for CRC32 implementations?
Thanks!
Yes, this catalog of CRCs. Included with each CRC definition is a
check
value — which is that CRC's output for the nine-byte string “123456789” input in ASCII / UTF-8. For example, CRC-32("123456789", 9) = 0xcbf43926.Why don't you simply compare your new implementation to your old implementation?