I've come across 2 CRCs so far - a 32 bit one used on the Class A cards,
and a 16 bit one used on the Class B cards. I've tried a standard crc32
routine (stolen from ssh), but it doesn't match the CRC reported by the
router. Is there anyone good at understanding CRC routines who can help me
reverse-engineer the cisco CRC, or perhaps does someone have some inside
information they would like to share?
After some suggestions from various people, I tried uploading a few test
files onto a Cisco and seeing how the CRCs worked out. It turns out it's
not a true CRC at all, but rather a variation on the TCP checksum
algorithm.
Please don't ask me for the code yet! I'll let the list know when it's
available...
v0.1 of the code is now available (read only at the moment):
ftp://ftp.bbc.co.uk/pub/ciscoflash/
Enjoy,
Simon