How to read / write synchronous only smart cards such as memory cards

I have IC memory cards that only support synchronous interface (e.g. SLE5532, SLE5542 ... etc.)

I would like to know how to write an application that reads the contents of memory, checks the PSC (PIN), and writes to the memory.

This type of card cannot accept conventional APDUs such as microprocessor cards. The Datasheet specifies the command to send in binary (all commands are 3 bytes long)

I found an application that was designed to work with SCM Reader (based on MCSCM.dll), but it doesn't work with my OmniKey reader.

I want to know if it is possible to create an application that directly calls the winsCard API functions without having to work with the Reader DLLs directly. and if so, what are the proper functions to call?

And if this is not possible, how can I find the OmniKey API? and can anyone send me samples that work with the OmniKey 3121 Reader and Synchronous Cards?

Thank you in advance

+3


source to share


2 answers


No, you cannot publicly address memory cards from the smart card reader. The hardware communication protocol is different from the processor cards, and each hardware manufacturer is on its own, but a pseudo-APDU to support this behavior. Therefore, without concrete reader support, you have no chance of making a connection. The situation is better with MIFARE, but that won't help you. If you cannot find the documentation at http://www.hidglobal.com , you can ask for their support. Otherwise, I would recommend using an SCM reader where you have the appropriate software.



Thi looks like what you need, the magic CT-API keyword, but that doesn't depend on winscard: http://www.hidglobal.com/drivers/14877 p>

+1


source


If your reader supports the PC / SC 2.01.14 specifications find them here , he may support a general way to access memory cards. (But beware that support is optional and not everyone supports it.)

Section 3.2.2.1 of Part 3 of the PC / SC specification defines support for the functionality of the memory card. This functionality consists of several reader-interpreted APDU commands that you can send to the reader. The reader then translates these commands into special commands on the memory card. For example, there is a READ BINARY command to read data from a memory card:

FF B0 ADDR1 ADDR0 Le

      

And there is a VERIFY command (for cards that support PIN verification)

FF 20 xx yy Lc PIN

      



To determine the type of a specific memory card, you can refer to the ATR (emulation) format for (contactless) memory cards (in section 3.1.3.2.3.2 part 3 of the specification ) and supplementary document 1 (ATR storage cards) of part 3 of the specification.

For example, if your card runs according to the I2C variant of ISO / IEC 7816-10, the ATR you get from the reader would look something like this:

8E 80 01 80 4F 0C A000000306 0D xxxx 00000000 yy

      

In addition to this, some manufacturers define their own custom commands (which can be used either through the PC / SC API or some other interface such as the CT-API or Omniey Synchronous API).

0


source







All Articles