This is a web application acting as a universal smartcard proxy : it provides a web interface to a smartcard, together with detailled logs about the communication passing by.
One of the goals is to allow testing of software which necessitate a smartcard from a computer without a readers.
It is meant to support different implementations of smartcards:
- Software emulations of javacards applets (via pycsc and pythoncard for instance)
- or real smartcards (via pyscard in this case).
I recommend cherrypy for stable deployment (unless you already have a web server running) and werkzeug for development, werkzeug debugger is really worth mentioning, serving you a python shell at every level of the stacktrace in your browser.
Qt status bar launcher
An idea I took from the Hatta wiki, you can have a status bar icon to configure, launch, stop, ... WebSCard.
The application can also be configured as NT service, in this case, cherrypy will handle the requests.
WebSCard depends on the following packages:
- Python: Tested on 2.5 and 2.6. Take it from your distribution (cygwin won't play well if you want to play with real hardware as there is not PCSC bridge available)
- Werkzeug: The network layer is done by werkzeug
- pyscard: This is an optional dependency if you don't want to play with real hardware.
- SQLAlchemy: This is how the DB stuff is done.
- elementTree: For XML parsing for SOAP.
- Jinja2: For HTML templating.
As pyscard requires compiling/swiging, ... I recommand installing it system-wide with the download from sourceforge.
Howto install the dependencies:
You have three solutions:
- Create a virtualenv and install everything in there.
- Clone locally the repositories, and symlink/copy (depending on your platform) their package root directory in the WebSCard root directory such that an import X from WebSCard source code works fine.
- Install system-wide