Last year I spent some months developing an application with a KL26 that communicated with a PN512 via I2C by using (and adapting) the library "NXP NFC Reader Library". With that library, interacting with DESFire tags was as easy as using functions like phalMfdf_CreateApplication(..), phalMfdf_GetVersion(...) and similar.
Now I am reading up on PN7120 as the system we're going to use in Linux. The idea is to interface an iMX6 with a PN7120. I have successfully installed the driver and the libnfc-nci library by following AN11697. The demo application can read tags like Mifare UL or Mifare Classic but, when tapping a DESFire or a PLUS tag the message "Not a MIFARE card" is shown.
After reading carefully the nfc-nci API I concluded that it does not offer a high-level API that eases the communication with a DESFire, PLUS or any other "complex" tag. I really expected to have something similar to what it is being offered in the "NXP NFC Reader Library".
Is it really necessary that I implement commands like 3-pass authentication, create application, create/delete file, etc.? I can't believe that there is no other way to communicate with a DESFire (I am always talking about DESFire but I could also refer to some other models of tags that are not natively supported like Mifare Plus).
Could someone enlighten me in this topic?
I'd really appreciate!