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 :
Embedded APDU interpreter and vendor-specific commands
(This manual also provides information on accessing reader's serial number, driving the LED/buzzer and the RF field, and more).
Software
Samples from the SpringCard PC/SC SDK
SpringCard provides a free PC/SC SDK that includes useful demo applications. Some of them are also made available below as ready-to-use Windows binary for a direct download.
You may use those applications free of charge, but you must observe the terms of our license.
- SpringCard PC/SC SDK (ZIP archive)
PC/SC DiagPC/SC Diagnostic 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 provided in the PC/SC SDK. There are two versions (both in this setup and in the SDK) : a .NET release (written in C#) and the legacy Win32 release, written in C++ using MFC (not supported anymore). Download SpringCard PC/SC Diag (Windows setup) |
|
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 provided in the PC/SC SDK (requires the .NET framework, written in C#). Download SpringCard csScriptor (Windows setup) |
|
NFCTool and NFCSpTrayNFCTool is a full-featured software to read/write SmartPosters or vCard into NFC Forum compliant tags (type 2 and type 4 are supported). NFCSpTray is a small unitilty that sits in the tray-bar and open the URL stored in SmartPoster tags. Source code is provided in the PC/SC SDK (requires the .NET framework, written in C#). Download SpringCard NfcTool & NfcSpTray (Windows setup) |
|
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

