A short introduction
PC/SC is the de-facto standard to interface Personal Computers with Smart Cards (and smartcard readers/writers of course), and is available on most operating systems, including Windows and Linux.
There are plenty of documents and tutorials regarding the PC/SC API are available on the web, including the reference documentation on MSDN. Anyway, if you're still unfamiliar with the API, we've written a short manual that is your recommended starting point :
SpringCard's Simplified documentation of the PC/SC API
As PC/SC has been designed for smartcards -and at a period where smartcards were only contact cards-, there's nothing immediate when it goes to contactless cards not to mention contactless memory cards (such as Mifare for instance).
Fortunately, SpringCard CSB6 family makes it easy to work with those cards, thanks to an embedded APDU interpreter, that translates "classical smartcard commands" into efficient sequences to read and write contactless memory cards and RFID tags.
The relevant documentation is to be found in this manual :
CSB6 Family : PC/SC vendor specific attributes and commands
(This manual also provides information on accessing reader's serial number, driving the LED/buzzer and the RF field, and more).
Software
SpringCard PC/SC Quickstart
SpringCard PC/SC Quickstart is a set of sample applications, you may download for free.
You may use the applications free of charge, but you must observe the terms of our license.
The source code of those applications is also available for registered customers, within the free PC/SC SDK.
- SpringCard PC/SC Quickstart (Windows 2000/XP/Vista installer)
- SpringCard PC/SC SDK (ZIP archive)
SpringCard PC/SC Quickstart includes :
PC/SC DiagPC/SC Diag is a quick'n'dirty software to exchange APDU with smartcards or contactless cards, and also control commands with SpringCard PC/SC readers. Source code is available in the PC/SC SDK (Win32 native, written in C++ with MFC). |
|
C# ScriptorC# Scriptor is a basic PC/SC scripting tool, to send APDU commands to a smartcard using a batch file or manual entries. Source code is available in the PC/SC SDK (requires the .NET framework, written in C#). |
|
SCardToolkitSCardToolkit is an advanced software to explore any smartcard on the APDU level. SCardToolkit is highly expandable, yet comes this an impressive list of the APDU supported by current contactless cards. Source code is available in the PC/SC SDK (requires the .NET framework, written in C#). |
|
Card ToolCard Tool allows you to read/write several types of card in a "Hexadecimal editor" interface. Cards currently implemented : Source code is available in the PC/SC SDK (requires the .NET framework, written in C#). |
|
Open-source PC/SC software
gScriptor for WindowsgScriptor is a basic PC/SC scripting tool, to send commands to a smart card using a batch file or manual entries. gScriptor is open-source software released under GPL ; authors are Lionel Victor and Ludovic Rousseau (official project homepage). gScriptor is written in Perl+GTK. Our setup program for Windows includes the Perl+GTK runtime. |
|
- gScriptor setup (Windows 2000/XP/Vista installer)
Other resources
Java
The Java SmartCard I/O API (javax.smartcardio) is defined by JSR 268 and available since Java 6 (JRE / JDK 1.6). It is a portable and interoperable way to access smartcards from Java application or applets, and it works on top of the PC/SC stack.
The complete documentation of this Java API is available in Sun's Java online reference..
We've written a technical guide that depicts in detail how to develop a Java applet that will be the 'bridge' between an HTML+JavaScript web page and a smartcard through a PC/SC smartcard reader. The applet has to be signed in order to gain access to computer's resources (smartcards are out of the web browser's sandbox). It has to be scriptable to, so JavaScript interpreted code may access the smartcard, and not only Java compiled and signed bytecode.
- The PC/SC Technical Guide : a Java applet for smartcard-aware web pages,
- See a live demo of our sample applet.
CodeProject
www.codeproject.com is a web board full of really interesting tutorials and resources for developers.
Don't miss the two interesting articles (with comprehensive and reusable source code) written by Olivier Rouit :
- A smartcard framework for .NET provides high-level methods to invoke PC/SC functions from C#, VB, or other .NET language,
- An XML framework for .NET to program smartcard applications is an interesting approach to separate the low-level smartcard APDU commands from the actual application logic.
The tutorial How to access smartcards simply and effectively contains Visual C++ source code that is a little more object-oriented than the ones in our SDK.
SCardSoft
SCardSoft is a small company based in Ukraine. They offer Smart Card ToolSet PRO, a useful application to work with smartcards at low level, and also SCard X Easy, an ActiveX control that makes it easy to work with smartcards from virtually any application or language supporting the ActiveX technology.
- Visit SCardSoft at www.scardsoft.com

