diff --git a/lib/nfc/protocols/mf_plus/mf_plus_i.c b/lib/nfc/protocols/mf_plus/mf_plus_i.c index a481f94c4..7627ce016 100644 --- a/lib/nfc/protocols/mf_plus/mf_plus_i.c +++ b/lib/nfc/protocols/mf_plus/mf_plus_i.c @@ -172,11 +172,11 @@ bool mf_plus_get_type_from_iso4(const Iso14443_4aData* iso4_data, MfPlusData* mf mf_plus_data->type = MfPlusTypeS; mf_plus_data->security_level = MfPlusSecurityLevel3; - if(iso4_data->iso14443_3a_data->atqa[1] & 0x04) { + if((iso4_data->iso14443_3a_data->atqa[1] & 0x0F) == 0x04) { // Mifare Plus S 2K SL3 mf_plus_data->size = MfPlusSize2K; FURI_LOG_D(TAG, "Mifare Plus S 2K SL3"); - } else if(iso4_data->iso14443_3a_data->atqa[1] & 0x02) { + } else if((iso4_data->iso14443_3a_data->atqa[1] & 0x0F) == 0x02) { // Mifare Plus S 4K SL3 mf_plus_data->size = MfPlusSize4K; FURI_LOG_D(TAG, "Mifare Plus S 4K SL3"); @@ -194,10 +194,10 @@ bool mf_plus_get_type_from_iso4(const Iso14443_4aData* iso4_data, MfPlusData* mf mf_plus_data->type = MfPlusTypeX; mf_plus_data->security_level = MfPlusSecurityLevel3; - if(iso4_data->iso14443_3a_data->atqa[1] & 0x04) { + if((iso4_data->iso14443_3a_data->atqa[1] & 0x0F) == 0x04) { mf_plus_data->size = MfPlusSize2K; FURI_LOG_D(TAG, "Mifare Plus X 2K SL3"); - } else if(iso4_data->iso14443_3a_data->atqa[1] & 0x02) { + } else if((iso4_data->iso14443_3a_data->atqa[1] & 0x0F) == 0x02) { mf_plus_data->size = MfPlusSize4K; FURI_LOG_D(TAG, "Mifare Plus X 4K SL3"); } else {