Architecture
There are 8 callbacks available at different levels of Agnos Framework API:
AgnosEP
ApplicationSelectionMethod (entrypoint.h)
Name
ApplicationSelectionMethod
Scope
Contactless only
Description
Setter
enpSetApplicationSelectionMethod
Signature
typedef tPaymentError (*ApplicationSelectionMethod)
(
tADFList *mutualList,
tByte *MLIndex, tBoolean CL
)
KernelSelectionMethod (entrypoint.h)
Name
N/A
Scope
N/A
Description
N/A
Setter
N/A
Signature
N/A
AgnosMW
emvcallback (dataxchng.h)
Name
emvCallback
Scope
Contactless only
Description
This callback shall be defined to control the contactless transaction flow from payment application. It enables Data Exchange / Data Storage feature accross all contactless kernels in a normalized way. Use DF12 - Tags to Read - to define which tag(s) shall be looked up to give back control to the payment application
Setter
Set tPaymentContext mDataExchange.mCallback.
To enable DE/DS:
-Set tPaymentContext mDataExchange.mDEList with the adress to an instance of tDataExchnageList
Signature
typedef void (*emvcallback)
(
void* data
)
Agnos
tGetDataCallback (agnostype.h)
Name
tGetDataCallback
Scope
Contact and Contactless
Description
This callback shall be defined to control the EMV transaction flow at Agnos' Read Record state (AsRRD).
Setter
agnSetParsingCallback (see agnos.h)
Signature
typedef void (*tGetDataCallback)
(
tBoolean lastRead,
tBoolean *next
)
tBuildDOLCallback (agnostype.h)
Name
tBuildDOLCallback
Scope
Contactless only
Description
Reserved for contactless card processing applications.
Setter
agnSetBuildDOLCallback (see agnos.h)
Signature
typedef void (*tBuildDOLCallback)
(
tWord tag,
tByte length,
tByte *DOLData
)
tStateCallback (agnostype.h)
Name
tStateCallback
Scope
Contact and Contactless
Description
This callback shall be defined to control the EMV transaction flow. It will be called at each state defined by Agnos (see tAgnosState in agnostype.h).
Setter
agnSetStateCallback (see agnos.h)
Signature
typedef void (*tStateCallback)
(
tAgnosState currentState,
tBoolean *stop,
tBoolean *bypass
)
AgnosDB
AddTag_Contactless (agnosdatabase.h)
Name
AddTag_contactless
Scope
Contactless
Description
Reserved for contactless card processing applications.
Setter
agnSetAddTagContactlessCallback (see agnosdatabase.h)
Signature
typedef void (*AddTag_Contactless)
(
tTagDataBase *db,
enum DataElementIndex idx,
const unsigned char checkRedundancy,
const unsigned char rule
)
AddUnknownTag_Contactless (agnosdatabase.h)
Name
AddTag_contactless
Scope
Contactless
Description
This callback may be defined by a payment application to hook all the tag that are not statically supported by Agnos.
Setter
agnSetAddUnknownTagContactlessCallback (see agnosdatbase.h)
Signature
typedef void (*AddUnknownTag_Contactless)
(
const unsigned char *tlv,
const unsigned char len
)