Table of Contents |
---|
The kernel (a.k.a the EMV library or Agnos) is split up into two main set of primitives:
The set of primitives dedicated to EMV application selection management as defined in EMV Book I (i.e. explicit selection per AID, PSE selection, and PPSE selection)
The set of primitives dedicated to pure EMV processing management as defined in EMV Books II, III, and IV. As per design, the engine is backed with an EMV tag database allowing the processing of MAX sessions in parallel (20 as of today). It supports contact and contactless processing (dual)
Developer's References
Interface | Description |
---|---|
selection.h | Provides per AID and PSE selection methods |
agnos.h | Provides EMV core primitives to support EMV processing |
agnostypes.h | Provides a set of types and constants definitions |
agnoserrors.h | Provides a set of errors for processing result control |
Presentation
The kernel (a.k.a the EMV library or Agnos) is split up into two main set of primitives:
The set of primitives dedicated to EMV application selection management as defined in EMV Book I (i.e. explicit selection per AID, PSE selection, and PPSE selection)
The set of primitives dedicated to pure EMV processing management as defined in EMV Books II, III. As per design, the engine is backed with an EMV tag database allowing the processing of a single session. It supports contact and contactless processing (dual)
Agnos and AgnosDB links exclusively on the GPI. As soon as it has been ported a platform, Agnos is available to run.
Technical Notes
The list of GPI services required by Agnos and AgnosDB are:
Module | Service | Comments |
---|---|---|
HSM | gpiCLIPCheckPANInCertificate | If CLIPPING supported |
CAD | gpiExchangeAPDU | Mandatory |
HSM | gpiGetChecksum | Mandatory |
HSM | gpiGetEMVCertificate | Mandatory |
HSM | gpiGetEMVCRL | Mandatory |
HSM | gpiGetRSAComputation | Mandatory |
HSM | gpiGetRandomNumber | Mandatory |
Platform | gpiGetDataObjectRAM | Mandatory |
Platform | gpiGetFreeRAM | Mandatory |
Platform | gpiGetPrivateScratchPAD | Mandatory |
Platform | gpiGetRAMForTags | Mandatory |
Platform | gpiGetRAMForUnknownTags | Mandatory |
Platform | gpiGetTotalRAM | Mandatory |
SPED | gpiPINVerifyCiphered | Contact only if supported |
Platform | gpiLog | Only if logging supported |
Platform | gpiLogf | Only if logging supported |
Platform | gpiLogData | Only if logging supported |
Platform | gpiMemCmp | Mandatory |
Platform | gpiMemCpy | Mandatory |
Platform | gpiMemSet | Mandatory |
SPED | gpiPINEnter | If supported |
SPED | gpiPINPadStatus | If supported |
SPED | gpiPINVerifyPlaintext | Contact only if supported |
HSM | gpiSECUREDShaInit | If SRED or CLIPPING supported |
HSM | gpiSECUREDPANMatched | If SRED or CLIPPING supported |
HSM | gpiSECUREDPrefixPANMatched | If SRED or CLIPPING supported |
HSM | gpiSECUREDShaFinal | If SRED or CLIPPING supported |
HSM | gpiSECUREDShaUpdateOnCertificateData | If SRED or CLIPPING supported |
HSM | gpiSECUREDShaUpdateOnData | If SRED or CLIPPING supported |
HSM | gpiSECUREDShaUpdateOnTLV | If SRED or CLIPPING supported |
HSM | gpiShaFinal | Mandatory |
HSM | gpiShaInit | Mandatory |
HSM | gpiShaUpdate | Mandatory |
HSM | gpiSREDGetPKLength | If SRED supported |
HSM | gpiSREDIsPKPresent | If SRED supported |
HSM | gpiSREDIsPKPANValid | If SRED supported |
HSM | gpiSREDRsaComputation | If SRED supported |
HSM | gpiSREDSetCDOLOffset | If SRED supported |
Platform | gpiStrCpy | Mandatory |
See Agnos Main Services page to learn more on main primitives exposed by Agnos.