In my attempts to make the LEGIC code better, its not working now. Timings if off.

CHG: switching to US clock.
CHG: better trace annotation for legic
CHG: Legic prng can now give a x bits in once.
This commit is contained in:
iceman1001 2016-09-09 11:56:20 +02:00
commit ad5bc8cc8c
9 changed files with 318 additions and 235 deletions

View file

@ -403,9 +403,34 @@ int CmdLegicRFRead(const char *Cmd) {
}
PrintAndLog("Current IV: 0x%02x", IV);
UsbCommand c= {CMD_READER_LEGIC_RF, {offset, len, IV}};
// get some prng bytes from
uint8_t temp[12];
legic_prng_init(IV);
for ( uint8_t j = 0; j < sizeof(temp); ++j)
temp[j] = legic_prng_get_bits(8);
PrintAndLog("PRNG: %s", sprint_hex(temp, sizeof(temp)));
UsbCommand c = {CMD_READER_LEGIC_RF, {offset, len, IV}};
clearCommandBuffer();
SendCommand(&c);
UsbCommand resp;
if (WaitForResponseTimeout(CMD_ACK, &resp, 2000)) {
uint8_t isOK = resp.arg[0] & 0xFF;
uint16_t len = resp.arg[1] & 0x3FF;
if ( isOK ) {
PrintAndLog("OK : %d", isOK);
PrintAndLog("use 'hf legic decode' or");
PrintAndLog("'data hexsamples %d' to view results", len);
}
} else {
PrintAndLog("command execution time out");
return 1;
}
//uint8_t got[12000];
//GetFromBigBuf(got,sizeof(got),0);
//WaitForResponse(CMD_ACK,NULL);
return 0;
}