NAME
pcscd - PC/SC Smartcard Daemon
SYNOPSIS
ppccssccdd [[options]] OOPPTTIIOONNSS-aa, --aappdduu
log APDUs and SW using the debug method (see -dd)
-cc, --ccoonnffiigg file
Specifies the file file as an alternate location for reader.conf-dd, --ddeebbuugg OUTPUT
display debug messages.OUTPUT may be:
ssttddoouutt (imply -ff),
ssttddeerrrr (imply -ff),
or ssyysslloogg-ff, --ffoorreeggrroouunndd
Runs pcscd in the foreground (no daemon)
-hh, --hheellpp
Displays information about the pcscd command line
-vv, --vveerrssiioonn
Displays the program version numberDESCRIPTION
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/Star-
tupItems/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 cryptographic 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 -cc 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/SmartCardSer-
vices/services directory contains plug-ins for the card. These plug-
ins are searched. If the ATR string matches, the client library loadsthat plug-in for that token.
UUSSBB SSMMAARRTT CCAARRDD RREEAADDEERR DDRRIIVVEERRSSUSB Smart card reader drivers are placed in the /usr/libexec/SmartCard-
Services/drivers directory. Each driver is simply a bundle. The bundlecontains an XML file Info.plist which is parsed by pcscd. This file
contains the vendor and product id of the device. This informationallows pcscd to automatically determine when a reader is inserted or
removed. SSEERRIIAALL SSMMAARRTT CCAARRDD RREEAADDEERR DDRRIIVVEERRSSSerial Smart card reader drivers are placed in the /usr/libexec/Smart-
CardServices/drivers directory. Each driver is simply a shared objectfile. The pcscd locates serial drivers with the /etc/reader.conf file.
The file has the following format:# comment
FRIENDLYNAME
DEVICENAME
LIBPATHCHANNELID 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, GENSMARTRDR is a good choice. LIBPATH is the full path to the shared library. CHANNELIDis 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 fol-
lowing:/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 GENSMARTRDR
LIBPATH /usr/libexec/SmartCardServices/drivers/myreader.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.SSMMAARRTT CCAARRDD PPLLUUGG-IINNSS
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.muscle-
card.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
ppccssccttooooll(1), AUTHORS David Corcoranand Ludovic Rousseau Linux March 2002 PCSCD(8)