Skip to content

The Mifare Classic EV1 tags provide an originality signature to proof that the NFC tag is genuine. The app is showing how to obtain the signature from the tag and verify the signature.

Notifications You must be signed in to change notification settings

MichaelsPlayground/NfcMifareClassicEv1VerifyOriginalitySignature

Repository files navigation

NFC Verify the originality signature of NXP's Mifare Classic EV1

This app is verifying the ("originality") signature of a Mifare Classic EV1 tag.

Kindly note that the code for verification of the signature is taken from the application note
AN11350, provided by NXP.

The Public Key and the Key B for reading the signature is taken from this website:

https://blog.linuxgemini.space/derive-pk-of-nxp-mifare-classic-ev1-ecdsa-signature

These are the specifications of the signature:

- Key type: Elliptic Curve
- Curve: SECP128R1
- Signature Scheme: ECDSA with NONE hashing
- Signature encoding: IEE P1363 (32 bytes R value, 32 bytes S value)

As the guys from NXP added some code for using the curve and converting the signature from P1363 to DER encoding the complete verification is done in pure Java without any additional 3rd party tools.

Don't forget to add these 2 permissions to your AndroidManifest.xml:

    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="android.permission.VIBRATE" />

The app is runnable on Android SDKs from 21+, developed on Android 12 (SDK 32).

The app icon is generated with help from Launcher icon generator (https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html), (options trim image and resize to 110%, color #2196F3).

About

The Mifare Classic EV1 tags provide an originality signature to proof that the NFC tag is genuine. The app is showing how to obtain the signature from the tag and verify the signature.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages