Title   : PCSC Lite
Author  : David Corcoran
Version : 0.5.5
Document: docs/pcsc-lite-0.4.7.pdf
Document: docs/pcsc-lite-0.4.7.ps
Requires: C compiler (gcc preferred)
          libdl if using dynamic driver loading.
	  Sun RPC if using multi-application pcsc.
          lex/flex for reading configuration file reader.conf.

Welcome to PCSC Lite version 0.5.5.  The purpose of PCSC Lite is to
provide a Windows(R) SCard interface in a very small form factor.  PCSC
Lite can be compiled directly to a desired reader driver or can be used to
dynamically allocate/deallocate reader drivers at runtime (default).

PCSC Lite uses the same winscard api as used under Windows(R).  
PCSC Lite allows the use of RPC for remote connections as an option.
So basically you will have a 3 tier software:

PCSC Lite with no dynamic drivers
PCSC Lite with dynamic drivers
PCSC Lite with dynamic drivers and RPC

PCSC Lite also uses simple makefiles instead of autoconf so that
developers can easily tweak the compiler options/etc.

INSTALLATION:

Installation is simple.  Just type make.  The library will be called:
libpcsclite-core.so.  This is the core pcsclite library which only allows one
application to talk to the reader at once.  You can either directly link your
application to this or use rpc for multi-application support. In the rpc 
directory libpcsclite.so is created along with pcscserver.  By running
pcscserver under a priveledged account you can link to libpcsclite.so and it 
will act as a client to the pcscserver allowing multiple applications to be
run under non-priveledged accounts.

If you are wanting the non-rpc version of the software you will have to
edit the Makefile and uncomment the line for local (non-rpc) - you can't
miss it.  Then type make local_ver instead of make.

Then type make install to copy etc/reader.conf to
/etc/reader.conf and the libraries to /usr/local/pcsc/lib.  This will also 
create a directory /usr/local/pcsc with subdirectories lib and include.  
You must be root to do make install.

Be sure to edit the /etc/reader.conf file to fit your needs and make sure
your IFD Handler driver is located in the path specified as LIBRARYPATH
in reader.conf.  If you are using a reader with multiple smartcard slots
all you have to do is define a different FRIENDLYNAME in the reader.conf
for each reader.  Both will have the same information otherwise.

If you try out the test programs included in this package be sure to set your 
system's LD_LIBRARY_PATH to /usr/local/pcsc/lib or move the
libpcsclite-core.so and the rpc/libpcsclite.so into a directory that is 
specified in your LD_LIBRARY_PATH. Also if you are linking to 
libpcsclite-core.so be sure to be running in an account that has access to 
the hardware that is desired such as the serial port.  Generally root has 
access to all of this but you can give priveledges to a specific account.  

There are three test programs with this package:

test: Linked to libpcsclite-core.  Must edit Makefile and uncomment
      DEFS.  Must also run as root.

testrpc: Linked to libpcsclite.  Must run /usr/local/pcsc/bin/pcscserver
         and then ./testrpc.  pcscserver must be run as root.  ./testrpc
         can be run under any account.

event: Linked to libpcsclite.  Must run /usr/local/pcsc/bin/pcscserver
         and then ./event.  pcscserver must be run as root.  ./event
         can be run under any account. This program creates 2 processes
         one which starts a getstatuschange and the other which cancels
         it.

QUESTIONS: 

The API documentation is provided in PDF and PS format under the docs 
directory.  For questions, please email me at: corcoran@linuxnet.com
