Versions Compared

Key

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

...

Table of Contents
maxLevel2

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

typeflat

API _Version _Revision

Description

N/A

Callbacks are included in the different Agnos Framework components (AgnosEP, AgnosMW, Agnos, AgnosDB). Hence, their version depend on the components' versions their pertain to.

AgnosEP

See entrypoint.h

ApplicationSelectionMethod

Code Block
languagec
typedef tPaymentError (*ApplicationSelectionMethod)
(
tADFList *mutualList, // See Agnos/selection.h for structure definition
tByte *MLIndex,
tBoolean CL
)

Contactless only. This call is performed right after PPSE selection. That callback can be used to overload mutual list management.

Setter: enpSetApplicationSelectionMethod

KernelSelectionMethod

Code Block
languagec
typedef tPaymentError (*KernelSelectionMethod)
(
tByte* kernelIdentifier, 
tByte kernelIdentifierLen,
tByte* requestedKernelIdentifier
)

Contactless only. This call is performed when requested kernel ID cannot be determined by the entry point. That callback can be use to map an undertermined kernel ID to a supported kernel ID.

Setter: enpSetKernelSelectionMethod

AgnosMW

See dataxchng.h

emvcallback

Code Block
languagec
typedef void (*emvcallback)
(
void* data
)

Contactless only. That callback can be used to control EMV contactless transaction flows. It is a normalized data exchange mechanism. Itmay be defined to control the contactless transaction flow

...

Setter

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 contactless transaction flow

Setter

agnSetParsingCallback (see agnos.h)

Signature

typedef void (*tGetDataCallback)

(

tBoolean lastRead,

tBoolean *next

)

tBuildDOLCallback (agnostype.h)

Name

Scope

Contactless only

Description

from a payment application. It enables Data Exchange (DE) / Data Storage (DS) 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. DF12 shall be set in ENTRY POINT combinations. Example: DF12015A will trigger that callback call when 5A will be detected during the transaction flow.

Setter: mDataExchange.mCallback in tPaymentContext structure

Important: in order to enable this mechanism, set mDataExchange.mDEList in tPaymentContext with the adress of an instance of tDataExchangeList.

Agnos

See agnos.h, agnostype.h

tGetDataCallback

Code Block
languagec
typedef void (*tGetDataCallback)
(
tBoolean lastRead, 
tBoolean *next
)

Contact and Contactless. This callback shall be defined to control the

...

EMV transaction flow at Agnos' Read Record state (AsRRD).

Setter

...

agnSetBuildDOLCallback (see agnos.h)

Signature

...

: agnSetParsingCallback

tBuildDOLCallback

Code Block
languagec
typedef void (*tBuildDOLCallback)

...


(

...


tWord tag,

...


tByte length,

...


tByte *DOLData

...


)

tStateCallback (agnostype.h)

Name

tStateCallback

Scope

Contact and Contactless

Description

Contactless and Contactless.

Setter: agnSetBuildDOLCallback

tStateCallback

Code Block
languagec
typedef void (*tStateCallback)
(
tAgnosState currentState,
tBoolean *stop,
tBoolean *bypass
)

Contactless and Contactless. 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

...

: agnSetStateCallback

AgnosDB

See agnosdatabase.h

...

Name

AddTag_

...

Scope

...

Contactless

Description

Reserved for contactless card processing applications

Setter

agnSetAddTagContactlessCallback (see agnosdatabase.h)

Signature

Code Block
languagec
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

Setter

agnSetAddUnknownTagContactlessCallback (see agnosdatbase.h)

Signature

...

Contactless only. This callback may be defined by a payment application to hook all the tag that are not statically supported by Agnos.

Setter: agnSetAddTagContactlessCallback

AddUnknownTag_Contactless

Code Block
languagec
typedef void (*AddUnknownTag_Contactless)

...


(

...


const unsigned char *tlv,

...


const unsigned char len

...


)

Contactless only.

Setter: agnSetAddUnknownTagContactlessCallback