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 (See[1]).
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:
To provide a mechanism allowing the implementation of a portable EMV Level2 kernel
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).
See also GPI Primitives References page.