P2 key for ZXP3 Volatile Memory


I'm doing preliminary C# coding for the ZXP Series 3 card printer. Note: there is no ribbon installed.

* Using Mifare 1K cards

* Comparing my code against a HID Global OMNIKEY 5422CL

* Using the pcsc-sharp library GitHub - danm-de/pcsc-sharp: PC/SC wrapper classes for .NET, written in C#

* This issue refers to the Mifare1K test in that library

With the HID, I can read and write to a card using the default code.

* P1 = 0x20 => NonVolatileMemory

* P2 = 0x00 => i.e. the first of 16 type A key

* Data (Key) = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }

* Note: Read/Write success even when I tried all the 16 type A or 16 type B keys

With the ZXP3, if I use P1=0x20, SW1 SW2 is 63 87, Non-volatile memory is not available.

When I changed P2 to 0x00 (VolatileMemory), SW1 SW2 is 63 88, Key number not valid.

Then I tried all the type A keys {0x00, 0x01, 0x02, 0x03} and all the four type B keys {0x10, 0x11, 0x12, 0x13}, the SW1 SW2 never wavered away from 63 88.

Can somebody explain how I can successfully read (and then write) to the Mifare 1K using the ZXP3, or at least point me in a direction where I can figure this out by myself?

Thank you in advance.


H. Masri
Googled with some related

Googled with some related terms and found a StackOverflow page zebra printers - MIFARE classic card APDU authentication failure - Stack Overflow

Used P2=0x60 and it worked!!!

Now I need to know why 0x60 works.

Vote up!
Vote down!

Points: 0

You voted ‘up’

Stephen Troup
The Omnikey and SDI card

The Omnikey and SDI card reader implement the mifare interface slightly differently and neither follow the pcsc specification exactly.

You'll need to visit the Identiv site and get the SDI programmers reference.

SDI010/SDI011 Dual Interface Smart Card Reader | Identiv Support

The 0x60 is the definition for KeyA, for KeyB it's 0x61

Vote up!
Vote down!

Points: 0

You voted ‘up’

Log in to post comments