Files
vsmartcard/ccid/README.dox
frankmorgner 345b6c6abf fixed configure command
git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@379 96b47cad-a561-4643-ad3b-153ac7d7599c
2010-12-11 01:40:17 +00:00

82 lines
3.2 KiB
Plaintext

/** @mainpage
Welcome to ccid. The purpose of ccid is to forward a PCSC smartcard reader
as a standard USB CCID reader. If the host system is in USB device mode, ccid
forwards the local reader via USB to an other device. If in USB host mode,
ccid virtually plugges in a USB CCID reader to the host system. ccid has
support for Password Authenticated Connection Establishment (PACE) using
OpenPACE (http://sourceforge.net/projects/openpace/).
ccid is implemented using GadgetFS. Some fragments of the source code is based
on the GadgetFS example at http://www.linux-usb.org/gadget/ and on the source
code of the OpenSC tools.
@section i INSTALLATION
See file INSTALL.
@subsection g HINTS ON GADGETFS
To create an USB Gadget in both USB host and USB client mode, you need to load
the kernel module gadgetfs. A guide focused on Debian based systems to run and
compile gadgetfs, you can find here:
http://wiki.openmoko.org/wiki/Building_Gadget_USB_Module
On OpenMoko it is likely, that you need to patch your kernel (see
http://docs.openmoko.org/trac/ticket/2206). If you also want to switch multiple
times between gadgetfs and g_ether an other patch is needed (see
https://docs.openmoko.org/trac/ticket/2240).
@subsection o HINTS ON OPENSC
ccid links against libopensc, which is discouraged and hindered since
opensc>=0.12. We really need to get rid of this dependency. But since this is a
lot of work, you will have to use older versions of opensc.
OpenSC older than r4244 will yield something like this error:
[default] apdu.c:341:sc_check_apdu: Invalid Case 4 short APDU:
cse=04 cla=10 ins=86 p1=00 p2=00 lc=2 le=0
resp=0x10353c0 resplen=256 data=0x1034a30 datalen=2
[default] pace.c:1110:EstablishPACEChannel: Could not get encrypted nonce from card (General Authenticate step 1 failed).
This requires the following patch:
http://www.opensc-project.org/opensc/raw-attachment/ticket/209/le0.patch
The following patch makes the hex dumped output more readable:
http://www.opensc-project.org/opensc/raw-attachment/ticket/263/hex_dump_align.2.patch
@subsection o HINTS ON LIBPACE
If you have a local build of OpenSSL with OpenPACE, that you want to link
against use something like the following command:
./configure \
OPENSSL_CFLAGS="-I/path/to/openssl-1.0.0c_with_openpace-0.4/include" \
LIBPACE_CFLAGS="-I/path/to/openssl-1.0.0c_with_openpace-0.4/include -I/path/to/libpace-0.1/src" \
OPENSSL_LIBS="-L/path/to/openssl-1.0.0c_with_openpace-0.4 -lcrypto" \
LIBPACE_LIBS="-L/path/to/openssl-1.0.0c_with_openpace-0.4 -lcrypto -L/path/to/libpace-0.1/src/.libs -lpace"
@section u USAGE
ccid-emulator has various command line options to customize the appearance on
the USB host. To run ccid-emulator GadgetFS must be loaded and mounted.
ccid-emulator is compatible with the unix driver libccid and the windows smart
card driver. To initialize PACE using the PC/SC API you need to patch libccid
and pcsc-lite (see directory patches).
cats-test can be used to test the PACE capabilities of a smart card reader with
PACE support (such as ccid-emulator or any other "Standardleser" CAT-S or
"Komfortleser" CAT-C) via PC/SC.
@section q QUESTIONS
For questions, please use http://sourceforge.net/projects/vsmartcard/support
@author Frank Morgner <morgner@informatik.hu-berlin.de>
*/