PrintAndLog(" Vendor Id : %s", getTagInfo(resp.d.asBytes[7]));
PrintAndLog(" Type : 0x%02X",resp.d.asBytes[8]);
PrintAndLog(" Subtype : 0x%02X",resp.d.asBytes[9]);
- PrintAndLog(" Version : %d.%d",resp.d.asBytes[10], resp.d.asBytes[11]);
+ PrintAndLog(" Version : %s",GetVersionStr(resp.d.asBytes[10], resp.d.asBytes[11]) );
PrintAndLog(" Storage size : %s",GetCardSizeStr(resp.d.asBytes[12]));
PrintAndLog(" Protocol : %s",GetProtocolStr(resp.d.asBytes[13]));
PrintAndLog(" -----------------------------------------------------------");
*/
char * GetCardSizeStr( uint8_t fsize ){
- static char buf[30];
+ static char buf[30] = {0x00};
char *retStr = buf;
uint16_t usize = 1 << ((fsize >>1) + 1);
char * GetProtocolStr(uint8_t id){
- static char buf[30];
+ static char buf[30] = {0x00};
char *retStr = buf;
if ( id == 0x05)
return buf;
}
+char * GetVersionStr(uint8_t major, uint8_t minor){
+
+ static char buf[30] = {0x00};
+ char *retStr = buf;
+
+ if ( major == 0x00)
+ sprintf(retStr,"%d.%d (Desfire MF3ICD40)", major, minor);
+ else if ( major == 0x01 && minor == 0x00)
+ sprintf(retStr,"%d.%d (Desfire EV1)", major, minor);
+ else if ( major == 0x12 && minor == 0x00)
+ sprintf(retStr,"%d.%d (Desfire EV2)", major, minor);
+ else
+ sprintf(retStr,"%d.%d (Unknown)", major, minor);
+ return buf;
+}
+
void GetKeySettings( uint8_t *aid){
char messStr[512] = {0x00};
PrintAndLog(" Can't read Application Master key settings");
} else {
// Access rights.
- uint8_t rights = (resp.d.asBytes[3] >> 4 && 0xff);
+ uint8_t rights = (resp.d.asBytes[3] >> 4 & 0xff);
switch (rights){
case 0x00:
str = "AMK authentication is necessary to change any key (default)";
int CmdHFMFDes(const char *Cmd) {
// flush
clearCommandBuffer();
- //WaitForResponseTimeout(CMD_ACK,NULL,100);
CmdsParse(CommandTable, Cmd);
return 0;
}