GPI provides a wide set of primitives.
Primitives
Miscellaneous
Primitives | Module | Comments |
---|---|---|
User Interface | UI primitives are limited to a few set of functions. EMV processing doesn’t require sophisticated displays. However, a minimum set of functions is required to provide a feedback to the cardholder and the merchants. Most of them are not used during transaction flow excepted:
Depending on the platform, these two primitives should be managed specifically if they alter the performance. | |
gpiDisplayMessageByID | SPED | Display a string from the string table indexed by ID |
gpiSetPollingMessage | SPED | Set the message to be display at AgnosEP’s polling time |
gpiDisplayPollingMessage | SPED | Display the message - at AgnosEP’s polling time - that has been set from gpiSetPollingMessage |
Memory | Platform primitives are used to support the logic of the processing flow | |
RTC | ||
gpiStartTimer | Device Management | |
gpiGetTimerTime | Device Management | |
gpiGetTimerState | Device Management | |
gpiFreeTimer | Device Management | |
dev_get_shared_ram_size | Device Management | Agnos card processing uses shared RAM (no dynamic allocation) to prevent runtime issues. Static RAM is allocated from inside the GPI. |
dev_get_shared_ram | ||
HSM | ||
gpiGetChecksum | HSM Management | Provide the checksum corresponding to each L2 CT/CL kernel |
File Management | ||
gpiFileOpen | Platform | |
gpiFileClose | Platform | |
gpiFileRead | Platform | |
gpiFileWrite | Platform | |
gpiFileDelete | Platform | |
gpiFileRename | Platform | |
gpiFileGetSize | Platform |
Initialization
Primitives | Module | Comment |
---|---|---|
Initialization | ||
gpiMain | Platform | GPI specific |
gpiInitialize | Platform | Platform specific. Enable any initialization related to the plaftorm |
gpiInitPolling | CAD | Platform specific. Enable any initialization realted to the contactless reader |
gpiInitializeHSM | HSM | Platform specific. Enable any initialization related to the platform’s crypto |
Card Processing
Primitives | Module | Comment |
---|---|---|
Card Interfaces | ||
gpiSetTechnoToDetect | CAD | Set the type of technologies to be detected during a polling: Technologies to detect are in:
|
gpiTechnoPolling | CAD | Perform a polling on technologies previously set. gpiError are in:
|
gpiPowerOn | CAD | |
gpiPolling | CAD | Poll for a contactless card. Its implementation depends on the platform. It leverages on L1 API to detect a card, to detect a collision, and to activate a card. gpiError are in:
|
gpiExchangeAPDU | CAD | Send / Receive an APDU Command / Response |
gpiGetLastExchangedAPDU | CAD | Provide last APDU command/response |
gpiRemovalProcedure | CAD | As per EMVCo standard |
gpiCardSwiped | CAD | If a card is swiped, return msrCARD_SWIPED |
gpiCardInsterted | CAD | If a card is inserted, retunr scrCARD_INSERTED |
gpiReadMagstripe | CAD | Provide all card’s tracks after a swipe |
gpiPowerOff | CAD | |
gpiPowerOffAllDevices | CAD | Swirch off all devices |
gpiResetContactless | CAD | Reset antenna |
gpiSetContactlessTransactionInProgress | CAD | Indicates that a contactless transaction is in progress |
gpiSetContactTransactionInProgress | CAD | Indicates that a contact transaction is in progress |
gpiSetSwipeTransactionInProgress | CAD | Indicates that a swipe transaction is in progress |
IsSetContactlessTransactionInProgress | CAD | |
IsSetContactTransactionInProgress | CAD | |
IsSwipeTransactionInProgress | CAD |
PIN Management
Primitives | Module | Comment |
---|---|---|
PIN Management | ||
gpiPINEnter | SPED |