The Virtual Smartcard Architecture provides software to emulate a smartcard. The virtual smartcard is internally accessible via PCSC and externally via USB (as CCID reader) or NFC (using an OpenPICC).
The Virtual Smartcard Architecture consists of the following components:
A virtual smartcard: The purpose of the virtual smartcard is to emulate a smartcard and make it accessible through PCSC. Currently the virtual smartcard supports almost all commands of ISO-7816 including secure messaging. Besides a plain ISO-7816 smartcard it is also possible to emulate a German ePass (only basic access control) and a rudimentary Cryptoflex smartcard.
The virtual smartcard communicates with the virtual smartcard driver through a socket on port 35963.
NFC module
A USB CCID reader
The purpose of the program 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 plugs in a USB CCID reader to the host system.
OpenPACE is an implementation of the Password-Authentication-Connection-Establishment (PACE) conforming to BSI TR-03110 version 2.0. OpenPACE enables applications to establish a strong session key using a weak password independent from the use of a smartcard. If a German "elektronischer Personalausweis" is involved nevertheless, OpenPACE offers a smartcard abstraction layer to connect to the identity card. OpenPACE consists of the following components: