Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pcsc-spy(1) [centos man page]

PCSC-SPY(1)							    PC/SC lite							       PCSC-SPY(1)

NAME
pcsc-spy - A PC/SC spy command SYNOPSIS
pcsc-spy [-n|--nocolor] [-d|--diffable] [-h|--help] [fifo_filename] DESCRIPTION
pcsc-spy displays PC/SC calls of an application. It must be used with the libpcscspy.so library. To be able to spy the PC/SC layer, the application flow must be modified so that all PC/SC calls are redirected. Two options are available: - the application is linked with libpcsclite.so.1 - the application loads the libpcsclite.so.1 library using dlopen(3) OPTIONS
-d, --diffable Demove the variable parts (like handler values) from the output so that two execution can be more easily compared. -h, --help Display a short help text. -n, --nocolor Disable the output colorization (if you want redirect the output in a file for example). -v, --version Print the version of the pcsc-spy program plus a copyright, a list of authors. EXAMPLES
Applications linked with libpcsclite.so.1 We will use the standard LD_PRELOAD loader option to load our spying library. Example: LD_PRELOAD=/usr/lib/libpcscspy.so pcsc_scan Application loading libpcsclite.so.1 This is the case for the PC/SC wrappers like pyscard (for Python) and pcsc-perl (for Perl). The LD_PRELOAD mechanism can't be used. Instead we replace the libpcsclite.so.1 library by the spying one. You may use install_spy.sh and uninstall_spy.sh to install and uninstall the spying library. Using the spying library without pcsc-spy is not a problem but has side effects: - a line "libpcsclite_nospy.so.1: cannot open shared object file: No such file or directory" will be displayed - some CPU time will be lost because of the PC/SC calls redirection Starting the spy tool pcsc-spy If a command argument is passed we use it instead of the default ~/pcsc-spy FIFO file. It is then possible to record an execution log and use pcsc-spy multiple times on the same log. To create the log file just do: mkfifo ~/pcsc-spy cat ~/pcsc-spy > logfile and run your PC/SC application. Mac OS X The installation is not automatic. In the pcsc-lite/src/spy directory do: make framework Then copy the PCSC.framework directory in /tmp cp -a PCSC.framework /tmp Copy the official PCSC.framework (binary only) in /tmp cp /System/Library/Frameworks/PCSC.framework/PCSC /tmp Run the application to debug as: DYLD_FRAMEWORK_PATH=/tmp pcsctest FILES
~/pcsc-spy FIFO file is used by libpcsclite.so.1 to send the raw log lines SEE ALSO
pcscd(8) AUTHOR
This manual page was written by Ludovic Rousseau <rousseau@free.fr> pcsc-lite 1.8.8 2012-08-25 PCSC-SPY(1)

Check Out this Related Man Page

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 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/SmartCardServices/drivers directory. Each driver is simply a bundle. The bun- dle contains an XML file Info.plist which is parsed by pcscd. This file contains the vendor and product id of the device. This informa- tion 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.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
pcsctool(1), AUTHORS
David Corcoran <corcoran@identityalliance.com> and Ludovic Rousseau <ludovic.rousseau@free.fr> Linux March 2002 PCSCD(8)
Man Page