using a dedicated folder for documentation in each subproject
git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@587 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
@@ -1,15 +1,2 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
SUBDIRS = src m4 patches
|
SUBDIRS = src m4 patches doc
|
||||||
|
|
||||||
EXTRA_DIST = README.dox apdus
|
|
||||||
|
|
||||||
do_subst = sed \
|
|
||||||
-e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
|
|
||||||
-e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
|
|
||||||
-e 's,[@]builddir[@],$(builddir),g' \
|
|
||||||
-e 's,[@]prefix[@],$(prefix),g' \
|
|
||||||
-e 's,[@]exec_prefix[@],$(exec_prefix),g' \
|
|
||||||
-e 's,[@]libdir[@],$(libdir),g' \
|
|
||||||
-e 's,[@]includedir[@],$(includedir),g' \
|
|
||||||
-e 's,[@]VERSION[@],$(VERSION),g' \
|
|
||||||
-e 's,[@]top_srcdir[@],$(top_srcdir),g'
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
README.dox
|
doc/README.rst
|
||||||
@@ -188,5 +188,6 @@ AC_CONFIG_FILES([
|
|||||||
m4/Makefile
|
m4/Makefile
|
||||||
patches/Makefile
|
patches/Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
|
doc/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
1
ccid/doc/Makefile.am
Normal file
1
ccid/doc/Makefile.am
Normal file
@@ -0,0 +1 @@
|
|||||||
|
EXTRA_DIST = README.rst
|
||||||
2
doc/_static/doxygen-npa
vendored
2
doc/_static/doxygen-npa
vendored
@@ -1 +1 @@
|
|||||||
../doxygen/npa/html
|
../npa/html
|
||||||
@@ -1 +0,0 @@
|
|||||||
../ccid/README
|
|
||||||
@@ -216,7 +216,7 @@ man_pages = [
|
|||||||
[u'Dominik Oepen, Frank Morgner'], 1)
|
[u'Dominik Oepen, Frank Morgner'], 1)
|
||||||
]
|
]
|
||||||
|
|
||||||
os.system("make doc -C ../npa/ >/dev/null && touch npaapi.rst")
|
os.system("cd npa && make doc >/dev/null && touch api.rst")
|
||||||
breathe_projects = {"npa": "doxygen/npa/xml"}
|
breathe_projects = {"npa": "npa/xml"}
|
||||||
breathe_default_project = "npa"
|
breathe_default_project = "npa"
|
||||||
doxylink = { 'npa' : ('doxygen/npa/npa.tag', '_static/doxygen-npa/'), }
|
doxylink = { 'npa' : ('npa/npa.tag', '_static/doxygen-npa/'), }
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
../../npa/doc/
|
|
||||||
@@ -12,10 +12,10 @@ Currently the following projects are part of vsmartcard:
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
||||||
virtualsmartcard
|
virtualsmartcard/README
|
||||||
pcsc-relay
|
pcsc-relay/README
|
||||||
npa
|
npa/README
|
||||||
ccid
|
ccid/README
|
||||||
|
|
||||||
Looking for a feature the included programs do not offer? Want to extend the
|
Looking for a feature the included programs do not offer? Want to extend the
|
||||||
functionality of some library? Apart from requesting a new feature, you can
|
functionality of some library? Apart from requesting a new feature, you can
|
||||||
@@ -23,7 +23,7 @@ have a look at these programming guides and try yourself:
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
||||||
npaapi
|
npa/api
|
||||||
|
|
||||||
Download
|
Download
|
||||||
========
|
========
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
../npa/README
|
|
||||||
1
doc/pcsc-relay
Symbolic link
1
doc/pcsc-relay
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../pcsc-relay/doc
|
||||||
@@ -1 +0,0 @@
|
|||||||
../pcsc-relay/README
|
|
||||||
1
doc/virtualsmartcard
Symbolic link
1
doc/virtualsmartcard
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../virtualsmartcard/doc
|
||||||
@@ -1 +0,0 @@
|
|||||||
../virtualsmartcard/README
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
SUBDIRS = src m4
|
SUBDIRS = src m4 doc
|
||||||
|
|
||||||
EXTRA_DIST = README.dox libnpa.pc.in Doxyfile.in apdus
|
EXTRA_DIST = libnpa.pc.in apdus
|
||||||
|
|
||||||
do_subst = sed \
|
do_subst = sed \
|
||||||
-e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
|
-e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
|
||||||
@@ -24,8 +24,7 @@ win:
|
|||||||
if DOC_ENABLED
|
if DOC_ENABLED
|
||||||
.PHONY: doc
|
.PHONY: doc
|
||||||
doc :
|
doc :
|
||||||
$(do_subst) < $(srcdir)/Doxyfile.in > Doxyfile
|
$(MAKE) doc -C doc
|
||||||
$(DOXYGEN) Doxyfile
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
@@ -34,4 +33,4 @@ libnpa.pc:
|
|||||||
$(do_subst) < $(srcdir)/libnpa.pc.in > libnpa.pc
|
$(do_subst) < $(srcdir)/libnpa.pc.in > libnpa.pc
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
rm -rf doc Doxyfile libnpa.pc
|
rm -f libnpa.pc
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
README.dox
|
doc/README.rst
|
||||||
@@ -111,5 +111,6 @@ AC_CONFIG_FILES([
|
|||||||
Makefile
|
Makefile
|
||||||
m4/Makefile
|
m4/Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
|
doc/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
FILE_PATTERNS = *.h
|
FILE_PATTERNS = *.h
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
GENERATE_LATEX = NO
|
GENERATE_LATEX = NO
|
||||||
GENERATE_TAGFILE = @builddir@/doc/@PACKAGE_NAME@.tag
|
GENERATE_TAGFILE = @builddir@/@PACKAGE_NAME@.tag
|
||||||
GENERATE_XML = YES
|
GENERATE_XML = YES
|
||||||
INPUT = @top_srcdir@/src/npa
|
INPUT = @top_srcdir@/src/npa
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
OUTPUT_DIRECTORY = @builddir@/doc
|
OUTPUT_DIRECTORY = @builddir@
|
||||||
PROJECT_NAME = @PACKAGE_NAME@
|
PROJECT_NAME = @PACKAGE_NAME@
|
||||||
PROJECT_NUMBER = @PACKAGE_VERSION@
|
PROJECT_NUMBER = @PACKAGE_VERSION@
|
||||||
STRIP_FROM_PATH = @top_srcdir@/src
|
STRIP_FROM_PATH = @top_srcdir@/src
|
||||||
25
npa/doc/Makefile.am
Normal file
25
npa/doc/Makefile.am
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
do_subst = sed \
|
||||||
|
-e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
|
||||||
|
-e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
|
||||||
|
-e 's,[@]builddir[@],$(builddir),g' \
|
||||||
|
-e 's,[@]prefix[@],$(prefix),g' \
|
||||||
|
-e 's,[@]exec_prefix[@],$(exec_prefix),g' \
|
||||||
|
-e 's,[@]libdir[@],$(libdir),g' \
|
||||||
|
-e 's,[@]includedir[@],$(includedir),g' \
|
||||||
|
-e 's,[@]VERSION[@],$(VERSION),g' \
|
||||||
|
-e 's,[@]OPENSC_LIBS[@],$(OPENSC_LIBS),g' \
|
||||||
|
-e 's,[@]top_srcdir[@],$(top_srcdir),g'
|
||||||
|
|
||||||
|
EXTRA_DIST = README.rst Doxyfile.in example.c
|
||||||
|
|
||||||
|
if DOC_ENABLED
|
||||||
|
.PHONY: doc
|
||||||
|
doc :
|
||||||
|
$(do_subst) < Doxyfile.in > Doxyfile
|
||||||
|
$(DOXYGEN) Doxyfile
|
||||||
|
endif
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -f Doxyfile
|
||||||
@@ -76,7 +76,7 @@ Example
|
|||||||
In order to compile and execute this example you need to correctly :ref:`set up
|
In order to compile and execute this example you need to correctly :ref:`set up
|
||||||
your environment <npa-usage>`.
|
your environment <npa-usage>`.
|
||||||
|
|
||||||
.. literalinclude:: ../npa/src/example.c
|
.. literalinclude:: example.c
|
||||||
:lines: 20-
|
:lines: 20-
|
||||||
|
|
||||||
.. @author Frank Morgner <morgner@informatik.hu-berlin.de>
|
.. @author Frank Morgner <morgner@informatik.hu-berlin.de>
|
||||||
1
npa/doc/example.c
Symbolic link
1
npa/doc/example.c
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../src/example.c
|
||||||
@@ -1 +1 @@
|
|||||||
SUBDIRS = src
|
SUBDIRS = src doc
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
.. highlight:: sh
|
|
||||||
|
|
||||||
.. _libnfc: http://www.libnfc.org/
|
|
||||||
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
|
||||||
|
|
||||||
|
|
||||||
**********
|
|
||||||
pcsc-relay
|
|
||||||
**********
|
|
||||||
|
|
||||||
:Authors:
|
|
||||||
- Dominik Oepen <oepen@informatik.hu-berlin.de>
|
|
||||||
- Frank Morgner <morgner@informatik.hu-berlin.de>
|
|
||||||
:License:
|
|
||||||
GPL version 3
|
|
||||||
:Tested Platforms:
|
|
||||||
Linux (Debian, Ubuntu, OpenMoko)
|
|
||||||
|
|
||||||
Welcome to pcsc-relay. The purpose of pcsc-relay is to forward APDUs from the
|
|
||||||
OpenPICC or from a libnfc device to a smart card via the PCSC middleware. You
|
|
||||||
can use this program in combination with the virtual smart card to emulate a
|
|
||||||
ISO/IEC 14443 smart card.
|
|
||||||
|
|
||||||
|
|
||||||
============
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
pcsc-relay uses the GNU Build System to compile and install. If you are
|
|
||||||
unfamiliar with it, please have a look at the file ``INSTALL``. If you have a
|
|
||||||
look around and can not find it, you are probably working bleeding edge in the
|
|
||||||
repository. Run the following command in the pcsc-relay directory to get the
|
|
||||||
missing standard auxiliary files::
|
|
||||||
|
|
||||||
autoreconf -i
|
|
||||||
|
|
||||||
pcsc-relay has the following dependencies:
|
|
||||||
|
|
||||||
- PC/SC middleware
|
|
||||||
- libnfc_
|
|
||||||
|
|
||||||
|
|
||||||
---------------
|
|
||||||
Hints on libnfc
|
|
||||||
---------------
|
|
||||||
|
|
||||||
pcsc-relay links against libnfc_. Here is an example of how to get the standard
|
|
||||||
installation of the latter::
|
|
||||||
|
|
||||||
PREFIX=/tmp/install
|
|
||||||
LIBNFC=libnfc
|
|
||||||
svn co http://libnfc.googlecode.com/svn/trunk $LIBNFC
|
|
||||||
cd $LIBNFC
|
|
||||||
autoreconf -i
|
|
||||||
./configure --prefix=$PREFIX
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
|
|
||||||
Building pcsc-relay with libnfc_ is done best using ``pkg-config``. The file
|
|
||||||
``libnfc.pc`` should be located in ``$INSTALL/lib/pkgconfig``. Here is how to
|
|
||||||
configure pcsc-relay to use it::
|
|
||||||
|
|
||||||
./configure PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Hints on PC/SC middleware
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
PC/SC is included by default in most modern operating systems. On Unix-like
|
|
||||||
systems (Linux, OS X, Sun OS) it is realized by PCSC-Lite_. To compile
|
|
||||||
pcsc-relay you will need to install the PCSC-Lite headers from your
|
|
||||||
distribution. Windows also ships with a PC/SC middleware in form of the
|
|
||||||
Winscard module. Microsoft's developement environment Visual Studio includes
|
|
||||||
all necessary data for building pcsc-relay.
|
|
||||||
|
|
||||||
|
|
||||||
=========
|
|
||||||
Questions
|
|
||||||
=========
|
|
||||||
|
|
||||||
For questions, please use http://sourceforge.net/projects/vsmartcard/support
|
|
||||||
1
pcsc-relay/README
Symbolic link
1
pcsc-relay/README
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
doc/README.rst
|
||||||
@@ -81,11 +81,13 @@ PCSC_CFLAGS: ${PCSC_CFLAGS}
|
|||||||
PCSC_LIBS: ${PCSC_LIBS}
|
PCSC_LIBS: ${PCSC_LIBS}
|
||||||
LIBNFC_CFLAGS: ${LIBNFC_CFLAGS}
|
LIBNFC_CFLAGS: ${LIBNFC_CFLAGS}
|
||||||
LIBNFC_LIBS: ${LIBNFC_LIBS}
|
LIBNFC_LIBS: ${LIBNFC_LIBS}
|
||||||
OpenPICC device: ${PICCDEV}
|
|
||||||
|
OpenPICC device: ${piccdev}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
|
doc/Makefile
|
||||||
src/Makefile])
|
src/Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
1
pcsc-relay/doc/Makefile.am
Normal file
1
pcsc-relay/doc/Makefile.am
Normal file
@@ -0,0 +1 @@
|
|||||||
|
EXTRA_DIST = README.rst
|
||||||
82
pcsc-relay/doc/README.rst
Normal file
82
pcsc-relay/doc/README.rst
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
.. highlight:: sh
|
||||||
|
|
||||||
|
.. _libnfc: http://www.libnfc.org/
|
||||||
|
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
||||||
|
|
||||||
|
|
||||||
|
**********
|
||||||
|
pcsc-relay
|
||||||
|
**********
|
||||||
|
|
||||||
|
:Authors:
|
||||||
|
- Dominik Oepen <oepen@informatik.hu-berlin.de>
|
||||||
|
- Frank Morgner <morgner@informatik.hu-berlin.de>
|
||||||
|
:License:
|
||||||
|
GPL version 3
|
||||||
|
:Tested Platforms:
|
||||||
|
Linux (Debian, Ubuntu, OpenMoko)
|
||||||
|
|
||||||
|
Welcome to pcsc-relay. The purpose of pcsc-relay is to forward APDUs from the
|
||||||
|
OpenPICC or from a libnfc device to a smart card via the PCSC middleware. You
|
||||||
|
can use this program in combination with the virtual smart card to emulate a
|
||||||
|
ISO/IEC 14443 smart card.
|
||||||
|
|
||||||
|
|
||||||
|
============
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
pcsc-relay uses the GNU Build System to compile and install. If you are
|
||||||
|
unfamiliar with it, please have a look at the file ``INSTALL``. If you have a
|
||||||
|
look around and can not find it, you are probably working bleeding edge in the
|
||||||
|
repository. Run the following command in the pcsc-relay directory to get the
|
||||||
|
missing standard auxiliary files::
|
||||||
|
|
||||||
|
autoreconf -i
|
||||||
|
|
||||||
|
pcsc-relay has the following dependencies:
|
||||||
|
|
||||||
|
- PC/SC middleware
|
||||||
|
- libnfc_
|
||||||
|
|
||||||
|
|
||||||
|
---------------
|
||||||
|
Hints on libnfc
|
||||||
|
---------------
|
||||||
|
|
||||||
|
pcsc-relay links against libnfc_. Here is an example of how to get the standard
|
||||||
|
installation of the latter::
|
||||||
|
|
||||||
|
PREFIX=/tmp/install
|
||||||
|
LIBNFC=libnfc
|
||||||
|
svn co http://libnfc.googlecode.com/svn/trunk $LIBNFC
|
||||||
|
cd $LIBNFC
|
||||||
|
autoreconf -i
|
||||||
|
./configure --prefix=$PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
Building pcsc-relay with libnfc_ is done best using ``pkg-config``. The file
|
||||||
|
``libnfc.pc`` should be located in ``$INSTALL/lib/pkgconfig``. Here is how to
|
||||||
|
configure pcsc-relay to use it::
|
||||||
|
|
||||||
|
./configure PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
Hints on PC/SC middleware
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
PC/SC is included by default in most modern operating systems. On Unix-like
|
||||||
|
systems (Linux, OS X, Sun OS) it is realized by PCSC-Lite_. To compile
|
||||||
|
pcsc-relay you will need to install the PCSC-Lite headers from your
|
||||||
|
distribution. Windows also ships with a PC/SC middleware in form of the
|
||||||
|
Winscard module. Microsoft's developement environment Visual Studio includes
|
||||||
|
all necessary data for building pcsc-relay.
|
||||||
|
|
||||||
|
|
||||||
|
=========
|
||||||
|
Questions
|
||||||
|
=========
|
||||||
|
|
||||||
|
For questions, please use http://sourceforge.net/projects/vsmartcard/support
|
||||||
@@ -1,2 +1 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
SUBDIRS = src doc
|
||||||
SUBDIRS = src
|
|
||||||
|
|||||||
@@ -1,85 +0,0 @@
|
|||||||
.. highlight:: sh
|
|
||||||
|
|
||||||
.. _PBKDF2: https://www.dlitz.net/software/python-pbkdf2/
|
|
||||||
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
|
||||||
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
|
||||||
.. _PIP: http://www.pythonware.com/products/pil/
|
|
||||||
.. _PyCrypto: http://pycrypto.org/
|
|
||||||
.. _Python: http://www.python.org/
|
|
||||||
.. _cyberflex-shell: https://github.com/henryk/cyberflex-shell
|
|
||||||
.. _pyscard: http://pyscard.sourceforge.net/
|
|
||||||
|
|
||||||
|
|
||||||
******************
|
|
||||||
Virtual Smart Card
|
|
||||||
******************
|
|
||||||
|
|
||||||
:Authors:
|
|
||||||
- Frank Morgner <morgner@informatik.hu-berlin.de>
|
|
||||||
- Dominik Oepen <oepen@informatik.hu-berlin.de>
|
|
||||||
:License:
|
|
||||||
GPL version 3
|
|
||||||
:Tested Platforms:
|
|
||||||
- Linux (Debian, Ubuntu, OpenMoko)
|
|
||||||
- Windows (only virtual smart card, not the virtual reader)
|
|
||||||
|
|
||||||
Welcome to virtualsmartcard. The purpose of virtualsmartcard is to emulate a
|
|
||||||
smart card and make it accessible through PCSC. Currently the virtual smart
|
|
||||||
card supports almost all commands of ISO-7816 including secure messaging.
|
|
||||||
Besides a plain ISO-7816 smart card it is also possible to emulate a German
|
|
||||||
ePass (only basic access control) and a rudimentary Cryptoflex smart card. The
|
|
||||||
virtual smart card (vpicc) can be accessed through the virtual smart card
|
|
||||||
reader (vpcd) which is a driver for ``pcscd`` of PCSC-Lite_.
|
|
||||||
|
|
||||||
By default the vicc communicates with the vpcd through a socket on localhost
|
|
||||||
port 35963. The file ``utils.py`` was taken from Henryk Plötz's
|
|
||||||
cyberflex-shell_.
|
|
||||||
|
|
||||||
|
|
||||||
------------
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
virtualsmartcard uses the GNU Build System to compile and install. If you are
|
|
||||||
unfamiliar with it, please have a look at the file ``INSTALL``. If you have a
|
|
||||||
look around and can not find it, you are probably working bleeding edge in the
|
|
||||||
repository. Run the following command in the virtualsmartcard directory to get
|
|
||||||
the missing standard auxiliary files::
|
|
||||||
|
|
||||||
autoreconf -i
|
|
||||||
|
|
||||||
Depending on your usage of the vpicc you might or might not need
|
|
||||||
the following:
|
|
||||||
|
|
||||||
- Python_
|
|
||||||
- pyscard_
|
|
||||||
- PyCrypto_
|
|
||||||
- PBKDF2_
|
|
||||||
- PIP_
|
|
||||||
|
|
||||||
The vpcd has the following dependencies:
|
|
||||||
|
|
||||||
- PCSC-Lite_
|
|
||||||
|
|
||||||
|
|
||||||
------------------------
|
|
||||||
Running virtualsmartcard
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
First you need to make sure that pcscd loads the vpcd. You might need to run
|
|
||||||
``update-reader.conf`` to update pcscd's configuration file. Then ``pcscd -f
|
|
||||||
-d`` should say something like ``Attempting startup of Virtual PCD``
|
|
||||||
|
|
||||||
Now you can run ``vicc`` which connects to the virtual reader. The
|
|
||||||
command ``vicc --help`` gives an overview about the command line
|
|
||||||
options.
|
|
||||||
|
|
||||||
You should now be able to access the vpicc through the system's
|
|
||||||
PC/SC API via vpcd/pcscd. You can use the opensc-explorer or pcsc_scan to test
|
|
||||||
that.
|
|
||||||
|
|
||||||
|
|
||||||
Question
|
|
||||||
---------
|
|
||||||
|
|
||||||
For questions, please use http://sourceforge.net/projects/vsmartcard/support
|
|
||||||
1
virtualsmartcard/README
Symbolic link
1
virtualsmartcard/README
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
doc/README.rst
|
||||||
@@ -134,5 +134,6 @@ AC_CONFIG_FILES([Makefile
|
|||||||
src/Makefile
|
src/Makefile
|
||||||
src/vpcd/Makefile
|
src/vpcd/Makefile
|
||||||
src/vpicc/Makefile
|
src/vpicc/Makefile
|
||||||
|
doc/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
1
virtualsmartcard/doc/Makefile.am
Normal file
1
virtualsmartcard/doc/Makefile.am
Normal file
@@ -0,0 +1 @@
|
|||||||
|
EXTRA_DIST = README.rst
|
||||||
85
virtualsmartcard/doc/README.rst
Normal file
85
virtualsmartcard/doc/README.rst
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
.. highlight:: sh
|
||||||
|
|
||||||
|
.. _PBKDF2: https://www.dlitz.net/software/python-pbkdf2/
|
||||||
|
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
||||||
|
.. _PCSC-lite: http://pcsclite.alioth.debian.org/
|
||||||
|
.. _PIP: http://www.pythonware.com/products/pil/
|
||||||
|
.. _PyCrypto: http://pycrypto.org/
|
||||||
|
.. _Python: http://www.python.org/
|
||||||
|
.. _cyberflex-shell: https://github.com/henryk/cyberflex-shell
|
||||||
|
.. _pyscard: http://pyscard.sourceforge.net/
|
||||||
|
|
||||||
|
|
||||||
|
******************
|
||||||
|
Virtual Smart Card
|
||||||
|
******************
|
||||||
|
|
||||||
|
:Authors:
|
||||||
|
- Frank Morgner <morgner@informatik.hu-berlin.de>
|
||||||
|
- Dominik Oepen <oepen@informatik.hu-berlin.de>
|
||||||
|
:License:
|
||||||
|
GPL version 3
|
||||||
|
:Tested Platforms:
|
||||||
|
- Linux (Debian, Ubuntu, OpenMoko)
|
||||||
|
- Windows (only virtual smart card, not the virtual reader)
|
||||||
|
|
||||||
|
Welcome to virtualsmartcard. The purpose of virtualsmartcard is to emulate a
|
||||||
|
smart card and make it accessible through PCSC. Currently the virtual smart
|
||||||
|
card supports almost all commands of ISO-7816 including secure messaging.
|
||||||
|
Besides a plain ISO-7816 smart card it is also possible to emulate a German
|
||||||
|
ePass (only basic access control) and a rudimentary Cryptoflex smart card. The
|
||||||
|
virtual smart card (vpicc) can be accessed through the virtual smart card
|
||||||
|
reader (vpcd) which is a driver for ``pcscd`` of PCSC-Lite_.
|
||||||
|
|
||||||
|
By default the vicc communicates with the vpcd through a socket on localhost
|
||||||
|
port 35963. The file ``utils.py`` was taken from Henryk Plötz's
|
||||||
|
cyberflex-shell_.
|
||||||
|
|
||||||
|
|
||||||
|
------------
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
virtualsmartcard uses the GNU Build System to compile and install. If you are
|
||||||
|
unfamiliar with it, please have a look at the file ``INSTALL``. If you have a
|
||||||
|
look around and can not find it, you are probably working bleeding edge in the
|
||||||
|
repository. Run the following command in the virtualsmartcard directory to get
|
||||||
|
the missing standard auxiliary files::
|
||||||
|
|
||||||
|
autoreconf -i
|
||||||
|
|
||||||
|
Depending on your usage of the vpicc you might or might not need
|
||||||
|
the following:
|
||||||
|
|
||||||
|
- Python_
|
||||||
|
- pyscard_
|
||||||
|
- PyCrypto_
|
||||||
|
- PBKDF2_
|
||||||
|
- PIP_
|
||||||
|
|
||||||
|
The vpcd has the following dependencies:
|
||||||
|
|
||||||
|
- PCSC-Lite_
|
||||||
|
|
||||||
|
|
||||||
|
------------------------
|
||||||
|
Running virtualsmartcard
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
First you need to make sure that pcscd loads the vpcd. You might need to run
|
||||||
|
``update-reader.conf`` to update pcscd's configuration file. Then ``pcscd -f
|
||||||
|
-d`` should say something like ``Attempting startup of Virtual PCD``
|
||||||
|
|
||||||
|
Now you can run ``vicc`` which connects to the virtual reader. The
|
||||||
|
command ``vicc --help`` gives an overview about the command line
|
||||||
|
options.
|
||||||
|
|
||||||
|
You should now be able to access the vpicc through the system's
|
||||||
|
PC/SC API via vpcd/pcscd. You can use the opensc-explorer or pcsc_scan to test
|
||||||
|
that.
|
||||||
|
|
||||||
|
|
||||||
|
Question
|
||||||
|
---------
|
||||||
|
|
||||||
|
For questions, please use http://sourceforge.net/projects/vsmartcard/support
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
bin_SCRIPTS = vicc
|
bin_SCRIPTS = vicc
|
||||||
CLEANFILES = $(bin_SCRIPTS)
|
CLEANFILES = $(bin_SCRIPTS)
|
||||||
EXTRA_DIST = vicc.in Doxyfile.in
|
EXTRA_DIST = vicc.in
|
||||||
|
|
||||||
vpiccdir = $(pythondir)/virtualsmartcard
|
vpiccdir = $(pythondir)/virtualsmartcard
|
||||||
vpicccardsdir = $(vpiccdir)/cards
|
vpicccardsdir = $(vpiccdir)/cards
|
||||||
@@ -26,10 +26,3 @@ do_subst = sed -e 's,[@]PYTHON[@],$(PYTHON),g'
|
|||||||
vicc: vicc.in Makefile
|
vicc: vicc.in Makefile
|
||||||
$(do_subst) < $(srcdir)/vicc.in > vicc
|
$(do_subst) < $(srcdir)/vicc.in > vicc
|
||||||
chmod +x vicc
|
chmod +x vicc
|
||||||
|
|
||||||
if DOC_ENABLED
|
|
||||||
.PHONY: doc
|
|
||||||
doc:
|
|
||||||
$(do_subst) Doxyfile.in > Doxyfile
|
|
||||||
$(DOXYGEN) Doxyfile
|
|
||||||
endif
|
|
||||||
|
|||||||
Reference in New Issue
Block a user