GlobalPlatform C Library and GPShell

Logo

C library and command-line for Open- and GlobalPlatform smart cards

Overview

The GlobalPlatform card specification is a standard for the management of the contents on a smart card. Mainly this comprises the installation and the removal of applications. Practically these applications are always JavaCard

This project offers a C library and a command line shell.

Features:

You can support this project with donations. The money will be used for the support of the ongoing development. Donate using PayPal.

GPShell

GPShell is the command line utility which can be used to execute the most useful functions.

Inspect the manual for GPShell.

GlobalPlatform Library

The C library is called GlobalPlatform. This library is intended for developers who want to integrate it in their own programs using the provided API.

The most prominent features of the Open and GlobalPlatform specification are implemented supporting the secure channel protocols SCP01, SCP02 and SCP03. Support for delegated management and DAP verification is implemented in the library but because of missing test data and incomplete card support this might not work.

This article provides an overview of the functions defined in the GlobalPlatform specification.

Connection Plugins

The GlobalPlatform Library supports different connection plugins. There is a default implementation provided for PC/SC which is the standard for accessing local card readers. See PC-SC Connection Plugin. GPShell uses this default implementation. But it is also possible to implement other connection libraries, e.g. to remotely forward APDUs over a socket connection or using a virtual card reader.

Installation

There are Homebrew package for Linux and MacOS

For a manual compilation consult the Readme.

Windows binaries can be downloaded from the GitHub release page or from SourceForge.

NOTE: The Microsoft Visual C++ 2015 Redistributable must be also installed.

Issues

For issues please use the GitHub issue tracker.

You can also use the Mailing List or ask a question on Stack Overflow assigning the tags gpshell or globalplatform.