Amadis

Agnos

 

The kernel (a.k.a the EMV library or Agnos) is split up into two main set of primitives:

  1. 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)

  2. 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

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

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