Merge pull request #3171 from penegui/master

Handle Track 2 in GPO and skip unnecessary READ RECORD
This commit is contained in:
Iceman
2026-03-25 11:41:11 +07:00
committed by GitHub
+11 -6
View File
@@ -301,9 +301,14 @@ void RunMod(void) {
if (iso14443a_select_card(NULL, &card_a_info, NULL, true, 0, false)) {
DbpString(_YELLOW_("+") "Found ISO 14443 Type A!");
chktoken = false;
for (uint8_t i = 0; i < 4; i++) {
chktoken = false;
if (i == 3 && chktoken) {
break; // Tag 57 was already found in GPO, no need to issue READ RECORD
}
LED_C_OFF();
LED_B_ON();
uint8_t apdulen = iso14_apdu(apdus[i], (uint16_t) apduslen[i], false, apdubuffer, sizeof(apdubuffer), NULL);
@@ -331,13 +336,13 @@ void RunMod(void) {
}
} else if (i == 3) {
} else if (i == 2 || i == 3) {
// find track 2
if (apdubuffer[u] == 0x57 && apdubuffer[u + 1] == 0x13 && !chktoken) {
// find track 2 in GPO or READ RECORD
if (u + 20 < apdulen && apdubuffer[u] == 0x57 && apdubuffer[u + 1] == 0x13 && !chktoken) {
chktoken = true;
memcpy(&token, &apdubuffer[u + 2], 19);
memcpy(token, &apdubuffer[u + 2], 19);
break;
}
}