OpenSC provides a set of libraries and utilities to work with smart cards. Its main focus is on cards that support cryptographic operations, and facilitates their use in security applications such as authentication, mail encryption, and digital signatures. OpenSC implements the PKCS#11 API so that applications supporting this API (such as Mozilla Firefox and Thunderbird) can use it. On the card, OpenSC implements the PKCS#15 standard, and aims to be compatible with every software/card that does so.
OpenOTP is an implementation of the HOTP protocol using a ZeitControl Cardsystems ZC3.9 BasicCard and standalone balance reader, standalone Spyrus PAR2 (Personal Access Reader), or PCSC-Lite supported smart card reader. Included is a C library implementation of the HOTP protocol and associated user database management, HOTP PAM library, OpenVPN plug-in module, micro RADIUS server with HOTP support, and utilities for managing the smart card, Spyrus reader, and host side HOTP user database. The PCSC-Lite API provides reader support for smart card management.
Cardpeek is a tool to read the contents of ISO7816 smartcards. It features a GUI to represent card data in a tree view, and it is extendable with a scripting language (LUA). The goal of this project is to allow smartcard owners to be better informed about what type of personal information is stored in these devices. The tool currently reads the contents of: EMV bank cards, Calypso public transport cards (such as Navigo, RavKav, and Mobib), Belgian eID cards, GSM SIM cards, the French Vitale 2 health card, some Mifare cards, and Moneo electronic purse cards.
autober is a language for generating BER decoders. It's different from an ASN.1 compiler in that it's much simpler and it only deals with BER-encoded messages. It is intended for smart card and RFID applications where much of the data stored on these devices is, in-fact, BER-encoded TLV data. The language is designed to be very similar to the template definitions found in the specifications for smart card and RFID applications.
PC/SC-Proxy allows for access to PC/SC daemons on remote machines. There are two use cases. It can be used with thin clients and a terminal server to make the session access readers connected to the thin client. In this case, the address of the remote PC/SC service is taken from the login information (utmp). The second use case is when applications running inside a virtual machine (e.g. VirtualBox) need access to card readers of the host machine without disturbing operations on the host itself.
The Smart Card Detective (SCD) is a general framework for research on smart cards. It allows you to monitor any smart card application (including Chip and PIN / EMV transactions) and create your custom applications. The software is completely open source, and the hardware can be bought from Smart Architects. The device has a smart card interface as well as a terminal/reader interface, allowing the SCD to act as a passive/active monitor between a card and a reader or emulate a card or a terminal. Using the Python command line interface, you can interact with the SCD using a PC. This allows more flexible operation, although the SCD also features many stand-alone applications and a battery so that you can also use it without a PC.