Validate a Desfire EV2 card via Arduino/raspberry pi

I’m currently interested in a desfire ev2 implant because I like the amount of storage/features and I like the AES encrypted communications. The biggest issue I’m running into though is that the documentation for it is all over the place. The spec sheet documents API calls but getting to the point of being able to use them with embedded systems has been a complete chore. Is there any kind of “getting started” guide for using this family of chips?

My end goal is making it so I can just scan my hand and based off of information stored in the particular reader I’m scanning on it’ll pull the info for that app from the Desfire Chip. Any help on this will be immensely appreciated.

This isn’t the easiest kind of thing to support because it is a complex system… it is kind of like asking “how to computer”… there are a lot of variables… but your first step will probably be to approach NXP to sign an NDA to get access to their docstore which will have full data sheets with chip command values etc.

The DESFire EV2 public data sheet is known as a “short data sheet” and lack this critical information.

DESFire EV1 applets is compatible with EV2 chips I believe. You’re right that there’s very little documentation out there.

Here is a library I found that lets you interact with DESFire cards, tested with EV1 applications. https://pypi.org/project/desfire/

I believe this is the documentation for the above library - https://desfire.readthedocs.io/en/latest/index.html

This project can interact with several of the different DESFire encryption modes for authentication
https://github.com/skelsec/pydesfire

This person wrote the first DESFire library for Arduino - https://www.codeproject.com/Articles/1096861/DIY-electronic-RFID-Door-Lock-with-Battery-Backup

2 Likes