git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@378 96b47cad-a561-4643-ad3b-153ac7d7599c
82 lines
3.2 KiB
Plaintext
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>
|
|
*/
|