GPI DEVICE provides a wide set of primitives. Some of them have to be integrated from the payment application. Other are used by card processing logic implemented in L2 components (EMV core engine and L2 CL kernels).
Table of Contents |
---|
Primitives
...
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. | |||||
gpiDisplayMessage | SPEDdev_lcd_put_string | DEVICE/ | Display any string | |||
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 | ||||
gpiBeepdev_sound_play_tone | SPED | Beep at a specific frequency for a specific duration (if supported by the platform) | ||||
gpiSounddev_sound_play_sound | SPED | Generate a sound from a specific physical address | ||||
gpiSleepdev_rtc_sleep | SPED | Sleep. This function shall by implemented with care (no thread) | ||||
gpiSwitchLEDdev_led_switch | SPED | Switch ON/OFF a LED. | ||||
gpiClearScreen | SPED | Clear display | ||||
gpiGetString | SPED | Get string from the string table indexed by ID | ||||
PlatformMemory | Platform primitives are used to support the logic of the processing flow | |||||
gpiMemSetdev_mem_set | Platform | Equivalent to stdlib’s memsetgpiStrLen | ||||
dev_mem_cmp | Platform | Equivalent to string’s memset | gpiMemCpy | Platformmemcmp | ||
dev_mem_copy | Device Management | Equivalent to stdlib’s memcpy | ||||
gpiGetDate | PlatformRTC | |||||
dev_rtc_get_date | Device Management | Get system’s date. Careful with time format | ||||
gpiGetTimer | Platformdev_rtc_get_time | Device Management | Get system’s time. Careful with time format | |||
gpiSetDateTime | Platformdev_rtc_set_date | Device Management | Set system’s time. Careful with time format | |||
dev_rtc_set_time | Device Management | |||||
dev_rtc_get_accurate_time_of_day | Device Management | |||||
dev_rtc_sleep | Device Management | |||||
gpiStartTimerPlatform | Device Management | |||||
gpiGetTimerTimePlatform | Device Management | |||||
gpiGetTimerStatePlatform | Device Management | |||||
gpiFreeTimer | Platform | gpiGetTotalRAM | PlatformDevice Management | |||
dev_get_shared_ram_size | Device Management | Agnos card processing uses shared RAM (no dynamic allocation) no to prevent runtime issues. Static RAM is allocated from inside the GPI. This primitive returns a pointer on the toal RAM available. Similar primitives exclusively used by Agnos framework:
| HSM | gpiRsaComputation | HSM | |
dev_get_shared_ram | ||||||
HSM | ||||||
dev_hsn_rsa_computation | HSM Management | Standard EMV RSA computation primitive to support ODA | ||||
gpiShaInitdev_hsm_sha_init | HSM Management | Standard EMV SHA computation primitive to support ODA | ||||
gpiShaUpdatedev_hsm_sha_update | HSM Management | Standard EMV SHA computation primitive to support ODA | ||||
gpiShaFinaldev_hsm_sha_final | HSM Management | Standard EMV SHA computation primitive to support ODAgpiRandomNumber | ||||
dev_hsm_get_random_number | HSM ManagementgpiGetCheckSum | |||||
dev_get_checksum | HSM Management | Provide the checksum corresponding to each L2 CT/CL kernel | gpiGetEMVCertificate | HSM | gpiGetEMVCRL | HSM |
File Management | ||||||
dev_file_open | File Management | |||||
dev_file_close | File Management | |||||
dev_file_read | File Management | |||||
dev_file_write | File Management | |||||
dev_file_delete | File Management | |||||
dev_file_rename | File Management | |||||
dev_file_get_size | File Management |
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 |
...