Virtual Smart Card

Virtual Smart Card emulates a smart card and makes it accessible through PC/SC. Currently the Virtual Smart Card supports the following types of smart cards:

  • Generic ISO-7816 smart card including secure messaging

  • German electronic identity card (nPA) with complete support for EAC (PACE, TA, CA)

  • Electronic passport (ePass/MRTD) with support for BAC

  • Cryptoflex smart card (incomplete)

The vpcd is a smart card reader driver for PCSC-Lite 2 and the windows smart card service. It allows smart card applications to access the vpicc through the PC/SC API. By default vpcd opens slots for communication with multiple vpicc’s on localhost on port 35963 and port 35964. But the vpicc does not need to run on the same machine as the vpcd, they can connect over the internet for example.

Although the Virtual Smart Card is a software emulator, you can use PC/SC Relay to make it accessible to an external contact-less smart card reader.

The file utils.py was taken from Henryk Plötz’s cyberflex-shell 1.

System Message: WARNING/2 (\input{$wd/bilder/tikzstyles.tex} \node (pcsclite) [klein, aktivbox, inner xsep=.7cm, text width=3cm] {PC/SC Framework\\\ (\texttt{pcscd} or \texttt{SCardSvr}) }; \node (sca) [aktivbox, klein, left=of pcsclite] {Smart Card\\Application}; \node (vpcd) [box, at=(pcsclite.east), xshift=-.3cm] {\texttt{vpcd}}; \node (vicc) [aktivbox, right=2cm of pcsclite] {\texttt{vicc}}; \begin{pgfonlayer}{background} \path[linie] (sca) edge (pcsclite) (vpcd) edge node {\includegraphics[width=1.2cm]{$wd/bilder/simplecloud.pdf}} (vicc) ; \end{pgfonlayer})

!pdf2svg command cannot be run

Virtual Smart Card used with PCSC-Lite or WinSCard

New in version 0.7: The Virtual Smart Card optionally brings its own standalone implementation of PC/SC. This allows accessing vpicc without PCSC-Lite. Our PC/SC implementation acts as replacement for libpcsclite which can lead to problems when used in parallel with PCSC-Lite.

System Message: WARNING/2 (\input{$wd/bilder/tikzstyles.tex} \node (pcsclite) [klein, box, text width=4cm] {Virtual Smart Card's\\ PC/SC Framework }; \node (sca) [aktivbox, klein, left=of pcsclite] {Smart Card\\Application}; \node (vicc) [aktivbox, right=2cm of pcsclite] {\texttt{vicc}}; \begin{pgfonlayer}{background} \path[linie] (sca) edge (pcsclite) (pcsclite) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc) ; \end{pgfonlayer})

!pdf2svg command cannot be run

Virtual Smart Card used with its own PC/SC implementation