Gemplus Block Protocol Library

 

Protocol description

GemCore is the name of the Gemplus Smart Card readers technology. It is basically composed of chips, chipsets and associated tools and services. All exchanges between a GemCore-based reader and a host system are handled by three protocol layers:

  • The command layer handles and interprets the GemCore commands
  • The transport layer handles the message addressing, specifies the transmission type and validates each transmission sequence. Gemplus Block Protocol (GBP) is one of the transport layer used by the GemCore technology.
  • The physical layer handles the data transmission itself. For example GemCore may use the asynchronous serial layer or the I2C bus layer.

 

Host

 

GemCore

 

Smart Card

Host application

 

GemCore application

 

Smart Card application

(PC/SC environment)

 

APDU / EMV

<---->

APDU / EMV

 

 

APDU / EMV

<---->

(APDU / EMV)

 

TPDU / GemCore commands

<---->

TPDU / GemCore commands

TPDU

<---->

(TPDU)

GBP

<---->

GBP

ATR, PPS, T=0, T=1

<---->

ATR, PPS, T=0, T=1

Asynch. serial / I2C

<---->

Asynch. serial / I2C

Asynch./synch. serial link

<---->

Asynch./synch. serial link

 

The Gemplus Block Protocol (GBP) is a simplified version of the T=1 card protocol. Under the GBP, data is transmitted in blocks between the source and destination. There are three types of blocks, namely:

  • I-Blocks (Information Blocks) hold the data to be exchanged between the source and the destination. For a GBP-based device, the data carried by I-Blocks are GemCore commands.
  • R-Blocks (Receive Ready Blocks) hold positive or negative acknowledgments to transmissions.
  • S-Blocks (Supervisory Blocks) synchronize transmissions between the source and the destination.

For more details about the GBP operating mode please refer to the GemCore Reference Manuals.

 

GBP Interface Library Kit (GILK)

The GBP Interface Library Kit consists of the source code written in C language of the GBP communication protocol layer between the host system and GemCore. It has been designed to be universal which means independent of any development system and physical communication layer. Therefore, it is easy to port in any CPU environment, even those requiring a small memory size.. 
It implements the GBP (Gemplus Block Protocol) on any serial link, RS232/422, I2C or equivalent.
The kit includes software samples showing the operation of synchronous cards access and EMV/ISO mode switch. Scenario of EMV and APDU commands are also supplied.

Porting actions GILK layers OS and physical dependence
Nothing to modify to port to a new Operating System (OS) Transport layer files
(TL.H, TL.C)
OS and physical port independent
To modify according to the Physical port layer Virtual port layer files
(VP.H, VP.C)
OS and physical port specific
Physical port layer to provide for the specific OS and platform Physical port layer files
(PP.H, PP.C)
OS and physical port specific

Due to the GBP Interface Library structure, the application can use the same interface regardless of the physical layer. This structure also allows for the easy porting of the library onto another operating system and another physical port (for example, I2C). End developer's main task consists of interfacing the virtual port layer with their own specific port layer. The GBP-specific transport layer remains unchanged and thus protected.

The porting workload of the GILK should be less than one week for a developer familiar with the C language and with both physical port management and CPU time management.

Communication with a physical RS-232 interface in a Linux RedHat 7.1 test environment is supplied as an example. All the C source code (library and samples) are commented and comply with standard and documented programming rules.

The GBP Interface Library is compatible with the following GemCore products:

  • GemCore Original V1.10
  • GemCore EMV V1.20/V1.22
  • GemCore WHQL V1.21
  • GemCore Lite V1.21/V1.32
  • GemCore Serial Lite PRO v1.4
  • GemCore410 coupler
  • GemCore410-EMV coupler
  • GemCore500-MS4 coupler

 

Comparison between GILK, PC/SC, OCF and GCR API

The GBP Library follows the same general objectives as other existing API such as PC/SC or OCF. However these technologies may be considered complementary rather than competing - complementary with respect to the scope of their objectives as well as to the environments in which they will be deployed. The GCR API is the API supplied for previous GemCore-based reader versions.

API type Main features Constraints
GILK
  • Platform and OS independent
  • Support of memory and 1.8 V cards
  • Well suited for embedded equipment and  mobile objects
  • Supports the Gemplus EMV management system
  • PCMCIA, USB and PS/2 not supported
  • Dedicated to GemCore-based readers
PC/SC
  • PC oriented (Windows and Linux)
  • 32 bits platforms, multi tasking OS
  • Reader independent
  • Memory cards not supported
  • Involves the installation of smart card resource manager components on older OS
OCF
  • Java oriented
  • Platform, OS and reader independent
  • Multi application cards management
  • Needs a Java environment (application, VM, etc)
  • Memory cards not supported
GCR API
  • Platform and OS independent: source code provided for Windows 3.11/NT/9x, DOS, OS/2, Unix
  • Multi (Gemplus) readers support
  • Not supported any more
  • Dedicated to GemCore-based readers

 

Download and install the GBP Interface Library Kit

Download the GBP Interface Library Kit (zip file, 589 KB, 03.05.2003)
This kit includes the three following files:

  • Licence.txt
  • readme.txt
  • Gbplib.zip+

The Licence.txt file gives information about Licence granted, copyright, warranty, liability for damages, severability and confidentiality related to GILK.
The readme.txt file indicates the password required to open the Gbplib.zip+ file. Double click on the Gbplib.zip+ file and type the "YES" password ( in upper characters) if you are agreeing to be legally bound by the terms and conditions of the Licence.txt file.
The Gbplib.zip+ is the library by itself. It includes several files and, in particular, the GILK Programmer's Guide (.pdf, 624 KB) documentation.