Reply To: MIFARE Classic Emulation throws \"Stack Error\" on iOS13\'s CoreNFC framework

Forum MIFARE and NFC Reader IC`s MIFARE Classic Emulation throws \"Stack Error\" on iOS13\'s CoreNFC framework Reply To: MIFARE Classic Emulation throws \"Stack Error\" on iOS13\'s CoreNFC framework

Re: MIFARE Classic Emulation throws \"Stack Error\" on iOS13\'s CoreNFC framework

5. November 2019 at 15:27
Hi TapLinx team,

Thanks for your explanation. Unfortunately however, I hope you understand that now I'm left a bit confused:

  • you state iOS accepts only "NFC Forum Compliant" tags based on a decision to "only accept NDEF type tags and reject all other",
    yet the CLASSIC 4k (Emulation) ICs we use are ISO/IEC 14443-2,3[,4] compliant,
    thus within the NFC Forum specification's
    range of "ISO/IEC 18092, ISO/IEC 14443-2,3,4 and JIS X6319-9",
    and furthermore, these tags are referenced and used as NFC tag by applications such as NFC Tools
    for PC or Mac (using peripheral devices)
    and for Android NFC devices (as you already mentioned);


  • you state "the architecture of the Classic which does it not allow to have NDEF messages blocks",
    yet NXP's application note #1305
    explains "how the Reader device (also called NFC device) can store NDEF data inside an MIFARE Classic or MIFARE Plus tag";


  • you state a card issuer would not "format my card as NDEF compliant tag", yet an NFC device can
    perform State Changes/Transitions into NFC Forum compliant states (INITIALISED, READ-WRITE or READ-ONLY),
    not just when formatting a "blank card" after production phase (see section 6.5 of AN1305),
    but also when interacting with a "production" card in Valid State (see section 6.4 of AN1305).



In order to read/write MIFARE Classic as "NDEF enabled" tags, the NFC device must support
the following Command Set (Section 5 of AN1305) or ISO 7816-4 APDU:

  • Read operation,

  • Write operation, and

  • Authentication operation.


At least for MIFARE DESfire and MIFARE Plus tags, these commands are supported in the (public) iOS13 CoreNFC framework's
NFCMiFareTag protocol, see e.g.
sendMiFareCommand
and sendMiFareISO7816Command.
Similar APIs are available for generic ISO 7816-enabled tags (with application identifier matching the app configuration) in
NFCISO7816Tag protocol's
sendCommand. Of course, this would require a successful detection of an not ISO/IEC 7816-4 (APDU) compliant tag (e.g. the SmartMX CLASSIC 4k Emulation tag, but unfortunately not the CLASSIC 4k).

This leaves me with two questions:

  1. Do know why iOS13 does not the detect the ISO/IEC 7816-4 APDU compliant (SmartMX) Emulation tags, and therefore the respective (internally mapped) MIFARE Command Set required for (NFC Forum compliant) state changes/transitions, as e.g. described by AN1305?


  2. given that we would also be fine with using private framework APIs, do you think the MIFARE Commands might be sent via custom interaction with the private NFReaderSession API?



Best regards,

Rick
+ 0  |  - 0