mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-12-28 03:14:53 +08:00
FIX: forgot I removed some other stuff
This commit is contained in:
parent
f2ba788536
commit
b7e8338d2b
1 changed files with 6 additions and 14 deletions
20
common/crc.c
20
common/crc.c
|
@ -35,29 +35,21 @@ void crc_clear(crc_t *crc) {
|
||||||
crc->state = reflect(crc->state, crc->order);
|
crc->state = reflect(crc->state, crc->order);
|
||||||
}
|
}
|
||||||
|
|
||||||
void crc_update(crc_t *crc, uint32_t indata, int data_width){
|
void crc_update(crc_t *crc, uint32_t data, int data_width){
|
||||||
|
|
||||||
uint32_t poly = crc->polynom;
|
|
||||||
|
|
||||||
// if requested, return the initial CRC */
|
|
||||||
if (indata == 0)
|
|
||||||
return crc->initial_value;
|
|
||||||
|
|
||||||
//reflected
|
|
||||||
if (crc->refin)
|
if (crc->refin)
|
||||||
indata = reflect(indata, data_width);
|
data = reflect(data, data_width);
|
||||||
|
|
||||||
// Bring the next byte into the remainder.
|
// Bring the next byte into the remainder.
|
||||||
crc->state ^= indata << (crc->order - data_width);
|
crc->state ^= data << (crc->order - data_width);
|
||||||
|
|
||||||
for( uint8_t bit = data_width; bit > 0; --bit) {
|
for( uint8_t bit = data_width; bit > 0; --bit) {
|
||||||
// Try to divide the current data bit.
|
|
||||||
if (crc->state & crc->topbit)
|
if (crc->state & crc->topbit)
|
||||||
crc->state = (crc->state << 1) ^ poly;
|
crc->state = (crc->state << 1) ^ crc->polynom;
|
||||||
else
|
else
|
||||||
crc->state = (crc->state << 1);
|
crc->state = (crc->state << 1);
|
||||||
}
|
}
|
||||||
return crc ^ model->xorout;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void crc_update2(crc_t *crc, uint32_t data, int data_width)
|
void crc_update2(crc_t *crc, uint32_t data, int data_width)
|
||||||
|
|
Loading…
Reference in a new issue