return 0;
}
+//TODO:
+//void annotateIso15693(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){}
void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
{
case MIFARE_ULC_AUTH_1 : snprintf(exp,size,"AUTH "); break;
case MIFARE_ULC_AUTH_2 : snprintf(exp,size,"AUTH_ANSW"); break;
case MIFARE_ULEV1_AUTH : snprintf(exp,size,"PWD-AUTH"); break;
-
case MIFARE_ULEV1_FASTREAD : {
- if ( cmd[2] < 0x21)
+ if ( cmdsize >=3 && cmd[2] <= 0xE6)
snprintf(exp,size,"READ RANGE (%d-%d)",cmd[1],cmd[2]);
+ else
+ snprintf(exp,size,"?");
break;
}
- case MIFARE_ULEV1_WRITE : {
+ case MIFARE_ULC_WRITE : {
if ( cmd[1] < 0x21 )
snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]);
+ else
+ snprintf(exp,size,"?");
break;
}
case MIFARE_ULEV1_READ_CNT :{
if ( cmd[1] < 5 )
snprintf(exp,size,"READ CNT(%d)",cmd[1]);
+ else
+ snprintf(exp,size,"?");
break;
}
case MIFARE_ULEV1_INCR_CNT : {
if ( cmd[1] < 5 )
- snprintf(exp,size,"INC(%d)",cmd[1]);
+ snprintf(exp,size,"INCR(%d)",cmd[1]);
+ else
+ snprintf(exp,size,"?");
break;
}
case MIFARE_ULEV1_READSIG : snprintf(exp,size,"READ_SIG"); break;
case MIFARE_ULEV1_CHECKTEAR : snprintf(exp,size,"CHK_TEARING(%d)",cmd[1]); break;
case MIFARE_ULEV1_VCSL : snprintf(exp,size,"VCSL"); break;
-
default: snprintf(exp,size,"?"); break;
}
return;
ComputeCrc14443(CRC_14443_B, data, len-2, &b1, &b2);
if(b1 != data[len-2] || b2 != data[len-1]) {
return 0;
- } else {
- return 1;
}
+ return 1;
}
/**
return 0;
}
+int CmdHFSearch(const char *Cmd){
+ int ans = 0;
+ ans = CmdHF14AReader(Cmd);
+ if (ans > 0) return ans;
+
+ ans = CmdHF15Reader(Cmd);
+ //if (ans > 0) return ans;
+
+ ans = CmdHF14BRead(Cmd);
+ //if (ans > 0) return ans;
+
+ ans = CmdHFiClassReader(Cmd);
+ //if (ans > 0) return ans;
+ return 0;
+}
static command_t CommandTable[] =
{
{"topaz", CmdHFTopaz, 1, "{ TOPAZ (NFC Type 1) RFIDs... }"},
{"tune", CmdHFTune, 0, "Continuously measure HF antenna tuning"},
{"list", CmdHFList, 1, "List protocol data in trace buffer"},
+ {"search", CmdHFSearch, 1, "Search for known HF tags"},
{NULL, NULL, 0, NULL}
};