mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-07-24 01:28:11 -07:00
0x5F25 tag renamed (issue date->effective date)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user