Amadis

GPI

Developer’s References

GPI implementation is a very important stage of a project integrating Agnos Framework. An appropriate platform shall be selected, and it must supports EMV processing, security requirements, and performance depending on a given context.

Interface

Description

Interface

Description

gpi.h

All services related to administrative functions like logging

gpicad.h

All services related to card device acceptance being contact, contactless, or magstripe

gpidisplay.h

All services related to graphical or textual user interface including also leds and beeper

gpihsm.h

All services related to cryptographic

gpiplatform.h

All services related to platform OS like files management, random number generation, …

gpisped.h

All services related to user key entry including the PIN

gpilog.h

All services related to tracing in Agnos

gpierrors.h

All constants related to errors encoding

gpiutils.h

Few primitives for miscellaneous conversions

Presentation

The GPI belongs to the Level1 layer. At its inception, there were 2 main requirements to implement that component:

  1. To provide a mechanism allowing the implementation of a portable EMV Level2 kernel

  2. To provide a mechanism allowing the implementation of portables applications

 

Each module shall be specialized during an integration project.

Technical Notes

  • Standard GPI versions that are delivered as an example target PC platform using PCSC readers

  • For the purpose of Agnos internal development process, GPI is integrated onto Agnos Automation, uses replay mechanisms and time stamping (See Compilation Options)

  • Agnos Framework is a generic software allowing certifying rapidly and efficiently a payment acceptance system without going through a full implementation of an EMVCo kernel and/or CL applications. The framework is provided along with code examples (GPI and Kizis). In these examples, Kizis uses the primitive gpiMain with 8 parameters:

Parameter 1

trace depth

Parameter 2

automation mode

Parameter 3

SDK mode

Parameter 4

polling timeout

Parameter 5

signal

Parameter 6

APDU log

Parameter 7

UI display

Parameter 8

replay

These parameters are aligned on ACE features (it’s possible to deactivate signal from ACE, or to change the polling timeout, etc…). Study:

tGPIError gpiMain(int argc, char *argv[])

to support other kind of GPI options that could be useful for any L3 (GPI/Platform).

 

Additional information are available on demand from Developer’s Guide with limited accesses for confidentiality reasons. Contact us for more details.