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 |
|
|
PC/SC |
|
|
OCF |
|
|
GCR API |
|
|
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.