The first API (Application Programming Interface) between a smartcard reader and a PC system was standardized by various organizations in the mid 90s. Util that time, each reader had a proprietary software interface. When developing a PC application, both the card and the reader specification had to be considered. For this reason, card applications usually supported a small number of card readers – often only a single one. The goal of the various industry standards is to enable the development of PC card applications that are independent of the reader hardware.
In the book, the PC / SC standard is discussed in detail, as this standard is supported by virtually all major operating systems. Reader manufacturers offer PC/SC compatible contact, contactless and dual-interface smartcard readers in a wide variety of different designs. These range from payment terminals, special passport and ID card readers and desktop PC readers to ones in the form of USB adapters. In laptops, integrated PC/SC readers for contact-type cards are already standard. Some laptops manufacturers are already integrating contactless ISO/IEC 14443, ISO/IEC 15693 and NFC readers in their laptops.
In December, 1997, Version 1.0 of the Interoperability Specification for ICCs and Personal Computer Systems (PC/SC) was published by the PC/SC Working Group. In version 1.0, only contact-type smartcards and simple readers were supported.
Contactless ISO/IEC 14443 and ISO/IEC 15693 smartcards, asynchronous contact memory smartcards and higher-category integrated readers (e.g.: keyboards, readers with biometric sensors, displays, keypads, etc.) were first supported by Version 2.0. This extension was published in August 2004.
The 10-part specification can be downloaded at no cost from the PC/SC Workgroup website (www.pcscworkgroup.com).
The PC/SC standard is completely platform- and vendor-independent and can therefore be integrated into any desktop operating system. The PC/SC specification was first implemented in Windows. PC/SC is already standard in all current Microsoft operating systems. In 2000, David Cororan of Purdue University began the PC/SC -Lite project, with the goal of supporting smartcards under UNIX. The first version of MUSCLE (Movement for the Use of Smartcards in a Linux Environment) was published. PC/SC-Lite draws largely from the PC/SC standard and the Microsoft WinSCard API, but doesn’t support all of the functionality. The published drivers and source code are on the MUSCLE website (http://www.musclecard.com). Currently, PC/SC –Lite is used in the following operating systems: Linux, Solaris, Mac OS X, FreeBSD und HP-UX.