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 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/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 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/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>