0

I wrote some code for authenticating to and reading from Mifare Classic cards on Android. It works perfectly on the first generation of Nexus 7 (2012) as well as on Samsung Galaxy Nexus I9250. However, it fails on a Samsung S3 Mini. The devices detects the card correctly as MifareClassic and I can use the connect() method of the MifareClassic object to connect to the tag, but it can't authenticate using either of the two available methods authenticateSectorWithKeyA or authenticateSectorWithKeyB. However, with the same code, authenticating and reading the data works correctly if using any of the other devices mentioned above!

My questions are:

  1. Is the authentication/encryption of the communication a hardware operation? Or is that done in software?
  2. Why can the device connect to the tag but not authenticate to it?
Michael Roland
  • 39,663
  • 10
  • 99
  • 206
Adrian
  • 609
  • 2
  • 11
  • 22

1 Answers1

0

The NFC chips of certain Android devices do not support (the-nonstandard) Mifare Classic tags. See this question.

Community
  • 1
  • 1
ThomasRS
  • 8,215
  • 5
  • 33
  • 48
  • In my case, Samusung S3 Mini reads the Mifare Classic cards perfectly. It's the decryption method which fails! Thx – Adrian Sep 08 '14 at 12:51