PCSCD(8) User Manual PCSCD(8)
NAME
pcscd - PC/SC Smartcard Daemon
SYNOPSIS
pcscd [options]
OPTIONS
-a, --apdu
log APDUs and SW using the debug method (see -d)
-c, --config file
Specifies the file file as an alternate location for reader.conf
-d, --debug OUTPUT
display debug messages.
OUTPUT may be:
stdout (imply -f),
stderr (imply -f),
or syslog
-f, --foreground
Runs pcscd in the foreground (no daemon)
-h, --help
Displays information about the pcscd command line
-v, --version
Displays the program version number
DESCRIPTION
pcscd is the daemon program for pcsc-lite and musclecard framework. It is a resource manager that
coordinates communications with smart-card readers and smart cards and cryptographic tokens that are
connected to the system.
pcscd is normally started at boot time from /System/Library/StartupItems/SmartCardServices. It
allows applications to access smart cards and readers without knowing details of the card or reader.
pcscd coordinates the loading of drivers for card readers and plug-ins for different card types.
The purpose of pcsc-lite is to provide both a cross compatible API for migrating Windows based PCSC
applications to Unix and to provide a pluggable architecture for supporting smartcards and crypto-graphic cryptographic
graphic tokens through high level API's.
At startup, pcscd loads the smart card reader drivers specified in the /etc/reader.conf file (or
specified using -c file).
When a smart card is inserted into a reader, pcscd uses the ATR string from the card to identify this
card. The /usr/libexec/SmartCardServices/services directory contains plug-ins for the card. These
plug-ins are searched. If the ATR string matches, the client library loads that plug-in for that
token.
USB SMART CARD READER DRIVERS
USB Smart card reader drivers are placed in the /usr/libexec/SmartCardServices/drivers directory.
Each driver is simply a bundle. The bundle contains an XML file Info.plist which is parsed by pcscd.
This file contains the vendor and product id of the device. This information allows pcscd to auto-matically automatically
matically determine when a reader is inserted or removed.
SERIAL SMART CARD READER DRIVERS
Serial Smart card reader drivers are placed in the /usr/libexec/SmartCardServices/drivers directory.
Each driver is simply a shared object file. The pcscd locates serial drivers with the
/etc/reader.conf file. The file has the following format:
# comment
FRIENDLYNAME <Descriptive name>
DEVICENAME <Short name>
LIBPATH <Location of the driver library>
CHANNELID <Hexadecimal channel identificator>
FRIENDLYNAME
is a user-friendly name of the reader that is served by this driver. This name is displayed
to the user when necessary.
DEVICENAME
is a driver specific value. If you do not know this value, GEN_SMART_RDR is a good choice.
LIBPATH
is the full path to the shared library.
CHANNELID
is the channel ID for serial-port, smart-card readers. This could vary depending on the
driver in which you are using - check the driver README for more information. Some use the
following:
/dev/ttyS0 (COM1) -> 0x0103F8 or 1
/dev/ttyS1 (COM2) -> 0x0102F8 or 2
/dev/ttyS2 (COM3) -> 0x0103E8 or 3
/dev/ttyS3 (COM4) -> 0x0102E8 or 4
Example:
# Configuration file for pcsc-lite
FRIENDLYNAME "My Smartcard Reader"
DEVICENAME GEN_SMART_RDR
LIBPATH /usr/libexec/SmartCardServices/drivers/my_reader.so
CHANNELID 0x0103F8
# End of file
Multiple drivers can be listed in /etc/reader.conf.
Drivers are available at http://www.musclecard.com/drivers.html
SMART CARD PLUG-INS
pcsc-lite uses plug-ins to handle different types of smart cards. There is a plug-in for each smart-
card type. Plug-ins are installed in the /usr/libexec/SmartCardServices/services directory. Plug-ins
for cards/tokens are available from the MUSCLE web site http://www.musclecard.com
FILES
/etc/reader.conf : Reader configuration file
/System/Library/StartupItems/SmartCardServices : pcscd startup script
/var/run/pcscd.pid : process id of the running pcscd
/usr/libexec/SmartCardServices/drivers/ : directory containing bundles for USB drivers"
BUGS
None known.
SEE ALSO
pcsctool(1),
AUTHORS
David Corcoran <corcoran@identityalliance.com> and Ludovic Rousseau <ludovic.rousseau@free.fr>
Linux March 2002 PCSCD(8)
|