0x5F25 tag renamed (issue date->effective date)

This commit is contained in:
Methodius
2024-02-11 01:32:17 +09:00
parent 56875ed9a7
commit 702e4f39ab
8 changed files with 72 additions and 29 deletions
+8 -6
View File
@@ -103,9 +103,9 @@ bool emv_load(EmvData* data, FlipperFormat* ff, uint32_t version) {
if(!flipper_format_read_hex(ff, "Expiration month", &app->exp_month, 1)) break;
if(!flipper_format_read_hex(ff, "Expiration day", &app->exp_day, 1)) break;
if(!flipper_format_read_hex(ff, "Issue year", &app->issue_year, 1)) break;
if(!flipper_format_read_hex(ff, "Issue month", &app->issue_month, 1)) break;
if(!flipper_format_read_hex(ff, "Issue day", &app->issue_day, 1)) break;
if(!flipper_format_read_hex(ff, "Effective year", &app->effective_year, 1)) break;
if(!flipper_format_read_hex(ff, "Effective month", &app->effective_month, 1)) break;
if(!flipper_format_read_hex(ff, "Effective day", &app->effective_day, 1)) break;
uint32_t pin_try_counter;
if(!flipper_format_read_uint32(ff, "PIN counter", &pin_try_counter, 1)) break;
@@ -153,9 +153,11 @@ bool emv_save(const EmvData* data, FlipperFormat* ff) {
if(!flipper_format_write_hex(ff, "Expiration month", (uint8_t*)&app.exp_month, 1)) break;
if(!flipper_format_write_hex(ff, "Expiration day", (uint8_t*)&app.exp_day, 1)) break;
if(!flipper_format_write_hex(ff, "Issue year", (uint8_t*)&app.issue_year, 1)) break;
if(!flipper_format_write_hex(ff, "Issue month", (uint8_t*)&app.issue_month, 1)) break;
if(!flipper_format_write_hex(ff, "Issue day", (uint8_t*)&app.issue_day, 1)) break;
if(!flipper_format_write_hex(ff, "Effective year", (uint8_t*)&app.effective_year, 1))
break;
if(!flipper_format_write_hex(ff, "Effective month", (uint8_t*)&app.effective_month, 1))
break;
if(!flipper_format_write_hex(ff, "Effective day", (uint8_t*)&app.effective_day, 1)) break;
if(!flipper_format_write_uint32(ff, "PIN counter", (uint32_t*)&app.pin_try_counter, 1))
break;
+5 -5
View File
@@ -15,8 +15,8 @@ extern "C" {
#define EMV_TAG_PDOL 0x9F38
#define EMV_TAG_APPL_PAYMENT_SYS 0x50
#define EMV_TAG_APPL_NAME 0x9F12
#define EMV_TAG_APPL_ISSUE 0x5F25
#define EMV_TAG_PIN_TRY_COUNTER 0x9F17
#define EMV_TAG_APPL_EFFECTIVE 0x5F25
#define EMV_TAG_PIN_ATTEMPTS_COUNTER 0x9F17
#define EMV_TAG_LOG_ENTRY 0x9F4D
#define EMV_TAG_LOG_FMT 0x9F4F
@@ -85,9 +85,9 @@ typedef struct {
uint8_t exp_day;
uint8_t exp_month;
uint8_t exp_year;
uint8_t issue_day;
uint8_t issue_month;
uint8_t issue_year;
uint8_t effective_day;
uint8_t effective_month;
uint8_t effective_year;
uint16_t country_code;
uint16_t currency_code;
uint8_t pin_try_counter;
+1 -1
View File
@@ -108,7 +108,7 @@ static NfcCommand emv_poller_handler_read_files(EmvPoller* instance) {
static NfcCommand emv_poller_handler_read_extra_data(EmvPoller* instance) {
emv_poller_get_last_online_atc(instance);
emv_poller_get_pin_try_counter(instance);
emv_poller_get_pin_attempts_counter(instance);
instance->state = EmvPollerStateReadSuccess;
return NfcCommandContinue;
+1 -1
View File
@@ -50,7 +50,7 @@ EmvError emv_poller_read_afl(EmvPoller* instance);
EmvError emv_poller_read_log_entry(EmvPoller* instance);
EmvError emv_poller_get_pin_try_counter(EmvPoller* instance);
EmvError emv_poller_get_pin_attempts_counter(EmvPoller* instance);
EmvError emv_poller_get_last_online_atc(EmvPoller* instance);
+8 -8
View File
@@ -128,10 +128,10 @@ static bool
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_APPL_NAME %x: %s", tag, app->name);
break;
case EMV_TAG_APPL_ISSUE:
app->issue_year = buff[i];
app->issue_month = buff[i + 1];
app->issue_day = buff[i + 2];
case EMV_TAG_APPL_EFFECTIVE:
app->effective_year = buff[i];
app->effective_month = buff[i + 1];
app->effective_day = buff[i + 2];
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_APPL_ISSUE %x:", tag);
break;
@@ -262,10 +262,10 @@ static bool
memcpy(&app->trans[app->active_tr].time, &buff[i], tlen);
success = true;
break;
case EMV_TAG_PIN_TRY_COUNTER:
case EMV_TAG_PIN_ATTEMPTS_COUNTER:
app->pin_try_counter = buff[i];
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_PIN_TRY_COUNTER %x: %d", tag, app->pin_try_counter);
FURI_LOG_T(TAG, "found EMV_TAG_PIN_ATTEMPTS_COUNTER %x: %d", tag, app->pin_try_counter);
break;
}
return success;
@@ -683,8 +683,8 @@ static EmvError emv_poller_req_get_data(EmvPoller* instance, uint16_t tag) {
return error;
}
EmvError emv_poller_get_pin_try_counter(EmvPoller* instance) {
return emv_poller_req_get_data(instance, EMV_TAG_PIN_TRY_COUNTER);
EmvError emv_poller_get_pin_attempts_counter(EmvPoller* instance) {
return emv_poller_req_get_data(instance, EMV_TAG_PIN_ATTEMPTS_COUNTER);
}
EmvError emv_poller_get_last_online_atc(EmvPoller* instance) {