AnsweredAssumed Answered

Easy API to communicate with DESFire with PN7120 and libnfc-nci

Question asked by Diego Valladolid on May 2, 2018
Latest reply on Mar 8, 2019 by Sreten Jovicic

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!