MRTD set auth method + cleanup nfc_worker

This commit is contained in:
Chris van Marle
2022-10-11 22:13:24 +02:00
parent 0f242984fb
commit 6abd967966
2 changed files with 11 additions and 11 deletions
@@ -34,6 +34,12 @@ void nfc_scene_passport_auth_method_changed(VariableItem* item) {
void nfc_scene_passport_auth_on_enter(void* context) {
Nfc* nfc = context;
// By entering the Auth menu, we default to Auth: Any
MrtdAuthMethod* auth_method = &nfc->dev->dev_data.mrtd_data.auth.method;
if(*auth_method == MrtdAuthMethodNone) {
*auth_method = MrtdAuthMethodAny;
}
VariableItemList* variable_item_list = nfc->variable_item_list;
VariableItem* item;
@@ -78,10 +84,7 @@ void nfc_scene_passport_auth_on_enter(void* context) {
nfc_scene_passport_auth_method_changed,
nfc);
value_index = nfc->dev->dev_data.mrtd_data.auth.method;
if(value_index == MrtdAuthMethodNone) {
value_index = MrtdAuthMethodAny;
}
value_index = *auth_method;
variable_item_set_current_value_index(item, value_index);
variable_item_set_current_value_text(item, mrtd_auth_method_text[value_index]);
+4 -7
View File
@@ -268,10 +268,10 @@ static bool nfc_worker_read_bank_card(NfcWorker* nfc_worker, FuriHalNfcTxRxConte
return read_success;
}
static bool nfc_worker_read_mrtd(NfcWorker* nfc_worker, MrtdData* mrtd_data, FuriHalNfcTxRxContext* tx_rx) {
static bool nfc_worker_read_mrtd(NfcWorker* nfc_worker, FuriHalNfcTxRxContext* tx_rx) {
bool read_success = false;
MrtdApplication* mrtd_app = mrtd_alloc_init(tx_rx);
//EmvData* result = &nfc_worker->dev_data->emv_data;
MrtdData* mrtd_data = &nfc_worker->dev_data->mrtd_data;
if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) {
reader_analyzer_prepare_tx_rx(nfc_worker->reader_analyzer, tx_rx, false);
@@ -281,10 +281,7 @@ static bool nfc_worker_read_mrtd(NfcWorker* nfc_worker, MrtdData* mrtd_data, Fur
do {
// Read passport
if(!furi_hal_nfc_detect(&nfc_worker->dev_data->nfc_data, 300)) break;
//mrtd_select(mrtd_app, EF.CardAccess);
//mrtd_select(mrtd_app, EF.DIR);
//mrtd_select_efcardaccess(mrtd_app);
//mrtd_select_efdir(mrtd_app);
if(!mrtd_select_app(mrtd_app, AID.eMRTDApplication)) break;
mrtd_test(mrtd_app, mrtd_data);
@@ -375,7 +372,7 @@ static bool nfc_worker_read_nfca(NfcWorker* nfc_worker, FuriHalNfcTxRxContext* t
furi_hal_nfc_sleep(); // Needed between checks
FURI_LOG_D(TAG, "Try reading MRTD");
//TODO: support NFC-B?
if(nfc_worker_read_mrtd(nfc_worker, &nfc_worker->dev_data->mrtd_data, tx_rx)) {
if(nfc_worker_read_mrtd(nfc_worker, tx_rx)) {
nfc_worker->dev_data->protocol = NfcDeviceProtocolMRTD;
break;
}