| 1 |
Title : PCSC Lite
|
| 2 |
Authors : David Corcoran, Ludovic Rousseau
|
| 3 |
Version : 1.2.9-beta10
|
| 4 |
License : See file COPYING
|
| 5 |
Document: docs/pcsc-lite.pdf
|
| 6 |
docs/ifdhandler-3.pdf
|
| 7 |
Requires: A C compiler
|
| 8 |
Make, linker tools
|
| 9 |
Lex (Lexical Analyzer).
|
| 10 |
|
| 11 |
Tested Platforms:
|
| 12 |
Linux 2.4 (Redhat 7.1, Suse 7.1/7.2, Debian 3.0)
|
| 13 |
Mac OS X 10.2, 10.3
|
| 14 |
FreeBSD, NetBSD, OpenBSD
|
| 15 |
Solaris 8 / 9
|
| 16 |
Tru64 UNIX 5.1B
|
| 17 |
AIX 4.3, 5.2
|
| 18 |
HP-UX 11
|
| 19 |
|
| 20 |
Welcome to PCSC Lite. The purpose of PCSC Lite is to
|
| 21 |
provide a Windows(R) SCard interface in a very small form factor for
|
| 22 |
communicating to smart cards and readers. PCSC Lite can be compiled
|
| 23 |
directly to a desired reader driver or can be used to dynamically
|
| 24 |
allocate/deallocate reader drivers at runtime (default).
|
| 25 |
|
| 26 |
PCSC Lite uses the same winscard API as used under Windows(R).
|
| 27 |
|
| 28 |
For security aware persons please read the SECURITY file on possible
|
| 29 |
vulnerabilites to pcsclite, how you can fix some, and how some will
|
| 30 |
be fixed.
|
| 31 |
|
| 32 |
For information on how to install driver please read the DRIVERS file.
|
| 33 |
|
| 34 |
Memory cards are supported through MCT specifications which is an APDU
|
| 35 |
like manner sent normally through the SCardTransmit() function. This
|
| 36 |
functionality is done in the driver.
|
| 37 |
|
| 38 |
INSTALLATION:
|
| 39 |
|
| 40 |
Installation is simple. Type ./configure and then make and make install.
|
| 41 |
Options:
|
| 42 |
|
| 43 |
./configure
|
| 44 |
|
| 45 |
--enable-libusb Enable USB libusb support
|
| 46 |
(on Linux, *BSD, etc.).
|
| 47 |
--enable-usbdropdir=DIR directory containing USB drivers
|
| 48 |
(default /usr/local/pcsc/drivers)
|
| 49 |
--disable-musclecarddebug Disable MuscleCard debugging messages
|
| 50 |
--enable-debugatr Enable ATR parsing debug output
|
| 51 |
--enable-scf use SCF for reader support
|
| 52 |
--prefix=location Install to <location>
|
| 53 |
--enable-confdir=DIR Use DIR as the configuration directory
|
| 54 |
(/etc by default)
|
| 55 |
--enable-runpid=FILE Store the daemon pid in file FILE
|
| 56 |
--enable-ipcdir=DIR directory containing IPC files
|
| 57 |
(default /var/run)
|
| 58 |
|
| 59 |
|
| 60 |
By running pcscd under a priveledged account you can link to
|
| 61 |
libpcsclite.so and it will act as a client to the pcscd allowing multiple
|
| 62 |
applications to be run under non-priveledged accounts.
|
| 63 |
|
| 64 |
Then type make install to copy etc/reader.conf to
|
| 65 |
/etc/reader.conf and the libraries to /usr/local/lib. If you choose
|
| 66 |
not to have your reader.conf in /etc then use --enable-confdir=DIR
|
| 67 |
|
| 68 |
You must be root to do make install in the default locations.
|
| 69 |
|
| 70 |
Be sure to edit the /etc/reader.conf file to fit your needs and make sure
|
| 71 |
your IFD Handler driver is located in the path specified as LIBRARYPATH
|
| 72 |
in reader.conf. If you are using a reader with multiple smart card slots
|
| 73 |
all you have to do is define a different FRIENDLYNAME in the reader.conf
|
| 74 |
for each reader. Both will have the same information otherwise.
|
| 75 |
|
| 76 |
There is an config file generator in the utils directory. It is called
|
| 77 |
installifd. You may use this to generate the /etc/reader.conf file.
|
| 78 |
|
| 79 |
USB users shall not use /etc/reader.conf. pcscd will give
|
| 80 |
a warning that the file does not exist or contain anything useful.
|
| 81 |
|
| 82 |
There is a test program with this package:
|
| 83 |
|
| 84 |
testpcsc: Linked to libpcsclite. Must run /usr/local/pcsc/bin/pcscd
|
| 85 |
and then ./testpcsc. pcscd must be run as root or a hardware
|
| 86 |
priveledged user. ./testpcsc can be run under any account.
|
| 87 |
|
| 88 |
LIBUSB SUPPORT:
|
| 89 |
Versions after 1.2.0 support libusb. Available on GNU/Linux and *BSD.
|
| 90 |
|
| 91 |
If you do not have libusb (or do not want to use it) on your system you
|
| 92 |
should use --disable-libusb. If you use --disable-libusb under Linux the
|
| 93 |
old USB code will be used instead.
|
| 94 |
|
| 95 |
In order to use dynamic driver loading, you need to supply a directory
|
| 96 |
called "XXXX.bundle" in the usb dropdir directory (--enable-usbdropdir=PATH).
|
| 97 |
Here, the string "XXXX" stands for an arbitrary driver name, like in
|
| 98 |
"ifd-GemPC430.bundle". An example .bundle-directory can be found in the
|
| 99 |
source distribution of the ifd-gempc driver
|
| 100 |
(http://ludovic.rousseau.free.fr/softwares/ifd-GemPC/)
|
| 101 |
|
| 102 |
SOLARIS:
|
| 103 |
Solaris PC/SC applications must link with -lsocket since
|
| 104 |
the libraries are not statically linked.
|
| 105 |
|
| 106 |
QUESTIONS:
|
| 107 |
|
| 108 |
The API documentation is provided in PDF format under the docs
|
| 109 |
directory. For questions, please email me at:
|
| 110 |
<David Corcoran> corcoran@linuxnet.com
|
| 111 |
|
| 112 |
On some plateforms (GNU/Linux on mips and mipsel, FreeBSD and possibly
|
| 113 |
other *BSD suystems) you must use:
|
| 114 |
$ ./configure LDFLAGS="-lpthread"
|
| 115 |
|
| 116 |
$Id$
|
| 117 |
|