Hello,

OK, I promised a look ahead at the upcoming resource manager for talking
to a variety of smartcard readers.  Below is a visual representation of
how it all will fit together and the C resource manager API.  Please let
me know of any concerns.  It is not implemented yet for I am curious of
your thoughts and suggestions.  On the low level all readers will have a
CT-API driver which is only three commands CT_Init, CT_Data, and CT_Close.
This is a simple yet robust API for talking strictly to that specific
smartcard reader.  Above that is the API the Application Programmer will
use to talk to the readers.  They can either use the C SCR Reader API
described below or I will provide some Java Native Interface code that
will connect the CT-API drivers to the OpenCard Framework used by IBM.  In
the end all Unix available readers must talk the CT-API on the lowest
level.  If a Unix version of PC/SC were to become available we could
simply write a glue for that to talk to the CT-API.  Here is a simple
diagram.
                      
  SCR Reader API     Open Card Framework         PC/SC Resource manager
       |            Java Native Interface        PC/SC Glue
       |                   |                         |
  CT-API Driver --------------------------------------
       |
       |
  [Reader Hardware]


SCR Reader API version 1.0

SCR_GetAPIVersion - Allows the caller and the vendor to negotiate which
version of the Smart Card API to use

SCR_InitLibrary - Called to initialize the vendor's smart card reader
library.

SCR_CloseLibrary - Called to close the vendor's smart card reader library.

SCR_GetValidSlots - Called to enumerate and determine the capabilities of
all available smart card slots.

SCR_GetManufacturerId - Called to get a string describing the smart card
reader for the given SlotId.

SCR_OpenPort - Called to indicate a synchronous session has been set up
for the given SlotId.

SCR_ClosePort - Called to indicate a synchronous session is being closed
for the given SlotId.

SCR_IsoReset - Performs a ISO-7816 smart card reset.  If the card is not
powered a powerup is initiated.

SCR_IsoPts - Sets the speed and communications protocol for the smart card
and the vendor's library.

SCR_IsoOff - Turns off the smartcard in preparation for removal

SCR_IsoRaw - Performs raw communications with the smart card or the
reader.

SCR_IsoCase1 - Performs and ISO Case 1 transaction with the card

SCR_IsoCase2 - Performs and ISO Case 2 transaction with the card

SCR_IsoCase3 - Performs and ISO Case 3 transaction with the card

SCR_IsoCase4 - Performs and ISO Case 4 transaction with the card

SCR_IsoSet - Sets sthe state of the vendor's library independant of the
smart card

SCR_IsoGet - Gets library parameters such as ATR/etc.


Thanks
Dave

***************************************************************
Linux Smart Card Developers - M.U.S.C.L.E.
(Movement for the Use of Smart Cards in a Linux Environment)
http://www.linuxnet.com/smartcard/index.html
***************************************************************

Reply via email to