PCSCD(8) User Manual PCSCD(8)NAMEpcscd - PC/SC Smartcard Daemon
SYNOPSISpcscd [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
DESCRIPTIONpcscd 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 -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/SmartCardSer‐
vices/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/SmartCard‐
Services/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 automatically determine when a reader is inserted or
removed.
SERIAL SMART CARD READER DRIVERS
Serial Smart card reader drivers are placed in the /usr/libexec/Smart‐
CardServices/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 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 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.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 ALSOpcsctool(1),
AUTHORS
David Corcoran <corcoran@identityalliance.com> and Ludovic Rousseau
<ludovic.rousseau@free.fr>
Linux March 2002 PCSCD(8)