Happy 1999,

The second release of PC/SC is out for download.  It includes an ICCSP for
Cryptoflex cards (which will work with Multiflex) and support for
Schlumberger, Litronic, and Towitoko readers.  Please read the following
README file for more information.

Applications can now be written.  New releases of PC/SC will not affect
your application.  At most you may have to call 3-5 functions at the
beginning of your Application to init RPC in future releases.  I have been
telling people not to write apps on the older musclecard stuff.  It is
finally safe to write applications and future releases of PC/SC will not
affect them much.  PC/SC gives you a programming interface that is card
and reader independant.

********************************************

Title  : PC/SC for Linux
Author : David Corcoran ([EMAIL PROTECTED])
License: See file docs/LICENSE
         GNU Public License
         Copyright (C) 1999 David Corcoran

*********************************************

Please see INSTALL for installation instructions.   Go to:
http://www.smartcardsys.com and download document 6 for API
programming documentation.
  
                docs    - Documentation               
                etc     - Configuration Files
pcsc-0.xx.xx -  include - Common Include Files
                src     - Source Files
                test    - Test Application

The installable modules are located under src/resmgr/modules/ for
Reader Driver Modules and src/iccsp/ for ICCSC Service Provider
Modules.

This is my 2nd release of PC/SC for Linux.  Future releases will occur
more frequently as most of it is finished.  This version of PC/SC includes
the following:

ICCSP ( Smartcard Service Provider ) for the Schlumberger Cryptoflex 4k
Note: only file operations are completed here.  The crypto is not
implemented yet.  Also Create File is not until I can get a list of TLV
structure definitions ( which will be real soon )

Almost Complete Resource Manager

IFD Drivers for the Litronic Argus 210, Schlumberger Reflex 62/64, and the
Towitoko ChipDrive and ChipDrive Micro.

Note: The Litronic and Towitoko Drivers have not yet been fully tested as
of this release.

This version of PC/SC allows the application writer to write an 
application and make little changes to it to work with the final 
version.  All of the function calls will remain the same.  There 
will be about 3 - 5 functions that will need to be called at the 
beginning of your application which will initialize the RPC when 
it is implemented.

The current version has built the Smartcard Service Provider
(ICCSP) as a shared object, and the Resource Manager as a shared
object. The application links itself to both of these shared
objects in the meantime until RPC separates the ICCSP and the 
Resource Manager.  Since there can exist many different smartcards, 
different ICCSPs will be installed on the system.  Future releases
will virtualize the ICCSP classes and the appropriate class will
be dynamically loaded when the application makes a request to the
reader.  SCARDTRACK will identify the ATR of the card in the 
requested reader and match it in the configuration file 
etc/cards.conf.  There it will get the cooresponding library path,
and load it.  The application will then have to do the following:

Initialize the RPC ( Not implemented yet )

Search for available Readers using RESOURCEQUERY.ListReaders()

Connect to the Reader of choice using SCARD.AttachIFD()

.. All of it's commands ..

Disconnect from the Reader using SCARD.Detach()

Close the RPC ( Not implemented yet )


Here are some Future Goals and changes that will be made:
********************************************************************
NONE OF THESE WILL AFFECT YOUR APPLICATION WRITING EXCEPT THE
ADDITION OF RPC WHICH WILL NOT AFFECT IT TREMENDOUSLY - YOU MAY
JUST HAVE TO ADD 3-5 LINES OF CODE AT THE BEGINNING OF YOUR APP.

All fixed width strings will become String class.  All Microsoft
string arrays will be removed.  msstr.c/msstr.h will be removed.
Currently the code contains a mixture of fixed strings and String
class strings.  I have been slowly migrating to the String class 
but not all at once since that would break alot of stuff.

All BYTE arrays and String Arrays will become vectors.  You will
notice a mixed use of vectors in the code already.  I can't figure
out why Microsoft would include the array size in some functions but
not in others.

RPC will be implemented.  This will have the Resource Manager as a 
running process and ICCSP's will connect to it using Remote Procedure
Calling.

Much of the Cryptoflex ICCSP is not finished such as the cryptographic
functions.  These will be finished in later releases.

A new layer of abstraction between SCARDCOMM and the IFD_Handler
interface.  This will allow me to control sharing better and factory
multiple connections to the same reader.  Currently sharing information
is stored in the IFD_Handler itself.  This is not too good.

FileAccess, CHVerification, CryptProv, CryptHash, SCard, and CryptKey
will all contain virtual abstract functions which will allow me to 
provide a seamless way of allowing me to dynamically connect different
ICCSP libraries to functions included in the application.

The IFD_Handlers will support exception throwing during card in/out
events.  This will notify the SCARDCOMM which will notify the
appropriate ICCSP's connected to it so they can reset their file 
pointer back to root directory 3F00.

Support for more readers.  My next is the Schlumberger Reflex 72.
I would like to see more support for PCMCIA readers also.

*****************END OF WISH LIST***********************************


A quick diagram of the current PC/SC:
Application -> ICCSP -> Resource Manager <--> IFD_Handler -> Reader

PC/SC will be distributed under the GNU Public License until Final 
Releases when it will be distributed under LGPL.  Future releases will
occur more frequently like every 2-3 weeks until final releases.

Please feel free to ask questions or make suggestions as you feel.
Contact me at: [EMAIL PROTECTED]

Thanks
Dave



*************************************************************
David Corcoran                 Internet Security/Smartcards

Home:                          Purdue University
2252 US Highway 52 West        Department of Computer Science
West Lafayette, IN 47906       CERIAS/COAST Laboratory
(765) 463-2455

http://www.cs.purdue.edu/homes/corcordt
http://www.linuxnet.com

*************************************************************

***************************************************************
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