summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2010-12-09 17:18:26 +0200
committerAlon Levy <alevy@redhat.com>2010-12-09 17:18:26 +0200
commit748a911a9926c2f09a018de888b4deca9880d025 (patch)
tree450c508d1ca484370a909fd979be3059733a6e55
parent39d78c14c977266c2e4357581504f9ffc204b217 (diff)
README update - titles marking change, update qemu command line
-rw-r--r--README42
1 files changed, 23 insertions, 19 deletions
diff --git a/README b/README
index 870e590..a065c42 100644
--- a/README
+++ b/README
@@ -1,18 +1,5 @@
-Using the demo
-
-Run qemu with the usb-ccid device:
- export PORT=2001
- qemu -chardev socket,server,host=0.0.0.0,port=PORT,id=ccid,nowait -device usb-ccid,chardev=ccid <rest of options as usual>
-build requirements: NSS (builds successfully with 3.12.6-8 on fedora 14)
-Run make to build.
-Run with any available readers:
- ./vscclient hostip port
-Run with simulated single reader:
- ./vscclient -c cert1 -c cert2 -c cert3 hostip $PORT
-To create the certs you can use certutil: (this creates a cert named cert1)
- sudo certutil -d /etc/pki/nssdb -x -t "CT,CT,CT" -S -s "CN=cert1" -n cert1
-
Virtual Smart Card Emulator
+===========================
This emulator is designed to provide emulation of actual smart cards to a
virtual card reader running in a guest virtual machine. The emulated smart
@@ -40,8 +27,8 @@ original DoD CAC standard with separate pki containers. This emulator lives in
cac.c. More than one card type emulator could be included. Other cards could
be emulated as well, including PIV, newer versions of CAC, PKCS #15, etc.
---------------------
-Replacing the Socket Based Virtual Reader Interface.
+Replacing the Socket Based Virtual Reader Interface
+===================================================
The current implementation contains a replacable module vscclient.c. The
current vscclient.c implements a sockets interface to the virtual ccid reader
@@ -157,8 +144,8 @@ that the CCID reader can call are:
This function returns a pending event if it exists, otherwise it returns
NULL. It does not block.
-----------------
Card Type Emulator: Adding a New Virtual Card Type
+==================================================
The ISO 7816 card spec describes 2 types of cards:
1) File system cards, where the smartcard is managed by reading and writing
@@ -366,8 +353,8 @@ applets. Only those applets needed by the coolkey pkcs#11 driver on the guest
have been implemented. To support the full range CAC middleware, a complete CAC
card according to the CAC specs should be implemented here.
-------------------------------
Virtual Card Emulator
+=====================
This code accesses both real smart cards and simulated smart cards through
services provided on the client. The current implementation uses NSS, which
@@ -467,8 +454,9 @@ functions:
Set the state of 'card' to the current power level and reset its internal
state (logout, etc).
--------------------------------------------------------
List of files and their function:
+=================================
+
README - This file
card_7816.c - emulate basic 7816 functionality. Parse APDUs.
card_7816.h - apdu and response services definitions.
@@ -493,3 +481,19 @@ vscard_common.h - common header with the guest qemu usb driver.
mutex.h - header file for machine independent mutexes.
Makefile - basic Makefile that needs to be changed to autoconf someday.
link_test.c - static test to make sure all the symbols are properly defined.
+
+Running with Qemu usb-ccid:
+===========================
+
+Run qemu with the usb-ccid device:
+ export PORT=2001
+ qemu -chardev socket,server,host=0.0.0.0,port=PORT,id=ccid,nowait -device usb-ccid -device ccid-card-passthru,chardev=ccid <rest of options as usual>
+build requirements: NSS (builds successfully with 3.12.6-8 on fedora 14)
+Run make to build.
+Run with any available readers:
+ ./vscclient hostip port
+Run with simulated single reader:
+ ./vscclient -c cert1 -c cert2 -c cert3 hostip $PORT
+To create the certs you can use certutil: (this creates a cert named cert1)
+ sudo certutil -d /etc/pki/nssdb -x -t "CT,CT,CT" -S -s "CN=cert1" -n cert1
+