This is a web application acting as a universal smartcard proxy.
What this means: this provides a web interface to a smartcard, together with detailled login about the communication passing by.
One of the goals is to allow testing of software which necessitate a smartcard from computer without 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).
You can run it as a standalone Python cherrypy server, or as werkzeug server, or embed it inside apache/IIS/Lighttpd/nginx/...
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.
- It is session aware.
- It logs everything in a DB
- It can be configured.
- It supports multiple implementations.
- It supports Bonjour
- It supports SOAP
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)
The network layer is done by werkzeug
The best is to clone werkzeug repository at the root of the webscard repository. Then two options if you dont want to install it system-wide: you can symlink
werkzeug-main/werkzeug to your root directory so that
import werkzeug works fine, or make a virtualenv.
This is an optional dependency if you don't want to play with real hardware.
It's recommended to install it from the package available from sourceforge as it needs compiling, swiging, and so on ...
This is how the DB stuff is done.
Same recommendations as for Werkzeug.
For XML parsing for SOAP, same as for werkzeug ...
Get it from here
For web templating.