Does anybody know how to calculate "Storage CRC" for example CRC of UID ??
Ok i know how to calculate storage CRC8 and CRC16 i someone will need that pm me.
Can you paste the polynomial, or your example code that generates the correct CRC?
Or is this covered in this paper, which was published by Henryk and Karsten?
Yes "Storage" CRC8 polynomial is correct in this document (0xC6 - in reverse) and initial value is 0x55
And for CRC16 polynomial is 0xB400 (in reverse) and initial value is word constructed from UIDCRC for example:
UIDCRC id 0x78 (in reverse) the initial will be 0x7878
I don't have Proxmark but I'm writing reader/writer/emulator on dsPIC30 and now code for calculating this CRC i have in Pascal (Delphi) if someone will need some help write me ill try to help.
Also im fixing Proxmark code because it have some bugs like in "legic_prng_forward":
now it is:
lfsr.a = lfsr.a >> 1 | (lfsr.a ^ lfsr.a >> 6) << 6;
but it have to be:
lfsr.a = (lfsr.a >> 1 | (lfsr.a ^ lfsr.a >> 6) << 6) & 0x7F;
So it will generate valid decode stream and it will work not only with 0x55 RAND value.
and how do you calculate the storage CRC of the UID now?
Thanks and best regards!