Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

Platform

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:

  • gpiSwitchLEDdev_led_switch: LED #2 is switch on

  • gpiDisplayMessageByID: PROCESSING identifier

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

RTC

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:

  • gpiGetRAMForTags

  • gpiGetRAMForUnknownTags

  • gpiGetFreeRAM

  • gpiGetPrivateScratchPAD

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

...