PC/SC Workgroup Specifications Overview

Version 2.01.14 was released in June 2013 and included an update to the Supplement to Part 3, NN bytes.

Version 2.01.13 was released in December 2012 and included minor editorial updates.

The PC/SC Spectification Version 2.01.12 was released in November 2012 and included an update to the Amendment to Part 10 with minor revisions to OutBuffer Structure Table results. Part 10 includes an updated list of tags for FEATURE_GET_TLV_PROPERTIES. Part 10 Supplement was added which deals with IFDs with Feature Capabilities.

Version 2.01.11 includes a minor revision to Part 3 Amendment’s OutBuffer Structure Table results. This version was released in June 2012.

Version 2.01.10 was released in August 2011 and included a revision to Part 3 Supplement document to include an exteded table for identification of low-frequency cards. There is also an added Amendment to Part 3 to include clarification of key type identifier for picopass keys; definition and use of increment and decrement data objects; and definition of a vendor specific,generic command. We have also included an Amendment to Part 10 to add PACE (password authenticated connection establishment) which deals with PIN verification for contactless smart cards.

Version 2.01.9 was realeased in April 2010. It incorporated changes to Part 10 to add TVL properties feature, bMinPINSize and bMaxPINSize tags, and sFirmwareID tag. Also added was a FEATURE_CCID_ESC_COMMAND as well as Class 1 drivers to GET_FEATURE_REQUEST. New features were added to all feature information.
This version also includes an additional Part 3 Supplement document for Contactless ICCs and an Addendum listing ISO references.

Version 2.01.7 was released in July 2009. It incorporated a revised Part 3 Supplement which adds i-Code SL2.

Version 2.01.6 was released in May 2009. It incorporated changes to Part 10 to remove wLcdMaxCharacters and wLcdMaxLines fields from PIN_PROPERTIES to maintain backward compatibility.

Version 2.01.5 was released in December 2008. A warning was added regarding the use of GET KEY PRESSED and WRITE DISPLAY, and added error cede return when SET_SPE_MESSAGE exceeds storage capability. ‘C’ Structures were revised and structure packing notes removed. Also, #define feature was removed.

Version 2.01.4 was released in July 2007. Both Part 3 and Part 3 supplement were slightly revised. Part 3, sec. 3.1.3.2.3 added ATR ISO 14443B. Part 3 supplement added LR 164 to section 2.1.2.2.

Release Version 2.01.3 was released in January 2006. Revisions were made to Part 3 to correct some syntax errors and revise class byte for commands, and text was added to section 3.2.2.1.1. Cards were added to Part 3 Supplement, and Part 10 had revisions for GET_KEY_PRESSED.

Version 2.01.2 was released in August 2005 and revised Part 2, Section 3.1.1 Operating Voltage Condition, and Section 3.2 ISO/IEC 7816-10 Compatible Card and IFD; Part 3 to add specifications for identification of contactless cards and now includes information on the RID number (in a supplemental document); Part 10 has been added to address IFD’s with secure pin entry capabilities. A minor edit was made on Sept. 12 to correct PIN structure information in Part 10, and an additional edit on September 29 to update the company name “Schlumberger” with “Axalto”.

The PC/SC Specification Version 2.0 was first released in August 2004. Since then, the PC/SC Workgroup has made several enhancements, which are now posted as Final Release Specification Version 2.01.3. We will continue our efforts to improve our Specifications.

The PC/SC Specification builds upon existing industry smart card standards – ISO 7816 and EMV – and compliments them by defining low-level device interfaces and device-independent application APIs as well as resource management, to allow multiple applications to share smart card devices attached to a system. As with all previous versions, Specifications 2.01.7 is completely platform independent, and can be implemented on any operating system.

The current version of PC/SC Specifications extends the specification to cover a broader range of smart card based products. It focuses on the support of two main technologies:

IFDs with extended capabilities
Covered by an IFD Service Provider (IFDSP), which provides interfaces to manage new functionality, allowing IFD capabilities such as pin pad, display and multi-slot. The concept of application context is introduced to represent a list of IFD functions with security features required for ICC aware applications and ICC Service Provider (ICCSP).

Support of contactless ICCs
Also embedded in the actual scheme of PCSC. The impact on the specification is that new tags must be defined (in part 3), and functionality must be ensured by the IFD Subsystem.

Earlier plans to introduce dynamic assignment of ICC Service Providers and enhanced card recognition where dropped in this release due to lack of industry interest.

The PC/SC Specifications are divided into ten parts. A brief summary of each part is provided below:

Part 1: Provides an overview of the system architecture and components defined by the Workgroup.

Part 3: Describes the interface to, and required functionality for, compliant IFD devices. There is also a supplement to provide information on RID numbers

Part 4: Discusses design considerations for IFD devices. In particular, it provides a recommended implementation for PS/2 keyboard integrated IFDs.

Part 5: Describes the interfaces and functionality supported by the ICC Resource Manager, a required system level component.

Part 6: Describes the ICC Service Provider model, identifies required interfaces, and indicates how this may be extended to meet application domain-specific requirements.

Part 7: Describes design considerations for application developers, and how to make use of the other components.

Part 8: Describes recommended functionality for ICCs intended to support general purpose cryptographic and storage requirements. This is oriented toward support of Internet and PC standards for security and privacy.

Part 9: Describes the management of IFDs with some extended capabilities such as secure PIN entry or user interface functionality.

Part 10: Describes the management of IFDs with secure pin entry capabilities.

Addendum: Lists the ISO References,

This image depicts the architecture defined in the PC/SC Specifications, and clearly shows the relationship amongst the various components defined in the Specifications.

As shown, ICC devices are accessed by PC-based applications through an IFD peripheral device. There may be multiple IFDs per system, and a variety of I/O channels are supported. RS-232C serial IFDs, keyboard based IFDs, and PC CARD IFDs are expected to be the most common, but the design is not limited to these. Associated with each IFD in the system is an IFD Handler. While the implementation may vary by system, this will likely correspond to a device driver.

The ICC Resource Manager is intended to provide a system level service. It manages the ICC and IFD resources, controls shared access to these devices, and supports transaction management primitives.

The Service Provider(s) provide a high level interface mapped onto a specific ICC implementation. The Workgroup has defined common interfaces for widely implemented services (Authentication, File Access, Cryptography) and defined how extensions for domain-specific requirements are supported. Cryptographic interfaces are isolated in a Cryptographic Service Provider, in recognition of existing import/export issues.

Finally, applications written to take advantage of this architecture will typically make use of both the Resource Manager and a specific ICC Service Provider.

This picture shows the components of the PC/SC architecture and the part of the Specification that describes its interface.