PSSI: Python Simple Smartcard Interpreter
The project is hosted at http://code.google.com/p/pssi/ and uses GNU GPLv3 licence.
" Python script that provides an abstract layer for smartcard reading. Thanks to it, it is possible to read a smartcard by simply adding its structure in the form of a plugin, without taking care of the communication layer. The tool comes with several plugins, namely SIM, EMV, and NAVIGO. "The project is quiet new. The project was created 30 July 2010 on code.google.com and the first commit occured on 19 Sept 2010. No stable/numbered release is available.
Plugins
The software is not just for SIM cards but is generic and uses plugins.
SIM
This plugin displays a lot of information about the SIM:- Telecom provider
- Phone book
- SMS
EMV
This plugin also displays a lot of information about the bank card:Applications on the card
ATR : 3B 65 00 00 66 04 6C 90 00
Content
Applications List
==== 1 ====
==== 1 ====
Application information
EMV Application information
Application ID : a0 00 00 00 42 10 10
Application name : CB
Application priority : 1
==== 2 ====
Application information
EMV Application information
Application ID : a0 00 00 00 03 10 10
Application name : VISA
Application priority : 2
Card holder name
Application information
Track 2 data : 49 78 38 00 XX XX XX XX YY YY YY YY
Cardholder : MR ROUSSEAU LUDOVIC
Track 1 discretionary data : 329627000000000673000000
Card validity dates and card number
Application information
Validity beginning : 01 / 09 / 08
Validity end : 30 / 09 / 10
Card number : 49 78 38 00 XX XX XX XX
PAN sequence number : 4
The card number has been obscured by me. Even if the card expired a few months ago I think it is safer like this :-)
Transactions
==== 1 ====
==== 2 ====
Amount : 126.63 ()
CID : 64 (Cryptogram Information Data)
Country : FRANCE (Country where the terminal is located)
Currency : Euro ()
Date : 18 / 09 / 10 ()
Type : Payment ()
==== 3 ====
Amount : 36.80 ()
CID : 64 (Cryptogram Information Data)
Country : FRANCE (Country where the terminal is located)
Currency : Euro ()
Date : 31 / 08 / 10 ()
Type : Payment ()
==== 4 ====
Amount : 202.60 ()
CID : 64 (Cryptogram Information Data)
Country : FRANCE (Country where the terminal is located)
Currency : Euro ()
Date : 25 / 08 / 10 ()
Type : Payment ()
NAVIGO
Navigo is the smart card used by the RATP in Paris public transport system. I do not have such a card so could not use this plugin.ccid-utils
Another project to dump an EMV card is ccid-utils but this project did not work with my French bank card so I thought my card was not EMV compliant. But I was wrong since PSSI works great with this card.Another problem with ccid-utils is that even if the program uses Python the core of the project uses C and directly talks to a CCID reader instead of using the PC/SC API through Pyscard. ccid-utils is also very limited regarding the CCID readers it supports.