formatting

This commit is contained in:
merlokk 2021-07-29 00:21:16 +03:00
commit a5f7e4172b
2 changed files with 48 additions and 17 deletions

View file

@ -6781,9 +6781,6 @@ static int CmdHF14ADesLsFiles(const char *Cmd) {
} }
} }
//int DesfireGetFileIDList(DesfireContext *dctx, uint8_t *resp, size_t *resplen);
//int DesfireGetFileISOIDList(DesfireContext *dctx, uint8_t *resp, size_t *resplen);
FileListS FileList; FileListS FileList;
memset(FileList, 0, sizeof(FileList)); memset(FileList, 0, sizeof(FileList));
@ -6815,33 +6812,35 @@ static int CmdHF14ADesLsFiles(const char *Cmd) {
PrintAndLogEx(ERR, "Desfire GetFileISOIDList command " _RED_("error") ". Result: %d", res); PrintAndLogEx(ERR, "Desfire GetFileISOIDList command " _RED_("error") ". Result: %d", res);
} }
size_t isoindx = 0;
if (buflen > 0) { if (buflen > 0) {
size_t isoindx = 0;
for (int i = 0; i < filescount; i++) { for (int i = 0; i < filescount; i++) {
if (FileList[i].fileSettings.fileType != 0x03 && FileList[i].fileSettings.fileType != 0x05) { if (FileList[i].fileSettings.fileType != 0x02 && FileList[i].fileSettings.fileType != 0x05) {
FileList[i].fileISONum = MemBeToUint2byte(&buf[isoindx * 2]); FileList[i].fileISONum = MemBeToUint2byte(&buf[isoindx * 2]);
isoindx++; isoindx++;
} }
} }
if (isoindx > 0)
isoindx--;
if (isoindx * 2 != buflen) if (isoindx * 2 != buflen)
PrintAndLogEx(WARNING, "Wrong ISO ID list length. must be %d but %d", buflen, isoindx * 2); PrintAndLogEx(WARNING, "Wrong ISO ID list length. must be %d but %d", buflen, isoindx * 2);
} else { } else {
PrintAndLogEx(WARNING, "ISO ID list returned no data"); PrintAndLogEx(WARNING, "ISO ID list returned no data");
} }
PrintAndLogEx(INFO, "---- " _CYAN_("File list") " ----"); PrintAndLogEx(INFO, "---------------------------- " _CYAN_("File list") " ----------(r w rw ch)------------------");
for (int i = 0; i < filescount; i++) { for (int i = 0; i < filescount; i++) {
PrintAndLogEx(SUCCESS, "ID: " _GREEN_("%02x ") NOLF, FileList[i].fileNum); PrintAndLogEx(SUCCESS, "ID: " _GREEN_("%02x ") NOLF, FileList[i].fileNum);
if (FileList[i].fileISONum != 0) if (isoindx > 0) {
PrintAndLogEx(NORMAL, "ISO ID: %04x " NOLF, FileList[i].fileISONum); if (FileList[i].fileISONum != 0)
else PrintAndLogEx(NORMAL, "ISO ID: " _CYAN_("%04x ") NOLF, FileList[i].fileISONum);
PrintAndLogEx(NORMAL, "ISO ID: n/a " NOLF); else
PrintAndLogEx(NORMAL, "ISO ID: " _YELLOW_("n/a ") NOLF);
}
DesfirePrintFileSettingsOneLine(&FileList[i].fileSettings); DesfirePrintFileSettingsOneLine(&FileList[i].fileSettings);
} }
DropField(); DropField();
return PM3_SUCCESS; return PM3_SUCCESS;
} }

View file

@ -1475,13 +1475,45 @@ void DesfireFillFileSettings(uint8_t *data, size_t datalen, FileSettingsS *fsett
void DesfirePrintFileSettingsOneLine(FileSettingsS *fsettings) { void DesfirePrintFileSettingsOneLine(FileSettingsS *fsettings) {
PrintAndLogEx(NORMAL, "(%-5s) " NOLF, GetDesfireCommunicationMode(fsettings->fileCommMode)); PrintAndLogEx(NORMAL, "(%-5s) " NOLF, GetDesfireCommunicationMode(fsettings->fileCommMode));
PrintAndLogEx(NORMAL, "[0x%02x] %-13s ", fsettings->fileType, GetDesfireFileType(fsettings->fileType)); PrintAndLogEx(NORMAL, "[0x%02x] %-13s " NOLF, fsettings->fileType, GetDesfireFileType(fsettings->fileType));
switch (fsettings->fileType) {
case 0x00:
case 0x01: {
PrintAndLogEx(NORMAL, "size: %d [0x%x] " NOLF, fsettings->fileSize, fsettings->fileSize);
break;
}
/* case 0x02: {
fsettings->lowerLimit = MemLeToUint4byte(&data[4]);
fsettings->upperLimit = MemLeToUint4byte(&data[8]);
fsettings->value = MemLeToUint4byte(&data[12]);
fsettings->limitedCredit = data[16];
reclen = 4 + 13;
break;
}
case 0x03:
case 0x04: {
fsettings->recordSize = MemLeToUint3byte(&data[4]);
fsettings->maxRecordCount = MemLeToUint3byte(&data[7]);
fsettings->curRecordCount = MemLeToUint3byte(&data[10]);
reclen = 4 + 9;
break;
}
case 0x05: {
fsettings->keyType = data[4];
fsettings->keyVersion = data[5];
break;
}*/
default: {
break;
}
}
/* PrintAndLogEx(SUCCESS, "read : %s", GetDesfireAccessRightStr(r)); PrintAndLogEx(NORMAL, "(%s %s %s %s)",
PrintAndLogEx(SUCCESS, "write : %s", GetDesfireAccessRightStr(w)); GetDesfireAccessRightStr(fsettings->rAccess),
PrintAndLogEx(SUCCESS, "readwrite: %s", GetDesfireAccessRightStr(rw)); GetDesfireAccessRightStr(fsettings->wAccess),
PrintAndLogEx(SUCCESS, "change : %s", GetDesfireAccessRightStr(ch));*/ GetDesfireAccessRightStr(fsettings->rwAccess),
GetDesfireAccessRightStr(fsettings->chAccess));
} }
static void DesfirePrintFileSettDynPart(uint8_t filetype, uint8_t *data, size_t datalen, uint8_t *dynlen, bool create) { static void DesfirePrintFileSettDynPart(uint8_t filetype, uint8_t *data, size_t datalen, uint8_t *dynlen, bool create) {